diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/c/doxy-style.css (renamed from doc/doxy-style.css) | 239 | ||||
| -rw-r--r-- | doc/c/footer.html (renamed from doc/footer.html) | 0 | ||||
| -rw-r--r-- | doc/c/header.html (renamed from doc/header.html) | 0 | ||||
| -rw-r--r-- | doc/c/layout.xml (renamed from doc/layout.xml) | 58 | ||||
| -rw-r--r-- | doc/c/mainpage.md (renamed from doc/mainpage.md) | 0 | ||||
| -rw-r--r-- | doc/c/meson.build | 39 | ||||
| -rw-r--r-- | doc/c/reference.doxygen.in (renamed from doc/reference.doxygen.in) | 305 | ||||
| -rw-r--r-- | doc/index.html.in | 7 | ||||
| -rw-r--r-- | doc/ns/ext/meson.build | 68 | ||||
| -rw-r--r-- | doc/ns/extensions/meson.build | 49 | ||||
| -rw-r--r-- | doc/ns/meson.build | 81 | ||||
| -rw-r--r-- | doc/pygments.css | 61 | ||||
| -rw-r--r-- | doc/style/asciidoc.css (renamed from doc/asciidoc.css) | 0 | ||||
| -rw-r--r-- | doc/style/meson.build | 13 | ||||
| -rw-r--r-- | doc/style/pygments.css | 558 | ||||
| -rw-r--r-- | doc/style/style.css (renamed from doc/style.css) | 176 |
16 files changed, 1221 insertions, 433 deletions
diff --git a/doc/doxy-style.css b/doc/c/doxy-style.css index 219da02..6f15ee4 100644 --- a/doc/doxy-style.css +++ b/doc/c/doxy-style.css @@ -1,6 +1,9 @@ -body { +html { background: #FFF; color: #222; +} + +body { font-style: normal; line-height: 1.6em; margin-left: auto; @@ -186,10 +189,6 @@ div.navtab { margin-right: 15px; } -.contents a:visited { - color: #344E00; -} - a.qindexHL { background-color: #9CAFD4; color: #FFF; @@ -209,6 +208,10 @@ dl.el { font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed; } +.ttc { + display: none; +} + pre.fragment { border: 1px solid #C4C4C4; background-color: #F9F9F9; @@ -526,7 +529,6 @@ td.mlabels-right { margin-top: 0; padding-top: 0.25em; font-weight: normal; - color: #444; font-size: 0.9em; } @@ -862,3 +864,228 @@ th { span.icon { display: none; } + +/* Dark mode */ +@media (prefers-color-scheme: dark) { + html { + background: #222; + color: #DDD; + } + + a { + 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; + } + + #header { + border-bottom-color: #333; + } + + #title { + color: #CCC; + } + + #shortdesc { + color: #BBB; + } + + code { + color: #DDD; + } + + pre.fragment { + border: 1px solid #444; + background-color: #333; + } + + div.ah { + background-color: #000; + color: #FFF; + border-color: #333; + } + + .groupheader + p { + color: #BBB; + } + + td.indexkey { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + } + + td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + } + + tr.memlist { + background-color: #EEF1F7; + } + + span.keyword { + color: #586E75; + } + + span.keywordtype { + color: #546E00; + } + + span.keywordflow { + color: #586E75; + } + + span.comment { + color: #6C71C4; + } + + span.preprocessor { + color: #D33682; + } + + span.stringliteral { + color: #CB4B16; + } + + span.charliteral { + color: #CB4B16; + } + + .dirtab { + border: 1px solid #A3B4D7; + } + + th.dirtab { + background: #EBEFF6; + } + + hr { + border-top: 1px solid #DDD; + } + + #footer { + color: #888; + } + + .mdescLeft,.mdescRight { + color: #555; + } + + .memTemplParams { + color: #464646; + } + + td.mlabels-right { + color: #B4C342; + } + + .memtitle { + border-bottom: 1px solid #666; + } + + .memtemplate { + color: #888; + } + + .memnav { + background-color: #666; + border: 1px solid #B4C342; + } + + .memproto { + border-bottom: 1px solid #666; + border-left: 1px solid #666; + color: #BBB; + } + + .memdoc > p:first-child, .memdoc .textblock > p:first-child { + color: #BBB; + } + + .memdoc > p:first-child, .memdoc .textblock > h3:first-child { + color: #BBB; + } + + .paramtype { + color: #BBB; + } + + .params .paramname { + color: #E8E8E8; + } + + .fieldname { + color: #FFF; + } + + .fieldtable tbody tr td { + border-top-color: #555; + border-bottom-color: #555; + } + + td.fieldtype { + color: #BBB; + } + + .arrow { + color: #666; + } + + address { + color: #444; + } + + table.doxtable td,table.doxtable th { + border-color: #DDD; + } + + table.doxtable th { + background-color: #F3F3F3; + color: #000; + } + + div.navpath { + color: #444; + } + + #metabox { + color: #666; + } + + .glow { + background-color: #00736F; + box-shadow: 0 0 10px #00736F; + } + + span.lineno { + border-right: 2px solid #B4C342; + background-color: #383838; + } + + span.lineno a { + background-color: #404040; + } + + span.lineno a:hover { + background-color: #484848; + } + +} + +/* 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/footer.html b/doc/c/footer.html index 0dc6919..0dc6919 100644 --- a/doc/footer.html +++ b/doc/c/footer.html diff --git a/doc/header.html b/doc/c/header.html index 2e419e3..2e419e3 100644 --- a/doc/header.html +++ b/doc/c/header.html diff --git a/doc/layout.xml b/doc/c/layout.xml index 1f63a76..938dbce 100644 --- a/doc/layout.xml +++ b/doc/c/layout.xml @@ -9,26 +9,12 @@ <tab type="namespacelist" visible="yes" title="" intro=""/> <tab type="namespacemembers" visible="yes" title="" intro=""/> </tab> - <tab type="interfaces" visible="yes" title=""> - <tab type="interfacelist" visible="yes" title="" intro=""/> - <tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/> - <tab type="interfacehierarchy" visible="yes" title="" intro=""/> - </tab> <tab type="classes" visible="yes" title=""> <tab type="classlist" visible="yes" title="" intro=""/> <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> <tab type="hierarchy" visible="yes" title="" intro=""/> <tab type="classmembers" visible="yes" title="" intro=""/> </tab> - <tab type="structs" visible="yes" title=""> - <tab type="structlist" visible="yes" title="" intro=""/> - <tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/> - </tab> - <tab type="exceptions" visible="yes" title=""> - <tab type="exceptionlist" visible="yes" title="" intro=""/> - <tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/> - <tab type="exceptionhierarchy" visible="yes" title="" intro=""/> - </tab> <tab type="files" visible="yes" title=""> <tab type="filelist" visible="yes" title="" intro=""/> <tab type="globals" visible="yes" title="" intro=""/> @@ -47,7 +33,6 @@ <nestedclasses visible="yes" title=""/> <publictypes title=""/> <services title=""/> - <interfaces title=""/> <publicslots title=""/> <signals title=""/> <publicmethods title=""/> @@ -82,7 +67,6 @@ <typedefs title=""/> <enums title=""/> <services title=""/> - <interfaces title=""/> <constructors title=""/> <functions title=""/> <related title=""/> @@ -95,37 +79,6 @@ <authorsection visible="yes"/> </class> - <!-- Layout definition for a namespace page --> - <namespace> - <briefdescription visible="yes"/> - <detaileddescription title=""/> - <memberdecl> - <nestednamespaces visible="yes" title=""/> - <constantgroups visible="yes" title=""/> - <interfaces visible="yes" title=""/> - <classes visible="yes" title=""/> - <structs visible="yes" title=""/> - <exceptions visible="yes" title=""/> - <typedefs title=""/> - <sequences title=""/> - <dictionaries title=""/> - <enums title=""/> - <functions title=""/> - <variables title=""/> - <membergroups visible="yes"/> - </memberdecl> - <memberdef> - <inlineclasses title=""/> - <typedefs title=""/> - <sequences title=""/> - <dictionaries title=""/> - <enums title=""/> - <functions title=""/> - <variables title=""/> - </memberdef> - <authorsection visible="yes"/> - </namespace> - <!-- Layout definition for a file page --> <file> <briefdescription visible="yes"/> @@ -135,16 +88,11 @@ <includedbygraph visible="$INCLUDED_BY_GRAPH"/> <sourcelink visible="yes"/> <memberdecl> - <interfaces visible="yes" title=""/> <classes visible="yes" title=""/> - <structs visible="yes" title=""/> - <exceptions visible="yes" title=""/> <namespaces visible="yes" title=""/> <constantgroups visible="yes" title=""/> <defines title=""/> <typedefs title=""/> - <sequences title=""/> - <dictionaries title=""/> <enums title=""/> <functions title=""/> <variables title=""/> @@ -154,8 +102,6 @@ <inlineclasses title=""/> <defines title=""/> <typedefs title=""/> - <sequences title=""/> - <dictionaries title=""/> <enums title=""/> <functions title=""/> <variables title=""/> @@ -176,8 +122,6 @@ <classes visible="yes" title=""/> <defines title=""/> <typedefs title=""/> - <sequences title=""/> - <dictionaries title=""/> <enums title=""/> <enumvalues title=""/> <functions title=""/> @@ -196,8 +140,6 @@ <inlineclasses title=""/> <defines title=""/> <typedefs title=""/> - <sequences title=""/> - <dictionaries title=""/> <enums title=""/> <enumvalues title=""/> <functions title=""/> diff --git a/doc/mainpage.md b/doc/c/mainpage.md index 561bc93..561bc93 100644 --- a/doc/mainpage.md +++ b/doc/c/mainpage.md diff --git a/doc/c/meson.build b/doc/c/meson.build new file mode 100644 index 0000000..2642c3a --- /dev/null +++ b/doc/c/meson.build @@ -0,0 +1,39 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD OR ISC + +if doxygen.found() + reference_doxygen_in = files('reference.doxygen.in') + + config = configuration_data( + { + 'LV2_SRCDIR': lv2_source_root, + 'LV2_BUILDDIR': lv2_build_root, + 'LV2_VERSION': meson.project_version(), + }, + ) + + reference_doxygen = configure_file( + configuration: config, + input: reference_doxygen_in, + output: 'reference.doxygen', + ) + + docs = custom_target( + 'html', + command: [doxygen, '@INPUT@'], + input: reference_doxygen, + install: true, + install_dir: lv2_docdir / 'c', + output: ['html', 'tags'], + ) + + # TODO: doc_deps is needed because Meson did not support using custom target + # outputs as dependencies until 0.60.0. When 0.60.0 is required, this can be + # cleaned up by removing doc_deps and using lv2_tags (not its path) as a + # command argument, which Meson will correctly make a dependency for. + + lv2_tags = docs[1] + doc_deps = [docs] +else + doc_deps = [] +endif diff --git a/doc/reference.doxygen.in b/doc/c/reference.doxygen.in index 5efb066..333fe1c 100644 --- a/doc/reference.doxygen.in +++ b/doc/c/reference.doxygen.in @@ -58,7 +58,7 @@ PROJECT_LOGO = # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = . +OUTPUT_DIRECTORY = @LV2_BUILDDIR@ # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -179,16 +179,6 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line -# such as -# /*************** -# as being the beginning of a Javadoc-style comment "banner". If set to NO, the -# Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. -# The default value is: NO. - -JAVADOC_BANNER = NO - # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus @@ -209,14 +199,6 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO -# By default Python docstrings are displayed as preformatted text and doxygen's -# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. -# The default value is: YES. - -PYTHON_DOCSTRING = YES - # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. @@ -281,14 +263,6 @@ OPTIMIZE_FOR_FORTRAN = NO OPTIMIZE_OUTPUT_VHDL = NO -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice -# sources only. Doxygen will then generate output that is more tailored for that -# language. For instance, namespaces will be presented as modules, types will be -# separated into more groups, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_SLICE = NO - # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it @@ -442,19 +416,6 @@ TYPEDEF_HIDES_STRUCT = YES LOOKUP_CACHE_SIZE = 0 -# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of -# cores available in the system. You can set it explicitly to a value larger -# than 0 to get more control over the balance between CPU load and processing -# speed. At this moment only the input processing can be done using multiple -# threads. Since this is still an experimental feature the default is set to 1, -# which effectively disables parallel processing. Please report any issues you -# encounter. Generating dot graphs in parallel is controlled by the -# DOT_NUM_THREADS setting. -# Minimum value: 0, maximum value: 32, default value: 1. - -NUM_PROC_THREADS = 1 - #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -475,12 +436,6 @@ EXTRACT_ALL = NO EXTRACT_PRIVATE = YES -# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual -# methods of a class will be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIV_VIRTUAL = NO - # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. @@ -518,13 +473,6 @@ EXTRACT_LOCAL_METHODS = NO EXTRACT_ANON_NSPACES = NO -# If this flag is set to YES, the name of an unnamed parameter in a declaration -# will be determined by the corresponding definition. By default unnamed -# parameters remain unnamed in the output. -# The default value is: YES. - -RESOLVE_UNNAMED_PARAMS = YES - # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation @@ -592,12 +540,6 @@ HIDE_SCOPE_NAMES = NO HIDE_COMPOUND_REFERENCE= NO -# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class -# will show which file needs to be included to use the class. -# The default value is: YES. - -SHOW_HEADERFILE = YES - # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -762,7 +704,7 @@ FILE_VERSION_FILTER = # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. -LAYOUT_FILE = @LV2_SRCDIR@/doc/layout.xml +LAYOUT_FILE = @LV2_SRCDIR@/doc/c/layout.xml # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib @@ -809,13 +751,6 @@ WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES -# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete -# function parameter documentation. If set to NO, doxygen will accept that some -# parameters have no documentation without warning. -# The default value is: YES. - -WARN_IF_INCOMPLETE_DOC = YES - # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong parameter @@ -864,35 +799,36 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = @LV2_SRCDIR@/doc/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 +INPUT = @LV2_SRCDIR@/doc/c/mainpage.md \ + @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/core/lv2_util.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 @@ -1045,7 +981,7 @@ FILTER_SOURCE_PATTERNS = # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = @LV2_SRCDIR@/doc/mainpage.md +USE_MDFILE_AS_MAINPAGE = @LV2_SRCDIR@/doc/c/mainpage.md #--------------------------------------------------------------------------- # Configuration options related to source browsing @@ -1167,7 +1103,7 @@ GENERATE_HTML = YES # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_OUTPUT = html +HTML_OUTPUT = @LV2_BUILDDIR@/doc/c/html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). @@ -1194,7 +1130,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = @LV2_SRCDIR@/doc/header.html +HTML_HEADER = @LV2_SRCDIR@/doc/c/header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1204,7 +1140,7 @@ HTML_HEADER = @LV2_SRCDIR@/doc/header.html # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_FOOTER = @LV2_SRCDIR@/doc/footer.html +HTML_FOOTER = @LV2_SRCDIR@/doc/c/footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of @@ -1216,7 +1152,7 @@ HTML_FOOTER = @LV2_SRCDIR@/doc/footer.html # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET = @LV2_SRCDIR@/doc/doxy-style.css +HTML_STYLESHEET = @LV2_SRCDIR@/doc/c/doxy-style.css # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets @@ -1271,15 +1207,6 @@ HTML_COLORSTYLE_SAT = 30 HTML_COLORSTYLE_GAMMA = 100 -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will @@ -1335,13 +1262,6 @@ GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" -# This tag determines the URL of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDURL = - # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. @@ -1541,18 +1461,6 @@ DISABLE_INDEX = NO GENERATE_TREEVIEW = NO -# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the -# FULL_SIDEBAR option determines if the side bar is limited to only the treeview -# area (value NO) or if it should extend to the full height of the window (value -# YES). Setting this to YES gives a layout similar to -# https://docs.readthedocs.io with more room for contents, but less room for the -# project logo, title, and description. If either GENERATE_TREEVIEW or -# DISABLE_INDEX is set to NO, this option has no effect. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FULL_SIDEBAR = NO - # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # @@ -1577,24 +1485,6 @@ TREEVIEW_WIDTH = 250 EXT_LINKS_IN_WINDOW = NO -# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email -# addresses. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -OBFUSCATE_EMAILS = YES - -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg -# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see -# https://inkscape.org) to generate formulas as SVG images instead of PNGs for -# the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png (the default) and svg (looks nicer but requires the -# pdf2svg or inkscape tool). -# The default value is: png. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FORMULA_FORMAT = png - # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML @@ -1604,23 +1494,6 @@ HTML_FORMULA_FORMAT = png FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - -FORMULA_MACROFILE = - # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # https://www.mathjax.org) which uses client side JavaScript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX @@ -1632,17 +1505,6 @@ FORMULA_MACROFILE = USE_MATHJAX = NO -# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. -# Note that the different versions of MathJax have different requirements with -# regards to the different settings, so it is possible that also other MathJax -# settings have to be changed when switching between the different MathJax -# versions. -# Possible values are: MathJax_2 and MathJax_3. -# The default value is: MathJax_2. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_VERSION = MathJax_2 - # When MathJax is enabled you can set the default output format to be used for # the MathJax output. For more details about the output format see MathJax # version 2 (see: @@ -1822,16 +1684,6 @@ LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex -# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to -# generate index for LaTeX. In case there is no backslash (\) as first character -# it will be automatically added in the LaTeX code. -# Note: This tag is used in the generated output file (.tex). -# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. -# The default value is: makeindex. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_MAKEINDEX_CMD = makeindex - # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. @@ -1951,22 +1803,6 @@ LATEX_HIDE_INDICES = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - -# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) -# path from which the emoji images will be read. If a relative path is entered, -# it will be relative to the LATEX_OUTPUT directory. If left blank the -# LATEX_OUTPUT directory will be used. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_EMOJI_DIRECTORY = - #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- @@ -2094,13 +1930,6 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = YES -# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include -# namespace members in file scope as well, matching the HTML output. -# The default value is: NO. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_NS_MEMB_FILE_SCOPE = NO - #--------------------------------------------------------------------------- # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- @@ -2270,7 +2099,7 @@ TAGFILES = # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. -GENERATE_TAGFILE = tags +GENERATE_TAGFILE = @LV2_BUILDDIR@/doc/c/tags # If the ALLEXTERNALS tag is set to YES, all external class will be listed in # the class index. If set to NO, only the inherited external classes will be @@ -2329,23 +2158,6 @@ HAVE_DOT = NO DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen -# generates you can specify the font name using DOT_FONTNAME. You need to make -# sure dot is able to find the font, which can be done by putting it in a -# standard location or by setting the DOTFONTPATH environment variable or by -# setting DOT_FONTPATH to the directory containing the font. -# The default value is: Helvetica. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_FONTNAME = - -# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of -# dot graphs. -# Minimum value: 4, maximum value: 24, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_FONTSIZE = 10 - # By default doxygen will tell dot to use the default font as specified with # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set # the path where dot can find it using this tag. @@ -2401,28 +2213,6 @@ UML_LOOK = NO UML_LIMIT_NUM_FIELDS = 10 -# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and -# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS -# tag is set to YES, doxygen will add type and arguments for attributes and -# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen -# will not generate fields with class member information in the UML graphs. The -# class diagrams will look similar to the default class diagrams but using UML -# notation for the relationships. -# Possible values are: NO, YES and NONE. -# The default value is: NO. -# This tag requires that the tag UML_LOOK is set to YES. - -DOT_UML_DETAILS = NO - -# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters -# to display on a single line. If the actual line length exceeds this threshold -# significantly it will wrapped across multiple lines. Some heuristics are apply -# to avoid ugly line breaks. -# Minimum value: 0, maximum value: 1000, default value: 17. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_WRAP_THRESHOLD = 17 - # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. @@ -2489,13 +2279,6 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = NO -# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels -# of child directories generated in directory dependency graphs by dot. -# Minimum value: 1, maximum value: 25, default value: 1. -# This tag requires that the tag DIRECTORY_GRAPH is set to YES. - -DIR_GRAPH_MAX_DEPTH = 1 - # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. For an explanation of the image formats see the section # output formats in the documentation of the dot tool (Graphviz (see: @@ -2590,18 +2373,6 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not seem -# to support this out of the box. -# -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_TRANSPARENT = NO - # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support diff --git a/doc/index.html.in b/doc/index.html.in index 875ad39..3be99f4 100644 --- a/doc/index.html.in +++ b/doc/index.html.in @@ -6,7 +6,7 @@ <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=utf-8" /> <link rel="stylesheet" type="text/css" - href="../aux/style.css" /> + href="../style/style.css" /> </head> <body> @@ -19,7 +19,6 @@ <div id="metabox"> <table id="meta"> <tr><th>Version</th><td>@LV2_VERSION@</td></tr> - <tr><th>Date</th><td>@DATE@</td></tr> <tr><th>Discuss</th> <td> <a href="mailto:devel@lists.lv2plug.in">devel@lists.lv2plug.in</a> @@ -62,12 +61,12 @@ </div> <div> Valid - <a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/rdfa-syntax" + <a about="" rel="dcterms:conformsTo" resource="http://www.w3.org/TR/rdfa-syntax" href="http://validator.w3.org/check?uri=referer"> XHTML+RDFa </a> and - <a about="" rel="dct:conformsTo" resource="http://www.w3.org/TR/CSS2" + <a about="" rel="dcterms:conformsTo" resource="http://www.w3.org/TR/CSS2" href="http://jigsaw.w3.org/css-validator/check/referer"> CSS </a> diff --git a/doc/ns/ext/meson.build b/doc/ns/ext/meson.build new file mode 100644 index 0000000..58aa40d --- /dev/null +++ b/doc/ns/ext/meson.build @@ -0,0 +1,68 @@ +# Copyright 2022-2025 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD OR ISC + +config = configuration_data({'BASE': '/ns/ext'}) + +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 + if get_option('online_docs') + htaccess = configure_file( + configuration: config, + input: files('..' / '..' / 'htaccess.in'), + install_dir: lv2_docdir / 'ns' / 'ext', + output: '.htaccess', + ) + endif + + 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 new file mode 100644 index 0000000..3bf66b4 --- /dev/null +++ b/doc/ns/extensions/meson.build @@ -0,0 +1,49 @@ +# Copyright 2022-2025 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD OR ISC + +config = configuration_data({'BASE': '/ns/extensions'}) + +spec_names = [ + 'ui', + 'units', +] + +if build_docs + if get_option('online_docs') + htaccess = configure_file( + configuration: config, + input: files('..' / '..' / 'htaccess.in'), + install_dir: lv2_docdir / 'ns' / 'extensions', + output: '.htaccess', + ) + endif + + 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 new file mode 100644 index 0000000..3189cc2 --- /dev/null +++ b/doc/ns/meson.build @@ -0,0 +1,81 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD OR ISC + +config = configuration_data({'BASE': '/ns'}) + +###################### +# 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') + htaccess = configure_file( + configuration: config, + input: files('..' / 'htaccess.in'), + install_dir: lv2_docdir / 'ns', + output: '.htaccess', + ) + + 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 = find_program( + 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_command + ['@INPUT@'], + input: spec_files, + install: true, + install_dir: lv2_docdir / 'ns', + output: 'index.html', +) diff --git a/doc/pygments.css b/doc/pygments.css deleted file mode 100644 index 4fb3387..0000000 --- a/doc/pygments.css +++ /dev/null @@ -1,61 +0,0 @@ -.c { color: #6C71C4; font-style: italic } /* Comment */ -.err { border: 1px solid #DC322F } /* Error */ -.k { color: #888888 } /* Keyword */ -.o { color: #839496 } /* Operator */ -.cm { color: #6C71C4; font-style: italic } /* Comment.Multiline */ -.cp { color: #D33682 } /* Comment.Preproc */ -.c1 { color: #6C71C4; font-style: italic } /* Comment.Single */ -.cs { color: #6C71C4; font-style: italic } /* Comment.Special */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #DC322F } /* Generic.Error */ -.gh { color: #6C71C4; font-weight: bold } /* Generic.Heading */ -.gi { color: #859900 } /* Generic.Inserted */ -.go { color: #808080 } /* Generic.Output */ -.gp { color: #268BD2; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0040D0 } /* Generic.Traceback */ -.kc { color: #586E75; font-weight: bold } /* Keyword.Constant */ -.kd { color: #586E75; font-weight: bold } /* Keyword.Declaration */ -.kn { color: #586E75; font-weight: bold } /* Keyword.Namespace */ -.kp { color: #586E75 } /* Keyword.Pseudo */ -.kr { color: #586E75; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #546E00 } /* Keyword.Type */ -.m { color: #666666 } /* Literal.Number */ -.s { color: #CB4B16 } /* Literal.String */ -.na { color: #7D9029 } /* Name.Attribute */ -.nb { color: #008000 } /* Name.Builtin */ -.nc { color: #000000; } /* Name.Class */ -.no { color: #880000 } /* Name.Constant */ -.nd { color: #AA22FF } /* Name.Decorator */ -.ni { color: #999999; font-weight: bold } /* Name.Entity */ -.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.nf { color: #000000; } /* Name.Function */ -.nl { color: #A0A000 } /* Name.Label */ -.nn { color: #555555 } /* Name.Namespace */ -.nt { color: #223322; } /* Name.Tag */ -.nv { color: #222222 } /* Name.Variable */ -.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.w { color: #bbbbbb } /* Text.Whitespace */ -.mf { color: #000000 } /* Literal.Number.Float */ -.mh { color: #000000 } /* Literal.Number.Hex */ -.mi { color: #000000 } /* Literal.Number.Integer */ -.mo { color: #000000 } /* Literal.Number.Oct */ -.sb { color: #CB4B16 } /* Literal.String.Backtick */ -.sc { color: #CB4B16 } /* Literal.String.Char */ -.sd { color: #CB4B16; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #CB4B16 } /* Literal.String.Double */ -.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #CB4B16 } /* Literal.String.Heredoc */ -.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.sx { color: #008000 } /* Literal.String.Other */ -.sr { color: #BB6688 } /* Literal.String.Regex */ -.s1 { color: #CB4B16 } /* Literal.String.Single */ -.ss { color: #00629D } /* Literal.String.Symbol */ -.bp { color: #008000 } /* Name.Builtin.Pseudo */ -.vc { color: #00629D } /* Name.Variable.Class */ -.vg { color: #00629D } /* Name.Variable.Global */ -.vi { color: #00629D } /* Name.Variable.Instance */ -.il { color: #666666 } /* Literal.Number.Integer.Long */ -.p { color: #888888 } /* Punctuation */ diff --git a/doc/asciidoc.css b/doc/style/asciidoc.css index 2e64544..2e64544 100644 --- a/doc/asciidoc.css +++ b/doc/style/asciidoc.css diff --git a/doc/style/meson.build b/doc/style/meson.build new file mode 100644 index 0000000..39e9242 --- /dev/null +++ b/doc/style/meson.build @@ -0,0 +1,13 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: 0BSD 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.css b/doc/style/style.css index cf32b28..fca399e 100644 --- a/doc/style.css +++ b/doc/style/style.css @@ -2,9 +2,12 @@ /* Generic page style */ -body { +html { background: #FFF; color: #222; +} + +body { font-family: "DejaVu Sans", "SF Pro Text", Verdana, sans-serif; font-style: normal; line-height: 1.6em; @@ -19,7 +22,7 @@ h1 { font-size: 2.38em; font-weight: 600; line-height: 1.41em; - margin: 0 0 0.25em 0; + margin: 0 0 0.25em; } h2 { @@ -27,7 +30,7 @@ h2 { font-size: 1.68em; font-weight: 600; line-height: 1.3em; - margin: 1.25em 0 0.5em 0; + margin: 1.25em 0 0.5em; } h3 { @@ -35,7 +38,7 @@ h3 { font-size: 1.41em; font-weight: 600; line-height: 1.19em; - margin: 1.25em 0 0.5em 0; + margin: 1.25em 0 0.5em; } h4 { @@ -43,7 +46,7 @@ h4 { font-size: 1.19em; font-weight: 600; line-height: 1.09em; - margin: 1.25em 0 0.5em 0; + margin: 1.25em 0 0.5em; } h5, h6 { @@ -51,7 +54,7 @@ h5, h6 { font-size: 1em; font-weight: 600; line-height: 1em; - margin: 1.25em 0 0.5em 0; + margin: 1.25em 0 0.5em; } a { @@ -89,7 +92,7 @@ img { } p { - margin: 0.5em 0 0.5em 0; + margin: 0.5em 0; } blockquote { @@ -106,13 +109,13 @@ pre, code, kbd, samp { } ul, ol { - margin: 0 0 0.5em 0; + margin: 0 0 0.5em; padding-top: 0; } dt { font-weight: 600; - margin: 0.75em 0 0.125em 0; + margin: 0.75em 0 0.125em; } dt::after { @@ -123,7 +126,7 @@ dt::after { hr { background-color: #EEE; border: 0; - color: gray; + color: #666; height: 1px; margin-bottom: 1.5ex; margin-top: 1.5ex; @@ -192,7 +195,7 @@ footer { #meta tr, #meta th, #meta td { border: 0; font-weight: normal; - padding: 0 0 0.125em 0; + padding: 0 0 0.125em; background-color: transparent; } @@ -211,7 +214,7 @@ footer { #shortdesc { padding: 0; - margin: 0 0 0.5em 0; + margin: 0 0 0.5em; font-style: italic; color: #666; display: inline-block; @@ -238,7 +241,7 @@ footer { padding: 3px 10px 0 0; position: absolute; top: 63px; - width: 93.900002%; + width: 93.9%; z-index: 0; } @@ -416,17 +419,11 @@ input.formbutton { padding: 0 0 0 12px; } -blockquote { - border-left: 1px solid #CCC; - margin-left: 1em; - padding-left: 1em; -} - #footer { bottom: 0; clear: both; font-size: x-small; - margin: 2em 0 0 0; + margin: 2em 0 0; padding: 0; color: #888; } @@ -449,8 +446,8 @@ blockquote { @media print { #topbar { color: #000; - margin: 0.25em auto 0.25em auto; - padding: 0.25em 0.5em 0.5em 0.5em; + margin: 0.25em auto; + padding: 0.25em 0.5em 0.5em; max-width: 60em; position: relative; } @@ -470,7 +467,7 @@ blockquote { @media screen { #topbar { - margin: 0.25em auto 0.25em auto; + margin: 0.25em auto; padding: 0; max-width: 60em; position: relative; @@ -479,7 +476,7 @@ blockquote { #contentsbox { color: #546E00; font-size: small; - margin: 0 0 1.5em 0; + margin: 0 0 1.5em; } #contents { @@ -506,7 +503,7 @@ blockquote { .section { clear: right; - padding: 0 0 1.5em 0; + padding: 0 0 1.5em; } .category { @@ -581,12 +578,11 @@ table.index { border-bottom-left-radius: 6px; } - table.terminfo { border-top: 0; border-collapse: collapse; margin: -1px 0 2em 2em; - padding: 0.25em 0 0.25em 0; + padding: 0.25em 0; float: right; border-bottom: 1px solid #EEE; border-left: 1px solid #EEE; @@ -602,7 +598,7 @@ table.terminfo td { .restriction { border-style: hidden; - margin: 0 0 0.5ex 0; + margin: 0 0 0.5ex; padding: 0; vertical-align: text-top; } @@ -659,15 +655,6 @@ dl { padding: 0; } -hr { - background-color: #EEE; - border: 0; - color: gray; - height: 1px; - margin-bottom: 1.5ex; - margin-top: 1.5ex; -} - div.head { margin-bottom: 1em; } @@ -701,3 +688,118 @@ div.head table { .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; + } +} |