History

Update README.md and CONTRIBUTING.md (add links to the wiki)

Thibaut committed 13 years ago

Commit c951b3e1 parent fcaf9872 files · +34 −29Browse files

Unified · Split

2 files
  1. CONTRIBUTING.md +22 −19
  2. README.md +12 −10
CONTRIBUTING.md+22−19
@@ -1,19 +1,18 @@
1# Contributing to DevDocs1# Contributing to DevDocs
2 2
3Wish to contribute? Great. Please review the following guidelines carefully and always search for existing issues before opening a new one. More time spent managing issues means less time spent improving the software.3Wish to contribute? Great. Please review the following guidelines carefully and always search for existing issues before opening a new one. More time spent managing issues means less time spent improving DevDocs.
4
5_Note: DevDocs is my first open source project and one which I deeply care about. Please forgive my inexperience and the fact that I may push back on certain things in order to keep the project to my liking. Feedback and advice are always welcome._
6 4
7**Table of Contents:**5**Table of Contents:**
8 6
91. [Reporting bugs](#reporting-bugs)71. [Reporting bugs](#reporting-bugs)
102. [Requesting new features](#requesting-new-features)82. [Requesting new features](#requesting-new-features)
113. [Requesting new docs](#requesting-new-docs)93. [Requesting new documentations](#requesting-new-documentations)
124. [Contributing code and features](#contributing-code-and-features)104. [Contributing code and features](#contributing-code-and-features)
135. [Contributing new docs](#contributing-new-docs)115. [Contributing new documentations](#contributing-new-documentations)
146. [Other contributions](#other-contributions)126. [Updating existing documentations](#updating-existing-documentations)
157. [Coding conventions](#coding-conventions)137. [Other contributions](#other-contributions)
168. [Questions?](#questions)148. [Coding conventions](#coding-conventions)
159. [Questions?](#questions)
17 16
18## Reporting bugs17## Reporting bugs
19 18
@@ -30,10 +29,10 @@ _Note: DevDocs is my first open source project and one which I deeply care about · 10 unmodified lines
30 29
31For general feedback and ideas, please use the [mailing list](https://groups.google.com/d/forum/devdocs).30For general feedback and ideas, please use the [mailing list](https://groups.google.com/d/forum/devdocs).
32 31
33## Requesting new docs32## Requesting new documentations
34 33
35Please do not open issues to request new documentations. 34Please do not open issues to request new documentations.
36Use the [Trello board](https://trello.com/b/6BmTulfx/devdocs-documentation) where everyone can vote and contributors can get a feel for what's wished for.35Use the [Trello board](https://trello.com/b/6BmTulfx/devdocs-documentation) where everyone can vote and contributors can get a feel for what is most wished for.
37 36
38## Contributing code and features37## Contributing code and features
39 38
@@ -45,9 +44,9 @@ Use the [Trello board](https://trello.com/b/6BmTulfx/devdocs-documentation) wher · 5 unmodified lines
456. When it makes sense, squash your commits into a single commit.446. When it makes sense, squash your commits into a single commit.
467. Describe all your changes in the commit message and/or pull request.457. Describe all your changes in the commit message and/or pull request.
47 46
48## Contributing new docs47## Contributing new documentations
49 48
50**Note:** there is currently no documentation on how to create a scraper/documentation. I'm working on it.49See the [wiki](https://github.com/Thibaut/devdocs/wiki) to learn how to add new documentations.
51 50
52**Important:** in order to keep things fast and manageable, only the documentation of popular open source projects will be accepted into DevDocs. As more projects find their way in, the required level of popularity will gradually decrease. Additionally, the documentation's license must permit alteration, redistribution, and commercial use of the work. Software vendors that wish to add commercial software documentation to DevDocs may contact me privately.51**Important:** in order to keep things fast and manageable, only the documentation of popular open source projects will be accepted into DevDocs. As more projects find their way in, the required level of popularity will gradually decrease. Additionally, the documentation's license must permit alteration, redistribution, and commercial use of the work. Software vendors that wish to add commercial software documentation to DevDocs may contact me privately.
53 52
@@ -55,22 +54,27 @@ Use the [Trello board](https://trello.com/b/6BmTulfx/devdocs-documentation) wher · 1 unmodified line
55 54
56In addition to the [guidelines for contributing code](#contributing-code-and-features), the following guidelines apply to pull requests that add a new documentation:55In addition to the [guidelines for contributing code](#contributing-code-and-features), the following guidelines apply to pull requests that add a new documentation:
57 56
58* Your documentation must come with a clean and official icon, in both 1x and 2x resolutions (16x16 and 32x32 pixels). This is important because icons are the only thing differentiating search results inside the app. If a project doesn't have an official icon, it won't be accepted into DevDocs—sorry.57* Your documentation must come with a clean and official icon, in both 1x and 2x resolutions (16x16 and 32x32 pixels). This is important because icons are the only thing differentiating search results inside the app. If a project doesn't have an official icon, it won't be accepted into DevDocs. Sorry.
59* DevDocs favors quality over quantity. Your documentation should only include API/reference documents that most developers may wish to read semi-regularly. By reducing the number of entries you make it easier for people to find other, more relevant entries. _(Note: you're more than welcome to submit pull requests removing seldom-used entries from existing documentations.)_58* DevDocs favors quality over quantity. Your documentation should only include API/reference documents that most developers may wish to read semi-regularly. By reducing the number of entries we make it easier to find other, more relevant entries. _(Note: you're more than welcome to submit pull requests removing seldom-used entries from existing documentations.)_
60* Try to remove as much content and HTML markup as possible, particularly content which isn't associated with any entries (e.g. introduction, changelog, etc.).59* Try to remove as much content and HTML markup as possible, particularly content which isn't associated with any entries (e.g. introduction, changelog, etc.).
61* Names must be as short as possible and unique across the documentation.60* Names must be as short as possible and unique across the documentation.
62* The number of types (categories) must be less than 50.61* The number of types (categories) must be less than 50.
63* It's ok to leave the CSS up to me.62* It's ok to leave the CSS up to me.
64* Don't modify the icon sprite. I'll do it when merging your pull request.63* Don't modify the icon sprite. I'll do it after your pull request is merged.
65* Once your documentation is accepted into DevDocs, you'll be expected to maintain it on a regular basis.64* Once your documentation is accepted into DevDocs, you'll be expected to maintain it on a regular basis.
66 65
66## Updating existing documentations
67
68Please do not submit a pull request updating the version number of a documentation unless you have verified that it can be generated properly using the current code. Because the source will have changed, the code will likely need a few tweaks.
69
70To ask that an existing documentation be updated, please use the [Trello board](https://trello.com/b/6BmTulfx/devdocs-documentation) or the [mailing list](https://groups.google.com/d/forum/devdocs).
71
67## Other contributions72## Other contributions
68 73
69Besides new docs and features, here are other ways you can contribute:74Besides new docs and features, here are other ways you can contribute:
70 75
71* **Improve words and sentences.** English isn't my first language so if you notice grammatical or usage errors, feel free to submit a pull request—it'll be much appreciated. (Note: American English is the preferred form)76* **Improve words and sentences.** English isn't my first language so if you notice grammatical or usage errors, feel free to submit a pull request — it'll be much appreciated. (Note: American English is the preferred form)
72* **Write documentation.** Although this task is mainly up to me, any documentation you can write that may help other developers understand and contribute to the code is highly appreciated.77* **Participate in the issue tracker.** Your opinion matters — feel free to add comments to existing issues. You're also welcome to participate to the [mailing list](https://groups.google.com/d/forum/devdocs).
73* **Participate in the issue tracker.** Your opinion matters—feel free to add comments to existing issues. You're also welcome to participate to the [mailing list](https://groups.google.com/d/forum/devdocs).
74 78
75## Coding conventions79## Coding conventions
76 80
@@ -81,4 +85,3 @@ Besides new docs and features, here are other ways you can contribute: · 4 unmodified lines
81## Questions?85## Questions?
82 86
83If you have any questions, please feel free to ask on the [mailing list](https://groups.google.com/d/forum/devdocs).87If you have any questions, please feel free to ask on the [mailing list](https://groups.google.com/d/forum/devdocs).
84
README.md+12−10
@@ -15,13 +15,11 @@ DevDocs is free and open source. If you use it and like it, please consider dona · 14 unmodified lines
15 15
16**Table of Contents:** [Quick Start](#quick-start) · [Vision](#vision) · [App](#app) · [Scraper](#scraper) · [Commands](#available-commands) · [Contributing](#contributing) · [License](#copyright--license) · [Questions?](#questions)16**Table of Contents:** [Quick Start](#quick-start) · [Vision](#vision) · [App](#app) · [Scraper](#scraper) · [Commands](#available-commands) · [Contributing](#contributing) · [License](#copyright--license) · [Questions?](#questions)
17 17
18**Note:** I'm in the process of writing more documentation. As DevDocs is quite big, it'll take time. Feel free to [contact me directly](mailto:thibaut@devdocs.io) in the meantime.
19
20## Quick Start18## Quick Start
21 19
22Unless you wish to use DevDocs offline or contribute to the code, I recommend using the hosted version at [devdocs.io](http://devdocs.io). It's up-to-date and requires no setup.20Unless you wish to use DevDocs offline or contribute to the code, I recommend using the hosted version at [devdocs.io](http://devdocs.io). It's up-to-date and requires no setup.
23 21
24DevDocs is made of two separate pieces of software: a Ruby scraper responsible for generating the documentation files and indexes, and a JavaScript front-end powered by on small Sinatra app.22DevDocs is made of two separate pieces of software: a Ruby scraper responsible for generating the documentation files and indexes, and a JavaScript front-end powered by a small Sinatra app.
25 23
26DevDocs requires Ruby 2.0. Once you have it installed, run the following commands:24DevDocs requires Ruby 2.0. Once you have it installed, run the following commands:
27 25
@@ -40,11 +38,11 @@ The `thor docs:download` command is used to download/update individual documenta · 12 unmodified lines
40 38
41## Vision39## Vision
42 40
43DevDocs aims to make reading and searching reference documentation fast, accessible and enjoyable, while aspiring to become the “one stop shop” for all open-source software documentations.41DevDocs aims to make reading and searching reference documentation fast, accessible and enjoyable. It aspires to become the “one stop shop” for all open-source software documentations.
44 42
45The app's main goals are to: keep boot and page load times as fast as possible; improve the quality, speed, and order of search results; maximize the use of caching and other performance optimizations; maintain a clean, readable user interface; support full keyboard navigation; reduce “context switch” by using a consistent typography and design across all documentations; reduce clutter by focusing on a specific category of content (API/reference) and indexing only the minimum useful to most developers.43The app's main goals are to: keep booting and loading times as short as possible; improve the quality, speed, and order of search results; maximize the use of caching and other performance optimizations; maintain a clean, readable user interface; support full keyboard navigation; reduce “context switch” by using a consistent typography and design across all documentations; reduce clutter by focusing on a specific category of content (API/reference) and by indexing only the minimum useful to most developers.
46 44
47**Note:** DevDocs is neither a programming guide nor a search engine. All content is pulled from third-party sources and the project does not intend to compete with full-text search engines. Its backbone is metadata: each piece of content must be identified by a unique, obvious and short string. Thus, tutorials, guides and other content that don't fit this requirement are outside the scope of the project.45**Note:** DevDocs is neither a programming guide nor a search engine. All content is pulled from third-party sources and the project doesn't intend to compete with full-text search engines. Its backbone is metadata: each piece of content must be identified by a unique, obvious, and short string. Thus, tutorials, guides and other content that don't fit this requirement are outside the scope of the project.
48 46
49## App47## App
50 48
@@ -52,7 +50,7 @@ The web app is all JavaScript, written in [CoffeeScript](http://coffeescript.org · 1 unmodified line
52 50
53Many 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.51Many 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.
54 52
55Another driving factor is the requirement for speed. This is partially solved by maximizing caching (both `applicationCache`, which comes with its own set of constraints, and `localStorage` are used to their full extent), as well as by allowing the user to pick his/her own set of documentations. On the other hand, the search algorithm is currently not very sophisticated because it needs to be fast even searching through 100k entries.53Another 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. On the other hand, the search algorithm is currently not very sophisticated because it needs to be fast even searching through 100k entries.
56 54
57DevDocs being a developer tool, the browser requirements are high:55DevDocs being a developer tool, the browser requirements are high:
58 56
@@ -78,14 +76,16 @@ There are currently two kinds of scrapers: `UrlScraper` which downloads files vi · 19 unmodified lines
78Modifications made to each document include:76Modifications made to each document include:
79* removing stuff, such as the document structure (`<html>`, `<head>`, etc.), comments, empty nodes, etc.77* removing stuff, such as the document structure (`<html>`, `<head>`, etc.), comments, empty nodes, etc.
80* fixing links (e.g. to remove duplicates)78* fixing links (e.g. to remove duplicates)
81* replacing all external (not copied) URLs with their fully qualified counterpart79* replacing all external (not scraped) URLs with their fully qualified counterpart
82* replacing all internal (copied) URLs with their unqualified and relative counterpart80* replacing all internal (scraped) URLs with their unqualified and relative counterpart
83* adding stuff, such as a title and link to the original document81* adding stuff, such as a title and link to the original document
84 82
85These modifications are applied through a set of filters, with each scraper also applying custom filters specific to the documentation. Each document is also passed through a filter whose task is to figure out its metadata, namely its _name_ and _type_ (category).83These modifications are applied through a set of filters using the [HTML::Pipeline](https://github.com/jch/html-pipeline) library. Each scraper includes filters specific to its documentation, one of which is tasked with figuring out the pages' metadata.
86 84
87The end result is a set of normalized HTML partials and a JSON index file. Because the index files are loaded separately by the [app](#app) following the user's preferences, the code also creates a JSON manifest file containing information about the documentations currently available on the system (such as their name, version, update date, etc.).85The end result is a set of normalized HTML partials and a JSON index file. Because the index files are loaded separately by the [app](#app) following the user's preferences, the code also creates a JSON manifest file containing information about the documentations currently available on the system (such as their name, version, update date, etc.).
88 86
87More information about scrapers and filters is available on the [wiki](https://github.com/Thibaut/devdocs/wiki).
88
89## Available Commands89## Available Commands
90 90
91The command-line interface uses [Thor](http://whatisthor.com). To see all commands and options, run `thor list` from the project's root.91The command-line interface uses [Thor](http://whatisthor.com). To see all commands and options, run `thor list` from the project's root.
@@ -122,6 +122,8 @@ thor assets:clean # Clean old assets · 30 unmodified lines
122 122
123Contributions are welcome. Please read the [contributing guidelines](https://github.com/Thibaut/devdocs/blob/master/CONTRIBUTING.md).123Contributions are welcome. Please read the [contributing guidelines](https://github.com/Thibaut/devdocs/blob/master/CONTRIBUTING.md).
124 124
125DevDocs's own documentation is available on the [wiki](https://github.com/Thibaut/devdocs/wiki).
126
125## Copyright / License127## Copyright / License
126 128
127Copyright 2013 Thibaut Courouble and [other contributors](https://github.com/Thibaut/devdocs/graphs/contributors)129Copyright 2013 Thibaut Courouble and [other contributors](https://github.com/Thibaut/devdocs/graphs/contributors)