diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..239ecff137 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +yarn.lock diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..afb9d6d993 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - '12' diff --git a/package.json b/package.json new file mode 100644 index 0000000000..87ad2f85a7 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "awesome", + "private": true, + "description": "Awesome lists about all kinds of interesting topics", + "license": "MIT", + "repository": "sindresorhus/awesome", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "devDependencies": { + "array-uniq": "^2.0.0", + "ava": "^2.1.0", + "awesome-lint": "^0.10.0", + "is-relative-url": "^3.0.0", + "remark": "^9.0.0", + "unist-util-visit": "^1.4.0", + "xo": "^0.24.0" + } +} diff --git a/test/_whitelist.js b/test/_whitelist.js new file mode 100644 index 0000000000..980879445b --- /dev/null +++ b/test/_whitelist.js @@ -0,0 +1,438 @@ +export default new Set([ + 'https://github.com/sindresorhus/awesome-nodejs', + 'https://github.com/dypsilon/frontend-dev-bookmarks', + 'https://github.com/vsouza/awesome-ios', + 'https://github.com/JStumpp/awesome-android', + 'https://github.com/weblancaster/awesome-IoT-hybrid', + 'https://github.com/sindresorhus/awesome-electron', + 'https://github.com/busterc/awesome-cordova', + 'https://github.com/jondot/awesome-react-native', + 'https://github.com/benoitjadinon/awesome-xamarin', + 'https://github.com/aleksandar-todorovic/awesome-linux', + 'https://github.com/Friz-zy/awesome-linux-containers', + 'https://github.com/iCHAIT/awesome-macOS', + 'https://github.com/herrbischoff/awesome-macos-command-line', + 'https://github.com/agarrharr/awesome-macos-screensavers', + 'https://github.com/jaywcjlove/awesome-mac', + 'https://github.com/yenchenlin/awesome-watchos', + 'https://github.com/deephacks/awesome-jvm', + 'https://github.com/mailtoharshit/awesome-salesforce', + 'https://github.com/donnemartin/awesome-aws', + 'https://github.com/Awesome-Windows/Awesome', + 'https://github.com/ipfs/awesome-ipfs', + 'https://github.com/fuse-compound/awesome-fuse', + 'https://github.com/ianstormtaylor/awesome-heroku', + 'https://github.com/thibmaek/awesome-raspberry-pi', + 'https://github.com/JesseTG/awesome-qt', + 'https://github.com/bfred-it/Awesome-WebExtensions', + 'https://github.com/motion-open-source/awesome-rubymotion', + 'https://github.com/vitalets/awesome-smart-tv', + 'https://github.com/Kazhnuz/awesome-gnome', + 'https://github.com/quozd/awesome-dotnet', + 'https://github.com/thangchung/awesome-dotnet-core', + 'https://github.com/miguelmota/awesome-amazon-alexa', + 'https://github.com/sorrycc/awesome-javascript', + 'https://github.com/wbinnssmith/awesome-promises', + 'https://github.com/standard/awesome-standard', + 'https://github.com/bolshchikov/js-must-watch', + 'https://github.com/loverajoel/jstips', + 'https://github.com/Kikobeats/awesome-network-js', + 'https://github.com/parro-it/awesome-micro-npm-packages', + 'https://github.com/feross/awesome-mad-science', + 'https://github.com/maxogden/maintenance-modules', + 'https://github.com/sindresorhus/awesome-npm', + 'https://github.com/avajs/awesome-ava', + 'https://github.com/dustinspecker/awesome-eslint', + 'https://github.com/stoeffel/awesome-fp-js', + 'https://github.com/sindresorhus/awesome-observables', + 'https://github.com/RyanZim/awesome-npm-scripts', + 'https://github.com/matteocrippa/awesome-swift', + 'https://github.com/hsavit1/Awesome-Swift-Education', + 'https://github.com/uraimo/Awesome-Swift-Playgrounds', + 'https://github.com/vinta/awesome-python', + 'https://github.com/timofurrer/awesome-asyncio', + 'https://github.com/faroit/awesome-python-scientific-audio', + 'https://github.com/adafruit/awesome-circuitpython', + 'https://github.com/rust-unofficial/awesome-rust', + 'https://github.com/krispo/awesome-haskell', + 'https://github.com/passy/awesome-purescript', + 'https://github.com/avelino/awesome-go', + 'https://github.com/lauris/awesome-scala', + 'https://github.com/markets/awesome-ruby', + 'https://github.com/razum2um/awesome-clojure', + 'https://github.com/hantuzun/awesome-clojurescript', + 'https://github.com/h4cc/awesome-elixir', + 'https://github.com/isRuslan/awesome-elm', + 'https://github.com/drobakowski/awesome-erlang', + 'https://github.com/svaksha/Julia.jl', + 'https://github.com/LewisJEllis/awesome-lua', + 'https://github.com/aleksandar-todorovic/awesome-c', + 'https://github.com/fffaraz/awesome-cpp', + 'https://github.com/qinwf/awesome-R', + 'https://github.com/zhaopuming/awesome-d', + 'https://github.com/CodyReichert/awesome-cl', + 'https://github.com/hachiojipm/awesome-perl', + 'https://github.com/kdabir/awesome-groovy', + 'https://github.com/yissachar/awesome-dart', + 'https://github.com/akullpp/awesome-java', + 'https://github.com/eleventigers/awesome-rxjava', + 'https://github.com/KotlinBy/awesome-kotlin', + 'https://github.com/rizo/awesome-ocaml', + 'https://github.com/seancoyne/awesome-coldfusion', + 'https://github.com/rabbiabram/awesome-fortran', + 'https://github.com/ziadoz/awesome-php', + 'https://github.com/jakoch/awesome-composer', + 'https://github.com/Fr0sT-Brutal/awesome-delphi', + 'https://github.com/jaspergould/awesome-asm', + 'https://github.com/ahkscript/awesome-AutoHotkey', + 'https://github.com/J2TeaM/awesome-AutoIt', + 'https://github.com/veelenga/awesome-crystal', + 'https://github.com/sfischer13/awesome-frege', + 'https://github.com/onqtam/awesome-cmake', + 'https://github.com/robinrodricks/awesome-actionscript3', + 'https://github.com/sfischer13/awesome-eta', + 'https://github.com/joaomilho/awesome-idris', + 'https://github.com/addyosmani/es6-tools', + 'https://github.com/davidsonfellipe/awesome-wpo', + 'https://github.com/lvwzhen/tools', + 'https://github.com/awesome-css-group/awesome-css', + 'https://github.com/addyosmani/critical-path-css-tools', + 'https://github.com/davidtheclark/scalable-css-reading-list', + 'https://github.com/AllThingsSmitty/must-watch-css', + 'https://github.com/AllThingsSmitty/css-protips', + 'https://github.com/enaqx/awesome-react', + 'https://github.com/expede/awesome-relay', + 'https://github.com/mateusortiz/webcomponents-the-right-way', + 'https://github.com/Granze/awesome-polymer', + 'https://github.com/gdi2290/awesome-angular', + 'https://github.com/sadcitizen/awesome-backbone', + 'https://github.com/diegocard/awesome-html5', + 'https://github.com/willianjusten/awesome-svg', + 'https://github.com/raphamorim/awesome-canvas', + 'https://github.com/dnbard/awesome-knockout', + 'https://github.com/petk/awesome-dojo', + 'https://github.com/NoahBuscher/Inspire', + 'https://github.com/nmec/awesome-ember', + 'https://github.com/wasabeef/awesome-android-ui', + 'https://github.com/cjwirth/awesome-ios-ui', + 'https://github.com/Urigo/awesome-meteor', + 'https://github.com/sturobson/BEM-resources', + 'https://github.com/afonsopacifer/awesome-flexbox', + 'https://github.com/deanhume/typography', + 'https://github.com/brunopulis/awesome-a11y', + 'https://github.com/sachin1092/awesome-material', + 'https://github.com/wbkd/awesome-d3', + 'https://github.com/jonathandion/awesome-emails', + 'https://github.com/petk/awesome-jquery', + 'https://github.com/AllThingsSmitty/jquery-tips-everyone-should-know', + 'https://github.com/notthetup/awesome-webaudio', + 'https://github.com/pazguille/offline-first', + 'https://github.com/agarrharr/awesome-static-website-services', + 'https://github.com/aframevr/awesome-aframe', + 'https://github.com/cyclejs-community/awesome-cyclejs', + 'https://github.com/dok/awesome-text-editing', + 'https://github.com/fliptheweb/motion-ui-design', + 'https://github.com/vuejs/awesome-vue', + 'https://github.com/sadcitizen/awesome-marionette', + 'https://github.com/behzad888/awesome-aurelia', + 'https://github.com/zingchart/awesome-charting', + 'https://github.com/candelibas/awesome-ionic', + 'https://github.com/ChromeDevTools/awesome-chrome-devtools', + 'https://github.com/jdrgomes/awesome-postcss', + 'https://github.com/nikgraf/awesome-draft-js', + 'https://github.com/TalAter/awesome-service-workers', + 'https://github.com/TalAter/awesome-progressive-web-apps', + 'https://github.com/choojs/awesome-choo', + 'https://github.com/brillout/awesome-redux', + 'https://github.com/webpack-contrib/awesome-webpack', + 'https://github.com/browserify/awesome-browserify', + 'https://github.com/Famolus/awesome-sass', + 'https://github.com/websemantics/awesome-ant-design', + 'https://github.com/LucasBassetti/awesome-less', + 'https://github.com/sjfricke/awesome-webgl', + 'https://github.com/ooade/awesome-preact', + 'https://github.com/jbmoelker/progressive-enhancement-resources', + 'https://github.com/unicodeveloper/awesome-nextjs', + 'https://github.com/hyperapp/awesome-hyperapp', + 'https://github.com/rosarior/awesome-django', + 'https://github.com/humiaozuzu/awesome-flask', + 'https://github.com/veggiemonk/awesome-docker', + 'https://github.com/iJackUA/awesome-vagrant', + 'https://github.com/uralbash/awesome-pyramid', + 'https://github.com/PerfectCarl/awesome-play1', + 'https://github.com/friendsofcake/awesome-cakephp', + 'https://github.com/sitepoint-editors/awesome-symfony', + 'https://github.com/pehapkari/awesome-symfony-education', + 'https://github.com/chiraggude/awesome-laravel', + 'https://github.com/fukuball/Awesome-Laravel-Education', + 'https://github.com/ekremkaraca/awesome-rails', + 'https://github.com/hothero/awesome-rails-gem', + 'https://github.com/phalcon/awesome-phalcon', + 'https://github.com/phanan/htaccess', + 'https://github.com/fcambus/nginx-resources', + 'https://github.com/stve/awesome-dropwizard', + 'https://github.com/ramitsurana/awesome-kubernetes', + 'https://github.com/unicodeveloper/awesome-lumen', + 'https://github.com/pmuens/awesome-serverless', + 'https://github.com/PhantomYdn/awesome-wicket', + 'https://github.com/vert-x3/vertx-awesome', + 'https://github.com/shuaibiyy/awesome-terraform', + 'https://github.com/Cellane/awesome-vapor', + 'https://github.com/prakhar1989/awesome-courses', + 'https://github.com/bulutyazilim/awesome-datascience', + 'https://github.com/siboehm/awesome-learn-datascience', + 'https://github.com/josephmisiti/awesome-machine-learning', + 'https://github.com/ujjwalkarn/Machine-Learning-Tutorials', + 'https://github.com/arbox/machine-learning-with-ruby', + 'https://github.com/likedan/Awesome-CoreML-Models', + 'https://github.com/edobashira/speech-language-processing', + 'https://github.com/dav009/awesome-spanish-nlp', + 'https://github.com/arbox/nlp-with-ruby', + 'https://github.com/theimpossibleastronaut/awesome-linguistics', + 'https://github.com/sobolevn/awesome-cryptography', + 'https://github.com/pFarb/awesome-crypto-papers', + 'https://github.com/jbhuang0604/awesome-computer-vision', + 'https://github.com/ChristosChristofidis/awesome-deep-learning', + 'https://github.com/jtoy/awesome-tensorflow', + 'https://github.com/terryum/awesome-deep-learning-papers', + 'https://github.com/guillaume-chevalier/awesome-deep-learning-resources', + 'https://github.com/kjw0612/awesome-deep-vision', + 'https://github.com/ossu/computer-science', + 'https://github.com/lucasviola/awesome-functional-programming', + 'https://github.com/mre/awesome-static-analysis', + 'https://github.com/harpribot/awesome-information-retrieval', + 'https://github.com/onurakpolat/awesome-bigdata', + 'https://github.com/awesomedata/awesome-public-datasets', + 'https://github.com/youngwookim/awesome-hadoop', + 'https://github.com/igorbarinov/awesome-data-engineering', + 'https://github.com/manuzhang/awesome-streaming', + 'https://github.com/awesome-spark/awesome-spark', + 'https://github.com/papers-we-love/papers-we-love', + 'https://github.com/JanVanRyswyck/awesome-talks', + 'https://github.com/tayllan/awesome-algorithms', + 'https://github.com/enjalot/algovis', + 'https://github.com/owainlewis/awesome-artificial-intelligence', + 'https://github.com/marcobiedermann/search-engine-optimization', + 'https://github.com/lnishan/awesome-competitive-programming', + 'https://github.com/rossant/awesome-math', + 'https://github.com/passy/awesome-recursion-schemes', + 'https://github.com/EbookFoundation/free-programming-books', + 'https://github.com/ligurio/awesome-software-quality', + 'https://github.com/dariubs/GoBooks', + 'https://github.com/RomanTsegelskyi/rbooks', + 'https://github.com/hackerkid/Mind-Expanding-Books', + 'https://github.com/TalAter/awesome-book-authoring', + 'https://github.com/sger/ElixirBooks', + 'https://github.com/dreikanter/sublime-bookmarks', + 'https://github.com/mhinz/vim-galore', + 'https://github.com/emacs-tw/awesome-emacs', + 'https://github.com/mehcode/awesome-atom', + 'https://github.com/viatsko/awesome-vscode', + 'https://github.com/ellisonleao/magictools', + 'https://github.com/hzoo/awesome-gametalks', + 'https://github.com/Calinou/awesome-godot', + 'https://github.com/leereilly/games', + 'https://github.com/RyanNielson/awesome-unity', + 'https://github.com/hkirat/awesome-chess', + 'https://github.com/love2d-community/awesome-love2d', + 'https://github.com/felipebueno/awesome-PICO-8', + 'https://github.com/avivace/awesome-gbdev', + 'https://github.com/armaldio/awesome-construct', + 'https://github.com/stetso/awesome-gideros', + 'https://github.com/sindresorhus/quick-look-plugins', + 'https://github.com/jondot/awesome-devenv', + 'https://github.com/webpro/awesome-dotfiles', + 'https://github.com/alebcay/awesome-shell', + 'https://github.com/fisherman/awesome-fish-shell', + 'https://github.com/agarrharr/awesome-cli-apps', + 'https://github.com/unixorn/awesome-zsh-plugins', + 'https://github.com/phillipadsmith/awesome-github', + 'https://github.com/stefanbuck/awesome-browser-extensions-for-github', + 'https://github.com/tiimgreen/github-cheat-sheet', + 'https://github.com/arslanbilal/git-cheat-sheet', + 'https://github.com/git-tips/tips', + 'https://github.com/stevemao/awesome-git-addons', + 'https://github.com/moul/awesome-ssh', + 'https://github.com/tvvocold/FOSS-for-Dev', + 'https://github.com/bnb/awesome-hyper', + 'https://github.com/janikvonrotz/awesome-powershell', + 'https://github.com/derimagia/awesome-alfred-workflows', + 'https://github.com/k4m4/terminals-are-sexy', + 'https://github.com/sindresorhus/awesome-scifi', + 'https://github.com/RichardLitt/awesome-fantasy', + 'https://github.com/guipdutra/awesome-geek-podcasts', + 'https://github.com/vredniy/awesome-newsletters', + 'https://github.com/victorlaerte/awesome-it-quotes', + 'https://github.com/numetriclabz/awesome-db', + 'https://github.com/shlomi-noach/awesome-mysql/blob/gh-pages/index.md', + 'https://github.com/dahlia/awesome-sqlalchemy', + 'https://github.com/mark-rushakoff/awesome-influxdb', + 'https://github.com/neueda/awesome-neo4j', + 'https://github.com/ramnes/awesome-mongodb', + 'https://github.com/d3viant0ne/awesome-rethinkdb', + 'https://github.com/mohataher/awesome-tinkerpop', + 'https://github.com/dhamaniasad/awesome-postgres', + 'https://github.com/quangv/awesome-couchdb', + 'https://github.com/rayokota/awesome-hbase', + 'https://github.com/shime/creative-commons-media', + 'https://github.com/brabadu/awesome-fonts', + 'https://github.com/chrissimpkins/codeface', + 'https://github.com/neutraltone/awesome-stock-resources', + 'https://github.com/davisonio/awesome-gif', + 'https://github.com/ciconia/awesome-music', + 'https://github.com/hubtee/awesome-opensource-documents', + 'https://github.com/willianjusten/awesome-audio-visualization', + 'https://github.com/ebu/awesome-broadcasting', + 'https://github.com/Siilwyn/awesome-pixel-art', + 'https://github.com/transitive-bullshit/awesome-ffmpeg', + 'https://github.com/therebelrobot/awesome-workshopper', + 'https://github.com/karlhorky/learn-to-program', + 'https://github.com/matteofigus/awesome-speaking', + 'https://github.com/lucasviola/awesome-tech-videos', + 'https://github.com/hangtwenty/dive-into-machine-learning', + 'https://github.com/watson/awesome-computer-history', + 'https://github.com/HollyAdele/awesome-programming-for-kids', + 'https://github.com/yrgo/awesome-eg', + 'https://github.com/micromata/awesome-javascript-learning', + 'https://github.com/paragonie/awesome-appsec', + 'https://github.com/sbilly/awesome-security', + 'https://github.com/apsdehal/awesome-ctf', + 'https://github.com/rshipp/awesome-malware-analysis', + 'https://github.com/ashishb/android-security-awesome', + 'https://github.com/carpedm20/awesome-hacking', + 'https://github.com/paralax/awesome-honeypots', + 'https://github.com/meirwah/awesome-incident-response', + 'https://github.com/jaredthecoder/awesome-vehicle-security', + 'https://github.com/qazbnm456/awesome-web-security', + 'https://github.com/meitar/awesome-lockpicking', + 'https://github.com/leekelleher/awesome-umbraco', + 'https://github.com/refinerycms-contrib/awesome-refinerycms', + 'https://github.com/springload/awesome-wagtail', + 'https://github.com/drmonkeyninja/awesome-textpattern', + 'https://github.com/nirgn975/awesome-drupal', + 'https://github.com/craftcms/awesome', + 'https://github.com/Kiloreux/awesome-robotics', + 'https://github.com/HQarroum/awesome-iot', + 'https://github.com/monostable/awesome-electronics', + 'https://github.com/beaconinside/awesome-beacon', + 'https://github.com/gitfrage/guitarspecs', + 'https://github.com/opencompany/awesome-open-company', + 'https://github.com/mmccaff/PlacesToPostYourStartup', + 'https://github.com/domenicosolazzo/awesome-okr', + 'https://github.com/LappleApple/awesome-leading-and-managing', + 'https://github.com/mezod/awesome-indie', + 'https://github.com/matiassingers/awesome-slack', + 'https://github.com/filipelinhares/awesome-slack', + 'https://github.com/lukasz-madon/awesome-remote-job', + 'https://github.com/jyguyomarch/awesome-productivity', + 'https://github.com/tramcar/awesome-job-boards', + 'https://github.com/MaximAbramchuck/awesome-interview-questions', + 'https://github.com/joho/awesome-code-review', + 'https://github.com/sdnds-tw/awesome-sdn', + 'https://github.com/briatte/awesome-network-analysis', + 'https://github.com/caesar0301/awesome-pcaptools', + 'https://github.com/igorbarinov/awesome-bitcoin', + 'https://github.com/vhpoet/awesome-ripple', + 'https://github.com/machinomy/awesome-non-financial-blockchain', + 'https://github.com/tleb/awesome-mastodon', + 'https://github.com/burningtree/awesome-json', + 'https://github.com/tmcw/awesome-geojson', + 'https://github.com/jdorfman/awesome-json-datasets', + 'https://github.com/AchoArnold/discount-for-student-dev', + 'https://github.com/RichardLitt/awesome-conferences', + 'https://github.com/n1trux/awesome-sysadmin', + 'https://github.com/kyleterry/awesome-radio', + 'https://github.com/sindresorhus/awesome', + 'https://github.com/onurakpolat/awesome-analytics', + 'https://github.com/marmelab/awesome-rest', + 'https://github.com/christian-bromann/awesome-selenium', + 'https://github.com/SrinivasanTarget/awesome-appium', + 'https://github.com/ciandcd/awesome-ciandcd', + 'https://github.com/mmcgrana/services-engineering', + 'https://github.com/ripienaar/free-for-dev', + 'https://github.com/cyberglot/awesome-answers', + 'https://github.com/diessica/awesome-sketch', + 'https://github.com/melvin0008/awesome-projects-boilerplates', + 'https://github.com/matiassingers/awesome-readme', + 'https://github.com/cjbarber/ToolsOfTheTrade', + 'https://github.com/RichardLitt/awesome-styleguides', + 'https://github.com/NARKOZ/guides', + 'https://github.com/kilimchoi/engineering-blogs', + 'https://github.com/Kickball/awesome-selfhosted', + 'https://github.com/jwaterfaucett/awesome-foss-apps', + 'https://github.com/alferov/awesome-gulp', + 'https://github.com/sindresorhus/amas', + 'https://github.com/stoeffel/awesome-ama-answers', + 'https://github.com/ibaaj/awesome-OpenSourcePhotography', + 'https://github.com/eug/awesome-opengl', + 'https://github.com/chentsulin/awesome-graphql', + 'https://github.com/CUTR-at-USF/awesome-transit', + 'https://github.com/emptymalei/awesome-research', + 'https://github.com/fasouto/awesome-dataviz', + 'https://github.com/vinkla/shareable-links', + 'https://github.com/mfornos/awesome-microservices', + 'https://github.com/jagracey/Awesome-Unicode', + 'https://github.com/Codepoints/awesome-codepoints', + 'https://github.com/MunGell/awesome-for-beginners', + 'https://github.com/gamontal/awesome-katas', + 'https://github.com/drewrwilson/toolsforactivism', + 'https://github.com/dylanrees/citizen-science', + 'https://github.com/sindresorhus/awesome-tap', + 'https://github.com/hobbyquaker/awesome-mqtt', + 'https://github.com/diasdavid/awesome-hacking-spots', + 'https://github.com/cristianoliveira/awesome4girls', + 'https://github.com/vorpaljs/awesome-vorpal', + 'https://github.com/vinjn/awesome-vulkan', + 'https://github.com/egeerardyn/awesome-LaTeX', + 'https://github.com/antontarasenko/awesome-economics', + 'https://github.com/sublimino/awesome-funny-markov', + 'https://github.com/danielecook/Awesome-Bioinformatics', + 'https://github.com/Siddharth11/Colorful', + 'https://github.com/scholtzm/awesome-steam', + 'https://github.com/hackerkid/bots', + 'https://github.com/dastergon/awesome-sre', + 'https://github.com/KimberlyMunoz/empathy-in-engineering', + 'https://github.com/xen0l/awesome-dtrace', + 'https://github.com/brunocvcunha/awesome-userscripts', + 'https://github.com/tobiasbueschel/awesome-pokemon', + 'https://github.com/exAspArk/awesome-chatops', + 'https://github.com/kdeldycke/awesome-falsehood', + 'https://github.com/heynickc/awesome-ddd', + 'https://github.com/woop/awesome-quantified-self', + 'https://github.com/hbokh/awesome-saltstack', + 'https://github.com/nicolesaidy/awesome-web-design', + 'https://github.com/aliesbelik/awesome-jmeter', + 'https://github.com/terkelg/awesome-creative-coding', + 'https://github.com/aviaryan/awesome-no-login-web-apps', + 'https://github.com/TheJambo/awesome-testing', + 'https://github.com/johnjago/awesome-free-software', + 'https://github.com/podo/awesome-framer', + 'https://github.com/BubuAnabelas/awesome-markdown', + 'https://github.com/mislavcimpersak/awesome-dev-fun', + 'https://github.com/awkward/awesome-netherlands-events', + 'https://github.com/kakoni/awesome-healthcare', + 'https://github.com/DavidLambauer/awesome-magento2', + 'https://github.com/xiaohanyu/awesome-tikz', + 'https://github.com/analyticalmonk/awesome-neuroscience', + 'https://github.com/johnjago/awesome-ad-free', + 'https://github.com/angrykoala/awesome-esolangs', + 'https://github.com/roaldnefs/awesome-prometheus', + 'https://github.com/hobbyquaker/awesome-homematic', + 'https://github.com/sfischer13/awesome-ledger', + 'https://github.com/johnjago/awesome-uncopyright', + 'https://github.com/kennethreitz/awesome-coins', + 'https://github.com/folkswhocode/awesome-diversity', + 'https://github.com/zachflower/awesome-open-source-supporters', + 'https://github.com/robinstickel/awesome-design-principles', + 'https://github.com/mojoaxel/awesome-regression-testing', + 'https://github.com/johnjago/awesome-theravada', + 'https://github.com/inspectit-labs/awesome-inspectit', + 'https://github.com/nayafia/awesome-maintainers', + 'https://github.com/xxczaki/awesome-calculators', + 'https://github.com/ZYSzys/awesome-captcha', + 'https://github.com/markusschanta/awesome-jupyter', + 'https://github.com/andrewda/awesome-frc', + 'https://github.com/engagingspaces/awesome-humane-tech', + 'https://creativecommons.org/publicdomain/zero/1.0/', + 'https://sindresorhus.com/' +]); diff --git a/test/lists.js b/test/lists.js new file mode 100644 index 0000000000..635718e0ae --- /dev/null +++ b/test/lists.js @@ -0,0 +1,72 @@ +import fs from 'fs'; +import path from 'path'; +import {parse, format} from 'url'; +import isRelativeUrl from 'is-relative-url'; +import unique from 'array-uniq'; +import test from 'ava'; +import remark from 'remark'; +import visit from 'unist-util-visit'; +import whitelist from './_whitelist'; + +const lint = require('awesome-lint'); + +const readme = fs.readFileSync(path.join(__dirname, '..', 'readme.md')); +const links = []; + +const getAwesomeListUrl = url => { + if (isRelativeUrl(url)) { + return false; + } + + const { + protocol, + host, + pathname + } = parse(url); + + const sanitizedUrl = format({ + protocol, + host, + pathname + }); + + if (host !== 'github.com') { + return false; + } + + if (whitelist.has(sanitizedUrl)) { + return false; + } + + return sanitizedUrl; +}; + +remark() + .use(() => tree => { + visit(tree, 'link', link => { + const url = getAwesomeListUrl(link.url); + if (!url) { + return; + } + + links.push(url); + }); + }) + .processSync(readme); + +for (const link of unique(links)) { + test.serial(link, async t => { + console.log(link); + await lint.report({ + filename: link + }); + + t.pass(); + }); +} + +// Default to including a single passing test just in case there are no Awesome +// lists that are not in the whitelist. +test('noop', t => { + t.pass(); +});