|
| 1 | +Guidelines for Teaching C++ |
| 2 | +=========================== |
| 3 | + |
| 4 | +This repository contains the source for the document: |
| 5 | + |
| 6 | + - Guidelines for Teaching C++ |
| 7 | + |
| 8 | +When the repository is tagged, this document is automatically built |
| 9 | +and made available via GitHub Pages at: |
| 10 | + |
| 11 | + - <https://cplusplus.github.io/SG20/latest> (soon) |
| 12 | + - <https://mdadams.github.io/sg20_guidelines_for_teaching_cpp/latest> |
| 13 | + (currently) |
| 14 | + - <https://mdadams.github.io/SG20/latest> (currently) |
| 15 | + |
| 16 | +# Prerequisites for Building the Document |
| 17 | + |
| 18 | +The following software is needed to build the document: |
| 19 | + |
| 20 | + - pandoc |
| 21 | + - aspell |
| 22 | + - various basic POSIX utilities, including (amongst others): |
| 23 | + - make |
| 24 | + - awk |
| 25 | + - sed |
| 26 | + |
| 27 | +If one would like to build the document in PDF format, the |
| 28 | +following software is also required: |
| 29 | + |
| 30 | + - LaTex |
| 31 | + |
| 32 | +# Building the Document |
| 33 | + |
| 34 | +To build the document, simply type: |
| 35 | + |
| 36 | + 1. make clean |
| 37 | + 2. make all |
| 38 | + 3. make install |
| 39 | + |
| 40 | +(Strictly speaking, step 2 can be skipped, since the install target |
| 41 | +has a dependency on the all target.) |
| 42 | + |
| 43 | +The above commands will build the document in several formats: |
| 44 | + |
| 45 | + - HTML format as a single HTML document: |
| 46 | + install/html/index.html |
| 47 | + - EPUB format: |
| 48 | + guidelines.epub |
| 49 | + - HTML format split across multiple HTML documents: |
| 50 | + install/html_split/index.html |
| 51 | + |
| 52 | +A make target called world is also defined. Building this target (i.e., |
| 53 | +"make world") will generate the document in additional formats, including |
| 54 | +PDF format, but requires that LaTeX be installed. |
| 55 | + |
| 56 | +The build process performs spell checking. |
| 57 | +The build will fail if any spelling errors are detected. |
| 58 | + |
| 59 | +# Spell Checking |
| 60 | + |
| 61 | +Words that are flagged as having spelling errors can be classified |
| 62 | +into two categories: |
| 63 | + |
| 64 | + 1. valid English words (such as technical terms) that are not in |
| 65 | + the spell checker's dictionary |
| 66 | + 2. words that are not really "proper" English words but are also not |
| 67 | + really errors either (e.g., people's names) |
| 68 | + |
| 69 | +Words in category 1 should be added to the file |
| 70 | +config/spellcheck/wordlist. |
| 71 | +Words in category 2 should be added to the file |
| 72 | +config/spellcheck/ignored_words.txt |
| 73 | + |
| 74 | +# Repository Organization |
| 75 | + |
| 76 | +The files in this repository are organized into directories as follows: |
| 77 | + |
| 78 | +- config: |
| 79 | + This directory contains configuration files that control various |
| 80 | + aspects of how the guidelines document is built. |
| 81 | + - pandoc_templates: |
| 82 | + This directory contains document templates used by pandoc during |
| 83 | + the document build process. |
| 84 | + - spellcheck: |
| 85 | + The directory contains lists of additional words and ignorable errors |
| 86 | + for spell checking. |
| 87 | +- sources: |
| 88 | + This directory hierarchy contains the source files for the document. |
| 89 | + - css: |
| 90 | + This directory contains CSS files used by the document when built |
| 91 | + in HTML format. |
| 92 | + - images: |
| 93 | + This directory contains images used in the document. |
| 94 | + - modules: |
| 95 | + The directory hierarchy contains the information for individual modules |
| 96 | + and topics. There is one directory per module and one file per topic. |
| 97 | +- tools: |
| 98 | + The directory hierarchy contains various scripts and other tools used for |
| 99 | + building and deploying the document to GitHub pages site. |
| 100 | + - build: |
| 101 | + This directory contains scripts used for building and deploying the |
| 102 | + document. |
| 103 | + - old: |
| 104 | + This directory hierachy needs to be reorganized. This directory |
| 105 | + should probably be renamed and its contents possibly reorganized |
| 106 | + or relocated elsewhere. |
| 107 | + - tools |
| 108 | + - tests |
| 109 | + - TEST_INPUTS |
| 110 | + - pandoc_filters: |
| 111 | + This directory contains various filters needed for pandoc. These |
| 112 | + filters do things such as allow markdown-aware spell checking. |
0 commit comments