Skip to content

Commit

Permalink
Merge branch 'master' into emilekm-master
Browse files Browse the repository at this point in the history
  • Loading branch information
jmerle committed Aug 20, 2019
2 parents cc87443 + fef9589 commit 14049da
Show file tree
Hide file tree
Showing 315 changed files with 6,598 additions and 2,913 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@ indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false
9 changes: 4 additions & 5 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ Want to contribute? Great. Please review the following guidelines carefully and
## Requesting new features

1. Search for similar feature requests; someone may have already requested it.
2. Make sure your feature fits DevDocs's [vision](https://github.com/freeCodeCamp/devdocs/blob/master/README.md#vision).
2. Make sure your feature fits DevDocs's [vision](../README.md#vision).
3. Provide a clear and detailed explanation of the feature and why it's important to add it.

## Requesting new documentations

Please don't open issues to request new documentations.
Please don't open issues to request new documentations.
Use the [Trello board](https://trello.com/b/6BmTulfx/devdocs-documentation) where everyone can vote.

## Contributing code and features
Expand All @@ -55,13 +55,12 @@ In addition to the [guidelines for contributing code](#contributing-code-and-fea
* Remove as much content and HTML markup as possible, particularly content not associated with any entry (e.g. introduction, changelog, etc.).
* Names must be as short as possible and unique across the documentation.
* The number of types (categories) should ideally be less than 100.
* Don't modify the icon sprite. I'll do it after your pull request is merged.

## Updating existing documentations

Please don't submit a pull request updating the version number of a documentation, unless a change is required in the scraper and you've verified that it works.
Please don't submit a pull request updating only the version number and/or the attribution of a documentation. Do submit a pull request if a bigger change is required in the scraper and you've verified that it works.

To ask that an existing documentation be updated, please use the [Trello board](https://trello.com/c/2B0hmW7M/52-request-updates-here).
To ask that an existing documentation be updated, first check the latest [documentation versions report](https://github.com/freeCodeCamp/devdocs/issues?utf8=%E2%9C%93&q=Documentation+versions+report+is%3Aissue+author%3Adevdocs-bot+sort%3Acreated-desc). Only create an issue if the documentation has been wrongly marked as up-to-date.

## Coding conventions

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
Please read the contributing guidelines before opening an issue:
https://github.com/freeCodeCamp/devdocs/blob/master/.github/CONTRIBUTING.md
To request a new documentation, or an update of an existing documentation, go here:
Go here to request a new documentation:
https://trello.com/b/6BmTulfx/devdocs-documentation
-->
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.DS_Store
.bundle
log
tmp
public/assets
public/fonts
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.6.0
2.6.3
3 changes: 1 addition & 2 deletions .slugignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
public/icons
test
test
21 changes: 20 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,26 @@
language: ruby

addons:
apt:
packages:
- libcurl4-openssl-dev

cache: bundler

before_script:
before_install:
- "echo 'gem: --no-document' > ~/.gemrc"
- gem update --system
- gem install bundler

script:
- if [ "$TRAVIS_EVENT_TYPE" != "cron" ]; then bundle exec rake; fi
- if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then bundle exec thor updates:check --github-token $GH_TOKEN --upload; fi

deploy:
provider: heroku
app: devdocs
on:
branch: master
condition: $TRAVIS_EVENT_TYPE != cron
api_key:
secure: "4p1klvWJZSOImzFcKOduILjP93hlOlAhceWlYMKS4tU+TCFE8qTBzdKdFPSCsCgjB+YR9pBss+L0lJpVVMjSwFHXqpKe6EeUSltO2k7DFHfW7kXLUM/L0AfqXz+YXk76XUyZMhvOEbldPfaMaj10e8vgDOQCSHABDyK/4CU+hnI="
2 changes: 2 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

> Our Code of Conduct is available here: <https://code-of-conduct.freecodecamp.org/>
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
FROM ruby:2.6.0
FROM ruby:2.6.3

ENV LANG=C.UTF-8
ENV ENABLE_SERVICE_WORKER=true

WORKDIR /devdocs

RUN apt-get update && \
apt-get -y install git nodejs && \
apt-get -y install git nodejs libcurl4 && \
gem install bundler && \
rm -rf /var/lib/apt/lists/*

Expand Down
5 changes: 3 additions & 2 deletions Dockerfile-alpine
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
FROM ruby:2.6.0-alpine
FROM ruby:2.6.3-alpine

ENV LANG=C.UTF-8
ENV ENABLE_SERVICE_WORKER=true

WORKDIR /devdocs

COPY . /devdocs

RUN apk --update add nodejs build-base libstdc++ gzip git zlib-dev && \
RUN apk --update add nodejs build-base libstdc++ gzip git zlib-dev libcurl && \
gem install bundler && \
bundle install --system --without test && \
thor docs:download --all && \
Expand Down
5 changes: 4 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
source 'https://rubygems.org'
ruby '2.6.0'
ruby '2.6.3'

gem 'rake'
gem 'thor'
Expand All @@ -22,6 +22,8 @@ group :app do
gem 'browser'
gem 'sass'
gem 'coffee-script'
gem 'chunky_png'
gem 'sprockets-sass'
end

group :production do
Expand All @@ -40,6 +42,7 @@ group :docs do
gem 'unix_utils', require: false
gem 'tty-pager', require: false
gem 'net-sftp', '>= 2.1.3.rc2', require: false
gem 'terminal-table', require: false
end

group :test do
Expand Down
70 changes: 39 additions & 31 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,69 +1,70 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (5.2.2)
activesupport (5.2.3)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
backports (3.11.4)
better_errors (2.5.0)
backports (3.15.0)
better_errors (2.5.1)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
rack (>= 0.9.0)
browser (2.5.3)
browser (2.6.1)
chunky_png (1.3.11)
coderay (1.1.2)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.12.2)
concurrent-ruby (1.1.4)
concurrent-ruby (1.1.5)
daemons (1.3.1)
erubi (1.8.0)
ethon (0.12.0)
ffi (>= 1.3.0)
eventmachine (1.2.7)
execjs (2.7.0)
exifr (1.3.5)
ffi (1.10.0)
fspath (3.1.0)
highline (2.0.0)
html-pipeline (2.10.0)
exifr (1.3.6)
ffi (1.11.1)
fspath (3.1.2)
highline (2.0.2)
html-pipeline (2.11.1)
activesupport (>= 2)
nokogiri (>= 1.4)
i18n (1.5.2)
i18n (1.6.0)
concurrent-ruby (~> 1.0)
image_optim (0.26.3)
image_optim (0.26.5)
exifr (~> 1.2, >= 1.2.2)
fspath (~> 3.0)
image_size (>= 1.5, < 3)
in_threads (~> 1.3)
progress (~> 3.0, >= 3.0.1)
image_optim_pack (0.5.1.20190105)
image_optim_pack (0.5.6)
fspath (>= 2.1, < 4)
image_optim (~> 0.19)
image_size (2.0.0)
in_threads (1.5.1)
image_size (2.0.2)
in_threads (1.5.3)
method_source (0.9.2)
mini_portile2 (2.4.0)
minitest (5.11.3)
multi_json (1.13.1)
mustermann (1.0.3)
net-sftp (3.0.0.beta1)
net-ssh (>= 5.0.0, < 6.0.0)
net-ssh (5.1.0)
newrelic_rpm (5.7.0.350)
nokogiri (1.10.1)
net-ssh (5.2.0)
newrelic_rpm (6.5.0.357)
nokogiri (1.10.3)
mini_portile2 (~> 2.4.0)
options (2.3.2)
progress (3.5.0)
progress (3.5.2)
progress_bar (1.3.0)
highline (>= 1.6, < 3)
options (~> 2.3.0)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
rack (2.0.6)
rack (2.0.7)
rack-protection (2.0.5)
rack
rack-ssl-enforcer (0.2.9)
Expand All @@ -74,7 +75,7 @@ GEM
rb-inotify (0.10.0)
ffi (~> 1.0)
rr (1.2.1)
sass (3.7.3)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
Expand All @@ -96,31 +97,35 @@ GEM
rack (> 1, < 3)
sprockets-helpers (1.2.1)
sprockets (>= 2.2)
strings (0.1.4)
strings-ansi (~> 0.1.0)
unicode-display_width (~> 1.4.0)
unicode_utils (~> 1.4.0)
sprockets-sass (2.0.0.beta2)
sprockets (>= 2.0, < 4.0)
strings (0.1.5)
strings-ansi (~> 0.1)
unicode-display_width (~> 1.5)
unicode_utils (~> 1.4)
strings-ansi (0.1.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thin (1.7.2)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (0.20.3)
thread_safe (0.3.6)
tilt (2.0.9)
tty-pager (0.12.0)
tty-pager (0.12.1)
strings (~> 0.1.4)
tty-screen (~> 0.6)
tty-which (~> 0.4)
tty-screen (0.6.5)
tty-which (0.4.0)
tty-screen (0.7.0)
tty-which (0.4.1)
typhoeus (1.3.1)
ethon (>= 0.9.0)
tzinfo (1.2.5)
thread_safe (~> 0.1)
uglifier (4.1.20)
execjs (>= 0.3.0, < 3)
unicode-display_width (1.4.1)
unicode-display_width (1.6.0)
unicode_utils (1.4.0)
unix_utils (0.0.15)
yajl-ruby (1.4.1)
Expand All @@ -132,6 +137,7 @@ DEPENDENCIES
activesupport (~> 5.2)
better_errors
browser
chunky_png
coffee-script
erubi
html-pipeline
Expand All @@ -153,6 +159,8 @@ DEPENDENCIES
sinatra-contrib
sprockets
sprockets-helpers
sprockets-sass
terminal-table
thin
thor
tty-pager
Expand All @@ -162,7 +170,7 @@ DEPENDENCIES
yajl-ruby

RUBY VERSION
ruby 2.6.0p0
ruby 2.6.3p62

BUNDLED WITH
1.17.2
2.0.2
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,14 @@ The web app is all client-side JavaScript, written in [CoffeeScript](http://coff

Many of the code's design decisions were driven by the fact that the app uses XHR to load content directly into the main frame. This includes stripping the original documents of most of their HTML markup (e.g. scripts and stylesheets) to avoid polluting the main frame, and prefixing all CSS class names with an underscore to prevent conflicts.

Another driving factor is performance and the fact that everything happens in the browser. `applicationCache` (which comes with its own set of constraints) and `localStorage` are used to speed up the boot time, while memory consumption is kept in check by allowing the user to pick his/her own set of documentations. The search algorithm is kept simple because it needs to be fast even searching through 100,000 strings.
Another driving factor is performance and the fact that everything happens in the browser. A service worker (which comes with its own set of constraints) and `localStorage` are used to speed up the boot time, while memory consumption is kept in check by allowing the user to pick his/her own set of documentations. The search algorithm is kept simple because it needs to be fast even searching through 100,000 strings.

DevDocs being a developer tool, the browser requirements are high:

* Recent versions of Firefox, Chrome, or Opera
* Safari 9.1+
* Edge 16+
* iOS 10+
* Safari 11.1+
* Edge 17+
* iOS 11.3+

This allows the code to take advantage of the latest DOM and HTML5 APIs and make developing DevDocs a lot more fun!

Expand All @@ -89,7 +89,7 @@ These modifications are applied via a set of filters using the [HTML::Pipeline](

The end result is a set of normalized HTML partials and two JSON files (index + offline data). Because the index files are loaded separately by the [app](#app) following the user's preferences, the scraper also creates a JSON manifest file containing information about the documentations currently available on the system (such as their name, version, update date, etc.).

More information about [scrapers](https://github.com/freeCodeCamp/devdocs/blob/master/docs/Scraper-Reference.md) and [filters](https://github.com/freeCodeCamp/devdocs/blob/master/docs/Filter-Reference.md) is available in the `docs` folder.
More information about [scrapers](./docs/scraper-reference.md) and [filters](./docs/filter-reference.md) is available in the `docs` folder.

## Available Commands

Expand Down Expand Up @@ -129,7 +129,7 @@ If multiple versions of Ruby are installed on your system, commands must be run

## Contributing

Contributions are welcome. Please read the [contributing guidelines](https://github.com/freeCodeCamp/devdocs/blob/master/.github/CONTRIBUTING.md).
Contributions are welcome. Please read the [contributing guidelines](./.github/CONTRIBUTING.md).

## Documentation

Expand All @@ -144,7 +144,7 @@ Contributions are welcome. Please read the [contributing guidelines](https://git
* [Ubuntu Touch app](https://uappexplorer.com/app/devdocsunofficial.berkes)
* [Sublime Text plugin](https://sublime.wbond.net/packages/DevDocs)
* [Atom plugin](https://atom.io/packages/devdocs)
* [Brackets extension](https://github.com/gruehle/dev-docs-viewer)
* [Brackets extension](https://github.com/gruehle/dev-docs-viewer)
* [Fluid](http://fluidapp.com) for turning DevDocs into a real OS X app
* [GTK shell / Vim integration](https://github.com/naquad/devdocs-shell)
* [Emacs lookup](https://github.com/skeeto/devdocs-lookup)
Expand All @@ -156,13 +156,13 @@ Contributions are welcome. Please read the [contributing guidelines](https://git
* [Doc Browser](https://github.com/qwfy/doc-browser) is a native Linux app that supports DevDocs docsets
* [GNOME Application](https://github.com/hardpixel/devdocs-desktop) GTK3 application with search integrated in headerbar
* [macOS Application](https://github.com/dteoh/devdocs-macos)
* [Android Application](https://github.com/Merith-TK/devdocs_webapp_kotlin) is a fully working, advanced WebView with AppCache enabled
* [Android Application](https://github.com/Merith-TK/devdocs_webapp_kotlin) is a fully working, advanced WebView

## Copyright / License

Copyright 2013-2019 Thibaut Courouble and [other contributors](https://github.com/freeCodeCamp/devdocs/graphs/contributors)

This software is licensed under the terms of the Mozilla Public License v2.0. See the [COPYRIGHT](https://github.com/freeCodeCamp/devdocs/blob/master/COPYRIGHT) and [LICENSE](https://github.com/freeCodeCamp/devdocs/blob/master/LICENSE) files.
This software is licensed under the terms of the Mozilla Public License v2.0. See the [COPYRIGHT](./COPYRIGHT) and [LICENSE](./LICENSE) files.

Please do not use the name DevDocs to endorse or promote products derived from this software without the maintainers' permission, except as may be necessary to comply with the notice/attribution requirements.

Expand Down
1 change: 1 addition & 0 deletions assets/images/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
sprites/**/*
Binary file removed assets/images/docs-1.png
Binary file not shown.
Binary file removed assets/images/[email protected]
Binary file not shown.
Binary file removed assets/images/docs-2.png
Binary file not shown.
Binary file removed assets/images/[email protected]
Binary file not shown.

0 comments on commit 14049da

Please sign in to comment.