3 OpenSSL web page sources are written in [Markdown], and possibly templated
4 further using [Template Toolkit].
6 Plain Markdown files must have the filename suffix `.md`.\
7 Templated Markdown files must have the filename suffix `.md.tt`.
9 For page breadcrumbs purposes, every Markdown file must start with the
10 following YAML section, where `{name}` is replaced with the name this file
11 shall have in its part of the breadcrumbs:
19 In each directory where there are Markdown files, there must also be a file
20 `dirdata.yaml`, containing common data for that directory, which affects the
21 rendering of the sidebar and the common page breadcrumbs (the `breadcrumb`
22 value in each file will be appended to them). For example, in the directory
23 `examples/`, one might imagine a `examples/dirdata.yaml` looking like this:
28 [Home](..) : [Examples](.)
32 - [One example](example1.html)
33 - [Another example](example2.html)
37 Please remember that all YAML *must* start and end with tripple dash lines
43 - Let [Markdown guide] be your guide for writing Markdown files.
44 The [Markdown guide extended syntax] adds a lot of useful
47 *If there's an alternative* that [Github Flavored Markdown]
48 understands, use that, as that makes reviewing easier.
50 If there's a need that isn't covered by the [Markdown guide],
51 refer to the [Pandoc User's Guide], or use HTML, whichever is
54 - Surround any table with `<p>` and `</p>`, to make it distinct from
60 The Markdown files are rendered into HTML using [Pandoc], see the
61 [Pandoc User's Guide] for information on the Markdown syntax it
62 understands and support.
64 Building the web pages is done through the `Makefile`, and requires
65 a number of programs to be installed:
67 - [Template Toolkit]. The Debian package is `libtemplate-perl`
68 - [Pandoc]. The Debian package is `pandoc`
69 - [OpenSSL::Query], see its README.md for installation instructions.
70 - `git`, `python3`, `wget`
72 It also requires a checkout of a number of repositories and branches. Some
73 of the repositories may need specific access. The `Makefile` requires that
74 they are all collected under one checkouts directory, with the following
77 - `data` (checkout of the `omc/data` repository)
79 (checkout of <https://github.com/openssl/general-policies.git>)
80 - `technical-policies`
81 (checkout of <https://github.com/openssl/technical-policies.git>)
83 (checkout of <https://github.com/openssl/openssl.git>,
86 (checkout of <https://github.com/openssl/openssl.git>,
89 (checkout of <https://github.com/openssl/openssl.git>,
91 - `openssl-1.1.1-stable`
92 (checkout of <https://github.com/openssl/openssl.git>,
93 `OpenSSL_1_1_1-stable` branch)
95 The checkouts directory can be given to `make` with the `CHECKOUTS`
96 variable. It is important to use an absolute path:
99 $ make CHECKOUTS=/PATH/TO/checkouts
102 [Template Toolkit]: http://www.template-toolkit.org/
103 [Pandoc]: https://pandoc.org/
104 [Pandoc User's Guide]: https://pandoc.org/MANUAL.html#pandocs-markdown
105 [Markdown guide]: https://www.markdownguide.org
106 [Markdown guide extended syntax]: https://www.markdownguide.org/extended-syntax/
107 [Github Flavored Markdown]: https://github.github.com/gfm/
108 [OpenSSL::Query]: https://github.com/openssl/omc-tools/tree/master/OpenSSL-Query