LukeShortCloud / rootpages

Root Pages is a collection of easy-to-reference tutorials and guides primarily for Linux and other UNIX-like systems.
Other
57 stars 6 forks source link

Root Pages

Build Status

Root Pages is a collection of quick and easy-to-reference tutorials, examples, and guides primarily for Linux and other UNIX-like systems. The main goal of this project is to provide a more general purpose alternative to the "info" documents for System Administrators, Engineers, and Architects. Each page is a full guide to each topic. This makes it easy to navigate and search for content.

All Root Pages are written in the reStructuredText (RST) markup language. Sphinx is used for building the documentation into ePub, HTML, PDF, and other common document formats.

Website

All commits to Root Pages are automatically tested via a GitHub Actions workflow. The latest successful build of the "main" branch is pushed to a Kubernetes cluster. Tags are published and a "stable" branch is updated quarterly.

Install

Sphinx is a Python package that is required to compile Root Pages into different document formats. It is provided by most operating systems' package manager. The official installation guide can be found here.

Arch Linux:

$ sudo pacman -S python-sphinx python-sphinx_rtd_theme

Debian:

$ sudo apt-get install python3-sphinx python3-sphinx-rtd-theme

Fedora:

$ sudo dnf install python3-sphinx python3-sphinx_rtd_theme

macOS:

$ brew install python3
$ pip3 install -U sphinx sphinx-rtd-theme
$ export PYTHON_VERSION="3.9"
$ export PATH="$PATH:${HOME}/Library/Python/${PTYHON_VERSION}/bin/"

openSUSE:

$ sudo zypper install python3-Sphinx python3-sphinx_rtd_theme

Some operating systems will install the sphinx-build binary with a different suffix to indicate that it is using Python 3. For ease of use, consider symlinking that to be sphinx-build.

$ sudo ln -s /usr/bin/sphinx-build-3* /usr/local/bin/sphinx-build

Usage

Sphinx will save newly generated documents into the "build/" directory by default.

Usage - Automatic

ePub:

$ make epub

HTML:

$ make html

HTML via the Docker Engine (all operating systems):

$ docker run --rm -v ${PWD}:/docs sphinxdoc/sphinx /bin/sh -c 'pip install sphinx_rtd_theme && make html'

PDF:

$ make latexpdf

Text:

$ make text

Usage - Manual

The "sphinx-build" command is more flexible by being able to add additional command-line arguments to it. It also does not require the "make" system package to be able to process and execute the Makefile.

Specify the format that the reStructuredText should be transformed and output into, and both the source and build directories.

$ sphinx-build -b <OUTPUT_FORMAT> src/ build/

Spell Checking

A custom dictionary is provided to do spell checking. However, the hunspell command does not reliably use every word in the dictionary so manual review is still required.

$ hunspell -l -d en_US -p ./hunspell_dictionary_root_pages.txt src/*/*.rst

Translations

Root Pages can also be translated into a different language.

$ make gettext
$ sphinx-intl update -p build/gettext -l <LOCALE>
$ make -e SPHINXOPTS="-D language='<LOCALE>'" html

Contributing

Root Pages is a rolling release. As new information is committed, it is shortly pushed into master after a quick review for technical writing standards and correct citation usage.

All updates should be added to the reStructuredText files in the "src/" directory of this project. These documents are currently in English and translations are always welcome!

A few quick notes about technical documentation:

Recommended text editors:

RST header characters to use:

  1. =====
  2. -----
  3. ~~~~~
  4. ^^^^^
  5. '''''
  6. &&&&&

Any arguments or options that are required for a command or configuration are marked in bold.

New Contributors

There are a lot of issues open on GitHub that have the label "new content." These issues indicate that a new subject matter should be added into an existing document. These normally have at least one link to a source article that can be referenced or at least used as a starting point for further research.

Quarterly Updates

Every three months, Root Pages is tagged as a milestone release. The four releases in a year are: YYYY.01.01, YYYY.04.01, YYYY.07.01, and YYYY.10.01. Quarterly updates minimize breakage to bookmarks and links compared to a rolling release model. Formatting, grammar, and spelling errors should be checked and corrected before each tagged release.

Yearly Updates

The copyright year in src/conf.py needs to be updated.

Legal

License

Root Pages, and all of it's content, is provided under the GNU Free Documentation License (GFDL) v1.3. Additional disclaimers related to warranty and liability from the GPLv3 license are also applied to this project.

Files:

Plagiarism

Root Pages strives to provide proper citation to the original authors to give credit where due. If there are any reports of plagiarism, please open a new GitHub issue for it to get addressed.