From 1eccbe4355685b322194df72b5de2382d5290b3b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 7 Jul 2022 18:59:32 -0400 Subject: Rearrange source tree to be directly usable by dependants This allows the LV2 source distribution to be used as an include path for compilers and an LV2_PATH for applications, at the expense of self-contained bundles. That's a nice idea, but it made LV2 itself weird and annoying to depend on. This rearranges things so that directories in the source tree correspond more closely to installation directories. To make this possible, the "aux" directory in the documentation output has been changed to "style", to avoid the reserved name "aux" on Windows. --- doc/asciidoc.css | 534 ---------------------------- doc/c/reference.doxygen.in | 56 +-- doc/index.html.in | 2 +- doc/meson.build | 23 -- doc/ns/ext/meson.build | 54 +++ doc/ns/extensions/meson.build | 35 ++ doc/ns/meson.build | 59 +++- doc/pygments.css | 558 ----------------------------- doc/style.css | 805 ------------------------------------------ doc/style/asciidoc.css | 534 ++++++++++++++++++++++++++++ doc/style/meson.build | 16 + doc/style/pygments.css | 558 +++++++++++++++++++++++++++++ doc/style/style.css | 805 ++++++++++++++++++++++++++++++++++++++++++ 13 files changed, 2084 insertions(+), 1955 deletions(-) delete mode 100644 doc/asciidoc.css delete mode 100644 doc/meson.build delete mode 100644 doc/pygments.css delete mode 100644 doc/style.css create mode 100644 doc/style/asciidoc.css create mode 100644 doc/style/meson.build create mode 100644 doc/style/pygments.css create mode 100644 doc/style/style.css (limited to 'doc') diff --git a/doc/asciidoc.css b/doc/asciidoc.css deleted file mode 100644 index 2e64544..0000000 --- a/doc/asciidoc.css +++ /dev/null @@ -1,534 +0,0 @@ -/* Shared CSS for AsciiDoc xhtml11 and html5 backends */ - -/* Default font. */ -body { - font-family: serif; -} - -/* Title font. */ -h1, h2, h3, h4, h5, h6, -div.title, caption.title, -thead, p.table.header, -#toctitle, -#author, #revnumber, #revdate, #revremark, -#footer { - font-family: sans-serif; -} - -body { - margin: 1em 5% 1em 5%; -} - -a { - /* color: blue; */ - color: #5e72a5; - text-decoration: underline; -} -a:visited { - color: #4c3b5b; -} - -em { - font-style: italic; - color: navy; -} - -strong { - font-weight: bold; - color: #083194; -} - -h1, h2, h3, h4, h5, h6 { - color: black; - margin-top: 1.2em; - margin-bottom: 0.5em; - line-height: 1.3; -} - -h1, h2, h3 { - border-bottom: 2px solid silver; -} -h2 { - padding-top: 0.5em; -} -h3 { - float: left; -} -h3 + * { - clear: left; -} -h5 { - font-size: 1.0em; -} - -div.sectionbody { - margin-left: 0; -} - -hr { - border: 1px solid silver; -} - -p { - margin-top: 0.5em; - margin-bottom: 0.5em; -} - -ul, ol, li > p { - margin-top: 0; -} -ul > li { color: #aaa; } -ul > li > * { color: black; } - -.monospaced, code, pre { - font-family: monospace; - font-size: inherit; - color: black; - padding: 0; - margin: 0; -} -pre { - white-space: pre-wrap; -} - -#author { - color: black; - font-weight: bold; - font-size: 1.1em; -} -#email { -} -#revnumber, #revdate, #revremark { -} - -#footer { - font-size: small; - border-top: 2px solid silver; - padding-top: 0.5em; - margin-top: 4.0em; -} -#footer-text { - float: left; - padding-bottom: 0.5em; -} -#footer-badges { - float: right; - padding-bottom: 0.5em; -} - -#preamble { - margin-top: 1.5em; - margin-bottom: 1.5em; -} -div.imageblock, div.exampleblock, div.verseblock, -div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, -div.admonitionblock { - margin-top: 1.0em; - margin-bottom: 1.5em; -} -div.admonitionblock { - margin-top: 2.0em; - margin-bottom: 2.0em; - margin-right: 10%; - color: #606060; -} - -div.content { /* Block element content. */ - padding: 0; -} - -/* Block element titles. */ -div.title, caption.title { - color: #527bbd; - font-weight: bold; - text-align: left; - margin-top: 1.0em; - margin-bottom: 0.5em; -} -div.title + * { - margin-top: 0; -} - -td div.title:first-child { - margin-top: 0.0em; -} -div.content div.title:first-child { - margin-top: 0.0em; -} -div.content + div.title { - margin-top: 0.0em; -} - -div.sidebarblock > div.content { - background: #ffffee; - border: 1px solid #dddddd; - border-left: 4px solid #f0f0f0; - padding: 0.5em; -} - -div.listingblock > div.content { - border: 1px solid #dddddd; - border-left: 5px solid #f0f0f0; - background: #f8f8f8; - padding: 0.5em; -} - -div.quoteblock, div.verseblock { - padding-left: 1.0em; - margin-left: 1.0em; - margin-right: 10%; - border-left: 5px solid #f0f0f0; - color: #888; -} - -div.quoteblock > div.attribution { - padding-top: 0.5em; - text-align: right; -} - -div.verseblock > pre.content { - font-family: inherit; - font-size: inherit; -} -div.verseblock > div.attribution { - padding-top: 0.75em; - text-align: left; -} -/* DEPRECATED: Pre version 8.2.7 verse style literal block. */ -div.verseblock + div.attribution { - text-align: left; -} - -div.admonitionblock .icon { - vertical-align: top; - font-size: 1.1em; - font-weight: bold; - text-decoration: underline; - color: #527bbd; - padding-right: 0.5em; -} -div.admonitionblock td.content { - padding-left: 0.5em; - border-left: 3px solid #dddddd; -} - -div.exampleblock > div.content { - border-left: 3px solid #dddddd; - padding-left: 0.5em; -} - -div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; vertical-align: text-bottom; } -a.image:visited { color: white; } - -dl { - margin-top: 0.8em; - margin-bottom: 0.8em; -} -dt { - margin-top: 0.5em; - margin-bottom: 0; - font-style: normal; - color: navy; -} -dd > *:first-child { - margin-top: 0.1em; -} - -ul, ol { - list-style-position: outside; -} -ol.arabic { - list-style-type: decimal; -} -ol.loweralpha { - list-style-type: lower-alpha; -} -ol.upperalpha { - list-style-type: upper-alpha; -} -ol.lowerroman { - list-style-type: lower-roman; -} -ol.upperroman { - list-style-type: upper-roman; -} - -div.compact ul, div.compact ol, -div.compact p, div.compact p, -div.compact div, div.compact div { - margin-top: 0.1em; - margin-bottom: 0.1em; -} - -tfoot { - font-weight: bold; -} -td > div.verse { - white-space: pre; -} - -div.hdlist { - margin-top: 0.8em; - margin-bottom: 0.8em; -} -div.hdlist tr { - padding-bottom: 15px; -} -dt.hdlist1.strong, td.hdlist1.strong { - font-weight: bold; -} -td.hdlist1 { - vertical-align: top; - font-style: normal; - padding-right: 0.8em; - color: navy; -} -td.hdlist2 { - vertical-align: top; -} -div.hdlist.compact tr { - margin: 0; - padding-bottom: 0; -} - -.comment { - background: yellow; -} - -.footnote, .footnoteref { - font-size: 0.8em; -} - -span.footnote, span.footnoteref { - vertical-align: super; -} - -#footnotes { - margin: 20px 0 20px 0; - padding: 7px 0 0 0; -} - -#footnotes div.footnote { - margin: 0 0 5px 0; -} - -#footnotes hr { - border: none; - border-top: 1px solid silver; - height: 1px; - text-align: left; - margin-left: 0; - width: 20%; - min-width: 100px; -} - -div.colist td { - padding-right: 0.5em; - padding-bottom: 0.3em; - vertical-align: top; -} -div.colist td img { - margin-top: 0.3em; -} - -@media print { - #footer-badges { display: none; } -} - -#toc { - margin-bottom: 2.5em; -} - -#toctitle { - color: black; - font-size: 1.1em; - font-weight: bold; - margin-top: 1.0em; - margin-bottom: 0.1em; -} - -div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { - margin-top: 0; - margin-bottom: 0; -} -div.toclevel2 { - margin-left: 2em; - font-size: 0.9em; -} -div.toclevel3 { - margin-left: 4em; - font-size: 0.9em; -} -div.toclevel4 { - margin-left: 6em; - font-size: 0.9em; -} - -span.aqua { color: aqua; } -span.black { color: black; } -span.blue { color: blue; } -span.fuchsia { color: fuchsia; } -span.gray { color: gray; } -span.green { color: green; } -span.lime { color: lime; } -span.maroon { color: maroon; } -span.navy { color: navy; } -span.olive { color: olive; } -span.purple { color: purple; } -span.red { color: red; } -span.silver { color: silver; } -span.teal { color: teal; } -span.white { color: white; } -span.yellow { color: yellow; } - -span.aqua-background { background: aqua; } -span.black-background { background: black; } -span.blue-background { background: blue; } -span.fuchsia-background { background: fuchsia; } -span.gray-background { background: gray; } -span.green-background { background: green; } -span.lime-background { background: lime; } -span.maroon-background { background: maroon; } -span.navy-background { background: navy; } -span.olive-background { background: olive; } -span.purple-background { background: purple; } -span.red-background { background: red; } -span.silver-background { background: silver; } -span.teal-background { background: teal; } -span.white-background { background: white; } -span.yellow-background { background: yellow; } - -span.big { font-size: 2em; } -span.small { font-size: 0.6em; } - -span.underline { text-decoration: underline; } -span.overline { text-decoration: overline; } -span.line-through { text-decoration: line-through; } - -div.unbreakable { page-break-inside: avoid; } - - -/* - * xhtml11 specific - * - * */ - -div.tableblock { - margin-top: 1.0em; - margin-bottom: 1.5em; -} -div.tableblock > table { - border: 1px dashed #ccc; -} -thead, p.table.header { - font-weight: bold; - color: #527bbd; -} -p.table { - margin-top: 0; -} -th.tableblock { - font-weight: bold; - border: 1px dashed #ccc; -} -td.tableblock, th.tableblock { - border: 1px dashed #ccc; -} -/* Because the table frame attribute is overridden by CSS in most browsers. */ -div.tableblock > table[frame="void"] { - border-style: none; -} -div.tableblock > table[frame="hsides"] { - border-left-style: none; - border-right-style: none; -} -div.tableblock > table[frame="vsides"] { - border-top-style: none; - border-bottom-style: none; -} - - -/* - * html5 specific - * - * */ - -table.tableblock { - margin-top: 1.0em; - margin-bottom: 1.5em; -} -thead, p.tableblock.header { - font-weight: bold; - color: black; -} -p.tableblock { - margin-top: 0; -} -table.tableblock { - border: 0; - border-spacing: 0px; - border-style: hidden; - border-color: #ccc; - border-collapse: collapse; -} -th.tableblock, td.tableblock { - border-width: 1px; - padding: 4px; - border: 1px dashed #ccc; -} - -table.tableblock.frame-topbot { - border-left-style: hidden; - border-right-style: hidden; -} -table.tableblock.frame-sides { - border-top-style: hidden; - border-bottom-style: hidden; -} -table.tableblock.frame-none { - border-style: hidden; -} - -th.tableblock.halign-left, td.tableblock.halign-left { - text-align: left; -} -th.tableblock.halign-center, td.tableblock.halign-center { - text-align: center; -} -th.tableblock.halign-right, td.tableblock.halign-right { - text-align: right; -} - -th.tableblock.valign-top, td.tableblock.valign-top { - vertical-align: top; -} -th.tableblock.valign-middle, td.tableblock.valign-middle { - vertical-align: middle; -} -th.tableblock.valign-bottom, td.tableblock.valign-bottom { - vertical-align: bottom; -} - - -/* - * manpage specific - * - * */ - -body.manpage h1 { - padding-top: 0.5em; - padding-bottom: 0.5em; - border-top: 2px solid silver; - border-bottom: 2px solid silver; -} -body.manpage h2 { - border-style: none; -} -body.manpage div.sectionbody { - margin-left: 3em; -} - -@media print { - body.manpage div#toc { display: none; } -} diff --git a/doc/c/reference.doxygen.in b/doc/c/reference.doxygen.in index 6318484..3280f75 100644 --- a/doc/c/reference.doxygen.in +++ b/doc/c/reference.doxygen.in @@ -865,34 +865,34 @@ WARN_LOGFILE = # Note: If this tag is empty the current directory is searched. INPUT = @LV2_SRCDIR@/doc/c/mainpage.md \ - @LV2_SRCDIR@/lv2/atom/atom.h \ - @LV2_SRCDIR@/lv2/atom/forge.h \ - @LV2_SRCDIR@/lv2/atom/util.h \ - @LV2_SRCDIR@/lv2/buf-size/buf-size.h \ - @LV2_SRCDIR@/lv2/core/lv2.h \ - @LV2_SRCDIR@/lv2/data-access/data-access.h \ - @LV2_SRCDIR@/lv2/dynmanifest/dynmanifest.h \ - @LV2_SRCDIR@/lv2/event/event-helpers.h \ - @LV2_SRCDIR@/lv2/event/event.h \ - @LV2_SRCDIR@/lv2/instance-access/instance-access.h \ - @LV2_SRCDIR@/lv2/log/log.h \ - @LV2_SRCDIR@/lv2/log/logger.h \ - @LV2_SRCDIR@/lv2/midi/midi.h \ - @LV2_SRCDIR@/lv2/morph/morph.h \ - @LV2_SRCDIR@/lv2/options/options.h \ - @LV2_SRCDIR@/lv2/parameters/parameters.h \ - @LV2_SRCDIR@/lv2/patch/patch.h \ - @LV2_SRCDIR@/lv2/port-groups/port-groups.h \ - @LV2_SRCDIR@/lv2/port-props/port-props.h \ - @LV2_SRCDIR@/lv2/presets/presets.h \ - @LV2_SRCDIR@/lv2/resize-port/resize-port.h \ - @LV2_SRCDIR@/lv2/state/state.h \ - @LV2_SRCDIR@/lv2/time/time.h \ - @LV2_SRCDIR@/lv2/ui/ui.h \ - @LV2_SRCDIR@/lv2/units/units.h \ - @LV2_SRCDIR@/lv2/uri-map/uri-map.h \ - @LV2_SRCDIR@/lv2/urid/urid.h \ - @LV2_SRCDIR@/lv2/worker/worker.h + @LV2_SRCDIR@/include/lv2/atom/atom.h \ + @LV2_SRCDIR@/include/lv2/atom/forge.h \ + @LV2_SRCDIR@/include/lv2/atom/util.h \ + @LV2_SRCDIR@/include/lv2/buf-size/buf-size.h \ + @LV2_SRCDIR@/include/lv2/core/lv2.h \ + @LV2_SRCDIR@/include/lv2/data-access/data-access.h \ + @LV2_SRCDIR@/include/lv2/dynmanifest/dynmanifest.h \ + @LV2_SRCDIR@/include/lv2/event/event-helpers.h \ + @LV2_SRCDIR@/include/lv2/event/event.h \ + @LV2_SRCDIR@/include/lv2/instance-access/instance-access.h \ + @LV2_SRCDIR@/include/lv2/log/log.h \ + @LV2_SRCDIR@/include/lv2/log/logger.h \ + @LV2_SRCDIR@/include/lv2/midi/midi.h \ + @LV2_SRCDIR@/include/lv2/morph/morph.h \ + @LV2_SRCDIR@/include/lv2/options/options.h \ + @LV2_SRCDIR@/include/lv2/parameters/parameters.h \ + @LV2_SRCDIR@/include/lv2/patch/patch.h \ + @LV2_SRCDIR@/include/lv2/port-groups/port-groups.h \ + @LV2_SRCDIR@/include/lv2/port-props/port-props.h \ + @LV2_SRCDIR@/include/lv2/presets/presets.h \ + @LV2_SRCDIR@/include/lv2/resize-port/resize-port.h \ + @LV2_SRCDIR@/include/lv2/state/state.h \ + @LV2_SRCDIR@/include/lv2/time/time.h \ + @LV2_SRCDIR@/include/lv2/ui/ui.h \ + @LV2_SRCDIR@/include/lv2/units/units.h \ + @LV2_SRCDIR@/include/lv2/uri-map/uri-map.h \ + @LV2_SRCDIR@/include/lv2/urid/urid.h \ + @LV2_SRCDIR@/include/lv2/worker/worker.h # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/doc/index.html.in b/doc/index.html.in index e097eab..6f3e0f9 100644 --- a/doc/index.html.in +++ b/doc/index.html.in @@ -6,7 +6,7 @@ + href="../style/style.css" /> diff --git a/doc/meson.build b/doc/meson.build deleted file mode 100644 index 230211e..0000000 --- a/doc/meson.build +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2022 David Robillard -# SPDX-License-Identifier: CC0-1.0 OR ISC - -if doxygen.found() - aux_files = files( - 'pygments.css', - 'style.css' - ) - - foreach file : aux_files - configure_file( - input: file, - output: '@PLAINNAME@', - copy: true, - install_dir: lv2_docdir / 'aux') - endforeach - - subdir('ns') - - build_docs = true -else - build_docs = false -endif diff --git a/doc/ns/ext/meson.build b/doc/ns/ext/meson.build index 4a2ca1f..f6ad06b 100644 --- a/doc/ns/ext/meson.build +++ b/doc/ns/ext/meson.build @@ -11,3 +11,57 @@ if get_option('online_docs') output: '.htaccess', ) endif + +spec_names = [ + 'atom', + 'buf-size', + 'data-access', + 'dynmanifest', + 'event', + 'instance-access', + 'log', + 'midi', + 'morph', + 'options', + 'parameters', + 'patch', + 'port-groups', + 'port-props', + 'presets', + 'resize-port', + 'state', + 'time', + 'uri-map', + 'urid', + 'worker', +] + +if build_docs + foreach name : spec_names + spec_file = files(lv2_source_root / 'lv2' / name + '.lv2' / name + '.ttl') + + custom_target( + name + '.html', + command: lv2specgen_command_prefix + [ + '--docdir=../../c/html', + '--style-uri=../../style/style.css', + '@INPUT@', + '@OUTPUT@', + ], + depends: doc_deps, + input: spec_file, + install: true, + install_dir: lv2_docdir / 'ns' / 'ext', + output: name + '.html', + ) + + if get_option('online_docs') + configure_file( + copy: true, + input: spec_file, + install_dir: lv2_docdir / 'ns' / 'ext', + output: '@PLAINNAME@', + ) + endif + endforeach +endif diff --git a/doc/ns/extensions/meson.build b/doc/ns/extensions/meson.build index b54e3d2..5a25184 100644 --- a/doc/ns/extensions/meson.build +++ b/doc/ns/extensions/meson.build @@ -11,3 +11,38 @@ if get_option('online_docs') output: '.htaccess', ) endif + +spec_names = [ + 'ui', + 'units', +] + +if build_docs + foreach name : spec_names + spec_file = files(lv2_source_root / 'lv2' / name + '.lv2' / name + '.ttl') + + custom_target( + name + '.html', + command: lv2specgen_command_prefix + [ + '--docdir=../../c/html', + '--style-uri=../../style/style.css', + '@INPUT@', + '@OUTPUT@', + ], + depends: doc_deps, + input: spec_file, + install: true, + install_dir: lv2_docdir / 'ns' / 'extensions', + output: name + '.html', + ) + + if get_option('online_docs') + configure_file( + copy: true, + input: spec_file, + install_dir: lv2_docdir / 'ns' / 'ext', + output: '@PLAINNAME@', + ) + endif + endforeach +endif diff --git a/doc/ns/meson.build b/doc/ns/meson.build index 26471b9..bb471c9 100644 --- a/doc/ns/meson.build +++ b/doc/ns/meson.build @@ -12,20 +12,67 @@ if get_option('online_docs') ) endif +###################### +# Core Documentation # +###################### + +if build_docs + spec_file = files(lv2_source_root / 'lv2' / 'core.lv2' / 'lv2core.ttl') + + lv2_core_docs = custom_target( + 'lv2core.html', + command: lv2specgen_command_prefix + [ + '--docdir=../c/html', + '--style-uri=../style/style.css', + '@INPUT@', + '@OUTPUT@', + ], + input: spec_file, + output: 'lv2core.html', + depends: doc_deps, + install: true, + install_dir: lv2_docdir / 'ns', + ) + + if get_option('online_docs') + configure_file( + copy: true, + input: spec_file, + install_dir: lv2_docdir / 'ns' / 'ext', + output: '@PLAINNAME@', + ) + endif +endif + +########################### +# Extension Documentation # +########################### + subdir('ext') subdir('extensions') +######### +# Index # +######### + lv2_build_index = files(lv2_source_root / 'scripts' / 'lv2_build_index.py') +lv2_build_index_command = [ + lv2_build_index, + '--lv2-version', meson.project_version(), + '--lv2-source-root', lv2_source_root, +] + +if get_option('online_docs') + lv2_build_index_command += [ + '--online', + ] +endif + index = custom_target( 'index.html', capture: true, - command: [ - lv2_build_index, - '--lv2-version', meson.project_version(), - '--lv2-source-root', lv2_source_root, - '@INPUT@' - ], + command: lv2_build_index_command + ['@INPUT@'], input: spec_files, install: true, install_dir: lv2_docdir / 'ns', diff --git a/doc/pygments.css b/doc/pygments.css deleted file mode 100644 index 2472b1a..0000000 --- a/doc/pygments.css +++ /dev/null @@ -1,558 +0,0 @@ -/* Light (default) theme */ - -.n { - color: #222; -} - -.c { - color: #3F4D91; - font-style: italic; -} - -.err { - border: 1px solid #DC322F; -} - -.k { - color: #586E75; -} - -.o { - color: #586E75; -} - -.cm { - color: #3F4D91; - font-style: italic; -} - -.cp { - color: #586E75; -} - -.cpf { - color: #93115C; -} - -.c1 { - color: #3F4D91; - font-style: italic; -} - -.cs { - color: #3F4D91; - font-style: italic; -} - -.gd { - color: #990A1B; -} - -.ge { - font-style: italic; -} - -.gr { - color: #DC322F; -} - -.gh { - color: #3F4D91; - font-weight: bold; -} - -.gi { - color: #859900; -} - -.go { - color: #666; -} - -.gp { - color: #666; - font-weight: bold; -} - -.gs { - font-weight: bold; -} - -.gu { - color: #444; - font-weight: bold; -} - -.gt { - color: #268BD2; -} - -.kc { - color: #586E75; - font-weight: bold; -} - -.kd { - color: #586E75; - font-weight: bold; -} - -.kn { - color: #586E75; - font-weight: bold; -} - -.kp { - color: #586E75; -} - -.kr { - color: #586E75; - font-weight: bold; -} - -.kt { - color: #586E75; -} - -.m { - color: #666; -} - -.s { - color: #93115C; -} - -.na { - color: #444; -} - -.nb { - color: #3F4D91; -} - -.nc { - color: #000; -} - -.no { - color: #880; -} - -.nd { - color: #A2F; -} - -.ni { - color: #666; - font-weight: bold; -} - -.ne { - color: #D2413A; - font-weight: bold; -} - -.nf { - color: #000; -} - -.nl { - color: #546E00; -} - -.nn { - color: #444; -} - -.nt { - color: #444; -} - -.nv { - color: #222; -} - -.ow { - color: #3F4D91; -} - -.w { - color: #BBB; -} - -.mb { - color: #93115C; - font-weight: bold; -} - -.mf { - color: #93115C; -} - -.mh { - color: #93115C; - font-weight: bold; -} - -.mi { - color: #93115C; -} - -.mo { - color: #93115C; - font-weight: bold; -} - -.sb { - color: #93115C; -} - -.sc { - color: #93115C; -} - -.sd { - color: #3F4D91; - font-style: italic; -} - -.s2 { - color: #93115C; -} - -.se { - color: #93115C; - font-weight: bold; -} - -.sh { - color: #93115C; -} - -.si { - color: #93115C; - font-weight: bold; -} - -.sx { - color: #93115C; -} - -.sr { - color: #93115C; - font-weight: bold; -} - -.s1 { - color: #93115C; -} - -.ss { - color: #444; - font-weight: bold; -} - -.bp { - color: #859900; -} - -.vc { - color: #00629D; -} - -.vg { - color: #00629D; -} - -.vi { - color: #00629D; -} - -.il { - color: #000; -} - -.p { - color: #444; -} - -/* Dark theme */ -@media (prefers-color-scheme: dark) { - .n { - color: #BBB; - } - - .c { - color: #6C71C4; - font-style: italic; - } - - .err { - border: 1px solid #FF6E64; - } - - .k { - color: #93A1A1; - } - - .o { - color: #93A1A1; - } - - .cm { - color: #6C71C4; - font-style: italic; - } - - .cp { - color: #93A1A1; - } - - .cpf { - color: #D33682; - } - - .c1 { - color: #6C71C4; - font-style: italic; - } - - .cs { - color: #6C71C4; - font-style: italic; - } - - .gd { - color: #DC322F; - } - - .ge { - font-style: italic; - } - - .gr { - color: #FF6E64; - } - - .gh { - color: #6C71C4; - font-weight: bold; - } - - .gi { - color: #859900; - } - - .go { - color: #666; - } - - .gp { - color: #666; - font-weight: bold; - } - - .gs { - font-weight: bold; - } - - .gu { - color: #BBB; - font-weight: bold; - } - - .gt { - color: #69B7F0; - } - - .kc { - color: #93A1A1; - font-weight: bold; - } - - .kd { - color: #93A1A1; - font-weight: bold; - } - - .kn { - color: #93A1A1; - font-weight: bold; - } - - .kp { - color: #93A1A1; - } - - .kr { - color: #93A1A1; - font-weight: bold; - } - - .kt { - color: #93A1A1; - } - - .m { - color: #999; - } - - .s { - color: #D33682; - } - - .na { - color: #BBB; - } - - .nb { - color: #6C71C4; - } - - .nc { - color: #FFF; - } - - .no { - color: #880; - } - - .nd { - color: #A2F; - } - - .ni { - color: #999; - font-weight: bold; - } - - .ne { - color: #D2413A; - font-weight: bold; - } - - .nf { - color: #FFF; - } - - .nl { - color: #546E00; - } - - .nn { - color: #BBB; - } - - .nt { - color: #BBB; - } - - .nv { - color: #DDD; - } - - .ow { - color: #6C71C4; - } - - .w { - color: #BBB; - } - - .mb { - color: #D33682; - font-weight: bold; - } - - .mf { - color: #D33682; - } - - .mh { - color: #D33682; - font-weight: bold; - } - - .mi { - color: #D33682; - } - - .mo { - color: #D33682; - font-weight: bold; - } - - .sb { - color: #D33682; - } - - .sc { - color: #D33682; - } - - .sd { - color: #6C71C4; - font-style: italic; - } - - .s2 { - color: #D33682; - } - - .se { - color: #D33682; - font-weight: bold; - } - - .sh { - color: #D33682; - } - - .si { - color: #D33682; - font-weight: bold; - } - - .sx { - color: #D33682; - } - - .sr { - color: #D33682; - font-weight: bold; - } - - .s1 { - color: #D33682; - } - - .ss { - color: #BBB; - font-weight: bold; - } - - .bp { - color: #859900; - } - - .vc { - color: #268BD2; - } - - .vg { - color: #268BD2; - } - - .vi { - color: #268BD2; - } - - .il { - color: #FFF; - } - - .p { - color: #BBB; - } -} diff --git a/doc/style.css b/doc/style.css deleted file mode 100644 index fca399e..0000000 --- a/doc/style.css +++ /dev/null @@ -1,805 +0,0 @@ -@import "./pygments.css"; - -/* Generic page style */ - -html { - background: #FFF; - color: #222; -} - -body { - font-family: "DejaVu Sans", "SF Pro Text", Verdana, sans-serif; - font-style: normal; - line-height: 1.6em; - margin-left: auto; - margin-right: auto; - max-width: 60em; - padding: 1em; -} - -h1 { - font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; - font-size: 2.38em; - font-weight: 600; - line-height: 1.41em; - margin: 0 0 0.25em; -} - -h2 { - font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; - font-size: 1.68em; - font-weight: 600; - line-height: 1.3em; - margin: 1.25em 0 0.5em; -} - -h3 { - font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; - font-size: 1.41em; - font-weight: 600; - line-height: 1.19em; - margin: 1.25em 0 0.5em; -} - -h4 { - font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; - font-size: 1.19em; - font-weight: 600; - line-height: 1.09em; - margin: 1.25em 0 0.5em; -} - -h5, h6 { - font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; - font-size: 1em; - font-weight: 600; - line-height: 1em; - margin: 1.25em 0 0.5em; -} - -a { - color: #546E00; - text-decoration: none; -} - -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - color: #222; -} - -a:link { - color: #546E00; - text-decoration: none; -} - -a:visited { - color: #546E00; -} - -a:hover { - text-decoration: underline; -} - -h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link { - color: #222; -} - -h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited { - color: #222; -} - -img { - border: 0; -} - -p { - margin: 0.5em 0; -} - -blockquote { - border-left: 1px solid #CCC; - margin-left: 1em; - padding-left: 1em; -} - -pre, code, kbd, samp { - color: #444; - font-family: "DejaVu Sans Mono", "SF Mono", Consolas, monospace; - margin: 1em 0; - white-space: pre; -} - -ul, ol { - margin: 0 0 0.5em; - padding-top: 0; -} - -dt { - font-weight: 600; - margin: 0.75em 0 0.125em; -} - -dt::after { - content: ": "; - margin-right: 0.5em; -} - -hr { - background-color: #EEE; - border: 0; - color: #666; - height: 1px; - margin-bottom: 1.5ex; - margin-top: 1.5ex; -} - -table { - border-collapse: collapse; - border-spacing: 1em 1em; - border-style: hidden; - border: 0; - margin: 0; -} - -th { - border: 1px solid #EEE; - padding: 0.25em 0.5em; - text-align: left; -} - -table tbody tr th { - text-align: left; -} - -td { - border: 1px solid #EEE; - padding: 0.25em 0.5em; - vertical-align: top; -} - -caption { - caption-side: bottom; - font-size: small; - font-style: italic; - margin: 0.75em 0; -} - -footer { - color: #444; - font-size: small; -} - -/* Specgen style */ - -#titlebox { - display: inline-block; - max-width: 60%; - left: 0; - top: 0; -} - -#metabox { - display: inline-block; - font-size: x-small; - font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; - position: absolute; - right: 0; - bottom: 0.25em; - color: #666; - font-style: italic; -} - -#meta { - border-style: hidden; -} - -#meta tr, #meta th, #meta td { - border: 0; - font-weight: normal; - padding: 0 0 0.125em; - background-color: transparent; -} - -#meta th { - padding-right: 0.5em; - text-align: right; -} - -#meta th::after { - content: ": "; -} - -#subtitle { - font-size: small; -} - -#shortdesc { - padding: 0; - margin: 0 0 0.5em; - font-style: italic; - color: #666; - display: inline-block; -} - -#logo { - height: 63px; - margin-left: 1em; - margin-top: 10px; - width: 100px; -} - -#titlesep { - color: #EEE; -} - -#content-body { - border-bottom: 0; - display: block; - font-size: 75%; - left: 0; - margin-left: 2em; - min-width: 660px; - padding: 3px 10px 0 0; - position: absolute; - top: 63px; - width: 93.9%; - z-index: 0; -} - -#menu { - font-size: 75%; - margin-bottom: 5px; - padding: 0; - width: 16em; -} - -#menu ul { - border: 0; - list-style: none; - margin: 0; - padding: 0; -} - -#menu a { - text-decoration: none; -} - -#menu ul.level-one a { - background-color: #F5F5F5; - border: 1px solid #DADADA; - color: #4B5A6A; - display: block; - margin: 0 0 4px 1.4em; - padding: 2px 2px 2px 4px; - text-transform: uppercase; - width: 13.4em !important; -} - -#menu ul.level-two a { - background: none; - background-color: transparent; - border: 0; - border-top: 1px solid #DDD; - color: #3C4B7B; - display: block; - margin: 0 3em 0 1.5em; - padding: 0.1em; - text-transform: none; - width: 11em !important; -} - -#menu ul.level-three a { - border: 0; - color: #5E72A5; - display: block; - font-size: 95%; - margin: 0 3em 0 1.8em; - padding: 0.1em 0.1em 0.1em 1em; - width: 10em !important; -} - -#menu ul.level-one a:hover, -#menu ul.level-two a:hover, -#menu ul.level-three a:hover { - color: #000; - text-decoration: underline; -} - -#menu ul.level-one a.selected { - background-color: #FFF; - border-left: 3px solid #FFDB4C; - color: #000; -} - -#menu ul.level-two a:visited { - color: #4C3B5B; -} - -#menu ul.level-two li:first-child a { - border-top: 0; -} - -#menu ul.level-one ul.level-two a.selected { - background-color: #FFF; - border-left: 0; - color: #000; - font-weight: 700; -} - -#menu li ul { - margin-bottom: 7px; -} - -#menu ul.level-three li.selected a.selected { - color: #000; - font-weight: 400; -} - -#menu ul.level-three { - margin-top: 5px; -} - -#searchbox { - font-weight: 700; - position: absolute; - right: 0; - text-align: right; - top: 0; - vertical-align: middle; - white-space: nowrap; - width: 28.1em; -} - -#search { - color: #A38E60; - padding: 5px 5px 0 0; -} - -#search .input-text { - background-color: #FFF; - border: 1px solid #C4CCCC; - font-size: 116%; - font-weight: 400; - margin-top: 3px; - vertical-align: top; - width: 11em; -} - -#search .input-button { - background-color: #F8F7F7; - border-bottom: 1px solid #6F7777; - border-left: 1px solid #C4CCCC; - border-right: 1px solid #6F7777; - border-top: 1px solid #C4CCCC; - color: #234; - font-weight: 700; - margin: 3px 0.4em 0; - padding: 0 0.2em; - vertical-align: text-top; -} - -input.formbutton { - background-color: #F8F7F7; - border-bottom: 1px solid #6F7777; - border-left: 1px solid #C4CCCC; - border-right: 1px solid #6F7777; - border-top: 1px solid #C4CCCC; - color: #234; - font-weight: 700; - vertical-align: text-top; -} - -.formtextinput { - background-color: #FFF; - border: 1px solid #C4CCCC; - font-size: 116%; - font-weight: 400; - vertical-align: top; -} - -#content table { - clear: right; -} - -.content-section { - margin-top: 15px; -} - -.content-section h1 { - margin: 0 0 10px; -} - -.content-section p { - margin: 0 0 5px; - padding-left: 12px; -} - -.content-section .pubdate { - color: #696969; - margin: 0 0 8px; - padding: 0 0 0 12px; -} - -#footer { - bottom: 0; - clear: both; - font-size: x-small; - margin: 2em 0 0; - padding: 0; - color: #888; -} - -#searchbox a.reference, #searchbox span.reference { - color: #339; - font-size: 85%; - font-weight: 400; - position: absolute; - right: 8.3em; - text-decoration: none; - top: 2.9em; -} - -#topbar { - line-height: 1em; - border-bottom: 1px solid #EEE; -} - -@media print { - #topbar { - color: #000; - margin: 0.25em auto; - padding: 0.25em 0.5em 0.5em; - max-width: 60em; - position: relative; - } - - #contentsbox { - display: none; - } - - #topbar a, #title a, #topbar a:visited, #title a:visited { - color: #000; - } - - #contents { - display: none; - } -} - -@media screen { - #topbar { - margin: 0.25em auto; - padding: 0; - max-width: 60em; - position: relative; - } - - #contentsbox { - color: #546E00; - font-size: small; - margin: 0 0 1.5em; - } - - #contents { - display: inline; - padding: 0; - } - - #contents li { - display: inline; - list-style-type: none; - margin-left: 0; - margin-right: 0.5em; - padding: 0.25ex 0.25ex 0.25ex 0; - } -} - -#content { - clear: both; - padding: 0; - max-width: 60em; - margin-left: auto; - margin-right: auto; -} - -.section { - clear: right; - padding: 0 0 1.5em; -} - -.category { - font-size: small; - color: #AAA; - float: right; - vertical-align: bottom; - padding: 0; - margin: 0; - padding-right: 0.25em; -} - -.label { - font-style: italic; - margin-top: 0.25em; - color: #666; -} - -table.index { - border: 0; - line-height: 1.5em; - margin-top: 2em; -} - -.index ul { - padding-left: 1.25em; - margin-left: 0; - list-style-type: circle; -} - -.index ul li { - padding-left: 0; - color: #888; -} - -.prop { - margin: 0; - padding: 0; -} - -.description { - margin-top: 0; - margin-bottom: 0.75em; -} - -.blankdesc, .blankdef { - border-spacing: 0; - margin: 0; - padding-left: 0; - padding-right: 0; -} - -.blankdesc tbody tr td, .blankdef { - border: 0 !important; -} - -.blankdesc td { - padding-right: 0.5em; -} - -.blankdesc tbody tr td:first-child { - border-left: 1px solid #BBB; - text-align: right; -} - -.terminfo, .restriction { - border-collapse: collapse; - border-spacing: 0; - font-size: small; - color: #666; - border-radius: 0; - border-bottom-left-radius: 6px; -} - -table.terminfo { - border-top: 0; - border-collapse: collapse; - margin: -1px 0 2em 2em; - padding: 0.25em 0; - float: right; - border-bottom: 1px solid #EEE; - border-left: 1px solid #EEE; - border-bottom-left-radius: 6px; - max-width: 50%; - line-height: 1.4em; - min-width: 25%; -} - -table.terminfo td { - padding: 0 0.5em; -} - -.restriction { - border-style: hidden; - margin: 0 0 0.5ex; - padding: 0; - vertical-align: text-top; -} - -.restriction td { - vertical-align: text-top; -} - -.terminfo th { - padding: 0 0.5em; - text-align: right; - vertical-align: top; -} - -.specterm { - border: 0; - margin: 0; - padding: 1em 0; - clear: both; -} - -.specterm h3 { - display: inline-block; - margin-bottom: 0.25em; - width: 80%; -} - -.spectermtype { - color: #888; - display: inline-block; - font-size: small; - font-style: italic; - box-sizing: border-box; - margin: 0; - padding: 0 0.25em 0 0; - text-align: right; - vertical-align: bottom; - width: 20%; -} - -.spectermbody { - border-top: 1px solid #EEE; - padding: 0; -} - -.spectermbody .description .comment > p:first-child { - color: #444; - font-style: italic; - margin-bottom: 0.75em; -} - -dl { - margin: 0; - padding: 0; -} - -div.head { - margin-bottom: 1em; -} - -div.head h1 { - clear: both; - margin-top: 2em; -} - -div.head table { - margin-left: 2em; - margin-top: 2em; -} - -#menu li { - display: inline; -} - -.error { - color: #990A1B; -} - -.warning { - color: #7B6000; -} - -.success { - color: #546E00; -} - -.highlight, .codehilite { - margin-left: 2em; -} - -/* Dark mode */ -@media (prefers-color-scheme: dark) { - /* Dark generic page style */ - - html { - background: #222; - color: #DDD; - } - - a { - color: #B4C342; - } - - a:link { - color: #B4C342; - } - - a:visited { - color: #B4C342; - } - - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - color: #DDD; - } - - h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link { - color: #DDD; - } - - h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited { - color: #DDD; - } - - blockquote { - border-left: 1px solid #444; - } - - pre, code, kbd, samp { - color: #DDD; - } - - hr { - background-color: #333; - border: 0; - color: #666; - } - - th { - border: 1px solid #444; - } - - td { - border: 1px solid #444; - } - - footer { - color: #BBB; - } - - /* Dark specgen style */ - - #metabox { - color: #999; - } - - #shortdesc { - color: #999; - } - - #titlesep { - color: #444; - } - - .terminfo, .restriction { - color: #999; - } - - table.terminfo { - border-bottom: 1px solid #444; - border-left: 1px solid #444; - } - - .spectermbody { - border-top: 1px solid #444; - } - - .spectermbody .description .comment > p:first-child { - color: #BBB; - } - - .error { - color: #DC322F; - } - - .warning { - color: #B58900; - } - - .success { - color: #859900; - } - - #topbar { - border-bottom: 1px solid #444; - } -} - -/* Hard black for dark mode on mobile (since it's likely to be an OLED screen) */ -@media only screen and (hover: none) and (pointer: coarse) and (prefers-color-scheme: dark) { - html { - background: #000; - color: #CCC; - } -} diff --git a/doc/style/asciidoc.css b/doc/style/asciidoc.css new file mode 100644 index 0000000..2e64544 --- /dev/null +++ b/doc/style/asciidoc.css @@ -0,0 +1,534 @@ +/* Shared CSS for AsciiDoc xhtml11 and html5 backends */ + +/* Default font. */ +body { + font-family: serif; +} + +/* Title font. */ +h1, h2, h3, h4, h5, h6, +div.title, caption.title, +thead, p.table.header, +#toctitle, +#author, #revnumber, #revdate, #revremark, +#footer { + font-family: sans-serif; +} + +body { + margin: 1em 5% 1em 5%; +} + +a { + /* color: blue; */ + color: #5e72a5; + text-decoration: underline; +} +a:visited { + color: #4c3b5b; +} + +em { + font-style: italic; + color: navy; +} + +strong { + font-weight: bold; + color: #083194; +} + +h1, h2, h3, h4, h5, h6 { + color: black; + margin-top: 1.2em; + margin-bottom: 0.5em; + line-height: 1.3; +} + +h1, h2, h3 { + border-bottom: 2px solid silver; +} +h2 { + padding-top: 0.5em; +} +h3 { + float: left; +} +h3 + * { + clear: left; +} +h5 { + font-size: 1.0em; +} + +div.sectionbody { + margin-left: 0; +} + +hr { + border: 1px solid silver; +} + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +ul, ol, li > p { + margin-top: 0; +} +ul > li { color: #aaa; } +ul > li > * { color: black; } + +.monospaced, code, pre { + font-family: monospace; + font-size: inherit; + color: black; + padding: 0; + margin: 0; +} +pre { + white-space: pre-wrap; +} + +#author { + color: black; + font-weight: bold; + font-size: 1.1em; +} +#email { +} +#revnumber, #revdate, #revremark { +} + +#footer { + font-size: small; + border-top: 2px solid silver; + padding-top: 0.5em; + margin-top: 4.0em; +} +#footer-text { + float: left; + padding-bottom: 0.5em; +} +#footer-badges { + float: right; + padding-bottom: 0.5em; +} + +#preamble { + margin-top: 1.5em; + margin-bottom: 1.5em; +} +div.imageblock, div.exampleblock, div.verseblock, +div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, +div.admonitionblock { + margin-top: 1.0em; + margin-bottom: 1.5em; +} +div.admonitionblock { + margin-top: 2.0em; + margin-bottom: 2.0em; + margin-right: 10%; + color: #606060; +} + +div.content { /* Block element content. */ + padding: 0; +} + +/* Block element titles. */ +div.title, caption.title { + color: #527bbd; + font-weight: bold; + text-align: left; + margin-top: 1.0em; + margin-bottom: 0.5em; +} +div.title + * { + margin-top: 0; +} + +td div.title:first-child { + margin-top: 0.0em; +} +div.content div.title:first-child { + margin-top: 0.0em; +} +div.content + div.title { + margin-top: 0.0em; +} + +div.sidebarblock > div.content { + background: #ffffee; + border: 1px solid #dddddd; + border-left: 4px solid #f0f0f0; + padding: 0.5em; +} + +div.listingblock > div.content { + border: 1px solid #dddddd; + border-left: 5px solid #f0f0f0; + background: #f8f8f8; + padding: 0.5em; +} + +div.quoteblock, div.verseblock { + padding-left: 1.0em; + margin-left: 1.0em; + margin-right: 10%; + border-left: 5px solid #f0f0f0; + color: #888; +} + +div.quoteblock > div.attribution { + padding-top: 0.5em; + text-align: right; +} + +div.verseblock > pre.content { + font-family: inherit; + font-size: inherit; +} +div.verseblock > div.attribution { + padding-top: 0.75em; + text-align: left; +} +/* DEPRECATED: Pre version 8.2.7 verse style literal block. */ +div.verseblock + div.attribution { + text-align: left; +} + +div.admonitionblock .icon { + vertical-align: top; + font-size: 1.1em; + font-weight: bold; + text-decoration: underline; + color: #527bbd; + padding-right: 0.5em; +} +div.admonitionblock td.content { + padding-left: 0.5em; + border-left: 3px solid #dddddd; +} + +div.exampleblock > div.content { + border-left: 3px solid #dddddd; + padding-left: 0.5em; +} + +div.imageblock div.content { padding-left: 0; } +span.image img { border-style: none; vertical-align: text-bottom; } +a.image:visited { color: white; } + +dl { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +dt { + margin-top: 0.5em; + margin-bottom: 0; + font-style: normal; + color: navy; +} +dd > *:first-child { + margin-top: 0.1em; +} + +ul, ol { + list-style-position: outside; +} +ol.arabic { + list-style-type: decimal; +} +ol.loweralpha { + list-style-type: lower-alpha; +} +ol.upperalpha { + list-style-type: upper-alpha; +} +ol.lowerroman { + list-style-type: lower-roman; +} +ol.upperroman { + list-style-type: upper-roman; +} + +div.compact ul, div.compact ol, +div.compact p, div.compact p, +div.compact div, div.compact div { + margin-top: 0.1em; + margin-bottom: 0.1em; +} + +tfoot { + font-weight: bold; +} +td > div.verse { + white-space: pre; +} + +div.hdlist { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +div.hdlist tr { + padding-bottom: 15px; +} +dt.hdlist1.strong, td.hdlist1.strong { + font-weight: bold; +} +td.hdlist1 { + vertical-align: top; + font-style: normal; + padding-right: 0.8em; + color: navy; +} +td.hdlist2 { + vertical-align: top; +} +div.hdlist.compact tr { + margin: 0; + padding-bottom: 0; +} + +.comment { + background: yellow; +} + +.footnote, .footnoteref { + font-size: 0.8em; +} + +span.footnote, span.footnoteref { + vertical-align: super; +} + +#footnotes { + margin: 20px 0 20px 0; + padding: 7px 0 0 0; +} + +#footnotes div.footnote { + margin: 0 0 5px 0; +} + +#footnotes hr { + border: none; + border-top: 1px solid silver; + height: 1px; + text-align: left; + margin-left: 0; + width: 20%; + min-width: 100px; +} + +div.colist td { + padding-right: 0.5em; + padding-bottom: 0.3em; + vertical-align: top; +} +div.colist td img { + margin-top: 0.3em; +} + +@media print { + #footer-badges { display: none; } +} + +#toc { + margin-bottom: 2.5em; +} + +#toctitle { + color: black; + font-size: 1.1em; + font-weight: bold; + margin-top: 1.0em; + margin-bottom: 0.1em; +} + +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { + margin-top: 0; + margin-bottom: 0; +} +div.toclevel2 { + margin-left: 2em; + font-size: 0.9em; +} +div.toclevel3 { + margin-left: 4em; + font-size: 0.9em; +} +div.toclevel4 { + margin-left: 6em; + font-size: 0.9em; +} + +span.aqua { color: aqua; } +span.black { color: black; } +span.blue { color: blue; } +span.fuchsia { color: fuchsia; } +span.gray { color: gray; } +span.green { color: green; } +span.lime { color: lime; } +span.maroon { color: maroon; } +span.navy { color: navy; } +span.olive { color: olive; } +span.purple { color: purple; } +span.red { color: red; } +span.silver { color: silver; } +span.teal { color: teal; } +span.white { color: white; } +span.yellow { color: yellow; } + +span.aqua-background { background: aqua; } +span.black-background { background: black; } +span.blue-background { background: blue; } +span.fuchsia-background { background: fuchsia; } +span.gray-background { background: gray; } +span.green-background { background: green; } +span.lime-background { background: lime; } +span.maroon-background { background: maroon; } +span.navy-background { background: navy; } +span.olive-background { background: olive; } +span.purple-background { background: purple; } +span.red-background { background: red; } +span.silver-background { background: silver; } +span.teal-background { background: teal; } +span.white-background { background: white; } +span.yellow-background { background: yellow; } + +span.big { font-size: 2em; } +span.small { font-size: 0.6em; } + +span.underline { text-decoration: underline; } +span.overline { text-decoration: overline; } +span.line-through { text-decoration: line-through; } + +div.unbreakable { page-break-inside: avoid; } + + +/* + * xhtml11 specific + * + * */ + +div.tableblock { + margin-top: 1.0em; + margin-bottom: 1.5em; +} +div.tableblock > table { + border: 1px dashed #ccc; +} +thead, p.table.header { + font-weight: bold; + color: #527bbd; +} +p.table { + margin-top: 0; +} +th.tableblock { + font-weight: bold; + border: 1px dashed #ccc; +} +td.tableblock, th.tableblock { + border: 1px dashed #ccc; +} +/* Because the table frame attribute is overridden by CSS in most browsers. */ +div.tableblock > table[frame="void"] { + border-style: none; +} +div.tableblock > table[frame="hsides"] { + border-left-style: none; + border-right-style: none; +} +div.tableblock > table[frame="vsides"] { + border-top-style: none; + border-bottom-style: none; +} + + +/* + * html5 specific + * + * */ + +table.tableblock { + margin-top: 1.0em; + margin-bottom: 1.5em; +} +thead, p.tableblock.header { + font-weight: bold; + color: black; +} +p.tableblock { + margin-top: 0; +} +table.tableblock { + border: 0; + border-spacing: 0px; + border-style: hidden; + border-color: #ccc; + border-collapse: collapse; +} +th.tableblock, td.tableblock { + border-width: 1px; + padding: 4px; + border: 1px dashed #ccc; +} + +table.tableblock.frame-topbot { + border-left-style: hidden; + border-right-style: hidden; +} +table.tableblock.frame-sides { + border-top-style: hidden; + border-bottom-style: hidden; +} +table.tableblock.frame-none { + border-style: hidden; +} + +th.tableblock.halign-left, td.tableblock.halign-left { + text-align: left; +} +th.tableblock.halign-center, td.tableblock.halign-center { + text-align: center; +} +th.tableblock.halign-right, td.tableblock.halign-right { + text-align: right; +} + +th.tableblock.valign-top, td.tableblock.valign-top { + vertical-align: top; +} +th.tableblock.valign-middle, td.tableblock.valign-middle { + vertical-align: middle; +} +th.tableblock.valign-bottom, td.tableblock.valign-bottom { + vertical-align: bottom; +} + + +/* + * manpage specific + * + * */ + +body.manpage h1 { + padding-top: 0.5em; + padding-bottom: 0.5em; + border-top: 2px solid silver; + border-bottom: 2px solid silver; +} +body.manpage h2 { + border-style: none; +} +body.manpage div.sectionbody { + margin-left: 3em; +} + +@media print { + body.manpage div#toc { display: none; } +} diff --git a/doc/style/meson.build b/doc/style/meson.build new file mode 100644 index 0000000..7ae9a04 --- /dev/null +++ b/doc/style/meson.build @@ -0,0 +1,16 @@ +# Copyright 2022 David Robillard +# SPDX-License-Identifier: CC0-1.0 OR ISC + +style_files = files( + 'pygments.css', + 'style.css' +) + +foreach file : style_files + configure_file( + copy: true, + input: file, + install_dir: lv2_docdir / 'style', + output: '@PLAINNAME@', + ) +endforeach diff --git a/doc/style/pygments.css b/doc/style/pygments.css new file mode 100644 index 0000000..2472b1a --- /dev/null +++ b/doc/style/pygments.css @@ -0,0 +1,558 @@ +/* Light (default) theme */ + +.n { + color: #222; +} + +.c { + color: #3F4D91; + font-style: italic; +} + +.err { + border: 1px solid #DC322F; +} + +.k { + color: #586E75; +} + +.o { + color: #586E75; +} + +.cm { + color: #3F4D91; + font-style: italic; +} + +.cp { + color: #586E75; +} + +.cpf { + color: #93115C; +} + +.c1 { + color: #3F4D91; + font-style: italic; +} + +.cs { + color: #3F4D91; + font-style: italic; +} + +.gd { + color: #990A1B; +} + +.ge { + font-style: italic; +} + +.gr { + color: #DC322F; +} + +.gh { + color: #3F4D91; + font-weight: bold; +} + +.gi { + color: #859900; +} + +.go { + color: #666; +} + +.gp { + color: #666; + font-weight: bold; +} + +.gs { + font-weight: bold; +} + +.gu { + color: #444; + font-weight: bold; +} + +.gt { + color: #268BD2; +} + +.kc { + color: #586E75; + font-weight: bold; +} + +.kd { + color: #586E75; + font-weight: bold; +} + +.kn { + color: #586E75; + font-weight: bold; +} + +.kp { + color: #586E75; +} + +.kr { + color: #586E75; + font-weight: bold; +} + +.kt { + color: #586E75; +} + +.m { + color: #666; +} + +.s { + color: #93115C; +} + +.na { + color: #444; +} + +.nb { + color: #3F4D91; +} + +.nc { + color: #000; +} + +.no { + color: #880; +} + +.nd { + color: #A2F; +} + +.ni { + color: #666; + font-weight: bold; +} + +.ne { + color: #D2413A; + font-weight: bold; +} + +.nf { + color: #000; +} + +.nl { + color: #546E00; +} + +.nn { + color: #444; +} + +.nt { + color: #444; +} + +.nv { + color: #222; +} + +.ow { + color: #3F4D91; +} + +.w { + color: #BBB; +} + +.mb { + color: #93115C; + font-weight: bold; +} + +.mf { + color: #93115C; +} + +.mh { + color: #93115C; + font-weight: bold; +} + +.mi { + color: #93115C; +} + +.mo { + color: #93115C; + font-weight: bold; +} + +.sb { + color: #93115C; +} + +.sc { + color: #93115C; +} + +.sd { + color: #3F4D91; + font-style: italic; +} + +.s2 { + color: #93115C; +} + +.se { + color: #93115C; + font-weight: bold; +} + +.sh { + color: #93115C; +} + +.si { + color: #93115C; + font-weight: bold; +} + +.sx { + color: #93115C; +} + +.sr { + color: #93115C; + font-weight: bold; +} + +.s1 { + color: #93115C; +} + +.ss { + color: #444; + font-weight: bold; +} + +.bp { + color: #859900; +} + +.vc { + color: #00629D; +} + +.vg { + color: #00629D; +} + +.vi { + color: #00629D; +} + +.il { + color: #000; +} + +.p { + color: #444; +} + +/* Dark theme */ +@media (prefers-color-scheme: dark) { + .n { + color: #BBB; + } + + .c { + color: #6C71C4; + font-style: italic; + } + + .err { + border: 1px solid #FF6E64; + } + + .k { + color: #93A1A1; + } + + .o { + color: #93A1A1; + } + + .cm { + color: #6C71C4; + font-style: italic; + } + + .cp { + color: #93A1A1; + } + + .cpf { + color: #D33682; + } + + .c1 { + color: #6C71C4; + font-style: italic; + } + + .cs { + color: #6C71C4; + font-style: italic; + } + + .gd { + color: #DC322F; + } + + .ge { + font-style: italic; + } + + .gr { + color: #FF6E64; + } + + .gh { + color: #6C71C4; + font-weight: bold; + } + + .gi { + color: #859900; + } + + .go { + color: #666; + } + + .gp { + color: #666; + font-weight: bold; + } + + .gs { + font-weight: bold; + } + + .gu { + color: #BBB; + font-weight: bold; + } + + .gt { + color: #69B7F0; + } + + .kc { + color: #93A1A1; + font-weight: bold; + } + + .kd { + color: #93A1A1; + font-weight: bold; + } + + .kn { + color: #93A1A1; + font-weight: bold; + } + + .kp { + color: #93A1A1; + } + + .kr { + color: #93A1A1; + font-weight: bold; + } + + .kt { + color: #93A1A1; + } + + .m { + color: #999; + } + + .s { + color: #D33682; + } + + .na { + color: #BBB; + } + + .nb { + color: #6C71C4; + } + + .nc { + color: #FFF; + } + + .no { + color: #880; + } + + .nd { + color: #A2F; + } + + .ni { + color: #999; + font-weight: bold; + } + + .ne { + color: #D2413A; + font-weight: bold; + } + + .nf { + color: #FFF; + } + + .nl { + color: #546E00; + } + + .nn { + color: #BBB; + } + + .nt { + color: #BBB; + } + + .nv { + color: #DDD; + } + + .ow { + color: #6C71C4; + } + + .w { + color: #BBB; + } + + .mb { + color: #D33682; + font-weight: bold; + } + + .mf { + color: #D33682; + } + + .mh { + color: #D33682; + font-weight: bold; + } + + .mi { + color: #D33682; + } + + .mo { + color: #D33682; + font-weight: bold; + } + + .sb { + color: #D33682; + } + + .sc { + color: #D33682; + } + + .sd { + color: #6C71C4; + font-style: italic; + } + + .s2 { + color: #D33682; + } + + .se { + color: #D33682; + font-weight: bold; + } + + .sh { + color: #D33682; + } + + .si { + color: #D33682; + font-weight: bold; + } + + .sx { + color: #D33682; + } + + .sr { + color: #D33682; + font-weight: bold; + } + + .s1 { + color: #D33682; + } + + .ss { + color: #BBB; + font-weight: bold; + } + + .bp { + color: #859900; + } + + .vc { + color: #268BD2; + } + + .vg { + color: #268BD2; + } + + .vi { + color: #268BD2; + } + + .il { + color: #FFF; + } + + .p { + color: #BBB; + } +} diff --git a/doc/style/style.css b/doc/style/style.css new file mode 100644 index 0000000..fca399e --- /dev/null +++ b/doc/style/style.css @@ -0,0 +1,805 @@ +@import "./pygments.css"; + +/* Generic page style */ + +html { + background: #FFF; + color: #222; +} + +body { + font-family: "DejaVu Sans", "SF Pro Text", Verdana, sans-serif; + font-style: normal; + line-height: 1.6em; + margin-left: auto; + margin-right: auto; + max-width: 60em; + padding: 1em; +} + +h1 { + font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; + font-size: 2.38em; + font-weight: 600; + line-height: 1.41em; + margin: 0 0 0.25em; +} + +h2 { + font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; + font-size: 1.68em; + font-weight: 600; + line-height: 1.3em; + margin: 1.25em 0 0.5em; +} + +h3 { + font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; + font-size: 1.41em; + font-weight: 600; + line-height: 1.19em; + margin: 1.25em 0 0.5em; +} + +h4 { + font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; + font-size: 1.19em; + font-weight: 600; + line-height: 1.09em; + margin: 1.25em 0 0.5em; +} + +h5, h6 { + font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; + font-size: 1em; + font-weight: 600; + line-height: 1em; + margin: 1.25em 0 0.5em; +} + +a { + color: #546E00; + text-decoration: none; +} + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + color: #222; +} + +a:link { + color: #546E00; + text-decoration: none; +} + +a:visited { + color: #546E00; +} + +a:hover { + text-decoration: underline; +} + +h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link { + color: #222; +} + +h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited { + color: #222; +} + +img { + border: 0; +} + +p { + margin: 0.5em 0; +} + +blockquote { + border-left: 1px solid #CCC; + margin-left: 1em; + padding-left: 1em; +} + +pre, code, kbd, samp { + color: #444; + font-family: "DejaVu Sans Mono", "SF Mono", Consolas, monospace; + margin: 1em 0; + white-space: pre; +} + +ul, ol { + margin: 0 0 0.5em; + padding-top: 0; +} + +dt { + font-weight: 600; + margin: 0.75em 0 0.125em; +} + +dt::after { + content: ": "; + margin-right: 0.5em; +} + +hr { + background-color: #EEE; + border: 0; + color: #666; + height: 1px; + margin-bottom: 1.5ex; + margin-top: 1.5ex; +} + +table { + border-collapse: collapse; + border-spacing: 1em 1em; + border-style: hidden; + border: 0; + margin: 0; +} + +th { + border: 1px solid #EEE; + padding: 0.25em 0.5em; + text-align: left; +} + +table tbody tr th { + text-align: left; +} + +td { + border: 1px solid #EEE; + padding: 0.25em 0.5em; + vertical-align: top; +} + +caption { + caption-side: bottom; + font-size: small; + font-style: italic; + margin: 0.75em 0; +} + +footer { + color: #444; + font-size: small; +} + +/* Specgen style */ + +#titlebox { + display: inline-block; + max-width: 60%; + left: 0; + top: 0; +} + +#metabox { + display: inline-block; + font-size: x-small; + font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif; + position: absolute; + right: 0; + bottom: 0.25em; + color: #666; + font-style: italic; +} + +#meta { + border-style: hidden; +} + +#meta tr, #meta th, #meta td { + border: 0; + font-weight: normal; + padding: 0 0 0.125em; + background-color: transparent; +} + +#meta th { + padding-right: 0.5em; + text-align: right; +} + +#meta th::after { + content: ": "; +} + +#subtitle { + font-size: small; +} + +#shortdesc { + padding: 0; + margin: 0 0 0.5em; + font-style: italic; + color: #666; + display: inline-block; +} + +#logo { + height: 63px; + margin-left: 1em; + margin-top: 10px; + width: 100px; +} + +#titlesep { + color: #EEE; +} + +#content-body { + border-bottom: 0; + display: block; + font-size: 75%; + left: 0; + margin-left: 2em; + min-width: 660px; + padding: 3px 10px 0 0; + position: absolute; + top: 63px; + width: 93.9%; + z-index: 0; +} + +#menu { + font-size: 75%; + margin-bottom: 5px; + padding: 0; + width: 16em; +} + +#menu ul { + border: 0; + list-style: none; + margin: 0; + padding: 0; +} + +#menu a { + text-decoration: none; +} + +#menu ul.level-one a { + background-color: #F5F5F5; + border: 1px solid #DADADA; + color: #4B5A6A; + display: block; + margin: 0 0 4px 1.4em; + padding: 2px 2px 2px 4px; + text-transform: uppercase; + width: 13.4em !important; +} + +#menu ul.level-two a { + background: none; + background-color: transparent; + border: 0; + border-top: 1px solid #DDD; + color: #3C4B7B; + display: block; + margin: 0 3em 0 1.5em; + padding: 0.1em; + text-transform: none; + width: 11em !important; +} + +#menu ul.level-three a { + border: 0; + color: #5E72A5; + display: block; + font-size: 95%; + margin: 0 3em 0 1.8em; + padding: 0.1em 0.1em 0.1em 1em; + width: 10em !important; +} + +#menu ul.level-one a:hover, +#menu ul.level-two a:hover, +#menu ul.level-three a:hover { + color: #000; + text-decoration: underline; +} + +#menu ul.level-one a.selected { + background-color: #FFF; + border-left: 3px solid #FFDB4C; + color: #000; +} + +#menu ul.level-two a:visited { + color: #4C3B5B; +} + +#menu ul.level-two li:first-child a { + border-top: 0; +} + +#menu ul.level-one ul.level-two a.selected { + background-color: #FFF; + border-left: 0; + color: #000; + font-weight: 700; +} + +#menu li ul { + margin-bottom: 7px; +} + +#menu ul.level-three li.selected a.selected { + color: #000; + font-weight: 400; +} + +#menu ul.level-three { + margin-top: 5px; +} + +#searchbox { + font-weight: 700; + position: absolute; + right: 0; + text-align: right; + top: 0; + vertical-align: middle; + white-space: nowrap; + width: 28.1em; +} + +#search { + color: #A38E60; + padding: 5px 5px 0 0; +} + +#search .input-text { + background-color: #FFF; + border: 1px solid #C4CCCC; + font-size: 116%; + font-weight: 400; + margin-top: 3px; + vertical-align: top; + width: 11em; +} + +#search .input-button { + background-color: #F8F7F7; + border-bottom: 1px solid #6F7777; + border-left: 1px solid #C4CCCC; + border-right: 1px solid #6F7777; + border-top: 1px solid #C4CCCC; + color: #234; + font-weight: 700; + margin: 3px 0.4em 0; + padding: 0 0.2em; + vertical-align: text-top; +} + +input.formbutton { + background-color: #F8F7F7; + border-bottom: 1px solid #6F7777; + border-left: 1px solid #C4CCCC; + border-right: 1px solid #6F7777; + border-top: 1px solid #C4CCCC; + color: #234; + font-weight: 700; + vertical-align: text-top; +} + +.formtextinput { + background-color: #FFF; + border: 1px solid #C4CCCC; + font-size: 116%; + font-weight: 400; + vertical-align: top; +} + +#content table { + clear: right; +} + +.content-section { + margin-top: 15px; +} + +.content-section h1 { + margin: 0 0 10px; +} + +.content-section p { + margin: 0 0 5px; + padding-left: 12px; +} + +.content-section .pubdate { + color: #696969; + margin: 0 0 8px; + padding: 0 0 0 12px; +} + +#footer { + bottom: 0; + clear: both; + font-size: x-small; + margin: 2em 0 0; + padding: 0; + color: #888; +} + +#searchbox a.reference, #searchbox span.reference { + color: #339; + font-size: 85%; + font-weight: 400; + position: absolute; + right: 8.3em; + text-decoration: none; + top: 2.9em; +} + +#topbar { + line-height: 1em; + border-bottom: 1px solid #EEE; +} + +@media print { + #topbar { + color: #000; + margin: 0.25em auto; + padding: 0.25em 0.5em 0.5em; + max-width: 60em; + position: relative; + } + + #contentsbox { + display: none; + } + + #topbar a, #title a, #topbar a:visited, #title a:visited { + color: #000; + } + + #contents { + display: none; + } +} + +@media screen { + #topbar { + margin: 0.25em auto; + padding: 0; + max-width: 60em; + position: relative; + } + + #contentsbox { + color: #546E00; + font-size: small; + margin: 0 0 1.5em; + } + + #contents { + display: inline; + padding: 0; + } + + #contents li { + display: inline; + list-style-type: none; + margin-left: 0; + margin-right: 0.5em; + padding: 0.25ex 0.25ex 0.25ex 0; + } +} + +#content { + clear: both; + padding: 0; + max-width: 60em; + margin-left: auto; + margin-right: auto; +} + +.section { + clear: right; + padding: 0 0 1.5em; +} + +.category { + font-size: small; + color: #AAA; + float: right; + vertical-align: bottom; + padding: 0; + margin: 0; + padding-right: 0.25em; +} + +.label { + font-style: italic; + margin-top: 0.25em; + color: #666; +} + +table.index { + border: 0; + line-height: 1.5em; + margin-top: 2em; +} + +.index ul { + padding-left: 1.25em; + margin-left: 0; + list-style-type: circle; +} + +.index ul li { + padding-left: 0; + color: #888; +} + +.prop { + margin: 0; + padding: 0; +} + +.description { + margin-top: 0; + margin-bottom: 0.75em; +} + +.blankdesc, .blankdef { + border-spacing: 0; + margin: 0; + padding-left: 0; + padding-right: 0; +} + +.blankdesc tbody tr td, .blankdef { + border: 0 !important; +} + +.blankdesc td { + padding-right: 0.5em; +} + +.blankdesc tbody tr td:first-child { + border-left: 1px solid #BBB; + text-align: right; +} + +.terminfo, .restriction { + border-collapse: collapse; + border-spacing: 0; + font-size: small; + color: #666; + border-radius: 0; + border-bottom-left-radius: 6px; +} + +table.terminfo { + border-top: 0; + border-collapse: collapse; + margin: -1px 0 2em 2em; + padding: 0.25em 0; + float: right; + border-bottom: 1px solid #EEE; + border-left: 1px solid #EEE; + border-bottom-left-radius: 6px; + max-width: 50%; + line-height: 1.4em; + min-width: 25%; +} + +table.terminfo td { + padding: 0 0.5em; +} + +.restriction { + border-style: hidden; + margin: 0 0 0.5ex; + padding: 0; + vertical-align: text-top; +} + +.restriction td { + vertical-align: text-top; +} + +.terminfo th { + padding: 0 0.5em; + text-align: right; + vertical-align: top; +} + +.specterm { + border: 0; + margin: 0; + padding: 1em 0; + clear: both; +} + +.specterm h3 { + display: inline-block; + margin-bottom: 0.25em; + width: 80%; +} + +.spectermtype { + color: #888; + display: inline-block; + font-size: small; + font-style: italic; + box-sizing: border-box; + margin: 0; + padding: 0 0.25em 0 0; + text-align: right; + vertical-align: bottom; + width: 20%; +} + +.spectermbody { + border-top: 1px solid #EEE; + padding: 0; +} + +.spectermbody .description .comment > p:first-child { + color: #444; + font-style: italic; + margin-bottom: 0.75em; +} + +dl { + margin: 0; + padding: 0; +} + +div.head { + margin-bottom: 1em; +} + +div.head h1 { + clear: both; + margin-top: 2em; +} + +div.head table { + margin-left: 2em; + margin-top: 2em; +} + +#menu li { + display: inline; +} + +.error { + color: #990A1B; +} + +.warning { + color: #7B6000; +} + +.success { + color: #546E00; +} + +.highlight, .codehilite { + margin-left: 2em; +} + +/* Dark mode */ +@media (prefers-color-scheme: dark) { + /* Dark generic page style */ + + html { + background: #222; + color: #DDD; + } + + a { + color: #B4C342; + } + + a:link { + color: #B4C342; + } + + a:visited { + color: #B4C342; + } + + h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + color: #DDD; + } + + h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link { + color: #DDD; + } + + h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited { + color: #DDD; + } + + blockquote { + border-left: 1px solid #444; + } + + pre, code, kbd, samp { + color: #DDD; + } + + hr { + background-color: #333; + border: 0; + color: #666; + } + + th { + border: 1px solid #444; + } + + td { + border: 1px solid #444; + } + + footer { + color: #BBB; + } + + /* Dark specgen style */ + + #metabox { + color: #999; + } + + #shortdesc { + color: #999; + } + + #titlesep { + color: #444; + } + + .terminfo, .restriction { + color: #999; + } + + table.terminfo { + border-bottom: 1px solid #444; + border-left: 1px solid #444; + } + + .spectermbody { + border-top: 1px solid #444; + } + + .spectermbody .description .comment > p:first-child { + color: #BBB; + } + + .error { + color: #DC322F; + } + + .warning { + color: #B58900; + } + + .success { + color: #859900; + } + + #topbar { + border-bottom: 1px solid #444; + } +} + +/* Hard black for dark mode on mobile (since it's likely to be an OLED screen) */ +@media only screen and (hover: none) and (pointer: coarse) and (prefers-color-scheme: dark) { + html { + background: #000; + color: #CCC; + } +} -- cgit v1.2.1