Read this in other languages: 简体中文、繁體中文、فارسی.
By contributing you agree to the LICENSE of this repository.
By contributing you agree to respect the Code of Conduct of this repository.
We have 5 kinds of lists. Choose the right one:
Make sure to follow the guidelines below and respect the Markdown formatting of the files.
Travis CI will run tests to make sure your lists are alphabetized and formatting rules are followed. Be sure to check that your changes pass the tests.
https link over a http one -- as long as they are on the same domain and serve the same contenthttp://example.com instead of http://example.com/http://example.com/dir/ is better than http://example.com/dir/index.html
http://example.com/dir/book/current/ is better than http://example.com/dir/book/v1.0.0/index.htmlhttp counterpart if possible (because accepting exceptions can be complicated on mobile devices)http version but link still accessible through https by adding an exception to the browser or ignoring the warning(email address *requested*, not required).md files. Try to learn Markdown syntax. It's simple!###), and subsections are level 4 headings (####).The idea is to have
2 empty lines between last link and new section1 empty line between heading & first link of its section0 empty line between two links1 empty line at the end of each .md fileExample:
[...]
* [An Awesome Book](http://example.com/example.html)
(blank line)
(blank line)
### Example
(blank line)
* [Another Awesome Book](http://example.com/book.html)
* [Some Other Book](http://example.com/other.html)
Don't put spaces between ] and (:
BAD : * [Another Awesome Book] (http://example.com/book.html)
GOOD: * [Another Awesome Book](http://example.com/book.html)
If you include the author, use - (a dash surrounded by single spaces):
BAD : * [Another Awesome Book](http://example.com/book.html)- John Doe
GOOD: * [Another Awesome Book](http://example.com/book.html) - John Doe
Put a single space between the link and its format:
BAD : * [A Very Awesome Book](https://example.org/book.pdf)(PDF)
GOOD: * [A Very Awesome Book](https://example.org/book.pdf) (PDF)
Author comes before format:
BAD : * [A Very Awesome Book](https://example.org/book.pdf)- (PDF) Jane Roe
GOOD: * [A Very Awesome Book](https://example.org/book.pdf) - Jane Roe (PDF)
Multiple formats:
BAD : * [Another Awesome Book](http://example.com/)- John Doe (HTML)
BAD : * [Another Awesome Book](https://downloads.example.org/book.html)- John Doe (download site)
GOOD: * [Another Awesome Book](http://example.com/) - John Doe (HTML) [(PDF, EPUB)](https://downloads.example.org/book.html)
Include publication year in title for older books:
BAD : * [A Very Awesome Book](https://example.org/book.html) - Jane Roe - 1970
GOOD: * [A Very Awesome Book (1970)](https://example.org/book.html) - Jane Roe
In-process books:
GOOD: * [Will Be Awesome Soon Book](http://example.com/book2.html) - John Doe (HTML) (:construction: *in process*)
To trigger URL validation, push a commit that includes a commit message containing check_urls=file_to_check:
check_urls=free-programming-books.md free-programming-books-en.md
You may specify more than one file to check, using a single space to separate each entry.
If you specify more than one file, results of the build is based on the result of the last file checked. You should be aware that you may get passing green builds due to this so be sure to inspect the build log at the end of the pull request by clicking on "Show all checks" -> "Details".