Customizing and Contributing to the Book

Note: the following instructions assume that you are connected to the Internet and that you have a debian based operating system with access to the debian package repositories. All unix shell commands are assumed to be running from your home directory ($HOME). Finally, any command that begins with sudo assums that you have administrative rights on your machine. If you do not — please ask your system administrator about installing the software you need.

This book is free as in freedom, which means you have the right to modify it to suite your needs, and to redistribute your modifications so that our whole community can benefit.

That freedom lacks meaning, however, if you the tools needed to make a custom version or to contribute corrections and additions are not within your reach. This appendix attempts to put those tools in your hands.

Thanks!

Governor’s Career and Technical Academy in Arlington
Arlington, Virginia

Getting the Source

This book is marked up in ReStructuredText using a document generation system called Sphinx.

The source code is located on the Codeberg website at https://codeberg.org/OpenBookProject/thinkcscpp.

The easiest way to get the source code on a Debian 11 computer is:

  1. run

    sudo apt install git

    on your system to install git.

  2. run

    to download the source for the book.

Making the HTML Version

To generate the html version of the book:

  1. run:

    sudo apt install python3-sphinx
    

    to install the Sphinx documenation generator.

  2. run:

    cd thinkcscpp
    

    to change into the thinkcscpp directory containing the book source.

  3. run:

    make html
    

    to build the html from the ReStructuredText source.

The last command will run sphinx and create a directory named build containing the html verion of the text.

Note

Sphinx supports building other output types as well, such as PDF. This requires that LaTeX be present on your system. Since I only personally use the html version, I will not attempt to document that process here.