experimenting with docs2website setup

This commit is contained in:
James Brumond 2023-05-06 20:57:37 -07:00
commit a7a9bd53b5
Signed by: james
GPG Key ID: E8F2FC44BAA3357A
9 changed files with 2982 additions and 0 deletions

14
.editorconfig Normal file
View File

@ -0,0 +1,14 @@
root = true
[*]
indent_size = 4
indent_style = tab
[*.{js,ts,css,html}]
indent_size = 4
indent_style = tab
[*.{md,json,jsonc,yml,yaml,sql}]
indent_size = 2
indent_style = space

92
config.yaml Normal file
View File

@ -0,0 +1,92 @@
# Input Configuration (where your documents are)
input:
# The root directory for where to find input file. All other
# input paths are relative to this, and must be under this
root: ./docs
# Files identified in this section are copied over to the
# output directory unprocessed
raw:
- ./**/*.{png,jpg,jpeg,gif}
# Files in this section will be processed as mustache templates,
# but will receive no other processing
text:
- ./**/*.{css,html,js,txt}
# Files to be parsed as markdown (optionally with front matter)
# and rendered to HTML pages
markdown:
- ./**/*.md
# Files to be parsed as JSON Schema definitions and rendered
# to HTML documentation. Additionally, the original JSON / Yaml
# file will also be copied to the output directory, unaltered
schema+json:
- ./**/*.schema.json
schema+yaml:
- ./**/*.schema.{yaml,yml}
# Files to be parsed as OpenAPI V3 specifications and rendered
# to HTML documentation. Additionally, the original JSON / Yaml
# file will also be copied to the output directory, unaltered
openapi+json:
- ./**/*.openapi.json
openapi+yaml:
- ./**/*.openapi.{yaml,yml}
# Template Configuration (used by mustache to actually render pages)
templates:
# Root directory where layout files are stored
layouts: ./layouts
# Root directory where partial files are stored
partials: ./partials
# Root directory where additional color themes are stored
themes: ./themes
# Overrides the opening/closing tags used in mustache template rendering
tags: [ '{{', '}}' ]
# (Optional) whitelist of environment variables to be made accessible
# under `env` when processing templates
env:
- EXAMPLE_ENVIRONMENT_VARIABLE
- FOO_BAR_BAZ
# Output Configuration (where to put your website)
output:
# The root directory to output your website at. The path of an
# input file relative to $.input.root will match (aside from file
# extension) the path of the output file relative to $.output.root
root: ./www
# Any input types listed here will have their raw input files copied
# into the output directory (in addition to creating the new, processed
# output files)
include_inputs:
- schema+json
- schema+yaml
- openapi+json
- openapi+yaml
# When writing either a JSON or Yaml file, if this flag is set to true,
# the file will be converted to the other format so both formats are
# included in the output
include_yaml_and_json: true
# If set to true, intermediate markdown files that are generated from
# other input sources will also be written to the output directory. For
# example, a JSON Schema file goes through two transform steps, e.g.
#
# "schema.json" => "schema.md" => "schema.html"
#
# Typically, those intermediate markdown files are not written anywhere,
# only passed from one step to the other, unless this flag is set.
include_intermediate_markdown: false
# Markdown-to-HTML Configuration
markdown:
#

1238
docs/base.css Normal file

File diff suppressed because it is too large Load Diff

22
docs/colors.css Normal file
View File

@ -0,0 +1,22 @@
:root {
color-scheme: light dark;
}
body {
{{> .themes/Minimal Light }}
}
body[data-color-scheme='dark'] {
{{> .themes/Minimal Dark }}
}
@media (prefers-color-scheme: dark) {
body {
{{> .themes/Minimal Dark }}
}
body[data-color-scheme='light'] {
{{> .themes/Minimal Light }}
}
}

8
docs/index.md Normal file
View File

@ -0,0 +1,8 @@
---
title: Hello, World
layout: main.html
---
## Hello, World!
Its currently {{ build_time.rfc2822 }}

