summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2022-09-27 21:27:34 +1000
committerChris Johns <chrisj@rtems.org>2022-09-27 21:27:34 +1000
commit98368f75bd06c337d27ae45a2fe3f0f34cb90ee1 (patch)
tree719b7e6f82c2e419630ddd7a59fa7a78bd2d61f3
parent33570ec90637994c9a9e8671fd2e771bb405a64d (diff)
waf: Add building the README to html
-rw-r--r--doc/rtems.css276
-rw-r--r--wscript30
2 files changed, 306 insertions, 0 deletions
diff --git a/doc/rtems.css b/doc/rtems.css
new file mode 100644
index 0000000..81b8c23
--- /dev/null
+++ b/doc/rtems.css
@@ -0,0 +1,276 @@
+<style type="text/css">
+html {
+ font-size: 100%;
+ overflow-y: scroll;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+
+body {
+ color: #444;
+ font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
+ font-size: 12px;
+ line-height: 1.7;
+ padding: 1em;
+ margin: auto;
+ max-width: 60em;
+ background: #fefefe;
+}
+
+a { color: #0645ad; text-decoration: none; }
+a:visited { color: #0b0080; }
+a:hover { color: #06e; }
+a:active { color: #faa700; }
+a:focus { outline: thin dotted; }
+*::-moz-selection { background: rgba(255, 255, 0, 0.3); color: #000; }
+*::selection { background: rgba(255, 255, 0, 0.3); color: #000; }
+a::-moz-selection { background: rgba(255, 255, 0, 0.3); color: #0645ad; }
+a::selection { background: rgba(255, 255, 0, 0.3); color: #0645ad; }
+
+p { margin: 1em 0; }
+img { max-width: 100%; }
+
+h1, h2, h3, h4, h5, h6 {
+ color: #111;
+ line-height: 125%;
+ margin-top: 1.5em;
+ font-weight: normal;
+}
+h4, h5, h6 { font-weight: bold; }
+h1 { font-size: 1.7em; }
+h2 { font-size: 1.4em;
+ padding-top: 15px;
+ box-shadow: 0px 15px 10px -15px rgba(0, 0, 0, .2) inset; }
+h3 { font-size: 1.2em; }
+h4 { font-size: 0.9em; }
+h5 { font-size: 0.7em; }
+h6 { font-size: 0.7em; }
+
+header {
+ margin-bottom: 0;
+ text-align: left;
+}
+
+#TOC li {
+ list-style: disc;
+}
+
+blockquote {
+ color: #666666;
+ margin: 0;
+ padding-left: 3em;
+ border-left: 0.5em #EEE solid;
+}
+
+hr {
+ display: block;
+ height: 2px;
+ border: 0;
+ border-top: 1px solid #aaa;
+ border-bottom: 1px solid #eee;
+ margin: 1em 0;
+ padding: 0;
+}
+
+pre, code, kbd, samp {
+ color: #000;
+ font-family: monospace, monospace;
+ _font-family: 'courier new', monospace;
+ font-size: 0.98em;
+}
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+b, strong { font-weight: bold; }
+
+dfn { font-style: italic; }
+
+ins {
+ background: #ff9;
+ color: #000;
+ text-decoration: none;
+}
+
+mark {
+ background: #ff0;
+ color: #000;
+ font-style: italic;
+ font-weight: bold;
+}
+
+sub, sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+ul, ol {
+ margin: 1em 0;
+ padding: 0 0 0 2em;
+}
+
+li p:last-child {
+ margin-bottom: 0;
+}
+
+ul ul, ol ol {
+ margin: .3em 0;
+}
+
+dl {
+ margin-bottom: 1em;
+}
+
+dt {
+ font-weight: bold;
+ margin-bottom: .8em;
+}
+
+dd {
+ margin: 0 0 .8em 2em;
+}
+
+dd:last-child {
+ margin-bottom: 0;
+}
+
+img {
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+ vertical-align: middle;
+}
+
+figure {
+ display: block;
+ text-align: center;
+ margin: 1em 0;
+}
+
+figure img {
+ border: none;
+ margin: 0 auto;
+}
+
+figcaption {
+ font-size: 0.8em;
+ font-style: italic;
+ margin: 0 0 .8em;
+}
+
+table {
+ margin-bottom: 2em;
+ border-bottom: 1px solid #ddd;
+ border-right: 1px solid #ddd;
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+
+table th {
+ padding: .2em 1em;
+ background-color: #eee;
+ border-top: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+}
+
+table td {
+ padding: .2em 1em;
+ border-top: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+ vertical-align: top;
+}
+
+.author {
+ font-size: 1.2em;
+ text-align: center;
+}
+
+@media only screen and (min-width: 480px) {
+ body {
+ font-size: 14px;
+ }
+}
+@media only screen and (min-width: 768px) {
+ body {
+ font-size: 16px;
+ }
+}
+@media print {
+ * {
+ background: transparent !important;
+ color: black !important;
+ filter: none !important;
+ -ms-filter: none !important;
+ }
+
+ body {
+ font-size: 12pt;
+ max-width: 100%;
+ }
+
+ a, a:visited {
+ text-decoration: underline;
+ }
+
+ hr {
+ height: 1px;
+ border: 0;
+ border-bottom: 1px solid black;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
+ content: "";
+ }
+
+ pre, blockquote {
+ border: 1px solid #999;
+ padding-right: 1em;
+ page-break-inside: avoid;
+ }
+
+ tr, img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page :left {
+ margin: 15mm 20mm 15mm 10mm;
+ }
+
+ @page :right {
+ margin: 15mm 10mm 15mm 20mm;
+ }
+
+ p, h2, h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2, h3 {
+ page-break-after: avoid;
+ }
+}
+</style>
diff --git a/wscript b/wscript
index 1cbb4d7..90fd0c1 100644
--- a/wscript
+++ b/wscript
@@ -123,6 +123,13 @@ class dry_runner(Build.BuildContext):
fun = 'dry_run'
+@TaskGen.feature('html')
+class docs_builder(Build.BuildContext):
+ '''build the documentation as html'''
+ cmd = 'docs'
+ fun = 'docs'
+
+
def set_builder_build(bld, build, dry_run=False, show=False):
bset = pkg.configs.buildset(bld, build, dry_run)
run_cmd = [bset['cmd']] + bset['run-opts']
@@ -202,6 +209,7 @@ def configure(conf):
else:
install = 'no-install'
conf.msg('RSB Install mode', install, color='GREEN')
+ conf.find_program('pandoc', var='PANDOC', manditory=False)
conf.env.RSB_PATH = rsb_path
conf.env.RSB_SET_BUILDER = rsb_set_builder
conf.env.RSB_VERSION = rsb_version
@@ -257,3 +265,25 @@ def show(bld):
def dry_run(bld):
for build in pkg.configs.find_buildsets(bld):
set_builder_build(bld, build, dry_run=True)
+
+
+def docs(bld):
+ if not bld.env.PANDOC:
+ bld.fatal('no pandoc found during configure')
+ bld(name='css',
+ features='subst',
+ source='doc/rtems.css',
+ target='rtems.css',
+ is_copy=True)
+ title = 'RTEMS Deployment'
+ pandoc_std_opts = [
+ '-f markdown_phpextra+grid_tables+multiline_tables+simple_tables+auto_identifiers',
+ '--section-divs', '--toc',
+ '-M title="%s"' % (title), '-t html', '--include-in-header=rtems.css'
+ ]
+ bld(name='html',
+ source='README.md',
+ target='README.html',
+ rule=bld.env.PANDOC[0] + ' ${SRC} ' + ' '.join(pandoc_std_opts) +
+ ' > ${TGT}',
+ use='css')