Freely available programming books. Owned by @EbookFoundation
请遵循此许可协议参与贡献。
请同意并遵循此行为准则参与贡献。(translations)
“一个可以轻易下载一本书的链接” 并不代表它指向的就是 免费 书籍。 请只提供免费内容。 确信你所提供的书籍是免费的。我们不接受指向需要工作电子邮件地址才能获取书籍的页面的链接,但我们欢迎有需求它们的列表。
这里有6种列表,请选择正确的一个:
确保遵循下面的基本准则,并遵循本仓库文件的Markdown规定格式。
https
链接,而不是 http
链接 – 只要它们位于相同的域并提供相同的内容。http://example.com
代替 http://example.com/
。http://example.com/dir/
比使用 http://example.com/dir/index.html
更好。
http://example.com/dir/book/current/
比使用 http://example.com/dir/book/v1.0.0/index.html
更好。http
(因为在移动设备上接受异常可能比较复杂)。http
版本,但仍然可以通过https
访问链接,则在浏览器中添加异常或忽略警告。等
” (“et al.
”) 缩短作者列表。in process
” 符号,参见下文所述。archived
” notation, as described below. The best versions to use are recent and complete.(*需要*电子邮件,但不是必须的)
。.md
文件。试着学习Markdown语法。它很容易上手!###
),subsections(子段落/子章节)使用4级标题 (####
)。整体思想为:
2
:新添加的Section与末尾链接间必须留有2
个空行1
:标题和第一个链接之间必须留有1
个空行的空行0
:任何两个链接之间不能留有任何空行1
:每个.md
文件末尾必须留有1
个空行举例:
[...]
* [一本很有用的书](http://example.com/example.html)
(空行)
(空行)
### 电子书种类标题
(空行)
* [Another 很有用的书](http://example.com/book.html)
* [Other 有用的书](http://example.com/other.html)
在 ]
和 (
之间不要留有空格:
错误:* [一本很有用的书] (http://example.com/book.html)
正确:* [一本很有用的书](http://example.com/book.html)
如果包括作者,请使用’ - ‘(由单个空格(英文半角)包围的破折号):
错误:* [一本很有用的书](http://example.com/book.html)- 张显宗
正确:* [一本很有用的书](http://example.com/book.html) - 张显宗
在链接和电子书格式之间放一个空格:
错误:* [一本很有用的书](https://example.org/book.pdf)(PDF)
正确:* [一本很有用的书](https://example.org/book.pdf) (PDF)
如需备注或注解,请使用英文半角括号( )
:
错误:* [一本很有用的书](https://example.org/book.pdf) (繁体中文)
正确:* [一本很有用的书](https://example.org/book.pdf) (繁体中文)
作者在电子书格式之前:
错误:* [一本很有用的书](https://example.org/book.pdf)- (PDF) 张显宗
正确:* [一本很有用的书](https://example.org/book.pdf) - 张显宗 (PDF)
多重格式:
错误:* [一本很有用的书](http://example.com/)- 张显宗 (HTML)
错误:* [一本很有用的书](https://downloads.example.org/book.html)- 张显宗 (download site)
正确:* [一本很有用的书](http://example.com/) - 张显宗 (HTML) [(PDF, EPUB)](https://downloads.example.org/book.html)
多作者,多译者时,请使用中文 、
进行分隔,在译者名字后请使用英文半角括号包围的 (翻译)
,可以用 “等” 缩短作者列表:
错误:* [一本很有用的书](https://example.org/book.pdf) - 张显宗,岳绮罗
正确:* [一本很有用的书](https://example.org/book.pdf) - 张显宗、岳绮罗(翻译)
正确:* [一本很有用的书](https://example.org/book.pdf) - 张显宗、岳绮罗、顾玄武、出尘子 等
在旧书的标题中包括出版年份:
错误:* [一本很有用的书](https://example.org/book.html) - 张显宗 - 1970
正确:* [一本很有用的书 (1970)](https://example.org/book.html) - 张显宗
正确:* [马上出版的一本书](http://example.com/book2.html) - 张显宗 (HTML) (:construction: *编写中*)
正确:* [马上出版的一本书](http://example.com/book2.html) - 张显宗 (HTML) (:construction: *翻译中*)
正确: * [A Way-backed Interesting Book](https://web.archive.org/web/20211016123456/http://example.com/) - John Doe (HTML) *(:card_file_box: archived)*
aa
comes before ab
.one two
comes before onetwo
If you see a misplaced link, check the linter error message to know which lines should be swapped.
While the basics are relatively simple, there is a great diversity in the resources we list. Here are some notes on how we deal with this diversity.
Our lists provide a minimal set of metadata: titles, URLs, creators, platforms, and access notes.
https
) URLs are always preferred over non-secure (http
) urls where HTTPS has been implemented.For translated works the original author should be credited. We recommend using MARC relators to credit creators other than authors, as in this example:
* [A Translated Book](http://example.com/book-zh.html) - John Doe, `trl.:` Mike The Translator
here, the annotation trl.:
uses the MARC relator code for “translator”.
,
to delimit each item in the author list.et al.
”.Compiled from StackOverflow documentation
”.*(Leanpub account or valid email requested)*
.The first rule in deciding which list a resource belongs in is to see how the resource describes itself. If it calls itself a book, then maybe it’s a book.
Because the Internet is vast, we don’t include in our lists:
Our competitive programming lists are not as strict about these exclusions. The scope of the repo is determined by the community; if you want to suggest a change or addition to the scope, please use an issue to make the suggestion.
We’re not that fussy about book-ness. Here are some attributes that signify that a resource is a book:
There are lots of books that we list that don’t have these attributes; it can depend on context.
Sometimes these can be hard to distinguish!
Courses often have associated textbooks, which we would list in our books lists. Courses have lectures, exercises, tests, notes or other didactic aids. A single lecture or video by itself is not a course. A powerpoint is not a course.
If you can print it out and retain its essence, it’s not an Interactive Tutorial.
.github/workflows/fpb-lint.yml
)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-zh.md