12
layouts/main.html Normal file
View File

@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ page.title }}</title>
<link rel="stylesheet" href="colors.css">
<link rel="stylesheet" href="base.css">
</head>
<body>
{{> .content }}
</body>
</html>

1238
www/base.css Normal file

File diff suppressed because it is too large Load Diff

338
www/colors.css Normal file
View File

@ -0,0 +1,338 @@
:root {
color-scheme: light dark;
}
body {
--theme-sun: #ffb685;
--theme-moon: #85acff;
--theme-bg-main: #ffffff;
--theme-bg-light: #fafafb;
--theme-bg-heavy: #ebf0f5;
--theme-bg-popup-mask: rgba(255, 255, 255, 0.6);
--theme-line: #bbbbbb;
--theme-line-safe: #078e22;
--theme-line-warn: #cca01b;
--theme-line-danger: #d0501e;
--theme-text-heading: #333333;
--theme-text-body: #444444;
--theme-text-light: #777777;
--theme-text-safe: #078e22;
--theme-text-warn: #cca01b;
--theme-text-danger: #d0501e;
--theme-text-link: #5a81d8;
--theme-text-link-active: #5a81d8;
--theme-text-link-visited: #5a81d8;
--theme-bg-qrcode: #ffffff;
--theme-stroke-qrcode: #333333;
--theme-text-highlight: #444444;
--theme-bg-text-highlight: #d3ffd1;
--theme-text-selection: #ffffff;
--theme-bg-text-selection: #8006e0;
--theme-bg-button-primary: #f0f0f0;
--theme-bg-button-primary-hover: #dbe5fb;
--theme-text-button-primary: #444444;
--theme-bg-button-secondary: #efefef;
--theme-bg-button-secondary-hover: #efefef;
--theme-text-button-secondary: #444444;
--theme-bg-error-box: #ffe3e5;
--theme-border-error-box: #bf616a;
--theme-text-error-box: #444444;
--theme-bg-input: #ffffff;
--theme-border-input: #444444;
--theme-border-input-invalid: #bf616a;
--theme-icon-active-indicator: #777777;
--theme-icon-success-indicator: #4dbb70;
--theme-icon-failure-indicator: #bf616a;
--theme-icon-warning-indicator: #cab815;
--theme-accent-info: #c2eaf6;
--theme-accent-highlight: #c4f6c2;
--theme-accent-warning: #f6f5c2;
--theme-accent-problem: #f6c2c2;
--theme-chart-axis: #bbbbbb;
--theme-chart-text: #444444;
--theme-chart-guideline: #dddddd;
--theme-chart-data-0: #ffb685;
--theme-chart-data-1: #85acff;
--theme-chart-data-2: #4dbb70;
--theme-chart-data-3: #eb4f5e;
--theme-chart-data-4: #a278ef;
--theme-chart-data-5: #e298f0;
--theme-chart-data-6: #49d9d8;
--theme-chart-data-7: #cab815;
--theme-chart-data-8: #52e130;
--theme-chart-data-9: #ff13b4;
--theme-code-normal: #4f5b66;
--theme-code-shadow: transparent;
--theme-code-background: #eff1f5;
--theme-code-selection: #dfe1e8;
--theme-code-comment: #a7adba;
--theme-code-punc: #4f5b66;
--theme-code-operator: #4f5b66;
--theme-code-const-literal: #d08770;
--theme-code-number-literal: #d08770;
--theme-code-boolean-literal: #d08770;
--theme-code-tag: #bf616a;
--theme-code-string: #a3be8c;
--theme-code-keyword: #b48ead;
--theme-code-func-name: #8fa1b3;
--theme-code-class-name: #d08770;
--theme-code-regex-important: #96b5b4;
--theme-code-variable: #bf616a;
--theme-code-builtin: #96b5b4;
--theme-code-attr-name: #d08770;
--theme-code-gutter-divider: #eff1f5;
--theme-code-line-number: #4f5b66;
--theme-code-line-highlight: #a7adba30;
}
body[data-color-scheme='dark'] {
--theme-sun: #ffb685;
--theme-moon: #85acff;
--theme-bg-main: #343d46;
--theme-bg-light: #3f4a53;
--theme-bg-heavy: #495159;
--theme-bg-popup-mask: rgba(0, 0, 0, 0.6);
--theme-line: #777777;
--theme-line-safe: #b1ca97;
--theme-line-warn: #cec755;
--theme-line-danger: #ee8861;
--theme-text-heading: #ffffff;
--theme-text-body: #cccccc;
--theme-text-light: #a6a6a6;
--theme-text-safe: #b1ca97;
--theme-text-warn: #cec755;
--theme-text-danger: #ee8861;
--theme-text-link: #86a7f0;
--theme-text-link-active: #86a7f0;
--theme-text-link-visited: #86a7f0;
--theme-bg-qrcode: #343d46;
--theme-stroke-qrcode: #ffffff;
--theme-text-highlight: #ffffff;
--theme-bg-text-highlight: #3da069;
--theme-text-selection: #660bad;
--theme-bg-text-selection: #ebe9f0;
--theme-bg-button-primary: #465568;
--theme-bg-button-primary-hover: #465568;
--theme-text-button-primary: #bbbbbb;
--theme-bg-button-secondary: #495159;
--theme-bg-button-secondary-hover: #86a7f04c;
--theme-text-button-secondary: #bbbbbb;
--theme-bg-error-box: #704649;
--theme-border-error-box: #802730;
--theme-text-error-box: #cccccc;
--theme-bg-input: #3e444a;
--theme-border-input: #dddddd;
--theme-border-input-invalid: #f13547;
--theme-icon-active-indicator: #a6a6a6;
--theme-icon-success-indicator: #b3ffa1;
--theme-icon-failure-indicator: #f13547;
--theme-icon-warning-indicator: #cab815;
--theme-accent-info: #94e9e1;
--theme-accent-highlight: #85ef9b;
--theme-accent-warning: #e2ef85;
--theme-accent-problem: #ef9985;
--theme-chart-axis: #777777;
--theme-chart-text: #cccccc;
--theme-chart-guideline: #666666;
--theme-chart-data-0: #ffb685;
--theme-chart-data-1: #85acff;
--theme-chart-data-2: #4dbb70;
--theme-chart-data-3: #eb4f5e;
--theme-chart-data-4: #a278ef;
--theme-chart-data-5: #e298f0;
--theme-chart-data-6: #49d9d8;
--theme-chart-data-7: #cab815;
--theme-chart-data-8: #52e130;
--theme-chart-data-9: #ff13b4;
--theme-code-normal: #c0c5ce;
--theme-code-shadow: transparent;
--theme-code-background: #2b303b;
--theme-code-selection: #4f5b66;
--theme-code-comment: #65737e;
--theme-code-punc: #c0c5ce;
--theme-code-operator: #c0c5ce;
--theme-code-const-literal: #d08770;
--theme-code-number-literal: #d08770;
--theme-code-boolean-literal: #d08770;
--theme-code-tag: #bf616a;
--theme-code-string: #a3be8c;
--theme-code-keyword: #b48ead;
--theme-code-func-name: #8fa1b3;
--theme-code-class-name: #ebcb8b;
--theme-code-regex-important: #96b5b4;
--theme-code-variable: #bf616a;
--theme-code-builtin: #96b5b4;
--theme-code-attr-name: #d08770;
--theme-code-gutter-divider: #343d46;
--theme-code-line-number: #65737e;
--theme-code-line-highlight: #65737e30;
}
@media (prefers-color-scheme: dark) {
body {
--theme-sun: #ffb685;
--theme-moon: #85acff;
--theme-bg-main: #343d46;
--theme-bg-light: #3f4a53;
--theme-bg-heavy: #495159;
--theme-bg-popup-mask: rgba(0, 0, 0, 0.6);
--theme-line: #777777;
--theme-line-safe: #b1ca97;
--theme-line-warn: #cec755;
--theme-line-danger: #ee8861;
--theme-text-heading: #ffffff;
--theme-text-body: #cccccc;
--theme-text-light: #a6a6a6;
--theme-text-safe: #b1ca97;
--theme-text-warn: #cec755;
--theme-text-danger: #ee8861;
--theme-text-link: #86a7f0;
--theme-text-link-active: #86a7f0;
--theme-text-link-visited: #86a7f0;
--theme-bg-qrcode: #343d46;
--theme-stroke-qrcode: #ffffff;
--theme-text-highlight: #ffffff;
--theme-bg-text-highlight: #3da069;
--theme-text-selection: #660bad;
--theme-bg-text-selection: #ebe9f0;
--theme-bg-button-primary: #465568;
--theme-bg-button-primary-hover: #465568;
--theme-text-button-primary: #bbbbbb;
--theme-bg-button-secondary: #495159;
--theme-bg-button-secondary-hover: #86a7f04c;
--theme-text-button-secondary: #bbbbbb;
--theme-bg-error-box: #704649;
--theme-border-error-box: #802730;
--theme-text-error-box: #cccccc;
--theme-bg-input: #3e444a;
--theme-border-input: #dddddd;
--theme-border-input-invalid: #f13547;
--theme-icon-active-indicator: #a6a6a6;
--theme-icon-success-indicator: #b3ffa1;
--theme-icon-failure-indicator: #f13547;
--theme-icon-warning-indicator: #cab815;
--theme-accent-info: #94e9e1;
--theme-accent-highlight: #85ef9b;
--theme-accent-warning: #e2ef85;
--theme-accent-problem: #ef9985;
--theme-chart-axis: #777777;
--theme-chart-text: #cccccc;
--theme-chart-guideline: #666666;
--theme-chart-data-0: #ffb685;
--theme-chart-data-1: #85acff;
--theme-chart-data-2: #4dbb70;
--theme-chart-data-3: #eb4f5e;
--theme-chart-data-4: #a278ef;
--theme-chart-data-5: #e298f0;
--theme-chart-data-6: #49d9d8;
--theme-chart-data-7: #cab815;
--theme-chart-data-8: #52e130;
--theme-chart-data-9: #ff13b4;
--theme-code-normal: #c0c5ce;
--theme-code-shadow: transparent;
--theme-code-background: #2b303b;
--theme-code-selection: #4f5b66;
--theme-code-comment: #65737e;
--theme-code-punc: #c0c5ce;
--theme-code-operator: #c0c5ce;
--theme-code-const-literal: #d08770;
--theme-code-number-literal: #d08770;
--theme-code-boolean-literal: #d08770;
--theme-code-tag: #bf616a;
--theme-code-string: #a3be8c;
--theme-code-keyword: #b48ead;
--theme-code-func-name: #8fa1b3;
--theme-code-class-name: #ebcb8b;
--theme-code-regex-important: #96b5b4;
--theme-code-variable: #bf616a;
--theme-code-builtin: #96b5b4;
--theme-code-attr-name: #d08770;
--theme-code-gutter-divider: #343d46;
--theme-code-line-number: #65737e;
--theme-code-line-highlight: #65737e30;
}
body[data-color-scheme='light'] {
--theme-sun: #ffb685;
--theme-moon: #85acff;
--theme-bg-main: #ffffff;
--theme-bg-light: #fafafb;
--theme-bg-heavy: #ebf0f5;
--theme-bg-popup-mask: rgba(255, 255, 255, 0.6);
--theme-line: #bbbbbb;
--theme-line-safe: #078e22;
--theme-line-warn: #cca01b;
--theme-line-danger: #d0501e;
--theme-text-heading: #333333;
--theme-text-body: #444444;
--theme-text-light: #777777;
--theme-text-safe: #078e22;
--theme-text-warn: #cca01b;
--theme-text-danger: #d0501e;
--theme-text-link: #5a81d8;
--theme-text-link-active: #5a81d8;
--theme-text-link-visited: #5a81d8;
--theme-bg-qrcode: #ffffff;
--theme-stroke-qrcode: #333333;
--theme-text-highlight: #444444;
--theme-bg-text-highlight: #d3ffd1;
--theme-text-selection: #ffffff;
--theme-bg-text-selection: #8006e0;
--theme-bg-button-primary: #f0f0f0;
--theme-bg-button-primary-hover: #dbe5fb;
--theme-text-button-primary: #444444;
--theme-bg-button-secondary: #efefef;
--theme-bg-button-secondary-hover: #efefef;
--theme-text-button-secondary: #444444;
--theme-bg-error-box: #ffe3e5;
--theme-border-error-box: #bf616a;
--theme-text-error-box: #444444;
--theme-bg-input: #ffffff;
--theme-border-input: #444444;
--theme-border-input-invalid: #bf616a;
--theme-icon-active-indicator: #777777;
--theme-icon-success-indicator: #4dbb70;
--theme-icon-failure-indicator: #bf616a;
--theme-icon-warning-indicator: #cab815;
--theme-accent-info: #c2eaf6;
--theme-accent-highlight: #c4f6c2;
--theme-accent-warning: #f6f5c2;
--theme-accent-problem: #f6c2c2;
--theme-chart-axis: #bbbbbb;
--theme-chart-text: #444444;
--theme-chart-guideline: #dddddd;
--theme-chart-data-0: #ffb685;
--theme-chart-data-1: #85acff;
--theme-chart-data-2: #4dbb70;
--theme-chart-data-3: #eb4f5e;
--theme-chart-data-4: #a278ef;
--theme-chart-data-5: #e298f0;
--theme-chart-data-6: #49d9d8;
--theme-chart-data-7: #cab815;
--theme-chart-data-8: #52e130;
--theme-chart-data-9: #ff13b4;
--theme-code-normal: #4f5b66;
--theme-code-shadow: transparent;
--theme-code-background: #eff1f5;
--theme-code-selection: #dfe1e8;
--theme-code-comment: #a7adba;
--theme-code-punc: #4f5b66;
--theme-code-operator: #4f5b66;
--theme-code-const-literal: #d08770;
--theme-code-number-literal: #d08770;
--theme-code-boolean-literal: #d08770;
--theme-code-tag: #bf616a;
--theme-code-string: #a3be8c;
--theme-code-keyword: #b48ead;
--theme-code-func-name: #8fa1b3;
--theme-code-class-name: #d08770;
--theme-code-regex-important: #96b5b4;
--theme-code-variable: #bf616a;
--theme-code-builtin: #96b5b4;
--theme-code-attr-name: #d08770;
--theme-code-gutter-divider: #eff1f5;
--theme-code-line-number: #4f5b66;
--theme-code-line-highlight: #a7adba30;
}
}

20
www/index.html Normal file
View File

@ -0,0 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello, World</title>
<link rel="stylesheet" href="colors.css">
<link rel="stylesheet" href="base.css">
</head>
<body>
<h2 id="hello-world">
Hello, World!
<a href="#hello-world" class="heading-anchor">
<svg stroke-linejoin="round" stroke-linecap="round" stroke-width="2" stroke="currentcolor" fill="none" viewBox="0 0 24 24" style="width: var(--icon-size, 1rem); height: var(--icon-size, 1rem)" aria-hidden="true" class="icon link" xmlns="http://www.w3.org/2000/svg"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg>
<span style="display: none">Section titled Hello, World!</span>
</a>
</h2>
<p>Its currently Sat, 06 May 2023 19:55:06 -0700</p>
</body>
</html>