├── .ruby-version ├── public ├── docs │ └── docs.json ├── icons │ └── docs │ │ ├── d3 │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── chai │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── chef │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── nginx │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── vue │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── http │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── npm │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── phaser │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── socketio │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── go │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── html │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── meteor │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── requirejs │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── rethinkdb │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── symfony │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── vagrant │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── ansible │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── bower │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── cakephp │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── drupal │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── git │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── jquery │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── jqueryui │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── julia │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── knockout │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── laravel │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── lodash │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── lua │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── php │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── q │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── redis │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── support_tables │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── yii │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── angular │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── jquerymobile │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── svg │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── webpack │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── codeception │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── codeceptjs │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── cordova │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── docker │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── markdown │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── perl │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── python │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── typescript │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── underscore │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── backbone │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── crystal │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── ember │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── erlang │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── falcon │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── javascript │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── pandas │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── redux │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── tcl_tk │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2.png │ │ ├── tensorflow │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── twig │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── clojure │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── d │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── marionette │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── rails │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── ramda │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── ruby │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── sass │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── scikit_learn │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── codeigniter │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── gnu_fortran │ │ ├── SOURCE │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── fortran.png │ │ ├── grunt │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── haskell │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── nim │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── coffeescript │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── godot │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── haxe │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── modernizr │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── postgresql │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── react │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── electron │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── jasmine │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── jest │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── love │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── phoenix │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── pug │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── yarn │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── async │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── sinon │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── statsmodels │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── bootstrap │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── c │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── cpp │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── css │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── django │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── dom │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── gcc │ │ ├── 16.png │ │ ├── GCC.png │ │ └── 16@2x.png │ │ ├── node │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── numpy │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── phalcon │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── react_native │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── cmake │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── dojo │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── fish │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── flow │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── kotlin │ │ ├── SOURCE │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── less │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── mocha │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── relay │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── rust │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── xpath │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── bottle │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── elixir │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── express │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── liquid │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── moment │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── mongoose │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── nokogiri │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── openjdk │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── opentsdb │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── padrino │ │ ├── 16.png │ │ ├── SOURCE │ │ └── 16@2x.png │ │ ├── phpunit │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── sqlite │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── vulkan │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── angularjs │ │ ├── 16.png │ │ ├── SOURCE │ │ └── 16@2x.png │ │ ├── apache_pig │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── pig.png │ │ ├── dom_events │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── immutable │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── influxdata │ │ ├── 16.png │ │ └── 16@2x.png │ │ ├── matplotlib │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ ├── scikit_image │ │ ├── 16.png │ │ ├── 16@2x.png │ │ └── SOURCE │ │ └── apache_http_server │ │ ├── 16.png │ │ ├── SOURCE │ │ └── 16@2x.png ├── robots.txt ├── favicon.ico └── images │ ├── icon-16.png │ ├── icon-32.png │ ├── icon-64.png │ ├── fluid-icon.png │ ├── icon-320.png │ ├── apple-icon-114.png │ ├── apple-icon-120.png │ ├── apple-icon-144.png │ ├── apple-icon-152.png │ ├── apple-icon-160.png │ ├── apple-icon-72.png │ ├── apple-icon-76.png │ ├── webapp-icon-128.png │ ├── webapp-icon-256.png │ ├── webapp-icon-32.png │ ├── webapp-icon-60.png │ └── webapp-icon-80.png ├── .travis.yml ├── Thorfile ├── .dockerignore ├── assets ├── images │ ├── docs-1.png │ ├── docs-2.png │ ├── docs-1@2x.png │ └── docs-2@2x.png ├── stylesheets │ ├── pages │ │ ├── _lua.scss │ │ ├── _vue.scss │ │ ├── _sinon.scss │ │ ├── _tcl_tk.scss │ │ ├── _github.scss │ │ ├── _perl.scss │ │ ├── _liquid.scss │ │ ├── _webpack.scss │ │ ├── _yard.scss │ │ ├── _dojo.scss │ │ ├── _express.scss │ │ ├── _apache.scss │ │ ├── _phalcon.scss │ │ ├── _sqlite.scss │ │ ├── _ramda.scss │ │ ├── _yii.scss │ │ ├── _julia.scss │ │ ├── _chef.scss │ │ ├── _drupal.scss │ │ ├── _tensorflow.scss │ │ ├── _codeception.scss │ │ ├── _go.scss │ │ ├── _elixir.scss │ │ ├── _nginx.scss │ │ ├── _knockout.scss │ │ ├── _openjdk.scss │ │ ├── _moment.scss │ │ ├── _phaser.scss │ │ ├── _rethinkdb.scss │ │ ├── _modernizr.scss │ │ ├── _pug.scss │ │ ├── _rubydoc.scss │ │ ├── _cordova.scss │ │ ├── _kotlin.scss │ │ ├── _clojure.scss │ │ ├── _phpunit.scss │ │ ├── _erlang.scss │ │ ├── _laravel.scss │ │ ├── _react_native.scss │ │ ├── _npm.scss │ │ ├── _async.scss │ │ ├── _rust.scss │ │ ├── _sphinx_simple.scss │ │ ├── _d3.scss │ │ ├── _coffeescript.scss │ │ ├── _d.scss │ │ ├── _ember.scss │ │ ├── _rfc.scss │ │ ├── _cakephp.scss │ │ ├── _git.scss │ │ ├── _underscore.scss │ │ ├── _love.scss │ │ ├── _socketio.scss │ │ ├── _crystal.scss │ │ ├── _angular.scss │ │ ├── _meteor.scss │ │ ├── _postgres.scss │ │ ├── _node.scss │ │ └── _haskell.scss │ └── components │ │ ├── _app.scss │ │ └── _notice.scss └── javascripts │ ├── docs.js.erb │ ├── collections │ ├── entries.coffee │ └── types.coffee │ ├── models │ ├── model.coffee │ └── type.coffee │ ├── lib │ ├── license.coffee │ └── local_storage_store.coffee │ ├── views │ ├── misc │ │ ├── tip.coffee │ │ └── notice.coffee │ ├── sidebar │ │ └── entry_list.coffee │ ├── pages │ │ ├── hidden.coffee │ │ ├── support_tables.coffee │ │ ├── sqlite.coffee │ │ └── rdoc.coffee │ ├── content │ │ ├── type_page.coffee │ │ └── static_page.coffee │ └── layout │ │ └── menu.coffee │ ├── templates │ ├── pages │ │ └── type_tmpl.coffee │ ├── base.coffee │ ├── path_tmpl.coffee │ ├── notice_tmpl.coffee │ └── tip_tmpl.coffee │ ├── app │ └── config.coffee.erb │ └── application.js.coffee ├── lib ├── docs │ ├── scrapers │ │ ├── sphinx.rb │ │ ├── github.rb │ │ ├── markdown.rb │ │ ├── jquery │ │ │ ├── jquery.rb │ │ │ ├── jquery_ui.rb │ │ │ ├── jquery_core.rb │ │ │ └── jquery_mobile.rb │ │ ├── rdoc │ │ │ ├── rdoc.rb │ │ │ └── minitest.rb │ │ ├── modernizr.rb │ │ ├── ramda.rb │ │ ├── nim.rb │ │ ├── async.rb │ │ ├── jasmine.rb │ │ ├── jest.rb │ │ ├── flow.rb │ │ ├── bower.rb │ │ ├── nokogiri2.rb │ │ ├── redux.rb │ │ ├── vagrant.rb │ │ ├── q.rb │ │ ├── underscore.rb │ │ ├── mocha.rb │ │ ├── liquid.rb │ │ ├── yarn.rb │ │ ├── codeception.rb │ │ ├── opentsdb.rb │ │ ├── socketio.rb │ │ ├── gnu.rb │ │ └── git.rb │ ├── filters │ │ ├── dojo │ │ │ └── clean_urls.rb │ │ ├── django │ │ │ ├── clean_html.rb │ │ │ └── fix_urls.rb │ │ ├── numpy │ │ │ └── clean_html.rb │ │ ├── julia │ │ │ └── clean_html_sphinx.rb │ │ ├── chefclient │ │ │ └── clean_html.rb │ │ ├── drupal │ │ │ ├── normalize_paths.rb │ │ │ └── internal_urls.rb │ │ ├── minitest │ │ │ └── entries.rb │ │ ├── nokogiri2 │ │ │ └── entries.rb │ │ ├── html │ │ │ └── clean_html.rb │ │ ├── c │ │ │ ├── fix_urls.rb │ │ │ └── fix_code.rb │ │ ├── core │ │ │ ├── inner_html.rb │ │ │ ├── clean_text.rb │ │ │ ├── clean_local_urls.rb │ │ │ ├── container.rb │ │ │ ├── clean_html.rb │ │ │ └── apply_base_url.rb │ │ ├── ramda │ │ │ └── entries.rb │ │ ├── flow │ │ │ └── entries.rb │ │ ├── php │ │ │ ├── fix_urls.rb │ │ │ └── internal_urls.rb │ │ ├── ansible │ │ │ └── clean_html.rb │ │ ├── cmake │ │ │ └── clean_html.rb │ │ ├── angularjs │ │ │ └── clean_urls.rb │ │ ├── underscore │ │ │ └── clean_html.rb │ │ ├── markdown │ │ │ ├── clean_html.rb │ │ │ └── entries.rb │ │ ├── mocha │ │ │ └── clean_html.rb │ │ ├── vulkan │ │ │ └── entries.rb │ │ ├── cpp │ │ │ └── fix_urls.rb │ │ ├── liquid │ │ │ ├── entries.rb │ │ │ └── clean_html.rb │ │ ├── pandas │ │ │ └── clean_html.rb │ │ ├── docker │ │ │ └── clean_html_very_old.rb │ │ ├── nginx_lua_module │ │ │ ├── clean_html.rb │ │ │ └── entries.rb │ │ ├── yarn │ │ │ └── entries.rb │ │ ├── mdn │ │ │ └── contribute_link.rb │ │ ├── bower │ │ │ ├── clean_html.rb │ │ │ └── entries.rb │ │ ├── erlang │ │ │ └── pre_clean_html.rb │ │ ├── phpunit │ │ │ └── entries.rb │ │ ├── lodash │ │ │ └── entries.rb │ │ ├── async │ │ │ └── entries.rb │ │ ├── clojure │ │ │ └── entries.rb │ │ ├── vagrant │ │ │ └── clean_html.rb │ │ ├── apache_pig │ │ │ └── clean_html.rb │ │ ├── git │ │ │ └── entries.rb │ │ ├── yii │ │ │ └── entries_v1.rb │ │ ├── immutable │ │ │ └── entries.rb │ │ ├── chai │ │ │ ├── entries.rb │ │ │ └── clean_html.rb │ │ ├── twig │ │ │ └── entries.rb │ │ ├── d3 │ │ │ └── entries_v3.rb │ │ ├── javascript │ │ │ └── clean_html.rb │ │ ├── modernizr │ │ │ ├── clean_html.rb │ │ │ └── entries.rb │ │ ├── scikit_learn │ │ │ └── clean_html.rb │ │ ├── statsmodels │ │ │ └── clean_html.rb │ │ ├── pug │ │ │ ├── entries.rb │ │ │ └── clean_html.rb │ │ ├── github │ │ │ └── clean_html.rb │ │ ├── sinon │ │ │ └── clean_html.rb │ │ ├── socketio │ │ │ └── entries.rb │ │ ├── backbone │ │ │ └── clean_html.rb │ │ └── opentsdb │ │ │ └── entries.rb │ ├── core │ │ ├── autoload_helper.rb │ │ ├── models │ │ │ └── type.rb │ │ ├── page_db.rb │ │ ├── instrumentable.rb │ │ └── parser.rb │ ├── subscribers │ │ ├── filter_subscriber.rb │ │ ├── request_subscriber.rb │ │ ├── store_subscriber.rb │ │ └── progress_bar_subscriber.rb │ └── storage │ │ └── null_store.rb └── tasks │ └── test.thor ├── .gitignore ├── config.ru ├── views └── manifest.erb ├── ISSUE_TEMPLATE.md ├── test ├── support │ └── fake_instrumentation.rb ├── lib │ └── docs │ │ └── filters │ │ └── core │ │ ├── inner_html_test.rb │ │ └── clean_text_test.rb └── files │ └── docs.json ├── Rakefile ├── .image_optim.yml ├── Dockerfile ├── Dockerfile-alpine └── COPYRIGHT /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.4.2 -------------------------------------------------------------------------------- /public/docs/docs.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | -------------------------------------------------------------------------------- /Thorfile: -------------------------------------------------------------------------------- 1 | $LOAD_PATH.unshift 'lib' 2 | -------------------------------------------------------------------------------- /public/icons/docs/d3/SOURCE: -------------------------------------------------------------------------------- 1 | http://d3js.org/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/chai/SOURCE: -------------------------------------------------------------------------------- 1 | http://chaijs.com/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/chef/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.chef.io/ -------------------------------------------------------------------------------- /public/icons/docs/nginx/SOURCE: -------------------------------------------------------------------------------- 1 | http://nginx.org/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/vue/SOURCE: -------------------------------------------------------------------------------- 1 | http://vuejs.org/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/http/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.entypo.com/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/npm/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.npmjs.com/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/phaser/SOURCE: -------------------------------------------------------------------------------- 1 | https://phaser.io/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/socketio/SOURCE: -------------------------------------------------------------------------------- 1 | http://socket.io/ 2 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /settings -------------------------------------------------------------------------------- /public/icons/docs/go/SOURCE: -------------------------------------------------------------------------------- 1 | http://golang.org/doc/gopher/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/html/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.w3.org/html/logo/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/meteor/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.meteor.com/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/requirejs/SOURCE: -------------------------------------------------------------------------------- 1 | http://requirejs.org/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/rethinkdb/SOURCE: -------------------------------------------------------------------------------- 1 | http://rethinkdb.com/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/symfony/SOURCE: -------------------------------------------------------------------------------- 1 | http://symfony.com/logo 2 | -------------------------------------------------------------------------------- /public/icons/docs/vagrant/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.vagrantup.com 2 | -------------------------------------------------------------------------------- /public/icons/docs/ansible/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.ansible.com/logos 2 | -------------------------------------------------------------------------------- /public/icons/docs/bower/SOURCE: -------------------------------------------------------------------------------- 1 | http://bower.io/docs/about/#logo 2 | -------------------------------------------------------------------------------- /public/icons/docs/cakephp/SOURCE: -------------------------------------------------------------------------------- 1 | http://cakephp.org/pages/logos 2 | -------------------------------------------------------------------------------- /public/icons/docs/drupal/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.drupal.org/node/9068 2 | -------------------------------------------------------------------------------- /public/icons/docs/git/SOURCE: -------------------------------------------------------------------------------- 1 | http://git-scm.com/downloads/logos 2 | -------------------------------------------------------------------------------- /public/icons/docs/jquery/SOURCE: -------------------------------------------------------------------------------- 1 | http://brand.jquery.org/logos/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/jqueryui/SOURCE: -------------------------------------------------------------------------------- 1 | http://brand.jquery.org/logos/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/julia/SOURCE: -------------------------------------------------------------------------------- 1 | http://julialang.org/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/knockout/SOURCE: -------------------------------------------------------------------------------- 1 | http://learn.knockoutjs.com/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/laravel/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/laravel/art 2 | -------------------------------------------------------------------------------- /public/icons/docs/lodash/SOURCE: -------------------------------------------------------------------------------- 1 | http://lodash.com/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/lua/SOURCE: -------------------------------------------------------------------------------- 1 | http://lua-users.org/wiki/LuaLogo 2 | -------------------------------------------------------------------------------- /public/icons/docs/php/SOURCE: -------------------------------------------------------------------------------- 1 | http://php.net/download-logos.php 2 | -------------------------------------------------------------------------------- /public/icons/docs/q/SOURCE: -------------------------------------------------------------------------------- 1 | http://kriskowal.github.io/q/q.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/redis/SOURCE: -------------------------------------------------------------------------------- 1 | http://redis.io/documentation 2 | -------------------------------------------------------------------------------- /public/icons/docs/support_tables/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.entypo.com/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/yii/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.yiiframework.com/logo/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/angular/SOURCE: -------------------------------------------------------------------------------- 1 | https://angular.io/presskit.html 2 | -------------------------------------------------------------------------------- /public/icons/docs/jquerymobile/SOURCE: -------------------------------------------------------------------------------- 1 | http://brand.jquery.org/logos/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/svg/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.w3.org/2009/08/svg-logos.html 2 | -------------------------------------------------------------------------------- /public/icons/docs/webpack/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/webpack/media 2 | -------------------------------------------------------------------------------- /public/icons/docs/codeception/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.openhub.net/p/codeception 2 | -------------------------------------------------------------------------------- /public/icons/docs/codeceptjs/SOURCE: -------------------------------------------------------------------------------- 1 | http://codecept.io/images/cjs-base.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/cordova/SOURCE: -------------------------------------------------------------------------------- 1 | http://cordova.apache.org/artwork.html 2 | -------------------------------------------------------------------------------- /public/icons/docs/docker/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.docker.com/brand-guidelines 2 | -------------------------------------------------------------------------------- /public/icons/docs/markdown/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/dcurtis/markdown-mark 2 | -------------------------------------------------------------------------------- /public/icons/docs/perl/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.perlfoundation.org/perl_trademark 2 | -------------------------------------------------------------------------------- /public/icons/docs/python/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.python.org/community/logos/ 2 | -------------------------------------------------------------------------------- /public/icons/docs/typescript/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/remojansen/logo.ts 2 | -------------------------------------------------------------------------------- /public/icons/docs/underscore/SOURCE: -------------------------------------------------------------------------------- 1 | http://underscorejs.org/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/backbone/SOURCE: -------------------------------------------------------------------------------- 1 | http://backbonejs.org/docs/images/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/crystal/SOURCE: -------------------------------------------------------------------------------- 1 | https://crystal-lang.org/images/favico.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/ember/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/tschundeee/emberjsfavicon 2 | -------------------------------------------------------------------------------- /public/icons/docs/erlang/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/Kapeli/Dash-X-Platform-Resources -------------------------------------------------------------------------------- /public/icons/docs/falcon/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/falconry/falconry.github.io 2 | -------------------------------------------------------------------------------- /public/icons/docs/javascript/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/voodootikigod/logo.js 2 | -------------------------------------------------------------------------------- /public/icons/docs/pandas/SOURCE: -------------------------------------------------------------------------------- 1 | http://pandas.pydata.org/_static/pandas_logo.png -------------------------------------------------------------------------------- /public/icons/docs/redux/SOURCE: -------------------------------------------------------------------------------- 1 | http://redux.js.org/gitbook/images/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/tcl_tk/SOURCE: -------------------------------------------------------------------------------- 1 | https://commons.wikimedia.org/wiki/File:Tcl.svg 2 | -------------------------------------------------------------------------------- /public/icons/docs/tensorflow/SOURCE: -------------------------------------------------------------------------------- 1 | https://www.tensorflow.org/images/favicon.png -------------------------------------------------------------------------------- /public/icons/docs/twig/SOURCE: -------------------------------------------------------------------------------- 1 | http://twig.sensiolabs.org/images/twig-logo.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/clojure/SOURCE: -------------------------------------------------------------------------------- 1 | http://en.wikipedia.org/wiki/File:Clojure_logo.gif 2 | -------------------------------------------------------------------------------- /public/icons/docs/d/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/dlang/dlang.org/tree/master/images 2 | -------------------------------------------------------------------------------- /public/icons/docs/marionette/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/marionettejs/marionettejs.com 2 | -------------------------------------------------------------------------------- /public/icons/docs/rails/SOURCE: -------------------------------------------------------------------------------- 1 | http://commons.wikimedia.org/wiki/File:Ruby_logo.svg 2 | -------------------------------------------------------------------------------- /public/icons/docs/ramda/SOURCE: -------------------------------------------------------------------------------- 1 | http://ramda.jcphillipps.com/logo/ramdaFilled_200x235.png -------------------------------------------------------------------------------- /public/icons/docs/ruby/SOURCE: -------------------------------------------------------------------------------- 1 | http://commons.wikimedia.org/wiki/File:Ruby_logo.svg 2 | -------------------------------------------------------------------------------- /public/icons/docs/sass/SOURCE: -------------------------------------------------------------------------------- 1 | http://sass-lang.com/assets/img/styleguide/sass-logo.zip -------------------------------------------------------------------------------- /public/icons/docs/scikit_learn/SOURCE: -------------------------------------------------------------------------------- 1 | http://scikit-learn.org/stable/_static/favicon.ico -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/favicon.ico -------------------------------------------------------------------------------- /public/icons/docs/codeigniter/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.codeigniter.com/assets/data/ci-logo.zip 2 | -------------------------------------------------------------------------------- /public/icons/docs/gnu_fortran/SOURCE: -------------------------------------------------------------------------------- 1 | https://commons.wikimedia.org/wiki/File:Fortran.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/grunt/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/gruntjs/gruntjs.com/tree/master/src/img 2 | -------------------------------------------------------------------------------- /public/icons/docs/haskell/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.haskell.org/haskellwiki/Thompson-Wheeler_logo 2 | -------------------------------------------------------------------------------- /public/icons/docs/nim/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/nim-lang/website/tree/master/jekyll/assets/img -------------------------------------------------------------------------------- /public/icons/docs/coffeescript/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/jashkenas/coffee-script/downloads 2 | -------------------------------------------------------------------------------- /public/icons/docs/godot/SOURCE: -------------------------------------------------------------------------------- 1 | https://godotengine.org/themes/godotengine/assets/favicon.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/haxe/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/HaxeFoundation/haxe.org/tree/master/www/img 2 | -------------------------------------------------------------------------------- /public/icons/docs/modernizr/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/Modernizr/Modernizr/tree/master/media 2 | -------------------------------------------------------------------------------- /public/icons/docs/postgresql/SOURCE: -------------------------------------------------------------------------------- 1 | http://www.postgresql.org/about/press/presskit93/#logos 2 | -------------------------------------------------------------------------------- /public/icons/docs/react/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/facebook/react/blob/master/docs/img/logo.svg 2 | -------------------------------------------------------------------------------- /public/icons/docs/electron/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/electron/electron.atom.io/tree/gh-pages/images 2 | -------------------------------------------------------------------------------- /public/icons/docs/jasmine/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/jasmine/jasmine.github.io/tree/master/images 2 | -------------------------------------------------------------------------------- /public/icons/docs/jest/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/facebook/jest/tree/master/website/src/jest/img 2 | -------------------------------------------------------------------------------- /public/icons/docs/love/SOURCE: -------------------------------------------------------------------------------- 1 | https://bytebucket.org/rude/love/raw/default/platform/unix/love.svg 2 | -------------------------------------------------------------------------------- /public/icons/docs/phoenix/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/phoenixframework/phoenix/blob/master/logo.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/pug/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/pugjs/pug-www/blob/master/htdocs/images/logo.svg 2 | -------------------------------------------------------------------------------- /public/icons/docs/yarn/SOURCE: -------------------------------------------------------------------------------- 1 | https://raw.githubusercontent.com/yarnpkg/website/master/favicon.ico 2 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | test 3 | Dockerfile* 4 | .gitignore 5 | .dockerignore 6 | .travis.yml 7 | *.md 8 | -------------------------------------------------------------------------------- /assets/images/docs-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/assets/images/docs-1.png -------------------------------------------------------------------------------- /assets/images/docs-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/assets/images/docs-2.png -------------------------------------------------------------------------------- /public/icons/docs/async/SOURCE: -------------------------------------------------------------------------------- 1 | https://raw.githubusercontent.com/caolan/async/master/logo/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/sinon/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/sinonjs/sinon/blob/master/docs/assets/images/logo.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/statsmodels/SOURCE: -------------------------------------------------------------------------------- 1 | http://statsmodels.sourceforge.net/_static/statsmodels_hybi_favico.ico -------------------------------------------------------------------------------- /public/images/icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/icon-16.png -------------------------------------------------------------------------------- /public/images/icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/icon-32.png -------------------------------------------------------------------------------- /public/images/icon-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/icon-64.png -------------------------------------------------------------------------------- /assets/images/docs-1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/assets/images/docs-1@2x.png -------------------------------------------------------------------------------- /assets/images/docs-2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/assets/images/docs-2@2x.png -------------------------------------------------------------------------------- /assets/stylesheets/pages/_lua.scss: -------------------------------------------------------------------------------- 1 | ._lua { 2 | @extend %simple; 3 | 4 | .apii { float: right; } 5 | } 6 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_vue.scss: -------------------------------------------------------------------------------- 1 | ._vue { 2 | @extend %simple; 3 | 4 | p.tip { @extend %note; } 5 | } 6 | -------------------------------------------------------------------------------- /public/icons/docs/bootstrap/SOURCE: -------------------------------------------------------------------------------- 1 | https://raw.githubusercontent.com/twbs/bootstrap/master/docs/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/c/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/c/16.png -------------------------------------------------------------------------------- /public/icons/docs/cpp/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cpp/16.png -------------------------------------------------------------------------------- /public/icons/docs/css/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/css/16.png -------------------------------------------------------------------------------- /public/icons/docs/d/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/d/16.png -------------------------------------------------------------------------------- /public/icons/docs/d3/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/d3/16.png -------------------------------------------------------------------------------- /public/icons/docs/django/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/django/djangoproject.com/raw/master/static/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/dom/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/dom/16.png -------------------------------------------------------------------------------- /public/icons/docs/gcc/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/gcc/16.png -------------------------------------------------------------------------------- /public/icons/docs/git/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/git/16.png -------------------------------------------------------------------------------- /public/icons/docs/go/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/go/16.png -------------------------------------------------------------------------------- /public/icons/docs/lua/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/lua/16.png -------------------------------------------------------------------------------- /public/icons/docs/nim/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/nim/16.png -------------------------------------------------------------------------------- /public/icons/docs/node/SOURCE: -------------------------------------------------------------------------------- 1 | https://drive.google.com/folderview?id=0B2SAGsHi4DjIcHB0cTZZcXFZNG8&usp=sharing 2 | -------------------------------------------------------------------------------- /public/icons/docs/npm/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/npm/16.png -------------------------------------------------------------------------------- /public/icons/docs/numpy/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/numpy/numpy/blob/master/branding/icons/numpylogoicon.svg 2 | -------------------------------------------------------------------------------- /public/icons/docs/phalcon/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/phalcon/website/blob/master/public/img/phalcon-22.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/php/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/php/16.png -------------------------------------------------------------------------------- /public/icons/docs/pug/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/pug/16.png -------------------------------------------------------------------------------- /public/icons/docs/q/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/q/16.png -------------------------------------------------------------------------------- /public/icons/docs/react_native/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/facebook/react-native/blob/gh-pages/img/favicon.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/svg/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/svg/16.png -------------------------------------------------------------------------------- /public/icons/docs/vue/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/vue/16.png -------------------------------------------------------------------------------- /public/icons/docs/yii/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/yii/16.png -------------------------------------------------------------------------------- /public/images/fluid-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/fluid-icon.png -------------------------------------------------------------------------------- /public/images/icon-320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/icon-320.png -------------------------------------------------------------------------------- /assets/javascripts/docs.js.erb: -------------------------------------------------------------------------------- 1 | //= depend_on docs.json 2 | app.DOCS = <%= File.read App.docs_manifest_path %>; 3 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_sinon.scss: -------------------------------------------------------------------------------- 1 | ._sinon { 2 | @extend %simple; 3 | 4 | h4 { @extend %block-label;} 5 | } 6 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_tcl_tk.scss: -------------------------------------------------------------------------------- 1 | ._tcl_tk { 2 | @extend %simple; 3 | 4 | dl { margin: .5em 0; } 5 | } 6 | -------------------------------------------------------------------------------- /public/icons/docs/async/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/async/16.png -------------------------------------------------------------------------------- /public/icons/docs/bower/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/bower/16.png -------------------------------------------------------------------------------- /public/icons/docs/c/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/c/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/chai/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/chai/16.png -------------------------------------------------------------------------------- /public/icons/docs/chef/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/chef/16.png -------------------------------------------------------------------------------- /public/icons/docs/cmake/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cmake/16.png -------------------------------------------------------------------------------- /public/icons/docs/d/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/d/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/d3/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/d3/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/dojo/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/dojo/16.png -------------------------------------------------------------------------------- /public/icons/docs/ember/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ember/16.png -------------------------------------------------------------------------------- /public/icons/docs/fish/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/fish/16.png -------------------------------------------------------------------------------- /public/icons/docs/flow/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/flow/16.png -------------------------------------------------------------------------------- /public/icons/docs/gcc/GCC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/gcc/GCC.png -------------------------------------------------------------------------------- /public/icons/docs/go/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/go/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/godot/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/godot/16.png -------------------------------------------------------------------------------- /public/icons/docs/grunt/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/grunt/16.png -------------------------------------------------------------------------------- /public/icons/docs/haxe/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/haxe/16.png -------------------------------------------------------------------------------- /public/icons/docs/html/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/html/16.png -------------------------------------------------------------------------------- /public/icons/docs/http/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/http/16.png -------------------------------------------------------------------------------- /public/icons/docs/jest/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jest/16.png -------------------------------------------------------------------------------- /public/icons/docs/julia/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/julia/16.png -------------------------------------------------------------------------------- /public/icons/docs/kotlin/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/JetBrains/kotlin-web-site/blob/master/assets/images/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/less/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/less/16.png -------------------------------------------------------------------------------- /public/icons/docs/love/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/love/16.png -------------------------------------------------------------------------------- /public/icons/docs/mocha/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/mocha/16.png -------------------------------------------------------------------------------- /public/icons/docs/nginx/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/nginx/16.png -------------------------------------------------------------------------------- /public/icons/docs/node/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/node/16.png -------------------------------------------------------------------------------- /public/icons/docs/numpy/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/numpy/16.png -------------------------------------------------------------------------------- /public/icons/docs/perl/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/perl/16.png -------------------------------------------------------------------------------- /public/icons/docs/q/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/q/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/rails/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/rails/16.png -------------------------------------------------------------------------------- /public/icons/docs/ramda/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ramda/16.png -------------------------------------------------------------------------------- /public/icons/docs/react/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/react/16.png -------------------------------------------------------------------------------- /public/icons/docs/redis/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/redis/16.png -------------------------------------------------------------------------------- /public/icons/docs/redux/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/redux/16.png -------------------------------------------------------------------------------- /public/icons/docs/relay/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/relay/16.png -------------------------------------------------------------------------------- /public/icons/docs/ruby/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ruby/16.png -------------------------------------------------------------------------------- /public/icons/docs/rust/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/rust/16.png -------------------------------------------------------------------------------- /public/icons/docs/sass/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/sass/16.png -------------------------------------------------------------------------------- /public/icons/docs/sinon/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/sinon/16.png -------------------------------------------------------------------------------- /public/icons/docs/twig/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/twig/16.png -------------------------------------------------------------------------------- /public/icons/docs/xpath/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/xpath/16.png -------------------------------------------------------------------------------- /public/icons/docs/yarn/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/yarn/16.png -------------------------------------------------------------------------------- /assets/stylesheets/pages/_github.scss: -------------------------------------------------------------------------------- 1 | ._github { 2 | @extend %simple; 3 | 4 | h4 { @extend %block-label; } 5 | } 6 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_perl.scss: -------------------------------------------------------------------------------- 1 | ._perl { 2 | @extend %simple; 3 | 4 | > h4 { @extend %block-label; } 5 | } 6 | -------------------------------------------------------------------------------- /lib/docs/scrapers/sphinx.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Sphinx < Scraper 3 | self.abstract = true 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /public/icons/docs/angular/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/angular/16.png -------------------------------------------------------------------------------- /public/icons/docs/ansible/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ansible/16.png -------------------------------------------------------------------------------- /public/icons/docs/async/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/async/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/backbone/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/backbone/16.png -------------------------------------------------------------------------------- /public/icons/docs/bottle/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/bottle/16.png -------------------------------------------------------------------------------- /public/icons/docs/bower/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/bower/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/c/SOURCE: -------------------------------------------------------------------------------- 1 | http://dribbble.com/shots/799814-Standard-C-Logo 2 | with authorization from Jeremy Kratz 3 | -------------------------------------------------------------------------------- /public/icons/docs/cakephp/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cakephp/16.png -------------------------------------------------------------------------------- /public/icons/docs/chai/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/chai/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/chef/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/chef/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/clojure/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/clojure/16.png -------------------------------------------------------------------------------- /public/icons/docs/cmake/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cmake/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/cordova/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cordova/16.png -------------------------------------------------------------------------------- /public/icons/docs/cpp/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cpp/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/cpp/SOURCE: -------------------------------------------------------------------------------- 1 | http://dribbble.com/shots/799814-Standard-C-Logo 2 | with authorization from Jeremy Kratz 3 | -------------------------------------------------------------------------------- /public/icons/docs/crystal/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/crystal/16.png -------------------------------------------------------------------------------- /public/icons/docs/css/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/css/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/django/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/django/16.png -------------------------------------------------------------------------------- /public/icons/docs/docker/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/docker/16.png -------------------------------------------------------------------------------- /public/icons/docs/dojo/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/dojo/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/dom/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/dom/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/drupal/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/drupal/16.png -------------------------------------------------------------------------------- /public/icons/docs/electron/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/electron/16.png -------------------------------------------------------------------------------- /public/icons/docs/elixir/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/elixir/16.png -------------------------------------------------------------------------------- /public/icons/docs/ember/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ember/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/erlang/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/erlang/16.png -------------------------------------------------------------------------------- /public/icons/docs/express/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/express/16.png -------------------------------------------------------------------------------- /public/icons/docs/falcon/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/falcon/16.png -------------------------------------------------------------------------------- /public/icons/docs/fish/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/fish/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/flow/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/flow/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/gcc/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/gcc/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/git/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/git/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/godot/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/godot/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/grunt/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/grunt/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/haskell/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/haskell/16.png -------------------------------------------------------------------------------- /public/icons/docs/haxe/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/haxe/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/html/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/html/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/http/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/http/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/jasmine/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jasmine/16.png -------------------------------------------------------------------------------- /public/icons/docs/jest/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jest/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/jquery/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jquery/16.png -------------------------------------------------------------------------------- /public/icons/docs/jqueryui/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jqueryui/16.png -------------------------------------------------------------------------------- /public/icons/docs/julia/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/julia/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/knockout/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/knockout/16.png -------------------------------------------------------------------------------- /public/icons/docs/kotlin/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/kotlin/16.png -------------------------------------------------------------------------------- /public/icons/docs/laravel/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/laravel/16.png -------------------------------------------------------------------------------- /public/icons/docs/less/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/less/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/liquid/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/liquid/16.png -------------------------------------------------------------------------------- /public/icons/docs/lodash/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/lodash/16.png -------------------------------------------------------------------------------- /public/icons/docs/love/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/love/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/lua/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/lua/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/markdown/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/markdown/16.png -------------------------------------------------------------------------------- /public/icons/docs/meteor/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/meteor/16.png -------------------------------------------------------------------------------- /public/icons/docs/mocha/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/mocha/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/moment/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/moment/16.png -------------------------------------------------------------------------------- /public/icons/docs/mongoose/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/mongoose/16.png -------------------------------------------------------------------------------- /public/icons/docs/nginx/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/nginx/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/nim/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/nim/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/node/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/node/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/nokogiri/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/nokogiri/16.png -------------------------------------------------------------------------------- /public/icons/docs/npm/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/npm/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/numpy/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/numpy/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/openjdk/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/openjdk/16.png -------------------------------------------------------------------------------- /public/icons/docs/opentsdb/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/opentsdb/16.png -------------------------------------------------------------------------------- /public/icons/docs/padrino/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/padrino/16.png -------------------------------------------------------------------------------- /public/icons/docs/padrino/SOURCE: -------------------------------------------------------------------------------- 1 | https://raw.githubusercontent.com/padrino/padrino-web/master/source/images/favicon.ico 2 | -------------------------------------------------------------------------------- /public/icons/docs/pandas/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/pandas/16.png -------------------------------------------------------------------------------- /public/icons/docs/perl/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/perl/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/phalcon/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phalcon/16.png -------------------------------------------------------------------------------- /public/icons/docs/phaser/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phaser/16.png -------------------------------------------------------------------------------- /public/icons/docs/phoenix/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phoenix/16.png -------------------------------------------------------------------------------- /public/icons/docs/php/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/php/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/phpunit/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phpunit/16.png -------------------------------------------------------------------------------- /public/icons/docs/pug/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/pug/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/python/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/python/16.png -------------------------------------------------------------------------------- /public/icons/docs/rails/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/rails/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/ramda/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ramda/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/react/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/react/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/redis/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/redis/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/redux/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/redux/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/relay/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/relay/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/ruby/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ruby/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/rust/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/rust/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/rust/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/rust-lang/rust-www/tree/8347e870e3b09824ef9137fa9146ef7d21fec3d6/logos 2 | -------------------------------------------------------------------------------- /public/icons/docs/sass/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/sass/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/sinon/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/sinon/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/socketio/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/socketio/16.png -------------------------------------------------------------------------------- /public/icons/docs/sqlite/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/sqlite/16.png -------------------------------------------------------------------------------- /public/icons/docs/svg/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/svg/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/symfony/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/symfony/16.png -------------------------------------------------------------------------------- /public/icons/docs/tcl_tk/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/tcl_tk/16.png -------------------------------------------------------------------------------- /public/icons/docs/tcl_tk/16@2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/tcl_tk/16@2.png -------------------------------------------------------------------------------- /public/icons/docs/twig/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/twig/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/vagrant/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/vagrant/16.png -------------------------------------------------------------------------------- /public/icons/docs/vue/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/vue/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/vulkan/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/vulkan/16.png -------------------------------------------------------------------------------- /public/icons/docs/webpack/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/webpack/16.png -------------------------------------------------------------------------------- /public/icons/docs/xpath/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/xpath/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/yarn/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/yarn/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/yii/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/yii/16@2x.png -------------------------------------------------------------------------------- /public/images/apple-icon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/apple-icon-114.png -------------------------------------------------------------------------------- /public/images/apple-icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/apple-icon-120.png -------------------------------------------------------------------------------- /public/images/apple-icon-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/apple-icon-144.png -------------------------------------------------------------------------------- /public/images/apple-icon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/apple-icon-152.png -------------------------------------------------------------------------------- /public/images/apple-icon-160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/apple-icon-160.png -------------------------------------------------------------------------------- /public/images/apple-icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/apple-icon-72.png -------------------------------------------------------------------------------- /public/images/apple-icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/apple-icon-76.png -------------------------------------------------------------------------------- /public/images/webapp-icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/webapp-icon-128.png -------------------------------------------------------------------------------- /public/images/webapp-icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/webapp-icon-256.png -------------------------------------------------------------------------------- /public/images/webapp-icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/webapp-icon-32.png -------------------------------------------------------------------------------- /public/images/webapp-icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/webapp-icon-60.png -------------------------------------------------------------------------------- /public/images/webapp-icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/images/webapp-icon-80.png -------------------------------------------------------------------------------- /assets/javascripts/collections/entries.coffee: -------------------------------------------------------------------------------- 1 | class app.collections.Entries extends app.Collection 2 | @model: 'Entry' 3 | -------------------------------------------------------------------------------- /public/icons/docs/angular/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/angular/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/angularjs/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/angularjs/16.png -------------------------------------------------------------------------------- /public/icons/docs/angularjs/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/angular/angular.js/tree/master/images/logo/AngularJS-Shield.exports 2 | -------------------------------------------------------------------------------- /public/icons/docs/ansible/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/ansible/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/apache_pig/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/apache_pig/16.png -------------------------------------------------------------------------------- /public/icons/docs/bootstrap/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/bootstrap/16.png -------------------------------------------------------------------------------- /public/icons/docs/bottle/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/bottle/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/cakephp/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cakephp/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/clojure/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/clojure/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/codeceptjs/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/codeceptjs/16.png -------------------------------------------------------------------------------- /public/icons/docs/cordova/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/cordova/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/crystal/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/crystal/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/django/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/django/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/docker/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/docker/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/dom_events/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/dom_events/16.png -------------------------------------------------------------------------------- /public/icons/docs/drupal/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/drupal/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/elixir/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/elixir/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/erlang/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/erlang/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/express/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/express/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/falcon/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/falcon/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/haskell/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/haskell/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/immutable/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/immutable/16.png -------------------------------------------------------------------------------- /public/icons/docs/influxdata/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/influxdata/16.png -------------------------------------------------------------------------------- /public/icons/docs/jasmine/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jasmine/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/javascript/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/javascript/16.png -------------------------------------------------------------------------------- /public/icons/docs/jquery/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jquery/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/kotlin/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/kotlin/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/laravel/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/laravel/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/liquid/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/liquid/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/lodash/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/lodash/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/marionette/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/marionette/16.png -------------------------------------------------------------------------------- /public/icons/docs/matplotlib/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/matplotlib/16.png -------------------------------------------------------------------------------- /public/icons/docs/meteor/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/meteor/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/modernizr/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/modernizr/16.png -------------------------------------------------------------------------------- /public/icons/docs/moment/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/moment/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/openjdk/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/openjdk/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/padrino/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/padrino/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/pandas/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/pandas/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/phalcon/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phalcon/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/phaser/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phaser/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/phoenix/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phoenix/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/phpunit/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/phpunit/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/postgresql/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/postgresql/16.png -------------------------------------------------------------------------------- /public/icons/docs/python/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/python/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/requirejs/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/requirejs/16.png -------------------------------------------------------------------------------- /public/icons/docs/rethinkdb/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/rethinkdb/16.png -------------------------------------------------------------------------------- /public/icons/docs/sqlite/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/sqlite/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/symfony/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/symfony/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/tensorflow/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/tensorflow/16.png -------------------------------------------------------------------------------- /public/icons/docs/typescript/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/typescript/16.png -------------------------------------------------------------------------------- /public/icons/docs/underscore/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/underscore/16.png -------------------------------------------------------------------------------- /public/icons/docs/vagrant/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/vagrant/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/vulkan/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/vulkan/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/webpack/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/webpack/16@2x.png -------------------------------------------------------------------------------- /assets/stylesheets/pages/_liquid.scss: -------------------------------------------------------------------------------- 1 | ._liquid { 2 | @extend %simple; 3 | 4 | p.code-label { @extend %pre-heading; } 5 | } 6 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_webpack.scss: -------------------------------------------------------------------------------- 1 | ._webpack { 2 | @extend %simple; 3 | 4 | blockquote.tip { @extend %note-blue; } 5 | } 6 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_yard.scss: -------------------------------------------------------------------------------- 1 | ._yard { 2 | @extend %simple; 3 | 4 | .tag_title { font-weight: $boldFontWeight; } 5 | } 6 | -------------------------------------------------------------------------------- /public/icons/docs/angularjs/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/angularjs/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/apache_pig/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/apache_pig/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/apache_pig/pig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/apache_pig/pig.png -------------------------------------------------------------------------------- /public/icons/docs/backbone/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/backbone/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/bootstrap/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/bootstrap/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/codeception/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/codeception/16.png -------------------------------------------------------------------------------- /public/icons/docs/codeceptjs/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/codeceptjs/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/codeigniter/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/codeigniter/16.png -------------------------------------------------------------------------------- /public/icons/docs/coffeescript/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/coffeescript/16.png -------------------------------------------------------------------------------- /public/icons/docs/dom_events/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/dom_events/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/electron/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/electron/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/gnu_fortran/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/gnu_fortran/16.png -------------------------------------------------------------------------------- /public/icons/docs/immutable/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/immutable/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/immutable/SOURCE: -------------------------------------------------------------------------------- 1 | https://raw.githubusercontent.com/facebook/immutable-js/master/pages/src/static/favicon.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/influxdata/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/influxdata/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/javascript/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/javascript/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/jquerymobile/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jquerymobile/16.png -------------------------------------------------------------------------------- /public/icons/docs/jqueryui/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jqueryui/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/knockout/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/knockout/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/marionette/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/marionette/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/markdown/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/markdown/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/matplotlib/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/matplotlib/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/modernizr/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/modernizr/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/mongoose/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/mongoose/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/nokogiri/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/nokogiri/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/opentsdb/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/opentsdb/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/phpunit/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/Kapeli/Dash-X-Platform-Resources/blob/master/docset_icons/phpunit%402x.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/postgresql/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/postgresql/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/react_native/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/react_native/16.png -------------------------------------------------------------------------------- /public/icons/docs/requirejs/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/requirejs/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/rethinkdb/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/rethinkdb/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/scikit_image/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/scikit_image/16.png -------------------------------------------------------------------------------- /public/icons/docs/scikit_learn/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/scikit_learn/16.png -------------------------------------------------------------------------------- /public/icons/docs/socketio/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/socketio/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/statsmodels/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/statsmodels/16.png -------------------------------------------------------------------------------- /public/icons/docs/tensorflow/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/tensorflow/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/typescript/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/typescript/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/underscore/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/underscore/16@2x.png -------------------------------------------------------------------------------- /assets/stylesheets/pages/_dojo.scss: -------------------------------------------------------------------------------- 1 | ._dojo { 2 | @extend %simple; 3 | 4 | .jsdoc-inheritance { color: $textColorLight; } 5 | } 6 | -------------------------------------------------------------------------------- /public/icons/docs/cmake/SOURCE: -------------------------------------------------------------------------------- 1 | https://cmake.org/gitweb?p=cmake.git;a=blob_plain;f=Source/QtDialog/CMakeSetup.ico;hb=refs/heads/master 2 | -------------------------------------------------------------------------------- /public/icons/docs/codeception/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/codeception/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/codeigniter/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/codeigniter/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/coffeescript/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/coffeescript/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/gnu_fortran/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/gnu_fortran/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/jquerymobile/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/jquerymobile/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/react_native/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/react_native/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/scikit_image/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/scikit_image/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/scikit_learn/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/scikit_learn/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/statsmodels/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/statsmodels/16@2x.png -------------------------------------------------------------------------------- /public/icons/docs/support_tables/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/support_tables/16.png -------------------------------------------------------------------------------- /public/icons/docs/apache_http_server/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/apache_http_server/16.png -------------------------------------------------------------------------------- /public/icons/docs/apache_http_server/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/Kapeli/Dash-X-Platform-Resources/blob/master/docset_icons/apache%402x.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/gnu_fortran/fortran.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/gnu_fortran/fortran.png -------------------------------------------------------------------------------- /public/icons/docs/support_tables/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/support_tables/16@2x.png -------------------------------------------------------------------------------- /assets/javascripts/models/model.coffee: -------------------------------------------------------------------------------- 1 | class app.Model 2 | constructor: (attributes) -> 3 | @[key] = value for key, value of attributes 4 | -------------------------------------------------------------------------------- /public/icons/docs/matplotlib/SOURCE: -------------------------------------------------------------------------------- 1 | https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Matplotlib_icon.svg/1024px-Matplotlib_icon.svg.png 2 | -------------------------------------------------------------------------------- /public/icons/docs/scikit_image/SOURCE: -------------------------------------------------------------------------------- 1 | https://github.com/scikit-image/scikit-image/blob/master/doc/source/themes/scikit-image/static/img/favicon.ico -------------------------------------------------------------------------------- /public/icons/docs/apache_http_server/16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/devdocs/master/public/icons/docs/apache_http_server/16@2x.png -------------------------------------------------------------------------------- /assets/stylesheets/pages/_express.scss: -------------------------------------------------------------------------------- 1 | ._express { 2 | @extend %simple; 3 | 4 | .doc-box { @extend %note; } 5 | .doc-warn { @extend %note-red; } 6 | } 7 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_apache.scss: -------------------------------------------------------------------------------- 1 | ._apache { 2 | @extend %simple; 3 | 4 | .note, .warning { @extend %note; } 5 | .warning { @extend %note-red; } 6 | } 7 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_phalcon.scss: -------------------------------------------------------------------------------- 1 | ._phalcon { 2 | @extend %simple; 3 | 4 | h3 > small { 5 | float: right; 6 | color: $textColorLight; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_sqlite.scss: -------------------------------------------------------------------------------- 1 | ._sqlite { 2 | @extend %simple; 3 | 4 | dt { @extend %block-label, %label-blue; } 5 | .todo { @extend %note, %note-red; } 6 | } 7 | -------------------------------------------------------------------------------- /public/icons/docs/bottle/SOURCE: -------------------------------------------------------------------------------- 1 | https://raw.githubusercontent.com/bottlepy/bottlepy.org/master/sphinx/static/logo_icon.png 2 | https://github.com/bottlepy/bottle/issues/886 3 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_ramda.scss: -------------------------------------------------------------------------------- 1 | ._ramda { 2 | @extend %simple; 3 | 4 | code { @extend %code; } 5 | h3 > small { float: right; } 6 | ul { margin-top: 1em; } 7 | } 8 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_yii.scss: -------------------------------------------------------------------------------- 1 | ._yii { 2 | @extend %simple; 3 | 4 | .detail-header-tag, .detailHeaderTag { 5 | float: right; 6 | color: $textColorLight; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /public/icons/docs/elixir/SOURCE: -------------------------------------------------------------------------------- 1 | http://elixir-lang.org/docs/stable/elixir/assets/logo.png 2 | with permission from José Valim (https://twitter.com/josevalim/status/657125748659126272) 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .bundle 3 | *.pxm 4 | *.sketch 5 | tmp 6 | public/assets 7 | public/fonts 8 | public/docs/**/* 9 | !public/docs/docs.json 10 | !public/docs/**/index.json 11 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_julia.scss: -------------------------------------------------------------------------------- 1 | ._julia { 2 | @extend %simple; 3 | 4 | .footnote { @extend %note; } 5 | .note { @extend %note; } 6 | .docstring-category { float: right; } 7 | } 8 | -------------------------------------------------------------------------------- /lib/docs/scrapers/github.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Github < UrlScraper 3 | self.abstract = true 4 | self.type = 'github' 5 | 6 | html_filters.push 'github/clean_html' 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_chef.scss: -------------------------------------------------------------------------------- 1 | ._chef { 2 | @extend %simple; 3 | 4 | .note, .warning { @extend %note; } 5 | .warning { @extend %note, %note-red; } 6 | 7 | code { @extend %label; } 8 | } 9 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_drupal.scss: -------------------------------------------------------------------------------- 1 | ._drupal { 2 | h3 { @extend %block-heading; } 3 | .signature { @extend %note, %note-blue; } 4 | 5 | span.api-deprecated { @extend %label, %label-red; } 6 | } 7 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_tensorflow.scss: -------------------------------------------------------------------------------- 1 | ._tensorflow { 2 | @extend %simple; 3 | 4 | h4 { @extend %block-label; } 5 | h3 + h3 { margin-top: .25rem; } 6 | > .toc ul ul { margin: .25rem 0; } 7 | } 8 | -------------------------------------------------------------------------------- /public/icons/docs/vulkan/SOURCE: -------------------------------------------------------------------------------- 1 | 01_Vulkan_Icon_RGB_Aug1.svg hand-made, credit to Anne-Sophie BOSSÉ 2 | Usage granted by James Riordon, Khronos Group Webmaster, until their Marketing have the time to review it 3 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_codeception.scss: -------------------------------------------------------------------------------- 1 | ._codeception { 2 | @extend %simple; 3 | 4 | h4 { @extend %block-label; } 5 | .warning, .alert { @extend %note; } 6 | .alert-danger { @extend %note-red; } 7 | } 8 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_go.scss: -------------------------------------------------------------------------------- 1 | ._go { 2 | @extend %simple; 3 | 4 | #short-nav, table.dir { margin-left: -1rem; } 5 | 6 | a.source { 7 | float: right; 8 | font-size: .9em; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_elixir.scss: -------------------------------------------------------------------------------- 1 | ._elixir { 2 | @extend %simple; 3 | 4 | .type-detail { margin-bottom: 2em; } 5 | .type-detail pre { margin-left: -1rem; } 6 | ._mobile & .type-detail pre { margin-left: 0; } 7 | } 8 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_nginx.scss: -------------------------------------------------------------------------------- 1 | ._nginx { 2 | h4 { @extend %block-heading; } 3 | .note { @extend %note; } 4 | .directive { margin: 2.5em 0 1em; } 5 | td > pre { margin: 0; } 6 | dt > code { @extend %label; } 7 | } 8 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_knockout.scss: -------------------------------------------------------------------------------- 1 | ._knockout { 2 | > h2 { @extend %block-heading; } 3 | > h3 { @extend %block-label, %label-blue; } 4 | p > code { @extend %label; } 5 | .liveExample, blockquote { @extend %note; } 6 | } 7 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_openjdk.scss: -------------------------------------------------------------------------------- 1 | ._openjdk { 2 | @extend %simple; 3 | 4 | ul.inheritance { list-style: none; } 5 | > ul.inheritance { @extend %note, %note-blue; } 6 | > ul.inheritance ul.inheritance { margin: 0; } 7 | } 8 | -------------------------------------------------------------------------------- /lib/docs/filters/dojo/clean_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Dojo 3 | class CleanUrlsFilter < Filter 4 | def call 5 | html.remove! '?xhr=true' 6 | html 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_moment.scss: -------------------------------------------------------------------------------- 1 | ._moment { 2 | > h2 { @extend %block-heading; } 3 | > h3 { @extend %block-label, %label-blue; } 4 | > h3 > span { float: right;} 5 | h4 { font-size: 1em; } 6 | code { @extend %label; } 7 | } 8 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_phaser.scss: -------------------------------------------------------------------------------- 1 | ._phaser { 2 | @extend %simple; 3 | 4 | .type-signature, dt.tag-source { 5 | color: #666; 6 | font-weight: normal; 7 | } 8 | 9 | .deprecated-notice { @extend %note; } 10 | } 11 | -------------------------------------------------------------------------------- /lib/docs/filters/django/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Django 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('.yui-g') 6 | 7 | doc 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_rethinkdb.scss: -------------------------------------------------------------------------------- 1 | ._rethinkdb { 2 | @extend %simple; 3 | 4 | .infobox-alert { @extend %note-orange; } 5 | 6 | .api_command_illustration { 7 | float: right; 8 | margin: 0 0 1em 1em; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | require 'bundler/setup' 2 | 3 | $LOAD_PATH.unshift 'lib' 4 | 5 | require 'app' 6 | 7 | map '/' do 8 | run App 9 | end 10 | 11 | if App.development? 12 | map '/assets' do 13 | run App.sprockets 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_modernizr.scss: -------------------------------------------------------------------------------- 1 | ._modernizr { 2 | h2 { @extend %block-heading; } 3 | h3 { @extend %block-label, %label-blue; } 4 | h4 { font-size: 1em; } 5 | 6 | code { @extend %label; } 7 | blockquote { @extend %note; } 8 | } 9 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_pug.scss: -------------------------------------------------------------------------------- 1 | ._pug { 2 | @extend %simple; 3 | 4 | .alert { @extend %note; } 5 | .alert-danger { @extend %note-orange; } 6 | .alert h6 { margin-top: .25rem; } 7 | 8 | h4 > code { @extend %label; } 9 | } 10 | -------------------------------------------------------------------------------- /lib/docs/filters/numpy/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Numpy 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('#spc-section-body') 6 | 7 | doc 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_rubydoc.scss: -------------------------------------------------------------------------------- 1 | ._rubydoc { 2 | @extend %simple; 3 | 4 | p.note { @extend %note; } 5 | span.note { @extend %label; } 6 | span.note.private { @extend %label-red; } 7 | 8 | h4 + ul { margin-top: 1em; } 9 | } 10 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_cordova.scss: -------------------------------------------------------------------------------- 1 | ._cordova { 2 | @extend %simple; 3 | 4 | .alert { @extend %note; } 5 | 6 | .compat .n { background: pink; } 7 | .compat .y { background: lightgreen; } 8 | .compat .p { background: khaki; } 9 | } 10 | -------------------------------------------------------------------------------- /lib/docs/filters/julia/clean_html_sphinx.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Julia 3 | class CleanHtmlSphinxFilter < Filter 4 | def call 5 | @doc = at_css('.document .section') 6 | 7 | doc 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /views/manifest.erb: -------------------------------------------------------------------------------- 1 | CACHE MANIFEST 2 | # <%= app_theme %> <%= app_size %> <%= app_layout %> 3 | 4 | CACHE: 5 | / 6 | <%= manifest_asset_urls.join "\n" %> 7 | <%= doc_index_urls.join "\n" %> 8 | 9 | NETWORK: 10 | /s/ 11 | * 12 | 13 | FALLBACK: 14 | / / 15 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_kotlin.scss: -------------------------------------------------------------------------------- 1 | ._kotlin { 2 | h2 { @extend %block-heading; } 3 | h3 { @extend %block-label, %label-blue; } 4 | code { @extend %label; } 5 | 6 | td > pre { margin: .5em 0; } 7 | 8 | .api-docs-breadcrumbs { @extend %note; } 9 | } 10 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_clojure.scss: -------------------------------------------------------------------------------- 1 | ._clojure { 2 | h2:not([id]) { @extend %block-heading; } 3 | h2[id], h3 { @extend %block-label, %label-blue; } 4 | 5 | .type { 6 | float: right; 7 | font-size: .9em; 8 | color: $textColorLight; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_phpunit.scss: -------------------------------------------------------------------------------- 1 | ._phpunit { 2 | @extend %simple; 3 | 4 | .warning, .alert { 5 | @extend %note; 6 | 7 | > h3 { 8 | margin: 0 0 .5em; 9 | font-size: 1em; 10 | } 11 | } 12 | 13 | .alert-danger { @extend %note-red; } 14 | } 15 | -------------------------------------------------------------------------------- /assets/javascripts/lib/license.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * Copyright 2013-2017 Thibaut Courouble and other contributors 3 | * 4 | * This source code is licensed under the terms of the Mozilla 5 | * Public License, v. 2.0, a copy of which may be obtained at: 6 | * http://mozilla.org/MPL/2.0/ 7 | ### 8 | -------------------------------------------------------------------------------- /assets/javascripts/views/misc/tip.coffee: -------------------------------------------------------------------------------- 1 | #= require views/misc/notif 2 | 3 | class app.views.Tip extends app.views.Notif 4 | @className: '_notif _notif-tip' 5 | 6 | @defautOptions: 7 | autoHide: false 8 | 9 | render: -> 10 | @html @tmpl("tip#{@type}") 11 | return 12 | -------------------------------------------------------------------------------- /lib/docs/filters/chefclient/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Chefclient 3 | class CleanHtmlFilter < Filter 4 | def call 5 | css('h1 a, h2 a, h3 a').remove 6 | doc = at_css('div.body[role="main"]') 7 | doc 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /lib/docs/filters/django/fix_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Django 3 | class FixUrlsFilter < Filter 4 | def call 5 | html.gsub! %r{#{Regexp.escape(context[:base_url].to_s)}([^"']+?)\.html}, "#{context[:base_url]}\\1/" 6 | html 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_erlang.scss: -------------------------------------------------------------------------------- 1 | ._erlang { 2 | @extend %simple; 3 | 4 | h3 > code { display: block; } 5 | code.code { @extend %label; } 6 | .note { @extend %note; } 7 | .warning { @extend %note, %note-red; } 8 | .note .label, .warning .label { font-weight: $boldFontWeight; } 9 | } 10 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_laravel.scss: -------------------------------------------------------------------------------- 1 | ._laravel { 2 | h2 { @extend %block-heading; } 3 | h3 { @extend %block-label, %label-blue; } 4 | h4 { font-size: 1em; } 5 | 6 | blockquote { @extend %note; } 7 | blockquote.tip { @extend %note-blue; } 8 | p > code, h4 > code { @extend %label; } 9 | } 10 | -------------------------------------------------------------------------------- /lib/docs/filters/drupal/normalize_paths.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Drupal 3 | class NormalizePathsFilter < Docs::NormalizePathsFilter 4 | 5 | def store_path 6 | p = Drupal::fixUri(@path) 7 | File.extname(p) != '.html' ? "#{p}.html" : p 8 | end 9 | end 10 | end 11 | end -------------------------------------------------------------------------------- /lib/docs/filters/minitest/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Minitest 3 | class EntriesFilter < Docs::Rdoc::EntriesFilter 4 | def get_type 5 | type = name.dup 6 | type.remove! %r{#.+\z} 7 | type.split('::')[0..1].join('::') 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_react_native.scss: -------------------------------------------------------------------------------- 1 | ._react_native { 2 | @extend %simple; 3 | 4 | .deprecated { @extend %note, %note-orange; } 5 | .deprecatedTitle { font-weight: $boldFontWeight; } 6 | 7 | span.platform { float: right; } 8 | span.propType, span.platform { font-weight: normal; } 9 | } 10 | -------------------------------------------------------------------------------- /lib/docs/filters/nokogiri2/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Nokogiri2 3 | class EntriesFilter < Docs::Rdoc::EntriesFilter 4 | def get_type 5 | type = name.dup 6 | type.remove! %r{#.+\z} 7 | type.split('::')[0..2].join('::') 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_npm.scss: -------------------------------------------------------------------------------- 1 | ._npm { 2 | @extend %simple; 3 | 4 | .pageColumns { 5 | padding-left: 0; 6 | list-style: none; 7 | } 8 | 9 | .faint.heading { 10 | font-size: .9em; 11 | color: $textColorLight; 12 | } 13 | 14 | .youtube-video iframe { width: 420px; height: 315px; } 15 | } 16 | -------------------------------------------------------------------------------- /lib/docs/filters/html/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Html 3 | class CleanHtmlFilter < Filter 4 | def call 5 | css('section', 'div.section', 'div.row').each do |node| 6 | node.before(node.children).remove 7 | end 8 | 9 | doc 10 | end 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /lib/docs/filters/c/fix_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class C 3 | class FixUrlsFilter < Filter 4 | def call 5 | html.gsub! File.join(C.base_url, C.root_path), C.base_url[0..-2] 6 | html.gsub! %r{#{C.base_url}([^"']+?)\.html}, "#{C.base_url}\\1" 7 | html 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /lib/docs/filters/core/inner_html.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class InnerHtmlFilter < Filter 5 | def call 6 | html = doc.inner_html 7 | html = html.encode('UTF-16', invalid: :replace, replace: '').encode('UTF-8') unless html.valid_encoding? 8 | html 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_async.scss: -------------------------------------------------------------------------------- 1 | ._async { 2 | @extend %simple; 3 | 4 | h3 > .type-signature { 5 | float: right; 6 | color: $textColorLight; 7 | } 8 | 9 | h3 > .signature-attributes { 10 | font-size: .75rem; 11 | font-weight: normal; 12 | font-style: italic; 13 | color: $textColorLighter; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/docs/core/autoload_helper.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | module AutoloadHelper 3 | def autoload_all(path, suffix = '') 4 | Dir["#{Docs.root_path}/#{path}/**/*.rb"].each do |file| 5 | name = File.basename(file, '.rb') + (suffix ? "_#{suffix}" : '') 6 | autoload name.camelize, file 7 | end 8 | end 9 | end 10 | end 11 | -------------------------------------------------------------------------------- /lib/docs/filters/core/clean_text.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class CleanTextFilter < Filter 5 | EMPTY_NODES_RGX = /<(?!td|th|iframe|mspace)(\w+)[^>]*>[[:space:]]*<\/\1>/ 6 | 7 | def call 8 | html.strip! 9 | while html.gsub!(EMPTY_NODES_RGX, ''); end 10 | html 11 | end 12 | end 13 | end 14 | -------------------------------------------------------------------------------- /assets/javascripts/templates/pages/type_tmpl.coffee: -------------------------------------------------------------------------------- 1 | app.templates.typePage = (type) -> 2 | """

