Learn Coding with Open Source

​​Join the chat at​ ​GitHub stars​ ​Powered by Gitbook​ ​License: CC BY-NC-SA 4.0​ ​Actions Status​​

This book uses GitBook to build.

License: CC BY-NC-SA 4.0

All contents licensed under the Creative Commons Attribution Non Commercial Share Alike 4.0 license.

Welcome! Join us to finish this book.

You can visit the online ebook: Learn Coding With Open Source​

You can also get the PDF on the release page.

for developers

Build the book

Note: you will need Linux or MacOS. Windows is not yet supported.

  1. install node.js​

  2. install ebook-convert from calibre​

    • for pdf,epub etc ebook generation.

    • go Calibre > Misc > Install Command Line Tool after installed

      • or ln -s /Applications/ /usr/local/bin

  3. enter the git repository directory

    cd learn-with-open-source
    npm install
  4. generate the ebook via: 1. generate html pages:

    ./node_modules/.bin/gitbook build . _book
    1. run a local server to read html:

      ./node_modules/.bin/gitbook serve .
    2. generate the pdf:

      ./node_modules/.bin/gitbook pdf .

Update contributions automatically

It will update contributions through git commits after a pull request or merge is executed. If you want to update it manually:

This script will update the "" file and copy it to the "zh" folder.

cd learn-with-open-source

The contributors configuration file is the ".contributors" file on the root of the repository.

Update TOC automatically

TODO: this is not finished.

The gitbook uses the to get the TOC. The list in the will be the TOC.

1. [Topic](
1. [SubTopic](
1. TheSameFileTopicNoLinkAllowed
1. TheSameFileTopicNoLinkAllowed
1. [Topic2]


  • the parent directory is not supported via gitbook.

  • the topic in the same file could not be a link.

the workflow automation is:

  • a text file to determine the markdown files order,

    or use the file name order in a directory.

  • get toc of each markdown file.

  • merge it into


本书使用 GitBook 来 build 电子书。

联机电子书版本在这里: Learn Coding With Open Source​




License: CC BY-NC-SA 4.0

  • 本作品选择采用:署名-非商业性使用-相同方式共享 的CC协议。

    • 您可以:复制、发行、展览、表演、放映、广播或通过信息网络传播本作品。以及创作演绎作品。

    • 惟须遵守下列条件:

      • 署名 — 您必须按照作者或者许可人指定的方式对作品进行署名。

        • 署名方式为:在转载或新作品开头的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与本作品在Github上的原发地址建立链接

      • 非商业性使用 — 您不得将本作品用于商业目的。

      • 相同方式共享 — 如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。