#{type.doc.fullName} / #{type.name}

3 | """ 4 | 5 | app.templates.typePageEntry = (entry) -> 6 | """
  • #{$.escape entry.name}
  • """ 7 | -------------------------------------------------------------------------------- /lib/docs/core/models/type.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | Type = Struct.new :name, :count do 3 | attr_accessor :slug 4 | 5 | def initialize(*args) 6 | super 7 | self.count ||= 0 8 | end 9 | 10 | def slug 11 | name.parameterize 12 | end 13 | 14 | def as_json 15 | to_h.merge! slug: slug 16 | end 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /lib/docs/subscribers/filter_subscriber.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class FilterSubscriber < Subscriber 5 | self.namespace = 'html_pipeline' 6 | 7 | def call_filter(event) 8 | log "Filter: #{event.payload[:filter].remove('Docs::').remove('Filter')} [#{event.duration.round}ms]" 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /lib/docs/subscribers/request_subscriber.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class RequestSubscriber < Subscriber 5 | self.namespace = 'request' 6 | 7 | def response(event) 8 | log "Request: #{format_url event.payload[:url]} [#{event.payload[:response].code}] [#{event.duration.round}ms]" 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /assets/javascripts/templates/base.coffee: -------------------------------------------------------------------------------- 1 | app.templates.render = (name, value, args...) -> 2 | template = app.templates[name] 3 | 4 | if Array.isArray(value) 5 | result = '' 6 | result += template(val, args...) for val in value 7 | result 8 | else if typeof template is 'function' 9 | template(value, args...) 10 | else 11 | template 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_rust.scss: -------------------------------------------------------------------------------- 1 | ._rust { 2 | @extend %simple; 3 | 4 | h4 { @extend %block-label; } 5 | .docblock { margin-left: 1em; } 6 | 7 | div.stability { margin-bottom: 1em; } 8 | em.stab, span.stab { @extend %label; } 9 | em.stab.unstable, span.stab.unstable { @extend %label-orange; } 10 | .since, .out-of-band { float: right; } 11 | } 12 | -------------------------------------------------------------------------------- /lib/docs/filters/ramda/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Ramda 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | css('ul.toc li').map do |node| 6 | ["R.#{node['data-name']}", node['data-name'], node['data-category'].sub('Relaction', 'Relation')] 7 | end 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_sphinx_simple.scss: -------------------------------------------------------------------------------- 1 | ._sphinx_simple { 2 | @extend %simple; 3 | 4 | .admonition { @extend %note; } 5 | .admonition.warning { @extend %note-orange; } 6 | .admonition.tip { @extend %note-green; } 7 | .admonition-title { 8 | margin: 0 0 .25rem; 9 | font-weight: $boldFontWeight; 10 | } 11 | 12 | code { @extend %label; } 13 | } 14 | -------------------------------------------------------------------------------- /lib/docs/filters/flow/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Flow 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content 6 | end 7 | 8 | def get_type 9 | type = at_css('.guide-nav .nav-item').content.strip 10 | type.remove! %r{ \(.*} 11 | type 12 | end 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /lib/docs/filters/php/fix_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Php 3 | class FixUrlsFilter < Filter 4 | def call 5 | html.gsub! File.join(Php.base_url, Php.root_path), Php.base_url 6 | html.gsub! %r{https://secure\.php\.net/manual/en/([^"']+?)\.html}, 'https://secure.php.net/manual/en/\1.php' 7 | html 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_d3.scss: -------------------------------------------------------------------------------- 1 | ._d3 { 2 | > h2 { @extend %block-heading; } 3 | > h3 { @extend %block-label; } 4 | > h4 { font-size: 1rem; } 5 | > h6 { @extend %block-label, %label-blue; } 6 | 7 | > h6 > .source { 8 | float: right; 9 | font-weight: normal; 10 | } 11 | 12 | code { @extend %label; } 13 | blockquote { @extend %note, %note-blue; } 14 | } 15 | -------------------------------------------------------------------------------- /lib/docs/filters/ansible/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Ansible 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('#page-content') 6 | 7 | css('.__cf_email__').each do |node| 8 | node.replace(decode_cloudflare_email(node['data-cfemail'])) 9 | end 10 | 11 | doc 12 | end 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /test/support/fake_instrumentation.rb: -------------------------------------------------------------------------------- 1 | module FakeInstrumentation 2 | def instrument(event, payload = nil) 3 | (@instrumentations ||= []) << { event: event, payload: payload } 4 | yield payload if block_given? 5 | end 6 | 7 | def instrumentations 8 | @instrumentations 9 | end 10 | 11 | def last_instrumentation 12 | @instrumentations.try :last 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /assets/javascripts/models/type.coffee: -------------------------------------------------------------------------------- 1 | class app.models.Type extends app.Model 2 | # Attributes: name, slug, count 3 | 4 | fullPath: -> 5 | "/#{@doc.slug}-#{@slug}/" 6 | 7 | entries: -> 8 | @doc.entries.findAllBy 'type', @name 9 | 10 | toEntry: -> 11 | new app.models.Entry 12 | doc: @doc 13 | name: "#{@doc.name} / #{@name}" 14 | path: '..' + @fullPath() 15 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_coffeescript.scss: -------------------------------------------------------------------------------- 1 | ._coffeescript { 2 | @extend %simple; 3 | 4 | // CoffeeScript / JavaScript code blocks 5 | > .code { 6 | margin: 1.5em 0; 7 | overflow: hidden; 8 | 9 | > pre { 10 | float: left; 11 | width: 49%; 12 | margin: 0; 13 | @extend %border-box; 14 | 15 | &:last-child { float: right; } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/docs/filters/cmake/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Cmake 3 | class CleanHtmlFilter < Filter 4 | def call 5 | if root_page? 6 | css('#release-notes', '#index-and-search').remove 7 | 8 | css('h1').each do |node| 9 | node.name = 'h2' 10 | end 11 | end 12 | 13 | doc 14 | end 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_d.scss: -------------------------------------------------------------------------------- 1 | ._d { 2 | h2 { @extend %block-heading; } 3 | h3, .d_decl { @extend %block-label, %label-blue; } 4 | .d_decl { @extend %code; } 5 | .d_decl > small { color: $textColorLight; } 6 | .d_decl > strong { font-weight: $bolderFontWeight; } 7 | 8 | p > code, li > code, td > code, dd > code { @extend %label; } 9 | 10 | span.red { color: $textColorRed; } 11 | } 12 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_ember.scss: -------------------------------------------------------------------------------- 1 | ._ember { 2 | @extend %simple; 3 | 4 | .pre-title { @extend %pre-heading; } 5 | 6 | h3 > .access { 7 | float: right; 8 | color: $textColorLight; 9 | font-weight: normal; 10 | } 11 | 12 | h3 > .args, 13 | h3 > .return-type { 14 | font-weight: normal; 15 | } 16 | 17 | p.github-link { 18 | color: $textColorLight; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_rfc.scss: -------------------------------------------------------------------------------- 1 | ._rfc-pre { 2 | font-size: .8125rem; 3 | min-width: 38rem; 4 | @extend %code; 5 | 6 | > h2 { @extend %block-heading; } 7 | > h3 { @extend %block-label, %label-blue; } 8 | > h4 { @extend %block-label; } 9 | > h3, > h4 { font-size: .875rem; } 10 | 11 | > h1, > h2, > h3, > h4, > h5 { 12 | margin: 0; 13 | font-family: $baseFont; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/docs/filters/angularjs/clean_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Angularjs 3 | class CleanUrlsFilter < Filter 4 | def call 5 | html.gsub! %r{angularjs\.org/([\d\.]+)/docs/partials/(\w+)/}, 'angularjs.org/\1/docs/\2/' 6 | html.gsub! %r{angularjs\.org/([\d\.]+)/docs/(\w+)/(.+?)\.html}, 'angularjs.org/\1/docs/\2/\3' 7 | html 8 | end 9 | end 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /lib/docs/filters/underscore/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Underscore 3 | class CleanHtmlFilter < Filter 4 | def call 5 | # Remove Links, Changelog 6 | css('#links ~ *', '#links').remove 7 | 8 | css('pre').each do |node| 9 | node['data-language'] = 'javascript' 10 | end 11 | 12 | doc 13 | end 14 | end 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /assets/javascripts/views/sidebar/entry_list.coffee: -------------------------------------------------------------------------------- 1 | #= require views/list/paginated_list 2 | 3 | class app.views.EntryList extends app.views.PaginatedList 4 | @tagName: 'div' 5 | @className: '_list _list-sub' 6 | 7 | constructor: (@entries) -> super 8 | 9 | init: -> 10 | @renderPaginated() 11 | @activate() 12 | return 13 | 14 | render: (entries) -> 15 | @tmpl 'sidebarEntry', entries 16 | -------------------------------------------------------------------------------- /lib/docs/filters/drupal/internal_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Drupal 3 | class InternalUrlsFilter < Docs::InternalUrlsFilter 4 | def internal_path_to(url) 5 | url = index_url if url == root_url 6 | path = effective_url.relative_path_to(url) 7 | URL.new(path: Drupal::fixUri(path), query: url.query, fragment: url.fragment).to_s 8 | end 9 | end 10 | end 11 | end 12 | 13 | -------------------------------------------------------------------------------- /lib/docs/filters/markdown/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Markdown 3 | class CleanHtmlFilter < Filter 4 | def call 5 | at_css('h1').content = 'Markdown' 6 | 7 | css('#ProjectSubmenu', 'hr').remove 8 | 9 | css('pre > code').each do |node| 10 | node.before(node.children).remove 11 | end 12 | 13 | doc 14 | end 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /lib/docs/filters/mocha/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Mocha 3 | class CleanHtmlFilter < Filter 4 | def call 5 | doc.child.remove until doc.child['id'] == 'installation' 6 | 7 | css('pre').each do |node| 8 | node.content = node.content 9 | node['data-language'] = 'javascript' 10 | end 11 | 12 | doc 13 | end 14 | end 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /lib/docs/filters/vulkan/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Vulkan 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | css('.sect1').each_with_object [] do |node, entries| 6 | type = node.at_css('h2').content 7 | 8 | node.css('h3').each do |n| 9 | entries << [n.content, n['id'], type] 10 | end 11 | end 12 | end 13 | end 14 | end 15 | end 16 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env rake 2 | 3 | require 'bundler/setup' 4 | require 'thor' 5 | 6 | $LOAD_PATH.unshift 'lib' 7 | 8 | task :default do 9 | $LOAD_PATH.unshift 'test' 10 | Dir['test/**/*_test.rb'].map(&File.method(:expand_path)).each(&method(:require)) 11 | end 12 | 13 | namespace :assets do 14 | desc 'Compile all assets' 15 | task :precompile do 16 | load 'tasks/assets.thor' 17 | AssetsCLI.new.compile 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /assets/javascripts/views/pages/hidden.coffee: -------------------------------------------------------------------------------- 1 | class app.views.HiddenPage extends app.View 2 | @events: 3 | click: 'onClick' 4 | 5 | constructor: (@el, @entry) -> super 6 | 7 | init: -> 8 | @addSubview @notice = new app.views.Notice 'disabledDoc' 9 | @activate() 10 | return 11 | 12 | onClick: (event) => 13 | if link = $.closestLink(event.target, @el) 14 | $.stopEvent(event) 15 | $.popup(link) 16 | return 17 | -------------------------------------------------------------------------------- /.image_optim.yml: -------------------------------------------------------------------------------- 1 | verbose: false 2 | skip_missing_workers: true 3 | allow_lossy: true 4 | threads: 1 5 | advpng: false 6 | gifsicle: 7 | interlace: false 8 | level: 3 9 | careful: true 10 | jhead: false 11 | jpegoptim: 12 | strip: all 13 | max_quality: 100 14 | jpegrecompress: false 15 | jpegtran: false 16 | optipng: false 17 | pngcrush: false 18 | pngout: false 19 | pngquant: 20 | quality: !ruby/range 80..99 21 | speed: 3 22 | svgo: false 23 | -------------------------------------------------------------------------------- /assets/javascripts/views/pages/support_tables.coffee: -------------------------------------------------------------------------------- 1 | #= require views/pages/base 2 | 3 | class app.views.SupportTablesPage extends app.views.BasePage 4 | @events: 5 | click: 'onClick' 6 | 7 | onClick: (event) -> 8 | return unless event.target.classList.contains 'show-all' 9 | $.stopEvent(event) 10 | 11 | el = event.target 12 | el = el.parentNode until el.tagName is 'TABLE' 13 | el.classList.add 'show-all' 14 | return 15 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_cakephp.scss: -------------------------------------------------------------------------------- 1 | ._cakephp { 2 | @extend %simple; 3 | 4 | h3 > .source { float: right; } 5 | h3 > a, span.label, span.php-keyword1 { font-weight: normal; } 6 | 7 | h4 { 8 | margin: 1.5em 0; 9 | @extend %block-label; 10 | } 11 | 12 | dl { margin: 1em 0; } 13 | 14 | .info { @extend %note; } 15 | code { @extend %label; } 16 | p > .label, dt > .label, div > .label { @extend %label, %label-yellow; } 17 | } 18 | -------------------------------------------------------------------------------- /assets/javascripts/views/content/type_page.coffee: -------------------------------------------------------------------------------- 1 | class app.views.TypePage extends app.View 2 | @className: '_page' 3 | 4 | deactivate: -> 5 | if super 6 | @empty() 7 | @type = null 8 | return 9 | 10 | render: (@type) -> 11 | @html @tmpl('typePage', @type) 12 | return 13 | 14 | getTitle: -> 15 | "#{@type.doc.fullName} / #{@type.name}" 16 | 17 | onRoute: (context) -> 18 | @render context.type 19 | return 20 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_git.scss: -------------------------------------------------------------------------------- 1 | ._git { 2 | padding-left: 1rem; 3 | 4 | > h1, 5 | > h2, 6 | > .reference-menu, 7 | > .callout, 8 | > h1 + .sectionbody { 9 | margin-left: -1rem; 10 | } 11 | 12 | > h2 { @extend %block-heading; } 13 | h3 { font-size: 1rem; } 14 | 15 | > .callout, 16 | > h1 + .sectionbody { 17 | @extend %note, %note-green; 18 | } 19 | 20 | code { @extend %label; } 21 | em { font-style: normal; } 22 | } 23 | -------------------------------------------------------------------------------- /lib/docs/core/page_db.rb: -------------------------------------------------------------------------------- 1 | require 'yajl/json_gem' 2 | 3 | module Docs 4 | class PageDb 5 | attr_reader :pages 6 | 7 | delegate :empty?, :blank?, to: :pages 8 | 9 | def initialize 10 | @pages = {} 11 | end 12 | 13 | def add(path, content) 14 | @pages[path] = content 15 | end 16 | 17 | def as_json 18 | @pages 19 | end 20 | 21 | def to_json 22 | JSON.generate(as_json) 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /lib/docs/filters/cpp/fix_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Cpp 3 | class FixUrlsFilter < Filter 4 | def call 5 | html.gsub! File.join(Cpp.base_url, Cpp.root_path), Cpp.base_url[0..-2] 6 | html.gsub! %r{#{Cpp.base_url}([^"']+?)\.html}, "#{Cpp.base_url}\\1" 7 | html.gsub! %r{http://en.cppreference.com/common/([^"']+?)\.svg}, 'http://upload.cppreference.com/mwiki/\1.svg' 8 | html 9 | end 10 | end 11 | end 12 | end 13 | -------------------------------------------------------------------------------- /assets/javascripts/templates/path_tmpl.coffee: -------------------------------------------------------------------------------- 1 | arrow = """""" 2 | 3 | app.templates.path = (doc, type, entry) -> 4 | html = """#{doc.fullName}""" 5 | html += """#{arrow}#{type.name}""" if type 6 | html += """#{arrow}#{$.escape entry.name}""" if entry 7 | html 8 | -------------------------------------------------------------------------------- /lib/docs/subscribers/store_subscriber.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class StoreSubscriber < Subscriber 5 | self.namespace = 'store' 6 | 7 | def create(event) 8 | log "Create: #{format_path event.payload[:path]}" 9 | end 10 | 11 | def update(event) 12 | log "Update: #{format_path event.payload[:path]}" 13 | end 14 | 15 | def destroy(event) 16 | log "Delete: #{format_path event.payload[:path]}" 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /lib/docs/filters/liquid/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Liquid 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content 6 | end 7 | 8 | def get_type 9 | slug.split('/').first.capitalize 10 | end 11 | 12 | def additional_entries 13 | return [] unless type == 'Tags' 14 | 15 | css('h2').map do |node| 16 | [node.content, node['id']] 17 | end 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /assets/javascripts/lib/local_storage_store.coffee: -------------------------------------------------------------------------------- 1 | class @LocalStorageStore 2 | get: (key) -> 3 | try 4 | JSON.parse localStorage.getItem(key) 5 | catch 6 | 7 | set: (key, value) -> 8 | try 9 | localStorage.setItem(key, JSON.stringify(value)) 10 | true 11 | catch 12 | 13 | del: (key) -> 14 | try 15 | localStorage.removeItem(key) 16 | true 17 | catch 18 | 19 | reset: -> 20 | try 21 | localStorage.clear() 22 | true 23 | catch 24 | -------------------------------------------------------------------------------- /lib/docs/filters/core/clean_local_urls.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class CleanLocalUrlsFilter < Filter 5 | def call 6 | if base_url.host == 'localhost' 7 | css('img[src^="http://localhost"]', 'iframe[src^="http://localhost"]').remove 8 | 9 | css('a[href^="http://localhost"]').each do |node| 10 | node.name = 'span' 11 | node.remove_attribute 'href' 12 | end 13 | end 14 | 15 | doc 16 | end 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /lib/docs/scrapers/markdown.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Markdown < UrlScraper 3 | self.name = 'Markdown' 4 | self.type = 'markdown' 5 | self.base_url = 'http://daringfireball.net/projects/markdown/syntax' 6 | 7 | html_filters.push 'markdown/clean_html', 'markdown/entries' 8 | 9 | options[:container] = '.article' 10 | options[:skip_links] = true 11 | 12 | options[:attribution] = <<-HTML 13 | © 2004 John Gruber
    14 | Licensed under the BSD License. 15 | HTML 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ruby:2.4.2 2 | 3 | WORKDIR /devdocs 4 | 5 | RUN apt-get update && \ 6 | apt-get -y install git nodejs && \ 7 | gem install bundler && \ 8 | rm -rf /var/lib/apt/lists/* 9 | 10 | COPY Gemfile Gemfile.lock Rakefile /devdocs/ 11 | 12 | RUN bundle install --system && \ 13 | rm -rf ~/.gem /root/.bundle/cache /usr/local/bundle/cache 14 | 15 | COPY . /devdocs 16 | 17 | RUN thor docs:download --all && \ 18 | thor assets:compile && \ 19 | rm -rf /tmp 20 | 21 | EXPOSE 9292 22 | CMD rackup -o 0.0.0.0 23 | -------------------------------------------------------------------------------- /Dockerfile-alpine: -------------------------------------------------------------------------------- 1 | FROM ruby:2.4.2-alpine 2 | 3 | WORKDIR /devdocs 4 | 5 | COPY . /devdocs 6 | 7 | RUN apk --update add nodejs build-base libstdc++ gzip git zlib-dev && \ 8 | gem install bundler && \ 9 | bundle install --system --without test && \ 10 | thor docs:download --all && \ 11 | thor assets:compile && \ 12 | apk del gzip build-base git zlib-dev && \ 13 | rm -rf /var/cache/apk/* /tmp ~/.gem /root/.bundle/cache \ 14 | /usr/local/bundle/cache /usr/lib/node_modules 15 | 16 | EXPOSE 9292 17 | CMD rackup -o 0.0.0.0 18 | -------------------------------------------------------------------------------- /lib/docs/filters/pandas/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Pandas 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('.body') 6 | 7 | if root_page? 8 | css('a[href$=".zip"]', 'a[href$=".pdf"]', '.toctree-wrapper').remove 9 | at_css('h1').content = 'pandas' 10 | end 11 | 12 | css('h2 > a.reference', 'h3 > a.reference').each do |node| 13 | node.before(node.children).remove 14 | end 15 | 16 | doc 17 | end 18 | end 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_underscore.scss: -------------------------------------------------------------------------------- 1 | ._underscore { 2 | padding-left: 1rem; 3 | 4 | > h1, > h2, .header { margin-left: -1rem; } 5 | > h2 { @extend %block-heading; } 6 | 7 | .header { 8 | display: inline-block; 9 | vertical-align: top; 10 | margin-bottom: 1em; 11 | } 12 | 13 | > p[id] { margin-top: 2rem; } 14 | > pre { margin-top: 1em; } 15 | 16 | .header + code { 17 | margin-left: 1em; 18 | @extend %label; 19 | } 20 | 21 | .alias { 22 | margin-left: 1em; 23 | font-style: italic; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/docs/filters/docker/clean_html_very_old.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Docker 3 | class CleanHtmlVeryOldFilter < Filter 4 | def call 5 | if root_page? 6 | doc.inner_html = "

    Docker Documentation

    " 7 | return doc 8 | end 9 | 10 | @doc = at_css('#content') 11 | 12 | at_css('h2').name = 'h1' unless at_css('h1') 13 | 14 | css('pre').each do |node| 15 | node.content = node.content 16 | end 17 | 18 | doc 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/filters/nginx_lua_module/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class NginxLuaModule 3 | class CleanHtmlFilter < Filter 4 | def call 5 | css('a[href="#table-of-contents"]', 'a:contains("Back to TOC")').remove 6 | 7 | css('h1, h2, h3').each do |node| 8 | node.name = node.name.sub(/\d/) { |i| i.to_i + 1 } 9 | end 10 | 11 | css('a > img').each do |node| 12 | node.parent.before(node.parent.children).remove 13 | end 14 | 15 | doc 16 | end 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /lib/docs/filters/yarn/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Yarn 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | name = at_css('h1').content 6 | 7 | unless type == 'CLI' 8 | name.prepend "#{css('.guide-nav a').to_a.index(at_css('.guide-nav a.active')) + 1}. " 9 | end 10 | 11 | name 12 | end 13 | 14 | def get_type 15 | type = at_css('.guide-nav a').content.strip 16 | type.remove! ' Introduction' 17 | type 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/storage/null_store.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class NullStore < AbstractStore 3 | def initialize 4 | super '/' 5 | end 6 | 7 | private 8 | 9 | def nil(*args) 10 | nil 11 | end 12 | 13 | alias_method :read_file, :nil 14 | alias_method :create_file, :nil 15 | alias_method :update_file, :nil 16 | alias_method :delete_file, :nil 17 | alias_method :file_exist?, :nil 18 | alias_method :file_mtime, :nil 19 | alias_method :file_size, :nil 20 | alias_method :list_files, :nil 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_love.scss: -------------------------------------------------------------------------------- 1 | ._love { 2 | @extend %simple; 3 | 4 | .note { @extend %note; } 5 | .note-green { @extend %note-green; } 6 | .note-red { @extend %note-red; } 7 | 8 | .label, dt > code { @extend %label; } 9 | .label-green { @extend %label-green; } 10 | .label-red { @extend %label-red; } 11 | 12 | .smwtable { width: 100%; } 13 | .smwtable td:nth-last-child(2), .smwtable td:last-child { width: 2.5em; } 14 | 15 | .cell-green { background: $noteGreenBackground; } 16 | .cell-red { background: $noteRedBackground; } 17 | } 18 | -------------------------------------------------------------------------------- /lib/docs/filters/mdn/contribute_link.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Mdn 3 | class ContributeLinkFilter < Filter 4 | def call 5 | return html if current_url.host != 'developer.mozilla.org' 6 | 7 | html << <<-HTML.strip_heredoc 8 |
    9 |

    10 | Edit this page on MDN 11 |

    12 |
    13 | HTML 14 | 15 | html 16 | end 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /assets/javascripts/views/misc/notice.coffee: -------------------------------------------------------------------------------- 1 | class app.views.Notice extends app.View 2 | @className: '_notice' 3 | @attributes: 4 | role: 'alert' 5 | 6 | constructor: (@type, @args...) -> super 7 | 8 | init: -> 9 | @activate() 10 | return 11 | 12 | activate: -> 13 | @show() if super 14 | return 15 | 16 | deactivate: -> 17 | @hide() if super 18 | return 19 | 20 | show: -> 21 | @html @tmpl("#{@type}Notice", @args...) 22 | @prependTo app.el 23 | return 24 | 25 | hide: -> 26 | $.remove @el 27 | return 28 | -------------------------------------------------------------------------------- /assets/javascripts/views/pages/sqlite.coffee: -------------------------------------------------------------------------------- 1 | #= require views/pages/base 2 | 3 | class app.views.SqlitePage extends app.views.BasePage 4 | @events: 5 | click: 'onClick' 6 | 7 | onClick: (event) => 8 | return unless id = event.target.getAttribute('data-toggle') 9 | return unless el = @find("##{id}") 10 | $.stopEvent(event) 11 | if el.style.display == 'none' 12 | el.style.display = 'block' 13 | event.target.textContent = 'hide' 14 | else 15 | el.style.display = 'none' 16 | event.target.textContent = 'show' 17 | return 18 | -------------------------------------------------------------------------------- /lib/docs/filters/liquid/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Liquid 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('.content__area > .content') 6 | 7 | css('.home-banner', '.menu-button', '#used-by', '#used-by ~ *').remove 8 | 9 | css('.highlighter-rouge').each do |node| 10 | node.before(node.children).remove 11 | end 12 | 13 | css('pre').each do |node| 14 | node.content = node.content.strip 15 | end 16 | 17 | doc 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/scrapers/jquery/jquery.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Jquery < UrlScraper 3 | self.abstract = true 4 | self.type = 'jquery' 5 | 6 | html_filters.push 'jquery/clean_html', 'title' 7 | 8 | options[:title] = false 9 | options[:container] = '#content' 10 | options[:trailing_slash] = false 11 | options[:skip_patterns] = [/deprecated/, /category\/version/] 12 | 13 | options[:attribution] = <<-HTML 14 | © The jQuery Foundation and other contributors
    15 | Licensed under the MIT License. 16 | HTML 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /lib/docs/filters/markdown/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Markdown 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | type = nil 6 | 7 | doc.children.each_with_object [] do |node, entries| 8 | if node.name == 'h2' 9 | type = node.content.strip 10 | elsif node.name == 'h3' 11 | next if type == 'Overview' 12 | name = node.content.strip 13 | entries << [name, node['id'], type] 14 | end 15 | end 16 | end 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /test/lib/docs/filters/core/inner_html_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | require 'docs' 3 | 4 | class InnerHtmlFilterTest < MiniTest::Spec 5 | include FilterTestHelper 6 | self.filter_class = Docs::InnerHtmlFilter 7 | 8 | it "returns the document as a string" do 9 | @body = Nokogiri::HTML.fragment('

    Test

    ') 10 | assert_equal '

    Test

    ', filter_output 11 | end 12 | 13 | it "returns a valid string" do 14 | invalid_string = "\x92" 15 | @body = Nokogiri::HTML.parse(invalid_string) 16 | assert filter_output.valid_encoding? 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /lib/docs/filters/bower/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Bower 3 | class CleanHtmlFilter < Filter 4 | def call 5 | title = at_css('.page-title, .main h1') 6 | @doc = at_css('.main') 7 | doc.child.before(title) 8 | 9 | css('.site-footer').remove 10 | 11 | css('.highlight').each do |node| 12 | node.name = 'pre' 13 | node['data-language'] = node.at_css('[data-lang]')['data-lang'] 14 | node.content = node.content 15 | end 16 | 17 | doc 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/filters/erlang/pre_clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Erlang 3 | class PreCleanHtmlFilter < Filter 4 | def call 5 | css('.flipMenu li[title] > a').remove unless subpath.start_with?('erts') # perf 6 | 7 | css('.REFTYPES').each do |node| 8 | node.name = 'pre' 9 | end 10 | 11 | css('span.bold_code', 'span.code').each do |node| 12 | node.name = 'code' 13 | node.inner_html = node.inner_html.strip.gsub(/\s+/, ' ') 14 | end 15 | 16 | doc 17 | end 18 | end 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /lib/docs/scrapers/rdoc/rdoc.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Rdoc < FileScraper 3 | self.abstract = true 4 | self.type = 'rdoc' 5 | self.root_path = 'table_of_contents.html' 6 | 7 | html_filters.replace 'container', 'rdoc/container' 8 | html_filters.push 'rdoc/entries', 'rdoc/clean_html', 'title' 9 | 10 | options[:title] = false 11 | options[:skip] = %w(index.html) 12 | options[:skip_patterns] = [ 13 | /history/i, 14 | /rakefile/i, 15 | /changelog/i, 16 | /readme/i, 17 | /news/i, 18 | /license/i] 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_socketio.scss: -------------------------------------------------------------------------------- 1 | ._socketio { 2 | > h2 { @extend %block-heading; } 3 | > h3 { @extend %block-label, %label-blue; } 4 | > h2, > h3 { clear: both; } 5 | h4 { font-size: 1em; } 6 | 7 | .ezcol-one-half { 8 | margin: .5em 0 1.5em; 9 | float: left; 10 | width: 50%; 11 | padding-right: .5em; 12 | @extend %border-box; 13 | 14 | &.ezcol-last { 15 | float: right; 16 | padding: 0 0 0 .5em; 17 | } 18 | 19 | > h4 { margin: 0 0 1em; } 20 | > pre { margin: 1em 0 0; } 21 | } 22 | 23 | code { @extend %label; } 24 | } 25 | -------------------------------------------------------------------------------- /lib/docs/filters/phpunit/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Phpunit 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content 6 | end 7 | 8 | def get_type 9 | if name.in?(%w(Assertions Annotations)) 10 | name 11 | else 12 | 'Guides' 13 | end 14 | end 15 | 16 | def additional_entries 17 | return [] if type == 'Guides' 18 | 19 | css('h2').map do |node| 20 | [node.content, node['id']] 21 | end 22 | end 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /assets/javascripts/views/pages/rdoc.coffee: -------------------------------------------------------------------------------- 1 | #= require views/pages/base 2 | 3 | class app.views.RdocPage extends app.views.BasePage 4 | @events: 5 | click: 'onClick' 6 | 7 | onClick: (event) -> 8 | return unless event.target.classList.contains 'method-click-advice' 9 | $.stopEvent(event) 10 | 11 | source = $ '.method-source-code', event.target.parentNode.parentNode 12 | isShown = source.style.display is 'block' 13 | 14 | source.style.display = if isShown then 'none' else 'block' 15 | event.target.textContent = if isShown then 'Show source' else 'Hide source' 16 | -------------------------------------------------------------------------------- /lib/docs/filters/lodash/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Lodash 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | entries = [] 6 | 7 | css('.toc-container h2').each do |heading| 8 | type = heading.content.split.first 9 | 10 | heading.parent.css('a').each do |link| 11 | name = link.content 12 | name.remove! %r{\s.*} 13 | entries << [name, link['href'].remove('#'), type] 14 | end 15 | end 16 | 17 | entries 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /assets/javascripts/app/config.coffee.erb: -------------------------------------------------------------------------------- 1 | app.config = 2 | db_filename: 'db.json' 3 | default_docs: <%= App.default_docs.to_json %> 4 | docs_origin: '<%= App.docs_origin %>' 5 | env: '<%= App.environment %>' 6 | history_cache_size: 10 7 | index_filename: 'index.json' 8 | index_path: '/<%= App.docs_prefix %>' 9 | max_results: 50 10 | production_host: 'devdocs.io' 11 | search_param: 'q' 12 | sentry_dsn: '<%= App.sentry_dsn %>' 13 | version: <%= Time.now.to_i %> 14 | release: <%= Time.now.utc.httpdate.to_json %> 15 | mathml_stylesheet: '<%= App.cdn_origin %>/mathml.css' 16 | -------------------------------------------------------------------------------- /assets/javascripts/collections/types.coffee: -------------------------------------------------------------------------------- 1 | class app.collections.Types extends app.Collection 2 | @model: 'Type' 3 | 4 | groups: -> 5 | result = [] 6 | for type in @models 7 | (result[@_groupFor(type)] ||= []).push(type) 8 | result.filter (e) -> e.length > 0 9 | 10 | GUIDES_RGX = /(^|\()(guides?|tutorials?|reference|book|getting\ started|manual|examples)($|[\):])/i 11 | APPENDIX_RGX = /appendix/i 12 | 13 | _groupFor: (type) -> 14 | if GUIDES_RGX.test(type.name) 15 | 0 16 | else if APPENDIX_RGX.test(type.name) 17 | 2 18 | else 19 | 1 20 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_crystal.scss: -------------------------------------------------------------------------------- 1 | ._crystal { 2 | @extend %simple; 3 | 4 | .signature { @extend %code; } 5 | a.signature, .superclass > a { @extend %label; } 6 | 7 | .entry-detail { margin-top: 1em; } 8 | .view-source { float: right; } 9 | 10 | .superclass-hierarchy { 11 | list-style: none; 12 | padding: 0; 13 | overflow: hidden; 14 | } 15 | 16 | li.superclass { 17 | float: left; 18 | margin: 0 .5em 0 0; 19 | padding: 0; 20 | } 21 | 22 | li.superclass + li.superclass:before { 23 | content: '<'; 24 | margin-right: .5em; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/docs/core/instrumentable.rb: -------------------------------------------------------------------------------- 1 | require 'active_support/notifications' 2 | 3 | module Docs 4 | module Instrumentable 5 | def self.extended(base) 6 | base.send :extend, Methods 7 | end 8 | 9 | def self.included(base) 10 | base.send :include, Methods 11 | end 12 | 13 | module Methods 14 | def instrument(*args, &block) 15 | ActiveSupport::Notifications.instrument(*args, &block) 16 | end 17 | 18 | def subscribe(*args, &block) 19 | ActiveSupport::Notifications.subscribe(*args, &block) 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /assets/javascripts/templates/notice_tmpl.coffee: -------------------------------------------------------------------------------- 1 | notice = (text) -> """

    #{text}

    """ 2 | 3 | app.templates.singleDocNotice = (doc) -> 4 | notice """ You're browsing the #{doc.fullName} documentation. To browse all docs, go to 5 | #{app.config.production_host} (or press esc). """ 6 | 7 | app.templates.disabledDocNotice = -> 8 | notice """ This documentation is disabled. 9 | To enable it, go to Preferences. """ 10 | -------------------------------------------------------------------------------- /lib/docs/filters/async/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Async 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | type = nil 6 | entries = [] 7 | 8 | css('.nav.methods li').each do |node| 9 | if node['class'] == 'toc-header' 10 | type = node.content 11 | else 12 | name = node.content 13 | id = node.at_css('a')['href'].remove('#') 14 | entries << [name, id, type] 15 | end 16 | end 17 | 18 | entries 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/scrapers/modernizr.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Modernizr < UrlScraper 3 | self.name = 'Modernizr' 4 | self.type = 'modernizr' 5 | self.release = '3.5.0' 6 | self.base_url = 'https://modernizr.com/docs/' 7 | 8 | html_filters.push 'modernizr/entries', 'modernizr/clean_html', 'title' 9 | 10 | options[:title] = 'Modernizr' 11 | options[:container] = '#main' 12 | options[:skip_links] = true 13 | 14 | options[:attribution] = <<-HTML 15 | © 2009–2017 The Modernizr team
    16 | Licensed under the MIT License. 17 | HTML 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /assets/javascripts/views/content/static_page.coffee: -------------------------------------------------------------------------------- 1 | class app.views.StaticPage extends app.View 2 | @className: '_static' 3 | 4 | @titles: 5 | about: 'About' 6 | news: 'News' 7 | help: 'User Guide' 8 | notFound: '404' 9 | 10 | deactivate: -> 11 | if super 12 | @empty() 13 | @page = null 14 | return 15 | 16 | render: (page) -> 17 | @page = page 18 | @html @tmpl("#{@page}Page") 19 | return 20 | 21 | getTitle: -> 22 | @constructor.titles[@page] 23 | 24 | onRoute: (context) -> 25 | @render context.page or 'notFound' 26 | return 27 | -------------------------------------------------------------------------------- /lib/docs/filters/bower/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Bower 3 | class EntriesFilter < Docs::EntriesFilter 4 | ENTRIES_TYPE_BY_SLUG = { 5 | 'api' => 'Commands' 6 | } 7 | 8 | def get_name 9 | at_css('h1').content 10 | end 11 | 12 | def get_type 13 | 'Guides' 14 | end 15 | 16 | def additional_entries 17 | return [] unless type = ENTRIES_TYPE_BY_SLUG[slug] 18 | 19 | css('#commands + p + ul a').map do |node| 20 | [node.content, node['href'].remove('#'), type] 21 | end 22 | end 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /lib/docs/filters/clojure/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Clojure 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | slug.remove('-api') 6 | end 7 | 8 | def get_type 9 | 'Namespaces' 10 | end 11 | 12 | def additional_entries 13 | css(".toc-entry-anchor[href^='##{self.name}']").map do |node| 14 | name = node.content 15 | id = node['href'].remove('#') 16 | type = name == 'clojure.core' ? id.split('/').first : self.name 17 | [name, id, type] 18 | end 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/filters/vagrant/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Vagrant 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('#inner') 6 | 7 | css('hr', 'a.anchor').remove 8 | 9 | css('.alert').each do |node| 10 | node.name = 'blockquote' 11 | end 12 | 13 | css('pre').each do |node| 14 | if language = node['class'][/(json|shell|ruby)/, 1] 15 | node['data-language'] = language 16 | end 17 | node.content = node.content 18 | end 19 | 20 | doc 21 | end 22 | end 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /lib/docs/scrapers/ramda.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Ramda < UrlScraper 3 | self.type = 'ramda' 4 | self.release = '0.24.1' 5 | self.base_url = "http://ramdajs.com/#{release}/docs/" 6 | self.links = { 7 | home: 'http://ramdajs.com/', 8 | code: 'https://github.com/ramda/ramda/' 9 | } 10 | 11 | html_filters.push 'ramda/entries', 'ramda/clean_html', 'title' 12 | 13 | options[:title] = 'Ramda' 14 | options[:attribution] = <<-HTML 15 | © 2013–2016 Scott Sauyet and Michael Hurley
    16 | Licensed under the MIT License. 17 | HTML 18 | end 19 | end 20 | 21 | -------------------------------------------------------------------------------- /lib/docs/scrapers/rdoc/minitest.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Minitest < Rdoc 3 | self.name = 'Ruby / Minitest' 4 | self.slug = 'minitest' 5 | self.release = '5.10.3' 6 | self.dir = '/Users/Thibaut/DevDocs/Docs/RDoc/Minitest' # rake docs 7 | self.links = { 8 | code: 'https://github.com/seattlerb/minitest' 9 | } 10 | 11 | html_filters.replace 'rdoc/entries', 'minitest/entries' 12 | 13 | options[:root_title] = 'Minitest' 14 | 15 | options[:attribution] = <<-HTML 16 | © Ryan Davis, seattle.rb
    17 | Licensed under the MIT License. 18 | HTML 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /lib/docs/filters/apache_pig/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class ApachePig 3 | class CleanHtmlFilter < Filter 4 | def call 5 | css('.pdflink').remove 6 | 7 | css('a[name]').each do |node| 8 | node.next_element['id'] = node['name'] 9 | end 10 | 11 | css('h2', 'h3').each do |node| 12 | node.remove_attribute 'class' 13 | end 14 | 15 | css('table').each do |node| 16 | node.remove_attribute 'cellspacing' 17 | node.remove_attribute 'cellpadding' 18 | end 19 | 20 | doc 21 | end 22 | end 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /lib/docs/filters/core/container.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class ContainerFilter < Filter 5 | class ContainerNotFound < StandardError; end 6 | 7 | def call 8 | container = context[:container] 9 | container = container.call self if container.is_a? Proc 10 | 11 | if container 12 | doc.at_css(container) || raise(ContainerNotFound, "element '#{container}' could not be found in the document, url=#{current_url}") 13 | elsif doc.name == 'document' 14 | doc.at_css('body') 15 | else 16 | doc 17 | end 18 | end 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /lib/docs/filters/git/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Git 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | if slug == 'user-manual' 6 | 'User Manual' 7 | else 8 | slug.sub '-', ' ' 9 | end 10 | end 11 | 12 | def get_type 13 | if link = at_css("#topics-dropdown a[href='#{slug}']") 14 | link.ancestors('ul').first.previous_element.content 15 | elsif slug == 'git' || slug.start_with?('git-') 16 | 'Git' 17 | else 18 | 'Miscellaneous' 19 | end 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /lib/docs/scrapers/jquery/jquery_ui.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class JqueryUi < Jquery 3 | self.name = 'jQuery UI' 4 | self.slug = 'jqueryui' 5 | self.release = '1.12.1' 6 | self.base_url = 'https://api.jqueryui.com' 7 | self.root_path = '/category/all' 8 | 9 | html_filters.insert_before 'jquery/clean_html', 'jquery_ui/entries' 10 | 11 | options[:root_title] = 'jQuery UI' 12 | options[:skip] = %w(/theming) 13 | options[:skip_patterns] += [/\A\/1\./] 14 | 15 | options[:fix_urls] = ->(url) do 16 | url.sub! 'http://api.jqueryui.com/', 'https://api.jqueryui.com/' 17 | end 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /lib/docs/scrapers/nim.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Nim < UrlScraper 3 | self.type = 'nim' 4 | self.release = '0.17.0' 5 | self.base_url = 'https://nim-lang.org/docs/' 6 | self.root_path = 'overview.html' 7 | self.links = { 8 | home: 'https://nim-lang.org/', 9 | code: 'https://github.com/nim-lang/Nim' 10 | } 11 | 12 | html_filters.push 'nim/entries', 'nim/clean_html' 13 | 14 | options[:skip] = %w(theindex.html docgen.txt) 15 | 16 | options[:attribution] = <<-HTML 17 | © 2006–2017 Andreas Rumpf
    18 | Licensed under the MIT License. 19 | HTML 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_angular.scss: -------------------------------------------------------------------------------- 1 | ._angular { 2 | @extend %simple; 3 | 4 | .pre-title { @extend %pre-heading; } 5 | 6 | .breadcrumbs { @extend %note; } 7 | .banner { @extend %note-green; } 8 | code.stable { @extend %label-green; } 9 | code.experimental { @extend %label-orange; } 10 | code.deprecated { @extend %label-red; } 11 | .alert.is-important { @extend %note-red; } 12 | .alert.is-helpful, .breadcrumbs { @extend %note-blue; } 13 | 14 | .breadcrumbs { padding-left: 2em; } 15 | 16 | img { margin: 1em 0; } 17 | 18 | .location-badge { 19 | font-style: italic; 20 | text-align: right; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/docs/scrapers/async.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Async < UrlScraper 3 | self.type = 'async' 4 | self.release = '2.5.0' 5 | self.base_url = 'https://caolan.github.io/async/' 6 | self.root_path = 'docs.html' 7 | self.links = { 8 | home: 'https://caolan.github.io/async/', 9 | code: 'https://github.com/caolan/async' 10 | } 11 | 12 | html_filters.push 'async/entries', 'async/clean_html' 13 | 14 | options[:skip_links] = true 15 | 16 | options[:attribution] = <<-HTML 17 | © 2010–2017 Caolan McMahon
    18 | Licensed under the MIT License. 19 | HTML 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/filters/yii/entries_v1.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Yii 3 | class EntriesV1Filter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content.strip 6 | end 7 | 8 | def get_type 9 | css('.summaryTable td').first.content 10 | end 11 | 12 | def additional_entries 13 | css('.detailHeader').inject [] do |entries, node| 14 | name = node.child.content.strip 15 | name.prepend self.name + (node.next_element.content.include?('public static') ? '::' : '->') 16 | entries << [name, node['id']] 17 | end 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/filters/core/clean_html.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module Docs 4 | class CleanHtmlFilter < Filter 5 | def call 6 | css('script', 'style', 'link').remove 7 | xpath('descendant::comment()').remove 8 | xpath('./text()', './/text()[not(ancestor::pre) and not(ancestor::code) and not(ancestor::div[contains(concat(" ", normalize-space(@class), " "), " prism ")])]').each do |node| 9 | content = node.content 10 | next unless content.valid_encoding? 11 | content.gsub! %r{[[:space:]]+}, ' ' 12 | node.content = content 13 | end 14 | doc 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /lib/docs/filters/php/internal_urls.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Php 3 | class InternalUrlsFilter < Filter 4 | def call 5 | return doc if context[:fixed_internal_urls] 6 | 7 | if subpath.start_with?('book.') || subpath.start_with?('class.') 8 | result[:internal_urls] = internal_urls 9 | end 10 | 11 | doc 12 | end 13 | 14 | def internal_urls 15 | css('.book a', '.chunklist a').inject [] do |urls, link| 16 | urls << link['href'] if link.next.try(:text?) && link['href'].exclude?('ref.pdo-') 17 | urls 18 | end 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /assets/stylesheets/components/_app.scss: -------------------------------------------------------------------------------- 1 | html._booting { background: $contentBackground; } 2 | body._max-width { background: none; } 3 | html._booting body._max-width { background: $documentBackground; } 4 | 5 | ._app { 6 | position: relative; 7 | z-index: 1; 8 | height: 100%; 9 | overflow: hidden; 10 | -webkit-transition: opacity .2s; 11 | transition: opacity .2s; 12 | @extend %border-box; 13 | 14 | ._booting & { opacity: 0; } 15 | 16 | ._max-width & { 17 | margin: 0 auto; 18 | max-width: $maxWidth; 19 | background: $contentBackground; 20 | box-shadow: 1px 0 $headerBorder, -1px 0 $headerBorder; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/docs/filters/immutable/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Immutable 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | entries = [] 6 | type = nil 7 | 8 | css('*').each do |node| 9 | if node.name == 'h1' 10 | name = node.content 11 | type = node.content.split('.').first 12 | entries << [name, node['id'], type] 13 | elsif node.name == 'h3' 14 | name = node.content 15 | entries << [name, node['id'], type] 16 | end 17 | end 18 | 19 | entries 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /lib/docs/filters/nginx_lua_module/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class NginxLuaModule 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | entries = [] 6 | 7 | css('#directives + ul > li > a').each do |node| 8 | entries << [node.content, node['href'].remove('#'), 'Directives'] 9 | end 10 | 11 | css('#nginx-api-for-lua + ul > li > a').each do |node| 12 | next if node.content == 'Introduction' 13 | entries << [node.content, node['href'].remove('#'), 'Nginx API for Lua'] 14 | end 15 | 16 | entries 17 | end 18 | end 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /lib/docs/scrapers/jasmine.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Jasmine < UrlScraper 3 | self.type = 'jasmine' 4 | self.release = '2.8.0' 5 | self.base_url = 'https://jasmine.github.io/api/2.7/' 6 | self.root_path = 'index.html' 7 | self.links = { 8 | home: 'https://jasmine.github.io/', 9 | code: 'https://github.com/jasmine/jasmine' 10 | } 11 | 12 | html_filters.push 'jasmine/clean_html', 'jasmine/entries' 13 | 14 | options[:container] = '.main-content' 15 | 16 | options[:attribution] = <<-HTML 17 | © 2008–2017 Pivotal Labs
    18 | Licensed under the MIT License. 19 | HTML 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/scrapers/jquery/jquery_core.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class JqueryCore < Jquery 3 | self.name = 'jQuery' 4 | self.release = 'up to 3.2.1' 5 | self.base_url = 'https://api.jquery.com/' 6 | self.initial_paths = %w(/index/index) 7 | 8 | html_filters.insert_before 'jquery/clean_html', 'jquery_core/entries' 9 | 10 | options[:root_title] = 'jQuery' 11 | 12 | options[:fix_urls] = ->(url) do 13 | url.sub! 'http://api.jquery.com/', 'https://api.jquery.com/' 14 | end 15 | 16 | options[:skip_patterns] += [ 17 | /h\/deferred\.reject/i, 18 | /Selectors\/odd/i, 19 | /index/i 20 | ] 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/tasks/test.thor: -------------------------------------------------------------------------------- 1 | require 'pry' 2 | 3 | class TestCLI < Thor 4 | def self.to_s 5 | 'Test' 6 | end 7 | 8 | default_command :all 9 | 10 | def initialize(*args) 11 | $LOAD_PATH.unshift 'test' 12 | super 13 | end 14 | 15 | desc 'all', 'Run all tests' 16 | def all 17 | Dir['test/**/*_test.rb'].map(&File.method(:expand_path)).each(&method(:require)) 18 | end 19 | 20 | desc 'docs', 'Run "Docs" tests' 21 | def docs 22 | Dir['test/lib/docs/**/*_test.rb'].map(&File.method(:expand_path)).each(&method(:require)) 23 | end 24 | 25 | desc 'app', 'Run "App" tests' 26 | def app 27 | require 'app_test' 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /lib/docs/filters/chai/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Chai 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content 6 | end 7 | 8 | def get_type 9 | subpath.start_with?('/guide') ? 'Guides' : name 10 | end 11 | 12 | def additional_entries 13 | css('.antiscroll-inner a').each_with_object [] do |node, entries| 14 | id = node['href'].remove('#') 15 | node.content.strip.split(' / ').uniq { |name| name.downcase }.each do |name| 16 | entries << [name, id, self.name] 17 | end 18 | end 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_meteor.scss: -------------------------------------------------------------------------------- 1 | ._meteor { 2 | @extend %simple; 3 | 4 | .note, .warning, .subtitle-page { @extend %note; } 5 | .subtitle-page { @extend %note-blue; } 6 | .warning { @extend %note-red; } 7 | 8 | dl.args { margin-left: 1rem; } 9 | dt > code { @extend %label; } 10 | 11 | .api-heading { overflow: hidden; } 12 | .api-heading > code { font-weight: $boldFontWeight; } 13 | .locus, .src-code { float: right; } 14 | .locus, .type, .src-code { margin-left: .5em; } 15 | h2 .subtext-api { margin-top: .25rem; } 16 | .locus, .subtext-api, .subtext-api > code { font-size: .75rem; } 17 | .locus, .type { color: $textColorLight; } 18 | } 19 | -------------------------------------------------------------------------------- /lib/docs/filters/chai/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Chai 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('.documentation .rendered') if at_css('.documentation .rendered') 6 | 7 | if root_page? 8 | at_css('h1').content = 'Chai Assertion Library' 9 | end 10 | 11 | css('> article', '.header').each do |node| 12 | node.before(node.children).remove 13 | end 14 | 15 | css('pre').each do |node| 16 | node.content = node.content 17 | node['data-language'] = 'javascript' 18 | end 19 | 20 | doc 21 | end 22 | end 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /lib/docs/filters/twig/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Twig 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content 6 | end 7 | 8 | def get_type 9 | if slug.start_with?('filters') 10 | 'Filters' 11 | elsif slug.start_with?('functions') 12 | 'Functions' 13 | elsif slug.start_with?('tags') 14 | 'Tags' 15 | elsif slug.start_with?('tests') 16 | 'Tests' 17 | elsif slug.start_with?('extensions') 18 | 'Extensions' 19 | else 20 | 'Miscellaneous' 21 | end 22 | end 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /lib/docs/scrapers/jest.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Jest < UrlScraper 3 | self.type = 'jest' 4 | self.release = '21.2.1' 5 | self.base_url = 'https://facebook.github.io/jest/docs/en/' 6 | self.root_path = 'getting-started.html' 7 | self.links = { 8 | home: 'https://facebook.github.io/jest/', 9 | code: 'https://github.com/facebook/jest' 10 | } 11 | 12 | html_filters.push 'jest/entries', 'jest/clean_html' 13 | 14 | options[:container] = '.docMainWrapper' 15 | 16 | options[:attribution] = <<-HTML 17 | © 2014–present Facebook Inc.
    18 | Licensed under the BSD License. 19 | HTML 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/filters/d3/entries_v3.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class D3 3 | class EntriesV3Filter < Docs::EntriesFilter 4 | def get_name 5 | File.basename(slug, '.md').gsub('-', ' ') 6 | end 7 | 8 | def get_type 9 | at_css('h6[id]') ? name : 'D3' 10 | end 11 | 12 | def additional_entries 13 | css('h6[id]').each_with_object [] do |node, entries| 14 | name = node.content.strip 15 | name.sub! %r{\(.*\z}, '()' 16 | name.sub! %r{\A(svg:\w+)\s+.+}, '\1' 17 | entries << [name, node['id']] unless name == entries.last.try(:first) 18 | end 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/scrapers/flow.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Flow < UrlScraper 3 | self.type = 'flow' 4 | self.release = '0.56.0' 5 | self.base_url = 'https://flow.org/en/docs/' 6 | self.links = { 7 | home: 'https://flow.org/', 8 | code: 'https://github.com/facebook/flow' 9 | } 10 | 11 | html_filters.push 'flow/entries', 'flow/clean_html', 'title' 12 | 13 | options[:trailing_slash] = false 14 | options[:root_title] = 'Flow' 15 | options[:skip] = %w(libs install) 16 | 17 | options[:attribution] = <<-HTML 18 | © 2013–present Facebook Inc.
    19 | Licensed under the BSD License. 20 | HTML 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright 2013-2017 Thibaut Courouble and other contributors 2 | 3 | This Source Code Form is subject to the terms of the Mozilla Public 4 | License, v. 2.0. If a copy of the MPL was not distributed with this 5 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | 7 | Please do not use the name DevDocs to endorse or promote products 8 | derived from this software without my permission, except as may be 9 | necessary to comply with the notice/attribution requirements. 10 | 11 | I also wish that any documentation file generated using this software 12 | be attributed to DevDocs. Let's be fair to all contributors by giving 13 | credit where credit's due. Thanks. -------------------------------------------------------------------------------- /lib/docs/filters/c/fix_code.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class C 3 | class FixCodeFilter < Filter 4 | def call 5 | css('div > span.source-c', 'div > span.source-cpp').each do |node| 6 | node.inner_html = node.inner_html.gsub(/
    \n?/, "\n").gsub("\n

    \n", "

    \n") 7 | node.parent.name = 'pre' 8 | node.parent['class'] = node['class'] 9 | node.parent.content = node.content 10 | end 11 | 12 | nbsp = Nokogiri::HTML(' ').text 13 | css('pre').each do |node| 14 | node.content = node.content.gsub(nbsp, ' ') 15 | end 16 | 17 | doc 18 | end 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/filters/core/apply_base_url.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class ApplyBaseUrlFilter < Filter 3 | URL_ATTRIBUTES = { 'a': 'href', 'img': 'src', 'iframe': 'src' } 4 | SCHEME_RGX = /\A[^:\/?#]+:/ 5 | 6 | def call 7 | base_url = at_css('base').try(:[], 'href') 8 | return doc unless base_url 9 | 10 | URL_ATTRIBUTES.each_pair do |tag, attribute| 11 | css(tag).each do |node| 12 | next unless value = node[attribute] 13 | next if !relative_url_string?(value) || value[0] == '/'.freeze 14 | node[attribute] = "#{base_url}#{node[attribute]}" 15 | end 16 | end 17 | 18 | doc 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /lib/docs/scrapers/bower.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Bower < UrlScraper 3 | self.name = 'Bower' 4 | self.type = 'bower' 5 | self.release = '1.8.2' 6 | self.base_url = 'https://bower.io/docs/' 7 | self.root_path = 'api' 8 | self.links = { 9 | home: 'https://bower.io/', 10 | code: 'https://github.com/bower/bower' 11 | } 12 | 13 | html_filters.push 'bower/clean_html', 'bower/entries' 14 | 15 | options[:trailing_slash] = false 16 | options[:skip] = %w(tools about) 17 | 18 | options[:attribution] = <<-HTML 19 | © 2017 Bower contributors
    20 | Licensed under the MIT License. 21 | HTML 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /lib/docs/filters/javascript/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Javascript 3 | class CleanHtmlFilter < Filter 4 | def call 5 | root_page? ? root : other 6 | doc 7 | end 8 | 9 | def root 10 | end 11 | 12 | def other 13 | # Remove "style" attribute 14 | css('.inheritsbox', '.overheadIndicator').each do |node| 15 | node.remove_attribute 'style' 16 | end 17 | 18 | # Remove
    wrapping .overheadIndicator 19 | css('div > .overheadIndicator:first-child:last-child').each do |node| 20 | node.parent.replace(node) 21 | end 22 | end 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /lib/docs/filters/modernizr/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Modernizr 3 | class CleanHtmlFilter < Filter 4 | def call 5 | css('pre').each do |node| 6 | class_name = node.at_css('code')['class'] 7 | node['data-language'] = class_name[/lang-(\w+)/, 1] if class_name 8 | node.content = node.content.strip_heredoc 9 | end 10 | 11 | css('sub').each do |node| 12 | node.before(node.children).remove 13 | end 14 | 15 | css('td:nth-child(2)').each do |node| 16 | node.name = node.previous_element.name = 'th' 17 | end 18 | 19 | doc 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /lib/docs/filters/scikit_learn/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class ScikitLearn 3 | class CleanHtmlFilter < Filter 4 | def call 5 | if root_page? 6 | at_css('h1').content = 'scikit-learn' 7 | 8 | css('.row-fluid').each do |node| 9 | html = '
    ' 10 | node.css('.span4').each do |n| 11 | html += "
    #{n.first_element_child.inner_html}
    " 12 | html += "
    #{n.last_element_child.inner_html}
    " 13 | end 14 | html += '
    ' 15 | node.replace(html) 16 | end 17 | end 18 | 19 | doc 20 | end 21 | end 22 | end 23 | end 24 | 25 | -------------------------------------------------------------------------------- /lib/docs/filters/statsmodels/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Statsmodels 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('.body', '#notebook-container') 6 | 7 | if root_page? 8 | at_css('h1').content = 'Statsmodels' 9 | at_css('#basic-documentation').remove 10 | at_css('#table-of-contents').remove 11 | at_css('#indices-and-tables').remove 12 | end 13 | 14 | css('div.cell', 'div.inner_cell', 'div.text_cell_render', 'div.input_area').each do |node| 15 | node.before(node.children).remove 16 | end 17 | 18 | doc 19 | end 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/scrapers/nokogiri2.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Nokogiri2 < Rdoc 3 | self.name = 'Nokogiri' 4 | self.slug = 'nokogiri' 5 | self.release = '1.8.1' 6 | self.dir = '/Users/Thibaut/DevDocs/Docs/RDoc/Nokogiri' 7 | 8 | html_filters.replace 'rdoc/entries', 'nokogiri2/entries' 9 | 10 | options[:root_title] = 'Nokogiri' 11 | options[:only_patterns] = [/\ANokogiri/, /\AXSD/] 12 | 13 | options[:attribution] = <<-HTML 14 | © 2008–2017 Aaron Patterson, Mike Dalessio, Charles Nutter, Sergio Arbeo
    15 | Patrick Mahoney, Yoko Harada, Akinori Musha, John Shahid
    16 | Licensed under the MIT License. 17 | HTML 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /lib/docs/scrapers/redux.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Redux < UrlScraper 3 | self.type = 'redux' 4 | self.release = '3.7.2' 5 | self.base_url = 'http://redux.js.org/docs/' 6 | self.links = { 7 | home: 'http://redux.js.org/', 8 | code: 'https://github.com/reactjs/redux/' 9 | } 10 | 11 | html_filters.push 'redux/entries', 'redux/clean_html' 12 | 13 | options[:skip] = %w(Feedback.html) 14 | 15 | options[:attribution] = <<-HTML 16 | © 2015–2017 Dan Abramov
    17 | Licensed under the MIT License. 18 | HTML 19 | 20 | stub '' do 21 | request_one('http://redux.js.org/index.html').body 22 | end 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /test/files/docs.json: -------------------------------------------------------------------------------- 1 | [{"name":"CSS","slug":"css","type":"mdn","release":null,"mtime":1420139788,"db_size":3460507},{"name":"DOM","slug":"dom","type":"mdn","release":null,"mtime":1420139789,"db_size":11399128},{"name":"DOM Events","slug":"dom_events","type":"mdn","release":null,"mtime":1420139790,"db_size":889020},{"name":"HTML","slug":"html~5","type":"mdn","version":"5","mtime":1420139791,"db_size":1835647},{"name":"HTML","slug":"html~4","type":"mdn","version":"4","mtime":1420139790,"db_size":1835646},{"name":"HTTP","slug":"http","type":"rfc","release":null,"mtime":1420139790,"db_size":183083},{"name":"JavaScript","slug":"javascript","type":"mdn","release":null,"mtime":1420139791,"db_size":4125477}] 2 | -------------------------------------------------------------------------------- /assets/javascripts/views/layout/menu.coffee: -------------------------------------------------------------------------------- 1 | class app.views.Menu extends app.View 2 | @el: '._menu' 3 | @activeClass: 'active' 4 | 5 | @events: 6 | click: 'onClick' 7 | 8 | init: -> 9 | $.on document.body, 'click', @onGlobalClick 10 | return 11 | 12 | onClick: (event) -> 13 | target = $.eventTarget(event) 14 | target.blur() if target.tagName is 'A' 15 | return 16 | 17 | onGlobalClick: (event) => 18 | return if event.which isnt 1 19 | if event.target.hasAttribute?('data-toggle-menu') 20 | @toggleClass @constructor.activeClass 21 | else if @hasClass @constructor.activeClass 22 | @removeClass @constructor.activeClass 23 | return 24 | -------------------------------------------------------------------------------- /assets/stylesheets/components/_notice.scss: -------------------------------------------------------------------------------- 1 | ._notice { 2 | position: absolute; 3 | z-index: $noticeZ; 4 | bottom: 0; 5 | left: $sidebarWidth; 6 | right: 0; 7 | height: 2.5rem; 8 | padding: 0 1.25rem; 9 | background: $noticeBackground; 10 | box-shadow: inset 0 1px $noticeBorder; 11 | 12 | @media #{$mediumScreen} { left: $sidebarMediumWidth; } 13 | 14 | ._sidebar-hidden & { left: 0; } 15 | 16 | ~ ._container { padding-bottom: 2.5rem; } 17 | } 18 | 19 | ._notice-text { 20 | display: table-cell; 21 | vertical-align: middle; 22 | margin: 0; 23 | height: 2.5rem; 24 | line-height: 1rem; 25 | font-size: .875rem; 26 | } 27 | 28 | ._notice-link { cursor: pointer; } 29 | -------------------------------------------------------------------------------- /lib/docs/subscribers/progress_bar_subscriber.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | require 'progress_bar' 4 | 5 | module Docs 6 | class ProgressBarSubscriber < Subscriber 7 | self.namespace = 'scraper' 8 | 9 | def running(event) 10 | @progress_bar = ::ProgressBar.new event.payload[:urls].length 11 | @progress_bar.write 12 | end 13 | 14 | def queued(event) 15 | @progress_bar.max += event.payload[:urls].length 16 | @progress_bar.write 17 | end 18 | 19 | def process_response(event) 20 | @progress_bar.increment! 21 | end 22 | 23 | def ignore_response(event) 24 | @progress_bar.increment! 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /assets/javascripts/templates/tip_tmpl.coffee: -------------------------------------------------------------------------------- 1 | app.templates.tipKeyNav = """ 2 |

    3 | ProTip 4 | (click to dismiss) 5 |

    6 | Hit to navigate the sidebar.
    7 | Hit space / shift space, alt ↓/↑ or shift ↓/↑ to scroll the page. 8 |

    9 | See all keyboard shortcuts 10 | """ 11 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_postgres.scss: -------------------------------------------------------------------------------- 1 | ._postgres { 2 | padding-left: 1rem; 3 | 4 | h1, h1 ~ p, h1 ~ pre, h1 ~ blockquote, h2, .NAVFOOTER { margin-left: -1rem; } 5 | h2 { @extend %block-heading; } 6 | 7 | .VARIABLELIST dt { @extend %block-label, %label-blue; } 8 | 9 | blockquote.NOTE, blockquote.IMPORTANT, blockquote.TIP, blockquote.CAUTION { @extend %note; } 10 | blockquote.TIP { @extend %note-green; } 11 | blockquote.CAUTION { @extend %note-orange; } 12 | 13 | p > code { @extend %label; } 14 | p.c2 { font-weight: $boldFontWeight; } 15 | 16 | .NAVFOOTER > table { width: 100%; } 17 | td[align=center] { text-align: center; } 18 | td[align=right] { text-align: right; } 19 | } 20 | -------------------------------------------------------------------------------- /lib/docs/scrapers/vagrant.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Vagrant < UrlScraper 3 | self.name = 'Vagrant' 4 | self.type = 'vagrant' 5 | self.release = '2.0.0' 6 | self.base_url = 'https://www.vagrantup.com/docs/' 7 | self.root_path = 'index.html' 8 | self.links = { 9 | home: 'https://www.vagrantup.com/', 10 | code: 'https://github.com/mitchellh/vagrant' 11 | } 12 | 13 | html_filters.push 'vagrant/entries', 'vagrant/clean_html' 14 | 15 | options[:skip_patterns] = [/vagrant-cloud/] 16 | 17 | options[:attribution] = <<-HTML 18 | © 2010–2017 Mitchell Hashimoto
    19 | Licensed under the MPL 2.0 License. 20 | HTML 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/scrapers/q.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Q < Github 3 | self.name = 'Q' 4 | self.release = '1.5.0' 5 | self.base_url = 'https://github.com/kriskowal/q/wiki/' 6 | self.root_path = 'API-Reference' 7 | self.links = { 8 | home: 'http://documentup.com/kriskowal/q/', 9 | code: 'https://github.com/kriskowal/q' 10 | } 11 | 12 | html_filters.push 'q/entries', 'title' 13 | 14 | options[:container] = '.markdown-body' 15 | options[:title] = 'Q' 16 | options[:skip_links] = true 17 | 18 | options[:attribution] = <<-HTML 19 | © 2009–2017 Kristopher Michael Kowal
    20 | Licensed under the MIT License. 21 | HTML 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /lib/docs/scrapers/underscore.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Underscore < UrlScraper 3 | self.name = 'Underscore.js' 4 | self.slug = 'underscore' 5 | self.type = 'underscore' 6 | self.release = '1.8.3' 7 | self.base_url = 'http://underscorejs.org' 8 | 9 | html_filters.push 'underscore/clean_html', 'underscore/entries', 'title' 10 | 11 | options[:title] = 'Underscore.js' 12 | options[:container] = '#documentation' 13 | options[:skip_links] = true 14 | 15 | options[:attribution] = <<-HTML 16 | © 2009–2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
    17 | Licensed under the MIT License. 18 | HTML 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /lib/docs/scrapers/mocha.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Mocha < UrlScraper 3 | self.type = 'mocha' 4 | self.release = '3.5.0' 5 | self.base_url = 'https://mochajs.org/' 6 | self.links = { 7 | home: 'https://mochajs.org/', 8 | code: 'https://github.com/mochajs/mocha' 9 | } 10 | 11 | html_filters.push 'mocha/clean_html', 'mocha/entries', 'title' 12 | 13 | options[:container] = '#content' 14 | options[:title] = 'mocha' 15 | options[:skip_links] = true 16 | 17 | options[:attribution] = <<-HTML 18 | © 2016 JS Foundation and contributors
    19 | Licensed under the Creative Commons Attribution 4.0 International License. 20 | HTML 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /assets/javascripts/application.js.coffee: -------------------------------------------------------------------------------- 1 | #= require_tree ./vendor 2 | 3 | #= require lib/license 4 | #= require_tree ./lib 5 | 6 | #= require app/app 7 | #= require app/config 8 | #= require_tree ./app 9 | 10 | #= require collections/collection 11 | #= require_tree ./collections 12 | 13 | #= require models/model 14 | #= require_tree ./models 15 | 16 | #= require views/view 17 | #= require_tree ./views 18 | 19 | #= require_tree ./templates 20 | 21 | #= require tracking 22 | 23 | init = -> 24 | document.removeEventListener 'DOMContentLoaded', init, false 25 | 26 | if document.body 27 | app.init() 28 | else 29 | setTimeout(init, 42) 30 | 31 | document.addEventListener 'DOMContentLoaded', init, false 32 | -------------------------------------------------------------------------------- /lib/docs/core/parser.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Parser 3 | attr_reader :title, :html 4 | 5 | def initialize(content) 6 | @content = content 7 | @html = document? ? parse_as_document : parse_as_fragment 8 | end 9 | 10 | private 11 | 12 | DOCUMENT_RGX = /\A(?:\s|(?:))*<(?:\!doctype|html)/i 13 | 14 | def document? 15 | @content =~ DOCUMENT_RGX 16 | end 17 | 18 | def parse_as_document 19 | document = Nokogiri::HTML.parse @content, nil, 'UTF-8' 20 | @title = document.at_css('title').try(:content) 21 | document 22 | end 23 | 24 | def parse_as_fragment 25 | Nokogiri::HTML.fragment @content, 'UTF-8' 26 | end 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /lib/docs/filters/pug/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Pug 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content 6 | end 7 | 8 | def get_type 9 | if subpath.start_with?('language') 10 | 'Language' 11 | elsif subpath.start_with?('api') 12 | 'API' 13 | end 14 | end 15 | 16 | def additional_entries 17 | return [] unless slug == 'api/reference' 18 | 19 | css('h3').each_with_object [] do |node, entries| 20 | name = node.content 21 | name.sub! %r{\(.*\)}, '()' 22 | entries << [name, node['id']] 23 | end 24 | end 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /test/lib/docs/filters/core/clean_text_test.rb: -------------------------------------------------------------------------------- 1 | require 'test_helper' 2 | require 'docs' 3 | 4 | class CleanTextFilterTest < MiniTest::Spec 5 | include FilterTestHelper 6 | self.filter_class = Docs::CleanTextFilter 7 | 8 | it "removes empty nodes" do 9 | @body = "

    \u00A0\n\r

    " 10 | assert_empty filter_output 11 | end 12 | 13 | it "doesn't remove empty " 15 | assert_equal @body, filter_output 16 | end 17 | 18 | it "strips leading and trailing whitespace" do 19 | @body = "\n\r Test \r\n" 20 | assert_equal 'Test', filter_output 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/filters/modernizr/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Modernizr 3 | class EntriesFilter < Docs::EntriesFilter 4 | def additional_entries 5 | entries = [] 6 | 7 | css('h3[id]').each do |node| 8 | next unless name = node.content.strip[/\AModernizr\..+/] 9 | entries << [name, node['id'], 'Modernizr'] 10 | end 11 | 12 | css('h2[id="features"] + table td:nth-child(2) b').each do |node| 13 | node['id'] = node.content.parameterize 14 | node.content.split(',').each do |name| 15 | entries << [name, node['id'], 'Features'] 16 | end 17 | end 18 | 19 | entries 20 | end 21 | end 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /lib/docs/scrapers/liquid.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Liquid < UrlScraper 3 | self.name = 'Liquid' 4 | self.type = 'liquid' 5 | self.base_url = 'https://shopify.github.io/liquid/' 6 | self.release = '4.0.0' 7 | self.links = { 8 | home: 'https://shopify.github.io/liquid/', 9 | code: 'https://github.com/Shopify/liquid' 10 | } 11 | 12 | html_filters.push 'liquid/entries', 'liquid/clean_html', 'title' 13 | 14 | options[:title] = false 15 | options[:root_title] = 'Liquid' 16 | options[:trailing_slash] = true 17 | 18 | options[:attribution] = <<-HTML 19 | © 2005, 2006 Tobias Luetke
    20 | Licensed under the MIT License. 21 | HTML 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_node.scss: -------------------------------------------------------------------------------- 1 | ._node { 2 | .api_stability { clear: both; } 3 | .api_stability_0, .api_stability_1 { @extend %note, %note-red; } 4 | .api_stability_2 { @extend %note; } 5 | .api_stability_3, .api_stability_4 { @extend %note, %note-green; } 6 | .api_stability_5 { @extend %note, %note-blue; } 7 | 8 | > h2 { @extend %block-heading; } 9 | > h3 { @extend %block-label, %label-blue; } 10 | > h4 { @extend %block-label; } 11 | > h2 + h2, > h3 + h3 { margin-top: 0; } 12 | 13 | p > code, li > code, .type { 14 | white-space: normal; 15 | @extend %label; 16 | } 17 | 18 | .api_metadata { 19 | float: right; 20 | margin: 0 0 1em 1em; 21 | @extend %label; 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /lib/docs/filters/github/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Github 3 | class CleanHtmlFilter < Filter 4 | def call 5 | css('.anchor').each do |node| 6 | node.parent['id'] = node['href'].remove('#') 7 | node.remove 8 | end 9 | 10 | css('.highlight > pre').each do |node| 11 | node['data-language'] = node.parent['class'][/highlight-source-(\w+)/, 1] 12 | node.content = node.content.strip_heredoc.gsub(' ', ' ') 13 | node.parent.replace(node) 14 | end 15 | 16 | css('pre > code').each do |node| 17 | node.before(node.children).remove 18 | end 19 | 20 | doc 21 | end 22 | end 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /lib/docs/scrapers/yarn.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Yarn < UrlScraper 3 | self.type = 'yarn' 4 | self.release = '1.1.0' 5 | self.base_url = 'https://yarnpkg.com/en/docs/' 6 | self.links = { 7 | home: 'https://yarnpkg.com/', 8 | code: 'https://github.com/yarnpkg/yarn' 9 | } 10 | 11 | html_filters.push 'yarn/entries', 'yarn/clean_html', 'title' 12 | 13 | options[:root_title] = 'Yarn' 14 | options[:trailing_slash] = false 15 | 16 | options[:skip] = %w(nightly) 17 | options[:skip_patterns] = [/\Aorg\//] 18 | 19 | options[:attribution] = <<-HTML 20 | © 2016–2017 Yarn Contributors
    21 | Licensed under the BSD License. 22 | HTML 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /lib/docs/filters/sinon/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Sinon 3 | class CleanHtmlFilter < Filter 4 | def call 5 | if root_page? 6 | at_css('h1').content = 'Sinon.JS' 7 | else 8 | css('h1').each do |node| 9 | node.content = node.content.remove(' - Sinon.JS') 10 | end 11 | end 12 | 13 | css('.post', '.post-header', '.post-content', 'pre code').each do |node| 14 | node.before(node.children).remove 15 | end 16 | 17 | css('h1 + h1').remove 18 | 19 | css('pre').each do |node| 20 | node['data-language'] = 'javascript' 21 | end 22 | 23 | doc 24 | end 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /lib/docs/scrapers/codeception.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Codeception < UrlScraper 3 | self.name = 'Codeception' 4 | self.type = 'codeception' 5 | self.release = '2.3.5' 6 | self.base_url = 'http://codeception.com/docs/' 7 | self.root_path = 'index.html' 8 | self.links = { 9 | home: 'http://codeception.com/', 10 | code: 'https://github.com/codeception/codeception' 11 | } 12 | 13 | html_filters.push 'codeception/entries', 'codeception/clean_html' 14 | 15 | options[:skip_patterns] = [/install/] 16 | 17 | options[:attribution] = <<-HTML 18 | © 2011–2017 Michael Bodnarchuk and contributors
    19 | Licensed under the MIT License. 20 | HTML 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/scrapers/opentsdb.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Opentsdb < UrlScraper 3 | self.name = 'OpenTSDB' 4 | self.type = 'sphinx_simple' 5 | self.release = '2.3.0' 6 | self.base_url = 'http://opentsdb.net/docs/build/html/' 7 | self.root_path = 'index.html' 8 | self.links = { 9 | home: 'http://opentsdb.net/', 10 | code: 'https://github.com/OpenTSDB/opentsdb' 11 | } 12 | 13 | html_filters.push 'opentsdb/entries', 'opentsdb/clean_html' 14 | 15 | options[:skip] = %w(genindex.html search.html) 16 | 17 | options[:attribution] = <<-HTML 18 | © 2010–2016 The OpenTSDB Authors
    19 | Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses. 20 | HTML 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /lib/docs/scrapers/socketio.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Socketio < UrlScraper 3 | self.name = 'Socket.IO' 4 | self.slug = 'socketio' 5 | self.type = 'socketio' 6 | self.release = '1.4.5' 7 | self.base_url = 'http://socket.io/docs/' 8 | self.links = { 9 | home: 'http://socket.io/', 10 | code: 'https://github.com/socketio/socket.io' 11 | } 12 | 13 | html_filters.push 'socketio/clean_html', 'socketio/entries' 14 | 15 | options[:container] = '#content' 16 | options[:trailing_slash] = false 17 | options[:skip] = %w(faq) 18 | 19 | options[:attribution] = <<-HTML 20 | © 2014–2015 Automattic
    21 | Licensed under the MIT License. 22 | HTML 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /lib/docs/filters/pug/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Pug 3 | class CleanHtmlFilter < Filter 4 | def call 5 | @doc = at_css('.main') 6 | 7 | at_css('h1').content = 'Pug Documentation' if root_page? 8 | 9 | if slug == 'api/reference' 10 | at_css('.alert-info').remove 11 | end 12 | 13 | css('.header-anchor').remove 14 | 15 | css('.preview-wrapper').each do |node| 16 | node.css('pre').each do |n| 17 | node.before(n) 18 | end 19 | node.remove 20 | end 21 | 22 | css('pre').each do |node| 23 | node.content = node.content 24 | end 25 | 26 | doc 27 | end 28 | end 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /lib/docs/filters/socketio/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Socketio 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('h1').content 6 | end 7 | 8 | def get_type 9 | 'Guides' 10 | end 11 | 12 | def additional_entries 13 | return [] unless slug.end_with?('api') 14 | 15 | css('h3').each_with_object([]) do |node, entries| 16 | name = node.content 17 | name.remove! %r{\(.*} 18 | name.remove! %r{\:.*} 19 | 20 | unless entries.any? { |entry| entry[0] == name } 21 | entries << [name, node['id'], self.name.remove(' API')] 22 | end 23 | end 24 | end 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /lib/docs/scrapers/gnu.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Gnu < FileScraper 3 | self.type = 'gnu' 4 | self.root_path = 'index.html' 5 | self.abstract = 'true' 6 | 7 | html_filters.push 'gnu/clean_html', 'gnu/entries' 8 | 9 | options[:skip] = %w( 10 | GNU-Project.html 11 | Service.html 12 | ) 13 | 14 | options[:skip_patterns] = [ 15 | /Funding/, 16 | /Projects/, 17 | /Copying/, 18 | /License/, 19 | /Proposed/, 20 | /Contribut/, 21 | /Index/, 22 | /\ABug/ 23 | ] 24 | 25 | options[:attribution] = <<-HTML 26 | © Free Software Foundation
    27 | Licensed under the GNU Free Documentation License, Version 1.3. 28 | HTML 29 | end 30 | end 31 | -------------------------------------------------------------------------------- /lib/docs/filters/backbone/clean_html.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Backbone 3 | class CleanHtmlFilter < Filter 4 | def call 5 | # Remove Introduction, Upgrading, etc. 6 | while doc.child['id'] != 'Events' 7 | doc.child.remove 8 | end 9 | 10 | # Remove Examples, FAQ, etc. 11 | while doc.children.last['id'] != 'faq' 12 | doc.children.last.remove 13 | end 14 | 15 | css('#faq', '.run').remove 16 | 17 | css('tt').each do |node| 18 | node.name = 'code' 19 | end 20 | 21 | css('pre').each do |node| 22 | node['data-language'] = 'javascript' 23 | end 24 | 25 | doc 26 | end 27 | end 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /lib/docs/filters/opentsdb/entries.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Opentsdb 3 | class EntriesFilter < Docs::EntriesFilter 4 | def get_name 5 | at_css('.section > h1').content 6 | end 7 | 8 | def get_type 9 | if subpath.start_with?('api_http') 10 | 'HTTP API' 11 | elsif slug.end_with?('/index') 12 | [breadcrumbs[1], name].compact.join(': ') 13 | elsif breadcrumbs.length < 2 14 | 'Miscellaneous' 15 | else 16 | breadcrumbs[1..2].join(': ') 17 | end 18 | end 19 | 20 | def breadcrumbs 21 | @breakcrumbs ||= at_css('.related').css('li:not(.right) a').map(&:content).reject(&:blank?) 22 | end 23 | end 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /assets/stylesheets/pages/_haskell.scss: -------------------------------------------------------------------------------- 1 | ._haskell-api { 2 | > h2 { @extend %block-heading; } 3 | > h3 { @extend %block-label; } 4 | h4 { font-size: 1em; } 5 | 6 | .module + .package, p.src > .link { float: right; } 7 | 8 | .src { 9 | white-space: normal; 10 | @extend %code; 11 | } 12 | p.src { 13 | font-size: .8125rem; 14 | @extend %block-label, %label-blue; 15 | } 16 | dt.src { white-space: normal; } 17 | 18 | > .subs { margin-left: 2em; } 19 | .subs p.src { margin-top: 1em; } 20 | 21 | dt > code, .complexity, .version { @extend %label; } 22 | .complexity, .version { @extend %label-green; } 23 | 24 | table { margin: 1em 0; } 25 | td > pre { margin: 0; } 26 | 27 | .warning { @extend %note; } 28 | } 29 | -------------------------------------------------------------------------------- /lib/docs/scrapers/git.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class Git < UrlScraper 3 | self.type = 'git' 4 | self.release = '2.14.1' 5 | self.base_url = 'https://git-scm.com/docs' 6 | self.initial_paths = %w(/git.html) 7 | self.links = { 8 | home: 'https://git-scm.com/', 9 | code: 'https://github.com/git/git' 10 | } 11 | 12 | html_filters.push 'git/entries', 'git/clean_html' 13 | 14 | options[:container] = '#content' 15 | options[:only_patterns] = [/\A\/[^\/]+\z/] 16 | options[:skip] = %w(/howto-index.html) 17 | 18 | options[:attribution] = <<-HTML 19 | © 2005–2017 Linus Torvalds and others
    20 | Licensed under the GNU General Public License version 2. 21 | HTML 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /lib/docs/scrapers/jquery/jquery_mobile.rb: -------------------------------------------------------------------------------- 1 | module Docs 2 | class JqueryMobile < Jquery 3 | self.name = 'jQuery Mobile' 4 | self.slug = 'jquerymobile' 5 | self.release = '1.4.5' 6 | self.base_url = 'https://api.jquerymobile.com' 7 | self.root_path = '/category/all' 8 | 9 | html_filters.insert_before 'jquery/clean_html', 'jquery_mobile/entries' 10 | 11 | options[:root_title] = 'jQuery Mobile' 12 | options[:skip] = %w(/tabs /theme) 13 | options[:skip_patterns] += [/\A\/icons/, /cdn-cgi/i] 14 | options[:replace_paths] = { '/select/' => '/selectmenu' } 15 | 16 | options[:fix_urls] = ->(url) do 17 | url.sub! 'http://api.jquerymobile.com/', 'https://api.jquerymobile.com/' 18 | end 19 | end 20 | end 21 | --------------------------------------------------------------------------------