v0.3.0
* Getting environment variables and passwords from Vault (not tested yet) * Vault configuration to config (not tested yet) * Ability to run scripts from file on local machine on the remote host * Ability to get ouput in the notification of a list for individual commands or all commands * Make SSH connections close after all commands have been run; reuse previous connections if needed
This commit is contained in:
parent
5e7c52997c
commit
4b382bddd9
8
.changes/v0.3.0.md
Normal file
8
.changes/v0.3.0.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
## v0.3.0 - 2023-01-07
|
||||||
|
### Added
|
||||||
|
* Getting environment variables and passwords from Vault (not tested yet)
|
||||||
|
* Vault configuration to config (not tested yet)
|
||||||
|
* Ability to run scripts from file on local machine on the remote host
|
||||||
|
* Ability to get ouput in the notification of a list for individual commands or all commands
|
||||||
|
### Changed
|
||||||
|
* Make SSH connections close after all commands have been run; reuse previous connections if needed
|
5
.github/workflows/release.yml
vendored
5
.github/workflows/release.yml
vendored
@ -30,7 +30,7 @@ jobs:
|
|||||||
uses: dawidd6/action-get-tag@v1
|
uses: dawidd6/action-get-tag@v1
|
||||||
with:
|
with:
|
||||||
# Optionally strip `v` prefix
|
# Optionally strip `v` prefix
|
||||||
strip_v: true
|
strip_v: false
|
||||||
- uses: goreleaser/goreleaser-action@v4
|
- uses: goreleaser/goreleaser-action@v4
|
||||||
with:
|
with:
|
||||||
distribution: goreleaser
|
distribution: goreleaser
|
||||||
@ -38,6 +38,3 @@ jobs:
|
|||||||
args: release --release-notes=".changes/${{steps.tag.outputs.tag}}.md" -f .goreleaser/github.yml --clean
|
args: release --release-notes=".changes/${{steps.tag.outputs.tag}}.md" -f .goreleaser/github.yml --clean
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GORELEASER_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GORELEASER_TOKEN }}
|
||||||
# Your GoReleaser Pro key, if you are using the 'goreleaser-pro'
|
|
||||||
# distribution:
|
|
||||||
# GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
|
||||||
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "docs/themes/hugo-theme-relearn"]
|
||||||
|
path = docs/themes/hugo-theme-relearn
|
||||||
|
url = https://github.com/McShelby/hugo-theme-relearn
|
@ -1,8 +1,8 @@
|
|||||||
pipeline:
|
steps:
|
||||||
release:
|
release:
|
||||||
image: goreleaser/goreleaser
|
image: goreleaser/goreleaser
|
||||||
commands:
|
commands:
|
||||||
- goreleaser release -f .goreleaser/vern.yml --release-notes=".changes/$(go run backy.go version).md"
|
- goreleaser release -f .goreleaser/vern.yml --release-notes=".changes/$(go run backy.go version -V).md"
|
||||||
secrets: [ gitea_token ]
|
secrets: [ gitea_token ]
|
||||||
when:
|
when:
|
||||||
event: tag
|
event: tag
|
30
.woodpecker/publish-docs.yml
Normal file
30
.woodpecker/publish-docs.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
steps:
|
||||||
|
build:
|
||||||
|
image: klakegg/hugo:ext-debian-ci
|
||||||
|
commands:
|
||||||
|
- git submodule foreach 'git fetch origin; git checkout $(git describe --tags `git rev-list --tags --max-count=1`);'
|
||||||
|
- cd docs
|
||||||
|
- hugo
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
image: codingkoopa/git-rsync-openssh
|
||||||
|
commands:
|
||||||
|
- cd docs
|
||||||
|
- echo "151.101.210.132 deb.debian.org" >> /etc/hosts
|
||||||
|
- echo "nameserver 1.1.1.1" > /etc/resolv.conf
|
||||||
|
- mkdir ~/.ssh && chmod -R 700 ~/.ssh
|
||||||
|
# - apt update -y && apt install openssh-client rsync -y
|
||||||
|
- echo "$SSH_HOST_KEY" > ~/.ssh/known_hosts
|
||||||
|
- echo -e '#!/bin/sh\necho "$SSH_PASSPHRASE"' | tr -d '\r' > ~/.ssh/.print_ssh_password
|
||||||
|
# - cat ~/.ssh/.print_ssh_password
|
||||||
|
- chmod 700 ~/.ssh/.print_ssh_password
|
||||||
|
- eval $(ssh-agent -s)
|
||||||
|
- echo "$SSH_DEPLOY_KEY" | tr -d '\r' | DISPLAY=":0.0" SSH_ASKPASS=~/.ssh/.print_ssh_password setsid ssh-add -
|
||||||
|
- rsync -atv --delete --progress public/ backy@backy.cybershell.xyz:docs
|
||||||
|
- rsync -atv --delete --progress vangen/ backy@backy.cybershell.xyz:vangen-go
|
||||||
|
secrets: [ ssh_host_key, ssh_deploy_key, ssh_passphrase ]
|
||||||
|
|
||||||
|
|
||||||
|
branches: master
|
||||||
|
when:
|
||||||
|
path: "docs/*"
|
3
cmd/.gitignore
vendored
3
cmd/.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
*.yaml
|
*.yaml
|
||||||
|
*.yml
|
@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
backupCmd = &cobra.Command{
|
backupCmd = &cobra.Command{
|
||||||
Use: "backup [--lists=list1,list2]",
|
Use: "backup [--lists=list1,list2,... | -l list1, list2,...]",
|
||||||
Short: "Runs commands defined in config file.",
|
Short: "Runs commands defined in config file.",
|
||||||
Long: "Backup executes commands defined in config file.\nUse the --lists flag to execute the specified commands. If not specified, all lists will be executed.",
|
Long: "Backup executes commands defined in config file.\nUse the --lists or -l flag to execute the specified lists. If not flag is not given, all lists will be executed.",
|
||||||
Run: Backup,
|
Run: Backup,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -34,7 +34,7 @@ func Backup(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
config := backy.ReadConfig(backyConfOpts)
|
config := backy.ReadConfig(backyConfOpts)
|
||||||
|
|
||||||
config.RunBackyConfig("", backyConfOpts)
|
config.RunListConfig("", backyConfOpts)
|
||||||
for _, host := range config.Hosts {
|
for _, host := range config.Hosts {
|
||||||
if host.SshClient != nil {
|
if host.SshClient != nil {
|
||||||
host.SshClient.Close()
|
host.SshClient.Close()
|
||||||
|
@ -9,7 +9,7 @@ import (
|
|||||||
var (
|
var (
|
||||||
cronCmd = &cobra.Command{
|
cronCmd = &cobra.Command{
|
||||||
Use: "cron [flags]",
|
Use: "cron [flags]",
|
||||||
Short: "Runs command lists defined in config file.",
|
Short: "Starts a scheduler that runs lists defined in config file.",
|
||||||
Long: `Cron starts a scheduler that executes command lists at the time defined in config file.`,
|
Long: `Cron starts a scheduler that executes command lists at the time defined in config file.`,
|
||||||
Run: cron,
|
Run: cron,
|
||||||
}
|
}
|
||||||
@ -19,6 +19,6 @@ func cron(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
opts := backy.NewOpts(cfgFile, backy.UseCron())
|
opts := backy.NewOpts(cfgFile, backy.UseCron())
|
||||||
opts.InitConfig()
|
opts.InitConfig()
|
||||||
|
backy.ReadConfig(opts)
|
||||||
backy.ReadConfig(opts).Cron()
|
opts.Cron()
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,8 @@ import (
|
|||||||
var (
|
var (
|
||||||
execCmd = &cobra.Command{
|
execCmd = &cobra.Command{
|
||||||
Use: "exec command ...",
|
Use: "exec command ...",
|
||||||
Short: "Runs commands defined in config file.",
|
Short: "Runs commands defined in config file in order given.",
|
||||||
Long: `Exec executes commands defined in config file.`,
|
Long: `Exec executes commands defined in config file in order given.`,
|
||||||
Run: execute,
|
Run: execute,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -7,29 +7,35 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
const versionStr = "0.2.4"
|
const versionStr = "0.3.0"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
versionCmd = &cobra.Command{
|
versionCmd = &cobra.Command{
|
||||||
Use: "version [flags]",
|
Use: "version [flags]",
|
||||||
Short: "Prints the version and exits.",
|
Short: "Prints the version and exits",
|
||||||
|
Long: "Prints the version and exits. No arguments just prints the version number only.",
|
||||||
Run: version,
|
Run: version,
|
||||||
}
|
}
|
||||||
numOnly bool
|
numOnly bool
|
||||||
vPre bool
|
vPre bool
|
||||||
)
|
)
|
||||||
|
|
||||||
func version(cmd *cobra.Command, args []string) {
|
func init() {
|
||||||
|
versionCmd.PersistentFlags().BoolVarP(&numOnly, "num", "n", true, "Output the version number only.")
|
||||||
|
versionCmd.PersistentFlags().BoolVarP(&vPre, "vpre", "V", false, "Output the version with v prefixed.")
|
||||||
|
}
|
||||||
|
|
||||||
cmd.PersistentFlags().BoolVarP(&numOnly, "num", "n", true, "Output the version number only.")
|
func version(cmd *cobra.Command, args []string) {
|
||||||
cmd.PersistentFlags().BoolVarP(&vPre, "vpre", "V", false, "Output the version with v prefixed.")
|
|
||||||
|
|
||||||
if numOnly && !vPre {
|
if numOnly && !vPre {
|
||||||
fmt.Printf("%s\n", versionStr)
|
fmt.Printf("%s\n", versionStr)
|
||||||
} else if vPre {
|
} else if vPre && !numOnly {
|
||||||
fmt.Printf("v%s", versionStr)
|
fmt.Printf("v%s\n", versionStr)
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("Backy version: %s", versionStr)
|
if vPre && numOnly {
|
||||||
|
fmt.Println("vpre flag and num flag both detected!")
|
||||||
|
}
|
||||||
|
fmt.Printf("Backy version: %s\n", versionStr)
|
||||||
}
|
}
|
||||||
|
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
|
1
docs/.frontmatter/database/mediaDb.json
Normal file
1
docs/.frontmatter/database/mediaDb.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
0
docs/.hugo_build.lock
Normal file
0
docs/.hugo_build.lock
Normal file
6
docs/archetypes/default.md
Normal file
6
docs/archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: "{{ replace .Name "-" " " | title }}"
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
90
docs/config.toml
Normal file
90
docs/config.toml
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
baseURL = 'http://example.org/'
|
||||||
|
languageCode = 'en-us'
|
||||||
|
title = 'A tool for commands'
|
||||||
|
|
||||||
|
# Change the default theme to be use when building the site with Hugo
|
||||||
|
theme = "hugo-theme-relearn"
|
||||||
|
|
||||||
|
# For search functionality
|
||||||
|
[outputs]
|
||||||
|
home = [ "HTML", "RSS", "SEARCH"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
# This controls whether submenus will be expanded (true), or collapsed (false) in the
|
||||||
|
# menu; if no setting is given, the first menu level is set to false, all others to true;
|
||||||
|
# this can be overridden in the pages frontmatter
|
||||||
|
alwaysopen = false
|
||||||
|
# Prefix URL to edit current page. Will display an "Edit" button on top right hand corner of every page.
|
||||||
|
# Useful to give opportunity to people to create merge request for your doc.
|
||||||
|
# See the config.toml file from this documentation site to have an example.
|
||||||
|
editURL = ""
|
||||||
|
# Author of the site, will be used in meta information
|
||||||
|
author = ""
|
||||||
|
# Description of the site, will be used in meta information
|
||||||
|
description = ""
|
||||||
|
# Shows a checkmark for visited pages on the menu
|
||||||
|
showVisitedLinks = false
|
||||||
|
# Disable search function. It will hide search bar
|
||||||
|
disableSearch = false
|
||||||
|
# Disable search in hidden pages, otherwise they will be shown in search box
|
||||||
|
disableSearchHiddenPages = false
|
||||||
|
# Disables hidden pages from showing up in the sitemap and on Google (et all), otherwise they may be indexed by search engines
|
||||||
|
disableSeoHiddenPages = false
|
||||||
|
# Disables hidden pages from showing up on the tags page although the tag term will be displayed even if all pages are hidden
|
||||||
|
disableTagHiddenPages = false
|
||||||
|
# Javascript and CSS cache are automatically busted when new version of site is generated.
|
||||||
|
# Set this to true to disable this behavior (some proxies don't handle well this optimization)
|
||||||
|
disableAssetsBusting = false
|
||||||
|
# Set this to true if you want to disable generation for generator version meta tags of hugo and the theme;
|
||||||
|
# don't forget to also set Hugo's disableHugoGeneratorInject=true, otherwise it will generate a meta tag into your home page
|
||||||
|
disableGeneratorVersion = false
|
||||||
|
# Set this to true to disable copy-to-clipboard button for inline code.
|
||||||
|
disableInlineCopyToClipBoard = false
|
||||||
|
# A title for shortcuts in menu is set by default. Set this to true to disable it.
|
||||||
|
disableShortcutsTitle = false
|
||||||
|
# If set to false, a Home button will appear below the search bar on the menu.
|
||||||
|
# It is redirecting to the landing page of the current language if specified. (Default is "/")
|
||||||
|
disableLandingPageButton = true
|
||||||
|
# When using mulitlingual website, disable the switch language button.
|
||||||
|
disableLanguageSwitchingButton = false
|
||||||
|
# Hide breadcrumbs in the header and only show the current page title
|
||||||
|
disableBreadcrumb = true
|
||||||
|
# If set to true, hide table of contents menu in the header of all pages
|
||||||
|
disableToc = false
|
||||||
|
# If set to false, load the MathJax module on every page regardless if a MathJax shortcode is present
|
||||||
|
disableMathJax = false
|
||||||
|
# Specifies the remote location of the MathJax js
|
||||||
|
customMathJaxURL = "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
|
||||||
|
# Initialization parameter for MathJax, see MathJax documentation
|
||||||
|
mathJaxInitialize = "{}"
|
||||||
|
# If set to false, load the Mermaid module on every page regardless if a Mermaid shortcode or Mermaid codefence is present
|
||||||
|
disableMermaid = false
|
||||||
|
# Specifies the remote location of the Mermaid js
|
||||||
|
customMermaidURL = "https://unpkg.com/mermaid/dist/mermaid.min.js"
|
||||||
|
# Initialization parameter for Mermaid, see Mermaid documentation
|
||||||
|
mermaidInitialize = "{ \"theme\": \"default\" }"
|
||||||
|
# If set to false, load the Swagger module on every page regardless if a Swagger shortcode is present
|
||||||
|
disableSwagger = false
|
||||||
|
# Specifies the remote location of the RapiDoc js
|
||||||
|
customSwaggerURL = "https://unpkg.com/rapidoc/dist/rapidoc-min.js"
|
||||||
|
# Initialization parameter for Swagger, see RapiDoc documentation
|
||||||
|
swaggerInitialize = "{ \"theme\": \"light\" }"
|
||||||
|
# Hide Next and Previous page buttons normally displayed full height beside content
|
||||||
|
disableNextPrev = true
|
||||||
|
# Order sections in menu by "weight" or "title". Default to "weight";
|
||||||
|
# this can be overridden in the pages frontmatter
|
||||||
|
ordersectionsby = "weight"
|
||||||
|
# Change default color scheme with a variant one. Eg. can be "auto", "red", "blue", "green" or an array like [ "blue", "green" ].
|
||||||
|
themeVariant = "auto"
|
||||||
|
# Change the title separator. Default to "::".
|
||||||
|
titleSeparator = "-"
|
||||||
|
# If set to true, the menu in the sidebar will be displayed in a collapsible tree view. Although the functionality works with old browsers (IE11), the display of the expander icons is limited to modern browsers
|
||||||
|
collapsibleMenu = true
|
||||||
|
# If a single page can contain content in multiple languages, add those here
|
||||||
|
additionalContentLanguage = [ "en" ]
|
||||||
|
# If set to true, no index.html will be appended to prettyURLs; this will cause pages not
|
||||||
|
# to be servable from the file system
|
||||||
|
disableExplicitIndexURLs = false
|
||||||
|
# For external links you can define how they are opened in your browser; this setting will only be applied to the content area but not the shortcut menu
|
||||||
|
externalLinkTarget = "_blank"
|
||||||
|
|
26
docs/content/_index.md
Normal file
26
docs/content/_index.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
+++
|
||||||
|
archetype = "home"
|
||||||
|
title = "Backy"
|
||||||
|
+++
|
||||||
|
|
||||||
|
Backy is a tool for automating data backup and remote command execution. It can work over SSH, and provides completion and failure notifications, error reporting, and more.
|
||||||
|
|
||||||
|
Why the name Backy? Because I wanted an app for backups.
|
||||||
|
|
||||||
|
{{% notice tip %}}
|
||||||
|
Feel free to open a [PR](https://git.andrewnw.xyz/CyberShell/backy/pulls), raise an [issue](https://git.andrewnw.xyz/CyberShell/backy/issues "Open a Gitea Issue")(s), or request new feature(s).
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Allows easy configuration of executable commands
|
||||||
|
|
||||||
|
- Allows for commands to be run on many hosts over SSH
|
||||||
|
|
||||||
|
- Commands can be grouped in list to run in specific order
|
||||||
|
|
||||||
|
- Notifications on completion and failure
|
||||||
|
|
||||||
|
- Run in cron mode
|
||||||
|
|
||||||
|
- For any command, especially backup commands
|
101
docs/content/cli/_index.md
Normal file
101
docs/content/cli/_index.md
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
---
|
||||||
|
title: CLI
|
||||||
|
weight: 4
|
||||||
|
---
|
||||||
|
|
||||||
|
This page lists documentation for the CLI.
|
||||||
|
|
||||||
|
## Backy
|
||||||
|
|
||||||
|
```
|
||||||
|
Backy is a command-line application useful for configuring backups, or any commands run in sequence.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
backy [command]
|
||||||
|
|
||||||
|
Available Commands:
|
||||||
|
backup Runs commands defined in config file.
|
||||||
|
completion Generate the autocompletion script for the specified shell
|
||||||
|
cron Starts a scheduler that runs lists defined in config file.
|
||||||
|
exec Runs commands defined in config file in order given.
|
||||||
|
help Help about any command
|
||||||
|
version Prints the version and exits
|
||||||
|
|
||||||
|
Flags:
|
||||||
|
-f, --config string config file to read from
|
||||||
|
-h, --help help for backy
|
||||||
|
-v, --verbose Sets verbose level
|
||||||
|
|
||||||
|
Use "backy [command] --help" for more information about a command.
|
||||||
|
```
|
||||||
|
|
||||||
|
# Subcommands
|
||||||
|
|
||||||
|
## backup
|
||||||
|
|
||||||
|
```
|
||||||
|
Backup executes commands defined in config file.
|
||||||
|
Use the --lists or -l flag to execute the specified lists. If not flag is not given, all lists will be executed.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
backy backup [--lists=list1,list2,... | -l list1, list2,...] [flags]
|
||||||
|
|
||||||
|
Flags:
|
||||||
|
-h, --help help for backup
|
||||||
|
-l, --lists strings Accepts comma-separated names of command lists to execute.
|
||||||
|
|
||||||
|
Global Flags:
|
||||||
|
-f, --config string config file to read from
|
||||||
|
-v, --verbose Sets verbose level
|
||||||
|
```
|
||||||
|
|
||||||
|
## cron
|
||||||
|
|
||||||
|
```
|
||||||
|
Cron starts a scheduler that executes command lists at the time defined in config file.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
backy cron [flags]
|
||||||
|
|
||||||
|
Flags:
|
||||||
|
-h, --help help for cron
|
||||||
|
|
||||||
|
Global Flags:
|
||||||
|
-f, --config string config file to read from
|
||||||
|
-v, --verbose Sets verbose level
|
||||||
|
```
|
||||||
|
|
||||||
|
## exec
|
||||||
|
|
||||||
|
```
|
||||||
|
Exec executes commands defined in config file in order given.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
backy exec command ... [flags]
|
||||||
|
|
||||||
|
Flags:
|
||||||
|
-h, --help help for exec
|
||||||
|
|
||||||
|
Global Flags:
|
||||||
|
-f, --config string config file to read from
|
||||||
|
-v, --verbose Sets verbose level
|
||||||
|
```
|
||||||
|
|
||||||
|
## version
|
||||||
|
|
||||||
|
```
|
||||||
|
Prints the version and exits. No arguments just prints the version number only.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
backy version [flags]
|
||||||
|
|
||||||
|
Flags:
|
||||||
|
-h, --help help for version
|
||||||
|
-n, --num Output the version number only. (default true)
|
||||||
|
-V, --vpre Output the version with v prefixed.
|
||||||
|
|
||||||
|
Global Flags:
|
||||||
|
-f, --config string config file to read from
|
||||||
|
-v, --verbose Sets verbose level
|
||||||
|
```
|
||||||
|
|
22
docs/content/config/_index.md
Normal file
22
docs/content/config/_index.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
title: "Configuring Backy"
|
||||||
|
weight: 3
|
||||||
|
description: >
|
||||||
|
This page tells you how to configure Backy.
|
||||||
|
---
|
||||||
|
|
||||||
|
This is the section on the config file.
|
||||||
|
|
||||||
|
To use a specific file:
|
||||||
|
```backy [command] -f /path/to/file```
|
||||||
|
|
||||||
|
If you leave the config path blank, the following paths will be searched in order:
|
||||||
|
|
||||||
|
- `./backy.yml`
|
||||||
|
- `./backy.yaml`
|
||||||
|
- `~/.config/backy.yml`
|
||||||
|
- `~/.config/backy.yaml`
|
||||||
|
|
||||||
|
Create a file at `~/.config/backy.yml`.
|
||||||
|
|
||||||
|
See the rest of the documentation in this section to configure it.
|
85
docs/content/config/command-lists.md
Normal file
85
docs/content/config/command-lists.md
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
---
|
||||||
|
title: "Command Lists"
|
||||||
|
weight: 2
|
||||||
|
description: >
|
||||||
|
This page tells you how to get started with Backy.
|
||||||
|
---
|
||||||
|
|
||||||
|
Command lists are for executing commands in sequence and getting notifications from them.
|
||||||
|
|
||||||
|
The top-level object key can be anything you want but not the same as another.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
test2:
|
||||||
|
name: test2
|
||||||
|
order:
|
||||||
|
- test
|
||||||
|
- test2
|
||||||
|
notifications:
|
||||||
|
- prod-email
|
||||||
|
- matrix
|
||||||
|
cron: "0 * * * * *"
|
||||||
|
```
|
||||||
|
|
||||||
|
| key | description | type | required
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `order` | Defines the sequence of commands to execute | `[]string` | yes |
|
||||||
|
| `getOutput` | Command(s) output is in the notification(s) | `bool` | no |
|
||||||
|
| `notifications` | The notification IDs to use on success and failure | `[]string` | no |
|
||||||
|
| `name` | Optional name of the list | `string` | no |
|
||||||
|
| `cron` | Time at which to schedule the list. | `string` | no |
|
||||||
|
|
||||||
|
### Order
|
||||||
|
|
||||||
|
The order is an array of commands to execute in order. Each command must be defined.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
order:
|
||||||
|
- cmd-1
|
||||||
|
- cmd-2
|
||||||
|
```
|
||||||
|
|
||||||
|
### getOutput
|
||||||
|
|
||||||
|
Get command output when a notification is sent.
|
||||||
|
|
||||||
|
Is not required. Can be `true` or `false`.
|
||||||
|
|
||||||
|
### Notifications
|
||||||
|
|
||||||
|
An array of notification IDs to use on success and failure. Must match any of the `notifications` object map keys.
|
||||||
|
|
||||||
|
### Name
|
||||||
|
|
||||||
|
Name is optional for logging. If name is not defined, name will be the object's map key.
|
||||||
|
|
||||||
|
### Cron mode
|
||||||
|
|
||||||
|
Backy also has a cron mode, so one can run `backy cron` and start a process that schedules jobs to run at times defined in the configuration file.
|
||||||
|
|
||||||
|
Adding `cron: 0 0 1 * * *` to a `cmd-configs` object will schedule the list at 1 in the morning. See [https://crontab.guru/](https://crontab.guru/) for reference.
|
||||||
|
|
||||||
|
{{% notice tip %}}
|
||||||
|
Note: Backy uses the second field of cron, so add anything except * to the beginning of a regular cron expression.
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
cmd-configs:
|
||||||
|
cmds-to-run: # this can be any name you want
|
||||||
|
# all commands have to be defined
|
||||||
|
order:
|
||||||
|
- stop-docker-container
|
||||||
|
- backup-docker-container-script
|
||||||
|
- shell-cmd
|
||||||
|
- hostname
|
||||||
|
notifications:
|
||||||
|
- matrix
|
||||||
|
name: backup-some-server
|
||||||
|
cron: "0 0 1 * * *"
|
||||||
|
hostname:
|
||||||
|
name: hostname
|
||||||
|
order:
|
||||||
|
- hostname
|
||||||
|
notifications:
|
||||||
|
- prod-email
|
||||||
|
```
|
97
docs/content/config/commands.md
Normal file
97
docs/content/config/commands.md
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
---
|
||||||
|
title: "Commands"
|
||||||
|
weight: 1
|
||||||
|
---
|
||||||
|
|
||||||
|
The yaml top-level map can be any string.
|
||||||
|
|
||||||
|
The top-level name must be unique.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
commands:
|
||||||
|
stop-docker-container:
|
||||||
|
cmd: docker
|
||||||
|
Args:
|
||||||
|
- compose
|
||||||
|
- -f /some/path/to/docker-compose.yaml
|
||||||
|
- down
|
||||||
|
# if host is not defined, command will be run locally
|
||||||
|
host: some-host
|
||||||
|
backup-docker-container-script:
|
||||||
|
cmd: /path/to/script/on/some-host
|
||||||
|
# The host has to be defined in either the config file or the SSH Config files
|
||||||
|
host: some-host
|
||||||
|
environment:
|
||||||
|
- FOO=BAR
|
||||||
|
- APP=$VAR
|
||||||
|
```
|
||||||
|
|
||||||
|
Values available for this section:
|
||||||
|
|
||||||
|
| name | description | type | required
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `cmd` | Defines the command to execute | `string` | yes |
|
||||||
|
| `args` | Defines the arguments to the command | `[]string` | no |
|
||||||
|
| `environment` | Defines evironment variables for the command | `[]string` | no |
|
||||||
|
| `getOutput` | Command(s) output is in the notification(s) | `bool` | no |
|
||||||
|
| `host` | If not specified, the command will execute locally. | `string` | no |
|
||||||
|
| `shell` | Only applicable when host is not specified | `string` | no |
|
||||||
|
|
||||||
|
#### cmd
|
||||||
|
|
||||||
|
cmd must be a valid command or script to execute.
|
||||||
|
|
||||||
|
#### args
|
||||||
|
|
||||||
|
args must be arguments to cmd as they would be on the command-line:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cmd [arg1 arg2 ...]
|
||||||
|
```
|
||||||
|
|
||||||
|
Define them in an array:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
args:
|
||||||
|
- arg1
|
||||||
|
- arg2
|
||||||
|
- arg3
|
||||||
|
```
|
||||||
|
|
||||||
|
### getOutput
|
||||||
|
|
||||||
|
Get command output when a notification is sent.
|
||||||
|
|
||||||
|
Is not required. Can be `true` or `false`.
|
||||||
|
|
||||||
|
#### host
|
||||||
|
|
||||||
|
{{% notice info %}}
|
||||||
|
If any `host` is not defined or left blank, the command will run on the local machine.
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
|
Host may or may not be defined in the `hosts` section.
|
||||||
|
|
||||||
|
{{% notice info %}}
|
||||||
|
If any `host` from the commands section does not match any object in the `hosts` section, the `Host` is assumed to be this value. This value will be used to search in the default SSH config files.
|
||||||
|
|
||||||
|
For example, say that I have a host defined in my SSH config with the `Host` defined as `web-prod`.
|
||||||
|
If I assign a value to host as `host: web-prod` and don't specify this value in the `hosts` object, web-prod will be used as the `Host` in searching the SSH config files.
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
|
### shell
|
||||||
|
|
||||||
|
If shell is defined and host is NOT defined, the command will run in the specified shell.
|
||||||
|
Make sure to escape any shell input.
|
||||||
|
|
||||||
|
### environment
|
||||||
|
|
||||||
|
The environment variables support expansion:
|
||||||
|
|
||||||
|
- using escaped values `$VAR` or `${VAR}`
|
||||||
|
|
||||||
|
For now the variables have to be defined in an `.env` file in the same directory as the config file.
|
||||||
|
|
||||||
|
If using it with host specified, the SSH server has to be configured to accept those env variables.
|
||||||
|
|
||||||
|
If the command is run locally, the OS's environment is added.
|
74
docs/content/config/notifications.md
Normal file
74
docs/content/config/notifications.md
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
title: "Notifications"
|
||||||
|
weight: 3
|
||||||
|
description: >
|
||||||
|
This page tells you how to get set up Backy notifications.
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
Notifications can be sent on command list completion and failure.
|
||||||
|
|
||||||
|
The supported platforms for notifications are email (SMTP) and [Matrix](https://matrix.org/).
|
||||||
|
|
||||||
|
Notifications are defined by type. The top-level object will be the id, and the `type` is required.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
notifications:
|
||||||
|
prod-email:
|
||||||
|
type: mail
|
||||||
|
host: yourhost.tld
|
||||||
|
port: 587
|
||||||
|
senderaddress: email@domain.tld
|
||||||
|
to:
|
||||||
|
- admin@domain.tld
|
||||||
|
username: smtp-username@domain.tld
|
||||||
|
password: your-password-here
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
type: matrix
|
||||||
|
home-server: your-home-server.tld
|
||||||
|
room-id: room-id
|
||||||
|
access-token: your-access-token
|
||||||
|
user-id: your-user-id
|
||||||
|
```
|
||||||
|
|
||||||
|
Types recognized are `type: mail` and `type: matrix`
|
||||||
|
|
||||||
|
The type's object and its keys are listed below.
|
||||||
|
|
||||||
|
### type: mail
|
||||||
|
|
||||||
|
| key | description | type
|
||||||
|
| --- | --- | ---
|
||||||
|
| `host` | Specifies the SMTP host to connect to | `string`
|
||||||
|
| `port` | Specifies the SMTP port | `uint16`
|
||||||
|
| `senderaddress` | Address from which to send mail | `string`
|
||||||
|
| `to` | Recipients to send emails to | `[]string`
|
||||||
|
| `username` | SMTP username | `string`
|
||||||
|
| `password` | SMTP password | `string`
|
||||||
|
|
||||||
|
### type: matrix
|
||||||
|
|
||||||
|
| key | description | type
|
||||||
|
| --- | --- | ---
|
||||||
|
| `home-server` | Specifies the Matrix server connect to | `string`
|
||||||
|
| `room-id` | Specifies the room ID of the room to send messages to | `string`
|
||||||
|
| `access-token` | Matrix access token | `string`
|
||||||
|
| `user-id` | Matrix user ID | `string`
|
||||||
|
|
||||||
|
To get your access token (assumes you are using [Element](https://element.io/)) :
|
||||||
|
|
||||||
|
1. Log in to the account you want to get the access token for. Click on the name in the top left corner, then "Settings".
|
||||||
|
2. Click the "Help & About" tab (left side of the dialog).
|
||||||
|
3. Scroll to the bottom and click on `<click to reveal>` part of Access Token.
|
||||||
|
4. Copy your access token to a safe place.
|
||||||
|
|
||||||
|
To get the room ID:
|
||||||
|
|
||||||
|
1. On Element or a similar client, navigate to the room.
|
||||||
|
2. Navigate to the settings from the top menu.
|
||||||
|
3. Click on Advanced, the room ID is there.
|
||||||
|
|
||||||
|
{{% notice info %}}
|
||||||
|
Make sure to quote the room ID, as [YAML spec defines tags using `!`](https://yaml.org/spec/1.2.2/#3212-tags).
|
||||||
|
{{% /notice %}}
|
26
docs/content/config/vault.md
Normal file
26
docs/content/config/vault.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
title: "Vault"
|
||||||
|
weight: 4
|
||||||
|
---
|
||||||
|
|
||||||
|
[Vault](https://www.vaultproject.io/) is a tool for storing secrets and other data securely.
|
||||||
|
|
||||||
|
Vault config can be used by prefixing `vault:` in front of a password or ENV var.
|
||||||
|
|
||||||
|
This is the object in the config file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
vault:
|
||||||
|
token: hvs.tXqcASvTP8wg92f7riyvGyuf
|
||||||
|
address: http://127.0.0.1:8200
|
||||||
|
enabled: false
|
||||||
|
keys:
|
||||||
|
- name: mongourl
|
||||||
|
mountpath: secret
|
||||||
|
path: mongo/url
|
||||||
|
type: # KVv1 or KVv2
|
||||||
|
- name:
|
||||||
|
path:
|
||||||
|
type:
|
||||||
|
mountpath:
|
||||||
|
```
|
10
docs/content/getting-started/_index.md
Normal file
10
docs/content/getting-started/_index.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
title: "Getting started"
|
||||||
|
weight: 2
|
||||||
|
description: >
|
||||||
|
This page tells you how to get started with Backy.
|
||||||
|
---
|
||||||
|
|
||||||
|
If you have not installed Backy, [see the install documentation](install).
|
||||||
|
|
||||||
|
If you need to configure it, [see the config page](config).
|
157
docs/content/getting-started/config.md
Normal file
157
docs/content/getting-started/config.md
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
---
|
||||||
|
title: "Config File Definitions"
|
||||||
|
description: >
|
||||||
|
This page tells you how to configure Backy.
|
||||||
|
---
|
||||||
|
|
||||||
|
### Commands
|
||||||
|
|
||||||
|
The commands section is for defining commands. These can be run with or without a shell and on a host or locally.
|
||||||
|
|
||||||
|
See the [commands documentation](/config/commands) for further information.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
commands:
|
||||||
|
stop-docker-container:
|
||||||
|
output: true # Optional and only when run in list and notifications are sent
|
||||||
|
cmd: docker
|
||||||
|
args:
|
||||||
|
- compose
|
||||||
|
- -f /some/path/to/docker-compose.yaml
|
||||||
|
- down
|
||||||
|
# if host is not defined, cmd will be run locally
|
||||||
|
host: some-host
|
||||||
|
backup-docker-container-script:
|
||||||
|
cmd: /path/to/script
|
||||||
|
# The host has to be defined in the config file
|
||||||
|
host: some-host
|
||||||
|
environment:
|
||||||
|
- FOO=BAR
|
||||||
|
- APP=$VAR # defined in .env file in config directory
|
||||||
|
shell-cmd:
|
||||||
|
cmd: rsync
|
||||||
|
shell: bash
|
||||||
|
args:
|
||||||
|
- -av
|
||||||
|
- some-host:/path/to/data
|
||||||
|
- ~/Docker/Backups/docker-data
|
||||||
|
script:
|
||||||
|
type: scriptFile # run a local script on a remote host
|
||||||
|
cmd: path/to/your/script.sh
|
||||||
|
host: some-host
|
||||||
|
hostname:
|
||||||
|
cmd: hostname
|
||||||
|
```
|
||||||
|
|
||||||
|
### Lists
|
||||||
|
|
||||||
|
To execute groups of commands in sequence, use a list configuration.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
cmd-configs:
|
||||||
|
cmds-to-run: # this can be any name you want
|
||||||
|
# all commands have to be defined in the commands section
|
||||||
|
order:
|
||||||
|
- stop-docker-container
|
||||||
|
- backup-docker-container-script
|
||||||
|
- shell-cmd
|
||||||
|
- hostname
|
||||||
|
getOutput: true # Optional and only for when notifications are sent
|
||||||
|
notifications:
|
||||||
|
- matrix
|
||||||
|
name: backup-some-server
|
||||||
|
hostname:
|
||||||
|
name: hostname
|
||||||
|
order:
|
||||||
|
- hostname
|
||||||
|
notifications:
|
||||||
|
- prod-email
|
||||||
|
```
|
||||||
|
|
||||||
|
### Hosts
|
||||||
|
|
||||||
|
The hosts object may or may not be defined.
|
||||||
|
|
||||||
|
{{% notice info %}}
|
||||||
|
If any `host` from a commands object does not match any `host` object, the needed values will be checked in the default SSH config files.
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
hosts:
|
||||||
|
# any needed ssh_config(5) keys/values not listed here will be looked up in the config file or the default config file
|
||||||
|
some-host:
|
||||||
|
hostname: some-hostname
|
||||||
|
config: ~/.ssh/config
|
||||||
|
user: user
|
||||||
|
privatekeypath: /path/to/private/key
|
||||||
|
port: 22
|
||||||
|
# can also be env:VAR or the password itself
|
||||||
|
password: file:/path/to/file
|
||||||
|
# can also be env:VAR or the password itself
|
||||||
|
privatekeypassword: file:/path/to/file
|
||||||
|
# only one is supported for now
|
||||||
|
proxyjump: some-proxy-host
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notifications
|
||||||
|
|
||||||
|
The notifications object can have two forms.
|
||||||
|
|
||||||
|
For more, [see the notification object documentation](/config/notifications). The top-level map key is id that has to be referenced by the `cmd-configs` key `notifications`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
notifications:
|
||||||
|
prod-email:
|
||||||
|
type: mail
|
||||||
|
host: yourhost.tld
|
||||||
|
port: 587
|
||||||
|
senderAddress: email@domain.tld
|
||||||
|
recipients:
|
||||||
|
- admin@domain.tld
|
||||||
|
username: smtp-username@domain.tld
|
||||||
|
password: your-password-here
|
||||||
|
matrix:
|
||||||
|
type: matrix
|
||||||
|
home-server: your-home-server.tld
|
||||||
|
room-id: room-id
|
||||||
|
access-token: your-access-token
|
||||||
|
user-id: your-user-id
|
||||||
|
```
|
||||||
|
|
||||||
|
### Logging
|
||||||
|
|
||||||
|
cmd-std-out controls whether commands output is echoed to StdOut.
|
||||||
|
|
||||||
|
If logfile is not defined, the log file will be written to the config directory in the file `backy.log`.
|
||||||
|
|
||||||
|
`console-disabled` controls whether the logging messages are echoed to StdOut. Default is false.
|
||||||
|
|
||||||
|
`verbose` basically does nothing as all necessary info is already output.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
logging:
|
||||||
|
verbose: false
|
||||||
|
file: path/to/log/file.log
|
||||||
|
console-disabled: false
|
||||||
|
cmd-std-out: false
|
||||||
|
```
|
||||||
|
|
||||||
|
### Vault
|
||||||
|
|
||||||
|
[Vault](https://www.vaultproject.io/) can be used to get some configuration values and ENV variables securely.
|
||||||
|
|
||||||
|
```
|
||||||
|
vault:
|
||||||
|
token: hvs.tXqcASvTP8wg92f7riyvGyuf
|
||||||
|
address: http://127.0.0.1:8200
|
||||||
|
enabled: false
|
||||||
|
keys:
|
||||||
|
- name: mongourl
|
||||||
|
mountpath: secret
|
||||||
|
path: mongo/url
|
||||||
|
type: # KVv1 or KVv2
|
||||||
|
- name:
|
||||||
|
path:
|
||||||
|
type:
|
||||||
|
mountpath:
|
||||||
|
```
|
21
docs/content/getting-started/install.md
Normal file
21
docs/content/getting-started/install.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
title: "Install Backy"
|
||||||
|
weight: 1
|
||||||
|
description: >
|
||||||
|
This page tells you how to install Backy.
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
Binaries are available from the [release page](https://git.andrewnw.xyz/CyberShell/backy/releases). Make sure to get the correct version for your system, which supports x86_64, ARM64, and i386.
|
||||||
|
|
||||||
|
### Source Install
|
||||||
|
|
||||||
|
You can install from source. You will need [Go installed](https://go.dev/doc/install).
|
||||||
|
|
||||||
|
Then run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go install git.andrewnw.xyz/CyberShell/backy@master
|
||||||
|
```
|
||||||
|
|
||||||
|
Once set, jump over to the [config docs](/getting-started/config) and start configuring your file.
|
10
docs/content/repositories/_index.md
Normal file
10
docs/content/repositories/_index.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
title: "Repositories"
|
||||||
|
weight: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
The repo mirrors are:
|
||||||
|
|
||||||
|
* [https://git.andrewnw.xyz/CyberShell/backy](https://git.andrewnw.xyz/CyberShell/backy)
|
||||||
|
* [https://git.vern.cc/cybershell/backy](https://git.vern.cc/cybershell/backy)
|
||||||
|
* [https://github.com/CybersShell/backy](https://github.com/CybersShell/backy)
|
67
docs/frontmatter.json
Normal file
67
docs/frontmatter.json
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://frontmatter.codes/frontmatter.schema.json",
|
||||||
|
"frontMatter.taxonomy.contentTypes": [
|
||||||
|
{
|
||||||
|
"name": "default",
|
||||||
|
"pageBundle": false,
|
||||||
|
"previewPath": null,
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"title": "Title",
|
||||||
|
"name": "title",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Description",
|
||||||
|
"name": "description",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Publishing date",
|
||||||
|
"name": "date",
|
||||||
|
"type": "datetime",
|
||||||
|
"default": "{{now}}",
|
||||||
|
"isPublishDate": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Content preview",
|
||||||
|
"name": "preview",
|
||||||
|
"type": "image"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Is in draft",
|
||||||
|
"name": "draft",
|
||||||
|
"type": "draft"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Tags",
|
||||||
|
"name": "tags",
|
||||||
|
"type": "tags"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Categories",
|
||||||
|
"name": "categories",
|
||||||
|
"type": "categories"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"frontMatter.framework.id": "hugo",
|
||||||
|
"frontMatter.content.publicFolder": "static",
|
||||||
|
"frontMatter.content.pageFolders": [
|
||||||
|
{
|
||||||
|
"title": "content",
|
||||||
|
"path": "[[workspace]]/content",
|
||||||
|
"originalPath": "[[workspace]]/content"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "config-main",
|
||||||
|
"path": "[[workspace]]/content/config",
|
||||||
|
"originalPath": "[[workspace]]/content/config"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "gs",
|
||||||
|
"path": "[[workspace]]/content/getting-started"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
5
docs/go.mod
Normal file
5
docs/go.mod
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
module git.andrewnw.xyz/CyberShell/backy-docs
|
||||||
|
|
||||||
|
go 1.19
|
||||||
|
|
||||||
|
require github.com/McShelby/hugo-theme-relearn v0.0.0-20230209073138-890d12ea922d // indirect
|
2
docs/go.sum
Normal file
2
docs/go.sum
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
github.com/McShelby/hugo-theme-relearn v0.0.0-20230209073138-890d12ea922d h1:weq1mrQ/qNAvGrNgvZVL1K8adbT3bswZf2ABLr/LCIA=
|
||||||
|
github.com/McShelby/hugo-theme-relearn v0.0.0-20230209073138-890d12ea922d/go.mod h1:mKQQdxZNIlLvAj8X3tMq+RzntIJSr9z7XdzuMomt0IM=
|
46
docs/layouts/partials/logo.html
Normal file
46
docs/layouts/partials/logo.html
Normal file
File diff suppressed because one or more lines are too long
66
docs/public/404.html
Normal file
66
docs/public/404.html
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="ltr">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
||||||
|
<meta name="generator" content="Hugo 0.110.0">
|
||||||
|
<meta name="generator" content="Relearn 5.11.2">
|
||||||
|
<meta name="description" content="">
|
||||||
|
<title>404 Page not found - A tool for commands</title>
|
||||||
|
<!-- https://github.com/filamentgroup/loadCSS/blob/master/README.md#how-to-use -->
|
||||||
|
<link href="/css/fontawesome-all.min.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/fontawesome-all.min.css?1676866111" rel="stylesheet"></noscript>
|
||||||
|
<link href="/css/auto-complete.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/auto-complete.css?1676866111" rel="stylesheet"></noscript>
|
||||||
|
<link href="/css/perfect-scrollbar.min.css?1676866111" rel="stylesheet">
|
||||||
|
<link href="/css/nucleus.css?1676866111" rel="stylesheet">
|
||||||
|
<link href="/css/fonts.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/fonts.css?1676866111" rel="stylesheet"></noscript>
|
||||||
|
<link href="/css/theme.css?1676866111" rel="stylesheet">
|
||||||
|
<link href="/css/theme-auto.css?1676866111" rel="stylesheet" id="variant-style">
|
||||||
|
<link href="/css/ie.css?1676866111" rel="stylesheet">
|
||||||
|
<link href="/css/variant.css?1676866111" rel="stylesheet">
|
||||||
|
<link href="/css/print.css?1676866111" rel="stylesheet" media="print">
|
||||||
|
<script src="/js/url.js?1676866111"></script>
|
||||||
|
<script src="/js/variant.js?1676866111"></script>
|
||||||
|
<script>
|
||||||
|
// hack to let hugo tell us how to get to the root when using relativeURLs, it needs to be called *url= for it to do its magic:
|
||||||
|
// https://github.com/gohugoio/hugo/blob/145b3fcce35fbac25c7033c91c1b7ae6d1179da8/transform/urlreplacers/absurlreplacer.go#L72
|
||||||
|
window.index_js_url="/index.search.js";
|
||||||
|
var root_url="/";
|
||||||
|
var baseUri=root_url.replace(/\/$/, '');
|
||||||
|
// translations
|
||||||
|
window.T_Copy_to_clipboard = 'Copy to clipboard';
|
||||||
|
window.T_Copied_to_clipboard = 'Copied to clipboard!';
|
||||||
|
window.T_Copy_link_to_clipboard = 'Copy link to clipboard';
|
||||||
|
window.T_Link_copied_to_clipboard = 'Copied link to clipboard!';
|
||||||
|
window.T_No_results_found = 'No results found for \u0022{0}\u0022';
|
||||||
|
window.T_N_results_found = '{1} results found for \u0022{0}\u0022';
|
||||||
|
// some further base stuff
|
||||||
|
var baseUriFull='http:\/\/example.org/';
|
||||||
|
window.variants && variants.init( [ 'auto' ] );
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
p, li, ul {
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body class="mobile-support" data-url="/404.html">
|
||||||
|
<div id="body" class="default-animation" style="margin-left:0px;">
|
||||||
|
<div id="sidebar-overlay"></div>
|
||||||
|
<main id="body-inner" class="chapter" tabindex="-1">
|
||||||
|
<div class="flex-block-wrapper">
|
||||||
|
<article class="default">
|
||||||
|
<h1 id="error">Error</h1>
|
||||||
|
<p></p>
|
||||||
|
<p>Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.</p>
|
||||||
|
<p></p>
|
||||||
|
<p><a href="/index.html">Go to homepage</a></p>
|
||||||
|
<p><img src="/images/gopher-404.jpg" style="width:50%" alt="Page not found!"></p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
238
docs/public/categories/index.html
Normal file
238
docs/public/categories/index.html
Normal file
File diff suppressed because one or more lines are too long
10
docs/public/categories/index.xml
Normal file
10
docs/public/categories/index.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Categories on A tool for commands</title>
|
||||||
|
<link>http://example.org/categories/index.html</link>
|
||||||
|
<description>Recent content in Categories on A tool for commands</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language><atom:link href="http://example.org/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
303
docs/public/cli/index.html
Normal file
303
docs/public/cli/index.html
Normal file
File diff suppressed because one or more lines are too long
10
docs/public/cli/index.xml
Normal file
10
docs/public/cli/index.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>CLI on A tool for commands</title>
|
||||||
|
<link>http://example.org/cli/index.html</link>
|
||||||
|
<description>Recent content in CLI on A tool for commands</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language><atom:link href="http://example.org/cli/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
327
docs/public/config/command-lists/index.html
Normal file
327
docs/public/config/command-lists/index.html
Normal file
File diff suppressed because one or more lines are too long
353
docs/public/config/commands/index.html
Normal file
353
docs/public/config/commands/index.html
Normal file
File diff suppressed because one or more lines are too long
251
docs/public/config/index.html
Normal file
251
docs/public/config/index.html
Normal file
File diff suppressed because one or more lines are too long
39
docs/public/config/index.xml
Normal file
39
docs/public/config/index.xml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Configuring Backy on A tool for commands</title>
|
||||||
|
<link>http://example.org/config/index.html</link>
|
||||||
|
<description>Recent content in Configuring Backy on A tool for commands</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language><atom:link href="http://example.org/config/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Command Lists</title>
|
||||||
|
<link>http://example.org/config/command-lists/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/config/command-lists/index.html</guid>
|
||||||
|
<description>Command lists are for executing commands in sequence and getting notifications from them.
|
||||||
|
The top-level object key can be anything you want.
|
||||||
|
key description type required order Defines the sequence of commands to execute []string yes notifications The notification IDs to use on success and failure []string no name Optional name of the list string no cron Time at which to schedule the list. string no Order The order is an array of commands to execute in order.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Commands</title>
|
||||||
|
<link>http://example.org/config/commands/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/config/commands/index.html</guid>
|
||||||
|
<description>The yaml top-level map can be any string.
|
||||||
|
The top-level name must be unique.
|
||||||
|
commands: stop-docker-container: cmd: docker Args: - compose - -f /some/path/to/docker-compose.yaml - down # if host is not defined, command will be run locally host: some-host backup-docker-container-script: cmd: /path/to/script # The host has to be defined in either the config file or the SSH Config files host: some-host environment: - FOO=BAR - APP=$VAR Values available for this section:</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Notifications</title>
|
||||||
|
<link>http://example.org/config/notifications/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/config/notifications/index.html</guid>
|
||||||
|
<description>Notifications can be sent on command list completion and failure.
|
||||||
|
The supported platforms for notifications are email (SMTP) and Matrix.
|
||||||
|
Notifications are defined by type. The top-level object will be the id, and the type is required.
|
||||||
|
Info Type in a cmd-configs object must match one of these.
|
||||||
|
notifications: prod-email: type: mail host: yourhost.tld port: 587 senderaddress: email@domain.tld to: - admin@domain.tld username: smtp-username@domain.tld password: your-password-here matrix: type: matrix home-server: your-home-server.tld room-id: room-id access-token: your-access-token user-id: your-user-id Types recognized are type: mail and type: matrix</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
376
docs/public/config/notifications/index.html
Normal file
376
docs/public/config/notifications/index.html
Normal file
File diff suppressed because one or more lines are too long
58
docs/public/css/auto-complete.css
Normal file
58
docs/public/css/auto-complete.css
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
.autocomplete-suggestions {
|
||||||
|
text-align: left;
|
||||||
|
cursor: default;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-top: 0;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: -1px 1px 3px rgba(0,0,0,.1);
|
||||||
|
|
||||||
|
/* core styles should not be changed */
|
||||||
|
position: absolute;
|
||||||
|
display: none;
|
||||||
|
z-index: 9999;
|
||||||
|
max-height: 150px;
|
||||||
|
max-height: calc( 100vh - 150px );
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.autocomplete-suggestion {
|
||||||
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 7px;
|
||||||
|
line-height: 23px;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autocomplete-suggestion b {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #1f8dd6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autocomplete-suggestion.selected {
|
||||||
|
background: #282828;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autocomplete-suggestion:hover,
|
||||||
|
.autocomplete-suggestion:focus,
|
||||||
|
.autocomplete-suggestion:active,
|
||||||
|
.autocomplete-suggestion:hover > .context,
|
||||||
|
.autocomplete-suggestion:focus > .context,
|
||||||
|
.autocomplete-suggestion:active > .context,
|
||||||
|
#searchresults .autocomplete-suggestion:hover > .context,
|
||||||
|
#searchresults .autocomplete-suggestion:focus > .context,
|
||||||
|
#searchresults .autocomplete-suggestion:active > .context {
|
||||||
|
background: #383838;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.autocomplete-suggestion > .context {
|
||||||
|
font-size: 12px;
|
||||||
|
margin-inline-start: 1em;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
83
docs/public/css/chroma-learn.css
Normal file
83
docs/public/css/chroma-learn.css
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/* based on base16-snazzy
|
||||||
|
/* Background */ .chroma { color: #e2e4e5; background-color: #282a36 }
|
||||||
|
/* Other */ .chroma .x { }
|
||||||
|
/* Error */ .chroma .err { color: #ff5c57 }
|
||||||
|
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||||
|
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||||
|
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||||
|
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
|
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
|
/* Keyword */ .chroma .k { color: #ff6ac1 }
|
||||||
|
/* KeywordConstant */ .chroma .kc { color: #ff6ac1 }
|
||||||
|
/* KeywordDeclaration */ .chroma .kd { color: #ff5c57 }
|
||||||
|
/* KeywordNamespace */ .chroma .kn { color: #ff6ac1 }
|
||||||
|
/* KeywordPseudo */ .chroma .kp { color: #ff6ac1 }
|
||||||
|
/* KeywordReserved */ .chroma .kr { color: #ff6ac1 }
|
||||||
|
/* KeywordType */ .chroma .kt { color: #9aedfe }
|
||||||
|
/* Name */ .chroma .n { }
|
||||||
|
/* NameAttribute */ .chroma .na { color: #57c7ff }
|
||||||
|
/* NameBuiltin */ .chroma .nb { color: #ff5c57 }
|
||||||
|
/* NameBuiltinPseudo */ .chroma .bp { }
|
||||||
|
/* NameClass */ .chroma .nc { color: #f3f99d }
|
||||||
|
/* NameConstant */ .chroma .no { color: #ff9f43 }
|
||||||
|
/* NameDecorator */ .chroma .nd { color: #ff9f43 }
|
||||||
|
/* NameEntity */ .chroma .ni { }
|
||||||
|
/* NameException */ .chroma .ne { }
|
||||||
|
/* NameFunction */ .chroma .nf { color: #57c7ff }
|
||||||
|
/* NameFunctionMagic */ .chroma .fm { }
|
||||||
|
/* NameLabel */ .chroma .nl { color: #ff5c57 }
|
||||||
|
/* NameNamespace */ .chroma .nn { }
|
||||||
|
/* NameOther */ .chroma .nx { }
|
||||||
|
/* NameProperty */ .chroma .py { }
|
||||||
|
/* NameTag */ .chroma .nt { color: #ff6ac1 }
|
||||||
|
/* NameVariable */ .chroma .nv { color: #ff5c57 }
|
||||||
|
/* NameVariableClass */ .chroma .vc { color: #ff5c57 }
|
||||||
|
/* NameVariableGlobal */ .chroma .vg { color: #ff5c57 }
|
||||||
|
/* NameVariableInstance */ .chroma .vi { color: #ff5c57 }
|
||||||
|
/* NameVariableMagic */ .chroma .vm { }
|
||||||
|
/* Literal */ .chroma .l { }
|
||||||
|
/* LiteralDate */ .chroma .ld { }
|
||||||
|
/* LiteralString */ .chroma .s { color: #5af78e }
|
||||||
|
/* LiteralStringAffix */ .chroma .sa { color: #5af78e }
|
||||||
|
/* LiteralStringBacktick */ .chroma .sb { color: #5af78e }
|
||||||
|
/* LiteralStringChar */ .chroma .sc { color: #5af78e }
|
||||||
|
/* LiteralStringDelimiter */ .chroma .dl { color: #5af78e }
|
||||||
|
/* LiteralStringDoc */ .chroma .sd { color: #5af78e }
|
||||||
|
/* LiteralStringDouble */ .chroma .s2 { color: #5af78e }
|
||||||
|
/* LiteralStringEscape */ .chroma .se { color: #5af78e }
|
||||||
|
/* LiteralStringHeredoc */ .chroma .sh { color: #5af78e }
|
||||||
|
/* LiteralStringInterpol */ .chroma .si { color: #5af78e }
|
||||||
|
/* LiteralStringOther */ .chroma .sx { color: #5af78e }
|
||||||
|
/* LiteralStringRegex */ .chroma .sr { color: #5af78e }
|
||||||
|
/* LiteralStringSingle */ .chroma .s1 { color: #5af78e }
|
||||||
|
/* LiteralStringSymbol */ .chroma .ss { color: #5af78e }
|
||||||
|
/* LiteralNumber */ .chroma .m { color: #ff9f43 }
|
||||||
|
/* LiteralNumberBin */ .chroma .mb { color: #ff9f43 }
|
||||||
|
/* LiteralNumberFloat */ .chroma .mf { color: #ff9f43 }
|
||||||
|
/* LiteralNumberHex */ .chroma .mh { color: #ff9f43 }
|
||||||
|
/* LiteralNumberInteger */ .chroma .mi { color: #ff9f43 }
|
||||||
|
/* LiteralNumberIntegerLong */ .chroma .il { color: #ff9f43 }
|
||||||
|
/* LiteralNumberOct */ .chroma .mo { color: #ff9f43 }
|
||||||
|
/* Operator */ .chroma .o { color: #ff6ac1 }
|
||||||
|
/* OperatorWord */ .chroma .ow { color: #ff6ac1 }
|
||||||
|
/* Punctuation */ .chroma .p { }
|
||||||
|
/* Comment */ .chroma .c { color: #78787e }
|
||||||
|
/* CommentHashbang */ .chroma .ch { color: #78787e }
|
||||||
|
/* CommentMultiline */ .chroma .cm { color: #78787e }
|
||||||
|
/* CommentSingle */ .chroma .c1 { color: #78787e }
|
||||||
|
/* CommentSpecial */ .chroma .cs { color: #78787e }
|
||||||
|
/* CommentPreproc */ .chroma .cp { color: #78787e }
|
||||||
|
/* CommentPreprocFile */ .chroma .cpf { color: #78787e }
|
||||||
|
/* Generic */ .chroma .g { }
|
||||||
|
/* GenericDeleted */ .chroma .gd { color: #ff5c57 }
|
||||||
|
/* GenericEmph */ .chroma .ge { text-decoration: underline }
|
||||||
|
/* GenericError */ .chroma .gr { color: #ff5c57 }
|
||||||
|
/* GenericHeading */ .chroma .gh { font-weight: bold }
|
||||||
|
/* GenericInserted */ .chroma .gi { font-weight: bold }
|
||||||
|
/* GenericOutput */ .chroma .go { color: #43454f }
|
||||||
|
/* GenericPrompt */ .chroma .gp { }
|
||||||
|
/* GenericStrong */ .chroma .gs { font-style: italic }
|
||||||
|
/* GenericSubheading */ .chroma .gu { font-weight: bold }
|
||||||
|
/* GenericTraceback */ .chroma .gt { }
|
||||||
|
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
|
||||||
|
/* TextWhitespace */ .chroma .w { }
|
89
docs/public/css/chroma-neon.css
Normal file
89
docs/public/css/chroma-neon.css
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
/* this variant does not work well if we use fallback styles for IE11 so better
|
||||||
|
ignore this variant in IE completely */
|
||||||
|
@supports not (-ms-high-contrast:none) {
|
||||||
|
|
||||||
|
/* based on rrt
|
||||||
|
/* Background */ .chroma { color: #f8f8f2; background-color: #000000 }
|
||||||
|
/* Other */ .chroma .x { }
|
||||||
|
/* Error */ .chroma .err { }
|
||||||
|
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||||
|
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||||
|
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||||
|
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7c7c79 }
|
||||||
|
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7c7c79 }
|
||||||
|
/* Keyword */ .chroma .k { color: #ff0000 }
|
||||||
|
/* KeywordConstant */ .chroma .kc { color: #ff0000 }
|
||||||
|
/* KeywordDeclaration */ .chroma .kd { color: #ff0000 }
|
||||||
|
/* KeywordNamespace */ .chroma .kn { color: #ff0000 }
|
||||||
|
/* KeywordPseudo */ .chroma .kp { color: #ff0000 }
|
||||||
|
/* KeywordReserved */ .chroma .kr { color: #ff0000 }
|
||||||
|
/* KeywordType */ .chroma .kt { color: #ee82ee }
|
||||||
|
/* Name */ .chroma .n { }
|
||||||
|
/* NameAttribute */ .chroma .na { }
|
||||||
|
/* NameBuiltin */ .chroma .nb { }
|
||||||
|
/* NameBuiltinPseudo */ .chroma .bp { }
|
||||||
|
/* NameClass */ .chroma .nc { }
|
||||||
|
/* NameConstant */ .chroma .no { color: #7fffd4 }
|
||||||
|
/* NameDecorator */ .chroma .nd { }
|
||||||
|
/* NameEntity */ .chroma .ni { }
|
||||||
|
/* NameException */ .chroma .ne { }
|
||||||
|
/* NameFunction */ .chroma .nf { color: #ffff00 }
|
||||||
|
/* NameFunctionMagic */ .chroma .fm { }
|
||||||
|
/* NameLabel */ .chroma .nl { }
|
||||||
|
/* NameNamespace */ .chroma .nn { }
|
||||||
|
/* NameOther */ .chroma .nx { }
|
||||||
|
/* NameProperty */ .chroma .py { }
|
||||||
|
/* NameTag */ .chroma .nt { }
|
||||||
|
/* NameVariable */ .chroma .nv { color: #eedd82 }
|
||||||
|
/* NameVariableClass */ .chroma .vc { }
|
||||||
|
/* NameVariableGlobal */ .chroma .vg { }
|
||||||
|
/* NameVariableInstance */ .chroma .vi { }
|
||||||
|
/* NameVariableMagic */ .chroma .vm { }
|
||||||
|
/* Literal */ .chroma .l { }
|
||||||
|
/* LiteralDate */ .chroma .ld { }
|
||||||
|
/* LiteralString */ .chroma .s { color: #87ceeb }
|
||||||
|
/* LiteralStringAffix */ .chroma .sa { color: #87ceeb }
|
||||||
|
/* LiteralStringBacktick */ .chroma .sb { color: #87ceeb }
|
||||||
|
/* LiteralStringChar */ .chroma .sc { color: #87ceeb }
|
||||||
|
/* LiteralStringDelimiter */ .chroma .dl { color: #87ceeb }
|
||||||
|
/* LiteralStringDoc */ .chroma .sd { color: #87ceeb }
|
||||||
|
/* LiteralStringDouble */ .chroma .s2 { color: #87ceeb }
|
||||||
|
/* LiteralStringEscape */ .chroma .se { color: #87ceeb }
|
||||||
|
/* LiteralStringHeredoc */ .chroma .sh { color: #87ceeb }
|
||||||
|
/* LiteralStringInterpol */ .chroma .si { color: #87ceeb }
|
||||||
|
/* LiteralStringOther */ .chroma .sx { color: #87ceeb }
|
||||||
|
/* LiteralStringRegex */ .chroma .sr { color: #87ceeb }
|
||||||
|
/* LiteralStringSingle */ .chroma .s1 { color: #87ceeb }
|
||||||
|
/* LiteralStringSymbol */ .chroma .ss { color: #ff6600 }
|
||||||
|
/* LiteralNumber */ .chroma .m { color: #ff6600 }
|
||||||
|
/* LiteralNumberBin */ .chroma .mb { color: #ff6600 }
|
||||||
|
/* LiteralNumberFloat */ .chroma .mf { color: #ff6600 }
|
||||||
|
/* LiteralNumberHex */ .chroma .mh { color: #ff6600 }
|
||||||
|
/* LiteralNumberInteger */ .chroma .mi { color: #ff6600 }
|
||||||
|
/* LiteralNumberIntegerLong */ .chroma .il { color: #ff6600 }
|
||||||
|
/* LiteralNumberOct */ .chroma .mo { color: #ff6600 }
|
||||||
|
/* Operator */ .chroma .o { }
|
||||||
|
/* OperatorWord */ .chroma .ow { }
|
||||||
|
/* Punctuation */ .chroma .p { }
|
||||||
|
/* Comment */ .chroma .c { color: #00ff00 }
|
||||||
|
/* CommentHashbang */ .chroma .ch { color: #00ff00 }
|
||||||
|
/* CommentMultiline */ .chroma .cm { color: #00ff00 }
|
||||||
|
/* CommentSingle */ .chroma .c1 { color: #00ff00 }
|
||||||
|
/* CommentSpecial */ .chroma .cs { color: #00ff00 }
|
||||||
|
/* CommentPreproc */ .chroma .cp { color: #e5e5e5 }
|
||||||
|
/* CommentPreprocFile */ .chroma .cpf { color: #e5e5e5 }
|
||||||
|
/* Generic */ .chroma .g { }
|
||||||
|
/* GenericDeleted */ .chroma .gd { }
|
||||||
|
/* GenericEmph */ .chroma .ge { }
|
||||||
|
/* GenericError */ .chroma .gr { }
|
||||||
|
/* GenericHeading */ .chroma .gh { }
|
||||||
|
/* GenericInserted */ .chroma .gi { }
|
||||||
|
/* GenericOutput */ .chroma .go { }
|
||||||
|
/* GenericPrompt */ .chroma .gp { }
|
||||||
|
/* GenericStrong */ .chroma .gs { }
|
||||||
|
/* GenericSubheading */ .chroma .gu { }
|
||||||
|
/* GenericTraceback */ .chroma .gt { }
|
||||||
|
/* GenericUnderline */ .chroma .gl { }
|
||||||
|
/* TextWhitespace */ .chroma .w { }
|
||||||
|
|
||||||
|
}
|
83
docs/public/css/chroma-relearn-dark.css
Normal file
83
docs/public/css/chroma-relearn-dark.css
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/* based on monokai
|
||||||
|
/* Background */ .chroma { color: #f8f8f8; background-color: #2b2b2b }
|
||||||
|
/* Other */ .chroma .x { }
|
||||||
|
/* Error */ .chroma .err { color: #960050; }
|
||||||
|
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||||
|
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||||
|
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||||
|
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
|
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
|
/* Keyword */ .chroma .k { color: #66d9ef }
|
||||||
|
/* KeywordConstant */ .chroma .kc { color: #66d9ef }
|
||||||
|
/* KeywordDeclaration */ .chroma .kd { color: #66d9ef }
|
||||||
|
/* KeywordNamespace */ .chroma .kn { color: #f92672 }
|
||||||
|
/* KeywordPseudo */ .chroma .kp { color: #66d9ef }
|
||||||
|
/* KeywordReserved */ .chroma .kr { color: #66d9ef }
|
||||||
|
/* KeywordType */ .chroma .kt { color: #66d9ef }
|
||||||
|
/* Name */ .chroma .n { }
|
||||||
|
/* NameAttribute */ .chroma .na { color: #a6e22e }
|
||||||
|
/* NameBuiltin */ .chroma .nb { }
|
||||||
|
/* NameBuiltinPseudo */ .chroma .bp { }
|
||||||
|
/* NameClass */ .chroma .nc { color: #a6e22e }
|
||||||
|
/* NameConstant */ .chroma .no { color: #66d9ef }
|
||||||
|
/* NameDecorator */ .chroma .nd { color: #a6e22e }
|
||||||
|
/* NameEntity */ .chroma .ni { }
|
||||||
|
/* NameException */ .chroma .ne { color: #a6e22e }
|
||||||
|
/* NameFunction */ .chroma .nf { color: #a6e22e }
|
||||||
|
/* NameFunctionMagic */ .chroma .fm { }
|
||||||
|
/* NameLabel */ .chroma .nl { }
|
||||||
|
/* NameNamespace */ .chroma .nn { }
|
||||||
|
/* NameOther */ .chroma .nx { color: #a6e22e }
|
||||||
|
/* NameProperty */ .chroma .py { }
|
||||||
|
/* NameTag */ .chroma .nt { color: #f92672 }
|
||||||
|
/* NameVariable */ .chroma .nv { }
|
||||||
|
/* NameVariableClass */ .chroma .vc { }
|
||||||
|
/* NameVariableGlobal */ .chroma .vg { }
|
||||||
|
/* NameVariableInstance */ .chroma .vi { }
|
||||||
|
/* NameVariableMagic */ .chroma .vm { }
|
||||||
|
/* Literal */ .chroma .l { color: #ae81ff }
|
||||||
|
/* LiteralDate */ .chroma .ld { color: #e6db74 }
|
||||||
|
/* LiteralString */ .chroma .s { color: #e6db74 }
|
||||||
|
/* LiteralStringAffix */ .chroma .sa { color: #e6db74 }
|
||||||
|
/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 }
|
||||||
|
/* LiteralStringChar */ .chroma .sc { color: #e6db74 }
|
||||||
|
/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 }
|
||||||
|
/* LiteralStringDoc */ .chroma .sd { color: #e6db74 }
|
||||||
|
/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 }
|
||||||
|
/* LiteralStringEscape */ .chroma .se { color: #ae81ff }
|
||||||
|
/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 }
|
||||||
|
/* LiteralStringInterpol */ .chroma .si { color: #e6db74 }
|
||||||
|
/* LiteralStringOther */ .chroma .sx { color: #e6db74 }
|
||||||
|
/* LiteralStringRegex */ .chroma .sr { color: #e6db74 }
|
||||||
|
/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 }
|
||||||
|
/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 }
|
||||||
|
/* LiteralNumber */ .chroma .m { color: #ae81ff }
|
||||||
|
/* LiteralNumberBin */ .chroma .mb { color: #ae81ff }
|
||||||
|
/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff }
|
||||||
|
/* LiteralNumberHex */ .chroma .mh { color: #ae81ff }
|
||||||
|
/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff }
|
||||||
|
/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff }
|
||||||
|
/* LiteralNumberOct */ .chroma .mo { color: #ae81ff }
|
||||||
|
/* Operator */ .chroma .o { color: #f92672 }
|
||||||
|
/* OperatorWord */ .chroma .ow { color: #f92672 }
|
||||||
|
/* Punctuation */ .chroma .p { }
|
||||||
|
/* Comment */ .chroma .c { color: #7c7c7c }
|
||||||
|
/* CommentHashbang */ .chroma .ch { color: #7c7c7c }
|
||||||
|
/* CommentMultiline */ .chroma .cm { color: #7c7c7c }
|
||||||
|
/* CommentSingle */ .chroma .c1 { color: #7c7c7c }
|
||||||
|
/* CommentSpecial */ .chroma .cs { color: #7c7c7c }
|
||||||
|
/* CommentPreproc */ .chroma .cp { color: #7c7c7c }
|
||||||
|
/* CommentPreprocFile */ .chroma .cpf { color: #7c7c7c }
|
||||||
|
/* Generic */ .chroma .g { }
|
||||||
|
/* GenericDeleted */ .chroma .gd { color: #f92672 }
|
||||||
|
/* GenericEmph */ .chroma .ge { font-style: italic }
|
||||||
|
/* GenericError */ .chroma .gr { }
|
||||||
|
/* GenericHeading */ .chroma .gh { }
|
||||||
|
/* GenericInserted */ .chroma .gi { color: #a6e22e }
|
||||||
|
/* GenericOutput */ .chroma .go { }
|
||||||
|
/* GenericPrompt */ .chroma .gp { }
|
||||||
|
/* GenericStrong */ .chroma .gs { font-weight: bold }
|
||||||
|
/* GenericSubheading */ .chroma .gu { color: #7c7c7c }
|
||||||
|
/* GenericTraceback */ .chroma .gt { }
|
||||||
|
/* GenericUnderline */ .chroma .gl { }
|
||||||
|
/* TextWhitespace */ .chroma .w { }
|
83
docs/public/css/chroma-relearn-light.css
Normal file
83
docs/public/css/chroma-relearn-light.css
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/* based on tango
|
||||||
|
/* Background */ .chroma { background-color: #f8f8f8 }
|
||||||
|
/* Other */ .chroma .x { color: #000000 }
|
||||||
|
/* Error */ .chroma .err { color: #a40000 }
|
||||||
|
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||||
|
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||||
|
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||||
|
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
|
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
|
/* Keyword */ .chroma .k { color: #204a87; font-weight: bold }
|
||||||
|
/* KeywordConstant */ .chroma .kc { color: #204a87; font-weight: bold }
|
||||||
|
/* KeywordDeclaration */ .chroma .kd { color: #204a87; font-weight: bold }
|
||||||
|
/* KeywordNamespace */ .chroma .kn { color: #204a87; font-weight: bold }
|
||||||
|
/* KeywordPseudo */ .chroma .kp { color: #204a87; font-weight: bold }
|
||||||
|
/* KeywordReserved */ .chroma .kr { color: #204a87; font-weight: bold }
|
||||||
|
/* KeywordType */ .chroma .kt { color: #204a87; font-weight: bold }
|
||||||
|
/* Name */ .chroma .n { color: #000000 }
|
||||||
|
/* NameAttribute */ .chroma .na { color: #c4a000 }
|
||||||
|
/* NameBuiltin */ .chroma .nb { color: #204a87 }
|
||||||
|
/* NameBuiltinPseudo */ .chroma .bp { color: #3465a4 }
|
||||||
|
/* NameClass */ .chroma .nc { color: #000000 }
|
||||||
|
/* NameConstant */ .chroma .no { color: #000000 }
|
||||||
|
/* NameDecorator */ .chroma .nd { color: #5c35cc; font-weight: bold }
|
||||||
|
/* NameEntity */ .chroma .ni { color: #ce5c00 }
|
||||||
|
/* NameException */ .chroma .ne { color: #cc0000; font-weight: bold }
|
||||||
|
/* NameFunction */ .chroma .nf { color: #000000 }
|
||||||
|
/* NameFunctionMagic */ .chroma .fm { color: #000000 }
|
||||||
|
/* NameLabel */ .chroma .nl { color: #f57900 }
|
||||||
|
/* NameNamespace */ .chroma .nn { color: #000000 }
|
||||||
|
/* NameOther */ .chroma .nx { color: #000000 }
|
||||||
|
/* NameProperty */ .chroma .py { color: #000000 }
|
||||||
|
/* NameTag */ .chroma .nt { color: #204a87; font-weight: bold }
|
||||||
|
/* NameVariable */ .chroma .nv { color: #000000 }
|
||||||
|
/* NameVariableClass */ .chroma .vc { color: #000000 }
|
||||||
|
/* NameVariableGlobal */ .chroma .vg { color: #000000 }
|
||||||
|
/* NameVariableInstance */ .chroma .vi { color: #000000 }
|
||||||
|
/* NameVariableMagic */ .chroma .vm { color: #000000 }
|
||||||
|
/* Literal */ .chroma .l { color: #000000 }
|
||||||
|
/* LiteralDate */ .chroma .ld { color: #000000 }
|
||||||
|
/* LiteralString */ .chroma .s { color: #4e9a06 }
|
||||||
|
/* LiteralStringAffix */ .chroma .sa { color: #4e9a06 }
|
||||||
|
/* LiteralStringBacktick */ .chroma .sb { color: #4e9a06 }
|
||||||
|
/* LiteralStringChar */ .chroma .sc { color: #4e9a06 }
|
||||||
|
/* LiteralStringDelimiter */ .chroma .dl { color: #4e9a06 }
|
||||||
|
/* LiteralStringDoc */ .chroma .sd { color: #8f5902; font-style: italic }
|
||||||
|
/* LiteralStringDouble */ .chroma .s2 { color: #4e9a06 }
|
||||||
|
/* LiteralStringEscape */ .chroma .se { color: #4e9a06 }
|
||||||
|
/* LiteralStringHeredoc */ .chroma .sh { color: #4e9a06 }
|
||||||
|
/* LiteralStringInterpol */ .chroma .si { color: #4e9a06 }
|
||||||
|
/* LiteralStringOther */ .chroma .sx { color: #4e9a06 }
|
||||||
|
/* LiteralStringRegex */ .chroma .sr { color: #4e9a06 }
|
||||||
|
/* LiteralStringSingle */ .chroma .s1 { color: #4e9a06 }
|
||||||
|
/* LiteralStringSymbol */ .chroma .ss { color: #4e9a06 }
|
||||||
|
/* LiteralNumber */ .chroma .m { color: #0000cf; font-weight: bold }
|
||||||
|
/* LiteralNumberBin */ .chroma .mb { color: #0000cf; font-weight: bold }
|
||||||
|
/* LiteralNumberFloat */ .chroma .mf { color: #0000cf; font-weight: bold }
|
||||||
|
/* LiteralNumberHex */ .chroma .mh { color: #0000cf; font-weight: bold }
|
||||||
|
/* LiteralNumberInteger */ .chroma .mi { color: #0000cf; font-weight: bold }
|
||||||
|
/* LiteralNumberIntegerLong */ .chroma .il { color: #0000cf; font-weight: bold }
|
||||||
|
/* LiteralNumberOct */ .chroma .mo { color: #0000cf; font-weight: bold }
|
||||||
|
/* Operator */ .chroma .o { color: #ce5c00; font-weight: bold }
|
||||||
|
/* OperatorWord */ .chroma .ow { color: #204a87; font-weight: bold }
|
||||||
|
/* Punctuation */ .chroma .p { color: #000000; font-weight: bold }
|
||||||
|
/* Comment */ .chroma .c { color: #8f5902; font-style: italic }
|
||||||
|
/* CommentHashbang */ .chroma .ch { color: #8f5902; font-style: italic }
|
||||||
|
/* CommentMultiline */ .chroma .cm { color: #8f5902; font-style: italic }
|
||||||
|
/* CommentSingle */ .chroma .c1 { color: #8f5902; font-style: italic }
|
||||||
|
/* CommentSpecial */ .chroma .cs { color: #8f5902; font-style: italic }
|
||||||
|
/* CommentPreproc */ .chroma .cp { color: #8f5902; font-style: italic }
|
||||||
|
/* CommentPreprocFile */ .chroma .cpf { color: #8f5902; font-style: italic }
|
||||||
|
/* Generic */ .chroma .g { color: #000000 }
|
||||||
|
/* GenericDeleted */ .chroma .gd { color: #a40000 }
|
||||||
|
/* GenericEmph */ .chroma .ge { color: #000000; font-style: italic }
|
||||||
|
/* GenericError */ .chroma .gr { color: #ef2929 }
|
||||||
|
/* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
|
||||||
|
/* GenericInserted */ .chroma .gi { color: #00a000 }
|
||||||
|
/* GenericOutput */ .chroma .go { color: #000000; font-style: italic }
|
||||||
|
/* GenericPrompt */ .chroma .gp { color: #8f5902 }
|
||||||
|
/* GenericStrong */ .chroma .gs { color: #000000; font-weight: bold }
|
||||||
|
/* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
|
||||||
|
/* GenericTraceback */ .chroma .gt { color: #a40000; font-weight: bold }
|
||||||
|
/* GenericUnderline */ .chroma .gl { color: #000000; text-decoration: underline }
|
||||||
|
/* TextWhitespace */ .chroma .w { color: #f8f8f8; text-decoration: underline }
|
5
docs/public/css/fontawesome-all.min.css
vendored
Normal file
5
docs/public/css/fontawesome-all.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
39
docs/public/css/fonts.css
Normal file
39
docs/public/css/fonts.css
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Work Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 200;
|
||||||
|
src: url("../fonts/WorkSans-ExtraLight.woff") format("woff2"), url("../fonts/WorkSans-ExtraLight.woff") format("woff");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Work Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
src: url("../fonts/WorkSans-Light.woff2") format("woff2"), url("../fonts/WorkSans-Light.woff") format("woff");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Work Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url("../fonts/WorkSans-Regular.woff2") format("woff2"), url("../fonts/WorkSans-Regular.woff") format("woff");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Work Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 500;
|
||||||
|
src: url("../fonts/WorkSans-Medium.woff2") format("woff2"), url("../fonts/WorkSans-Medium.woff") format("woff");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Work Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
src: url("../fonts/WorkSans-Bold.woff2") format("woff2"), url("../fonts/WorkSans-Bold.woff") format("woff");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
233
docs/public/css/format-print.css
Normal file
233
docs/public/css/format-print.css
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
@import "theme-relearn-light.css";
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#body {
|
||||||
|
margin-left: 0 !important;
|
||||||
|
min-width: 100% !important;
|
||||||
|
max-width: 100% !important;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
#body #navigation {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
html{
|
||||||
|
font-size: 8.763pt;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
code.copy-to-clipboard-code {
|
||||||
|
border-bottom-right-radius: 2px;
|
||||||
|
border-top-right-radius: 2px;
|
||||||
|
border-right-width: 1px;
|
||||||
|
}
|
||||||
|
span > code.copy-to-clipboard-code {
|
||||||
|
border-end-end-radius: 2px;
|
||||||
|
border-start-end-radius: 2px;
|
||||||
|
border-inline-end-width: 1px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
#body #topbar{
|
||||||
|
background-color: #fff; /* avoid background bleeding*/
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
border-radius: 0;
|
||||||
|
padding-left: 0; /* for print, we want to align with the footer to ease the layout */
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
.navigation,
|
||||||
|
#top-print-link,
|
||||||
|
#top-github-link {
|
||||||
|
/* we don't need this while printing */
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#body #breadcrumbs {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#body #breadcrumbs .links {
|
||||||
|
overflow-x: hidden;
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
.copy-to-clipboard-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body h1, #body h2, #body h3, #body .article-subheading, #body h4, #body h5, #body h6 {
|
||||||
|
/* better contrast for colored elements */
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
#body th, #body td,
|
||||||
|
#body code, #body strong, #body b,
|
||||||
|
#body li, #body dd, #body dt,
|
||||||
|
#body p,
|
||||||
|
#body a, #body button, #body .badge .badge-content {
|
||||||
|
/* better contrast for colored elements */
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
#body .anchor{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#body pre,
|
||||||
|
#body code {
|
||||||
|
background-color: white;
|
||||||
|
border-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr{
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
body,
|
||||||
|
#body,
|
||||||
|
#body-inner {
|
||||||
|
overflow: visible !important; /* turn off limitations for perfect scrollbar */
|
||||||
|
}
|
||||||
|
#body #body-inner {
|
||||||
|
/* reset paddings for chapters in screen */
|
||||||
|
padding: 0 3.25rem 4rem 3.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body #body-inner h1 {
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
padding-bottom: .75rem;
|
||||||
|
}
|
||||||
|
#body-inner .chapter h3:first-of-type {
|
||||||
|
margin-top: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Children shortcode */
|
||||||
|
.children p,
|
||||||
|
.children-li p,
|
||||||
|
.children-h2 p,
|
||||||
|
.children-h3 p {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footline {
|
||||||
|
/* in print mode show footer line to signal reader the end of document */
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
|
color: #777;
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
padding-top: .75rem;
|
||||||
|
}
|
||||||
|
#body #body-inner .footline a,
|
||||||
|
#body #body-inner .btn a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
#body #body-inner a {
|
||||||
|
/* in print we want to distinguish links in our content from
|
||||||
|
normal text even if printed black/white;
|
||||||
|
don't use a.highlight in selector to also get links that are
|
||||||
|
put as HTML into markdown */
|
||||||
|
text-decoration-line: underline;
|
||||||
|
}
|
||||||
|
#toc-menu {
|
||||||
|
/* we don't need this while printing */
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#body #sidebar-toggle-span {
|
||||||
|
/* we don't need this while printing */
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#breadcrumbs .links {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
#topbar{
|
||||||
|
/* the header is sticky which is not suitable for print; */
|
||||||
|
position: inherit; /* IE11 doesn't know "initial" here */
|
||||||
|
}
|
||||||
|
#topbar > div {
|
||||||
|
background-color: #ffffff; /* IE11 doesn't know "initial" here */
|
||||||
|
}
|
||||||
|
#body .tab-nav-button:not(.active) {
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
#head-tags {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
mark {
|
||||||
|
background: inherit;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
.mermaid > svg:hover {
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
div.box {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
div.box > .box-content {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
rapi-doc{
|
||||||
|
/* adjust rapi-doc internals to fill out available space with render-style=read */
|
||||||
|
margin-left: calc( -80px );
|
||||||
|
width: calc( 100% + 80px + 80px );
|
||||||
|
}
|
||||||
|
@media (max-width: 1023px) {
|
||||||
|
rapi-doc {
|
||||||
|
margin-left: calc( -8px );
|
||||||
|
width: calc( 100% + 8px + 8px );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rapi-doc::part(section-tag) {
|
||||||
|
/* adjust rapi-doc internals to fill out available space with render-style=read */
|
||||||
|
margin-left: 80px;
|
||||||
|
margin-right: 80px;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
@media (max-width: 1023px) {
|
||||||
|
rapi-doc::part(section-tag) {
|
||||||
|
margin-left: 8px;
|
||||||
|
margin-right: 8px;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rapi-doc::part(section-main-content) {
|
||||||
|
/* override variables for adapting rapidoc design to print theme */
|
||||||
|
--fg: black;
|
||||||
|
--fg2: black;
|
||||||
|
--fg3: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
rapi-doc::part(section-overview-title) {
|
||||||
|
/* set print color for titles */
|
||||||
|
color: black !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
rapi-doc::part(operation-divider) {
|
||||||
|
/* remove whitespace */
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
rapi-doc::part(section-navbar) {
|
||||||
|
/* removes the nav bar for render-style=read */
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn,
|
||||||
|
#body .tab-nav-button {
|
||||||
|
color: black !important;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button.active {
|
||||||
|
background-color: white !important;
|
||||||
|
border-bottom-color: white !important;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button:not(.active) {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
break-before: page;
|
||||||
|
}
|
||||||
|
#body-inner > * > article:first-of-type {
|
||||||
|
break-before: avoid;
|
||||||
|
}
|
659
docs/public/css/ie.css
Normal file
659
docs/public/css/ie.css
Normal file
@ -0,0 +1,659 @@
|
|||||||
|
@media all and (-ms-high-contrast:none) {
|
||||||
|
/* turn off LTR support as it is dependend on CSS properties that aren't supported by IE11 */
|
||||||
|
article,
|
||||||
|
.toc-wrapper,
|
||||||
|
.tags {
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
h2, h3, h4, h5, h6 {
|
||||||
|
padding-right: 2rem;
|
||||||
|
}
|
||||||
|
blockquote {
|
||||||
|
border-left: 10px solid rgba( 134, 134, 134, .4 );
|
||||||
|
padding-left: 0.85rem;
|
||||||
|
}
|
||||||
|
blockquote cite {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.disableInlineCopyToClipboard span > code.copy-to-clipboard-code {
|
||||||
|
border-bottom-right-radius: 2px;
|
||||||
|
border-top-right-radius: 2px;
|
||||||
|
border-right-width: 1px;
|
||||||
|
}
|
||||||
|
.anchor {
|
||||||
|
margin-left: .66em;
|
||||||
|
}
|
||||||
|
div.attachments .box-content {
|
||||||
|
padding-left: 1.75rem;
|
||||||
|
}
|
||||||
|
.expand > label {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.expand > input + label > .fa-chevron-left {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
.expand > input + label > .fa-chevron-right {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
.expand > input:checked + label > .fa-chevron-right {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button.direction-rtl {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button:first-child {
|
||||||
|
margin-left: 9px;
|
||||||
|
}
|
||||||
|
.searchform input {
|
||||||
|
margin-right: .5rem;
|
||||||
|
}
|
||||||
|
.autocomplete-suggestion > .context {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge > .badge-title {
|
||||||
|
border-right: 0;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.badge-with-title > .badge-content {
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
article ul li:has(input[type="checkbox"]) {
|
||||||
|
margin-left: -1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set default colors as in variant.css for IE11 */
|
||||||
|
body {
|
||||||
|
background-color: #ffffff; /* var(--MAIN-BG-color) */
|
||||||
|
color: #101010; /* var(--MAIN-TEXT-color) */
|
||||||
|
font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; /* var(--MAIN-font) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.footerVisitedLinks > *,
|
||||||
|
a,
|
||||||
|
.anchor,
|
||||||
|
#toc-menu,
|
||||||
|
#body a.highlight:after,
|
||||||
|
#searchresults .autocomplete-suggestion {
|
||||||
|
color: #486ac9; /* var(--MAIN-LINK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover,
|
||||||
|
.anchor:hover,
|
||||||
|
#toc-menu:hover,
|
||||||
|
#body a.highlight:hover:after {
|
||||||
|
color: #202891; /* var(--MAIN-LINK-HOVER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
background: #282828; /* var(--MENU-SECTIONS-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#header-wrapper {
|
||||||
|
/* initially use section background to avoid flickering on load when a
|
||||||
|
non default variant is active */
|
||||||
|
background-color: rgba( 0, 0, 0, 0 ); /* var(--MENU-SECTIONS-BG-color) */
|
||||||
|
border-bottom-color: rgba( 0, 0, 0, 0 ); /* var(--MENU-SECTIONS-BG-color) */
|
||||||
|
color: #e0e0e0; /* var(--MENU-SEARCH-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox {
|
||||||
|
border-color: #e0e0e0; /* var(--MENU-SEARCH-BORDER-color) */
|
||||||
|
background-color: #323232; /* var(--MENU-SEARCH-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox input:-ms-input-placeholder {
|
||||||
|
color: #e0e0e0; /* var(--INTERNAL-MENU-SEARCH-color) */
|
||||||
|
opacity: .45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar .searchbox > :first-child,
|
||||||
|
#sidebar .searchbox button,
|
||||||
|
.searchbox span {
|
||||||
|
color: #e0e0e0; /* var(--INTERNAL-MENU-SEARCH-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchform input:-ms-input-placeholder {
|
||||||
|
color: rgba( 134, 134, 134 );
|
||||||
|
opacity: .666;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar .collapsible-menu .toggle,
|
||||||
|
#sidebar .select-container,
|
||||||
|
#sidebar a,
|
||||||
|
#sidebar button {
|
||||||
|
color: #bababa; /* var(--MENU-SECTIONS-LINK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar select:hover,
|
||||||
|
#sidebar .collapsible-menu .toggle:hover,
|
||||||
|
#sidebar .select-container:hover,
|
||||||
|
#sidebar a:hover,
|
||||||
|
#sidebar button:hover {
|
||||||
|
color: #ffffff; /* var(--MENU-SECTIONS-LINK-HOVER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul.topics > li.parent,
|
||||||
|
#sidebar ul.topics > li.active {
|
||||||
|
background-color: rgba( 0, 0, 0, .166 ); /* var(--MENU-SECTIONS-ACTIVE-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul.collapsible-menu li.active > .toggle,
|
||||||
|
#sidebar ul.topics li.active > a {
|
||||||
|
color: #444444; /* var(--MENU-SECTION-ACTIVE-CATEGORY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul.topics li.active > a {
|
||||||
|
background-color: #ffffff; /* var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul li.visited > a .read-icon {
|
||||||
|
color: #486ac9; /* var(--MENU-VISITED-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar .nav-title {
|
||||||
|
color: #ffffff; /* var(--MENU-SECTIONS-LINK-HOVER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar hr {
|
||||||
|
border-color: #606060; /* var(--MENU-SECTION-HR-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
color: #bababa; /* var(--MENU-SECTIONS-LINK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
background-color: #ffff00;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: #101010; /* var(--MAIN-TEXT-color) */
|
||||||
|
font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; /* var(--MAIN-font) */
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h3, .article-subheading, h4, h5, h6 {
|
||||||
|
color: #4a4a4a; /* var(--MAIN-TITLES-TEXT-color) */
|
||||||
|
font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; /* var(--MAIN-TITLES-TEXT-font) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand > label {
|
||||||
|
color: #486ac9; /* var(--MAIN-LINK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand > label:hover {
|
||||||
|
color: #202891; /* var(--MAIN-LINK-HOVER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand > label:after {
|
||||||
|
color: #202891; /* var(--MAIN-LINK-HOVER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box {
|
||||||
|
background-color: rgba( 128, 128, 128, 1 ); /* var(--INTERNAL-BOX-NEUTRAL-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box > .box-label {
|
||||||
|
color: rgba( 255, 255, 255, 1 ); /* var(--BOX-CAPTION-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box > .box-content {
|
||||||
|
background-color: rgba( 255, 255, 255, .833 ); /* var(--BOX-BG-color) */
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--BOX-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.info {
|
||||||
|
background-color: rgba( 48, 117, 229, 1 ); /* var(--INTERNAL-BOX-INFO-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.info > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-INFO-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.warning {
|
||||||
|
background-color: rgba( 224, 62, 62, 1 ); /* var(--INTERNAL-BOX-WARNING-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.warning > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-WARNING-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.note {
|
||||||
|
background-color: rgba( 237, 153, 9, 1 ); /* var(--INTERNAL-BOX-NOTE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.note > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-NOTE-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.tip {
|
||||||
|
background-color: rgba( 42, 178, 24, 1 ); /* var(--INTERNAL-BOX-TIP-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.tip > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-TIP-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.primary {
|
||||||
|
background-color: #7dc903; /* var(--INTERNAL-PRIMARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.primary > .box-content {
|
||||||
|
color: #101010; /* var(--INTERNAL-MAIN-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.secondary {
|
||||||
|
background-color: #486ac9; /* var(--INTERNAL-SECONDARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.secondary > .box-content {
|
||||||
|
color: #101010; /* var(--INTERNAL-MAIN-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.accent {
|
||||||
|
background-color: #ff88ff; /* var(--INTERNAL-ACCENT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.accent > .box-content {
|
||||||
|
color: #101010; /* var(--INTERNAL-MAIN-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.blue {
|
||||||
|
background-color: rgba( 48, 117, 229, 1 ); /* var(--INTERNAL-BOX-BLUE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.blue > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-BLUE-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.green {
|
||||||
|
background-color: rgba( 42, 178, 24, 1 ); /* var(--INTERNAL-BOX-GREEN-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.green > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-GREEN-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.grey {
|
||||||
|
background-color: rgba( 128, 128, 128, 1 ); /* var(--INTERNAL-BOX-GREY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.grey > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-GREY-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.orange {
|
||||||
|
background-color: rgba( 237, 153, 9, 1 ); /* var(--INTERNAL-BOX-ORANGE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.orange > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-ORANGE-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.red {
|
||||||
|
background-color: rgba( 224, 62, 62, 1 ); /* var(--INTERNAL-BOX-RED-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.red > .box-content {
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--INTERNAL-BOX-RED-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.transparent {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.transparent > .box-label {
|
||||||
|
color: #4a4a4a; /* var(--MAIN-TITLES-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box.transparent > .box-content {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #101010; /* var(--MAIN-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
pre,
|
||||||
|
samp {
|
||||||
|
font-family: "Consolas", menlo, monospace; /* var(--CODE-font) */
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
background-color: #fffae9; /* var(--CODE-INLINE-BG-color) */
|
||||||
|
border-color: #f8e8c8; /* var(--CODE-INLINE-BORDER-color) */
|
||||||
|
color: #5e5e5e; /* var(--CODE-INLINE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background-color: #f8f8f8; /* var(--CODE-BLOCK-BG-color) */
|
||||||
|
border-color: #d8d8d8; /* var(--CODE-BLOCK-BORDER-color) */
|
||||||
|
color: #000000; /* var(--CODE-BLOCK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
background-color: #ffffff; /* var(--INTERNAL-MAIN-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox img{
|
||||||
|
background-color: #ffffff /* var(--INTERNAL-MAIN-BG-color); */
|
||||||
|
}
|
||||||
|
|
||||||
|
#topbar {
|
||||||
|
background-color: #ffffff; /* var(--MAIN-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#body a[aria-disabled="true"],
|
||||||
|
#searchresults .autocomplete-suggestion > .context {
|
||||||
|
color: #101010; /* var(--MAIN-TEXT-color) - inherit is not processed correctly in Chrome */
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-to-clipboard-button {
|
||||||
|
background-color: #fffae9; /* var(--CODE-INLINE-BG-color) */
|
||||||
|
border-color: #f8e8c8; /* var(--CODE-INLINE-BORDER-color) */
|
||||||
|
color: #5e5e5e; /* var(--CODE-INLINE-color) */
|
||||||
|
font-family: "Consolas", menlo, monospace; /* var(--CODE-font) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-to-clipboard-button:hover {
|
||||||
|
background-color: #5e5e5e; /* var(--CODE-INLINE-color) */
|
||||||
|
color: #fffae9; /* var(--CODE-INLINE-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .copy-to-clipboard-button {
|
||||||
|
border-color: #d8d8d8; /* var(--CODE-BLOCK-BORDER-color) */
|
||||||
|
color: #486ac9; /* var(--MAIN-LINK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .copy-to-clipboard-button:hover {
|
||||||
|
background-color: #486ac9; /* var(--MAIN-LINK-color) */
|
||||||
|
border-color: #486ac9; /* var(--MAIN-LINK-color) */
|
||||||
|
color: #f8f8f8; /* var(--CODE-BLOCK-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#homelinks {
|
||||||
|
background-color: #7dc903; /* var(--MENU-HEADER-BORDER-color) */
|
||||||
|
border-color: #7dc903; /* var(--MENU-HEADER-BORDER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#homelinks a {
|
||||||
|
color: #404040 /* var(--MENU-HOME-LINK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#homelinks a:hover {
|
||||||
|
color: #808080 /* var(--MENU-HOME-LINK-HOVER-color) */;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body a.highlight:after {
|
||||||
|
background-color: #486ac9; /* var(--MAIN-LINK-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#body a.highlight:hover:after {
|
||||||
|
background-color: #202891; /* var(--MAIN-LINK-HOVER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress {
|
||||||
|
background-color: #ffffff; /* var(--MAIN-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: rgba( 128, 128, 128, 1 ); /* var(--BOX-NEUTRAL-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn > * {
|
||||||
|
border-color: rgba( 128, 128, 128, 1 ); /* var(--BOX-NEUTRAL-color) */
|
||||||
|
color: rgba( 255, 255, 255, 1 ); /* var(--BOX-CAPTION-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn > *:hover,
|
||||||
|
.btn > *:focus,
|
||||||
|
.btn > *:active {
|
||||||
|
background-color: rgba( 255, 255, 255, .833 ); /* var(--BOX-BG-color) */
|
||||||
|
color: rgba( 16, 16, 16, 1 ); /* var(--BOX-NEUTRAL-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.info {
|
||||||
|
background-color: rgba( 48, 117, 229, 1 ); /* var(--BOX-INFO-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.info > * {
|
||||||
|
border-color: rgba( 48, 117, 229, 1 ); /* var(--BOX-INFO-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.note {
|
||||||
|
background-color: rgba( 237, 153, 9, 1 ); /* var(--BOX-NOTE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.note > * {
|
||||||
|
border-color: rgba( 237, 153, 9, 1 ); /* var(--BOX-NOTE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.tip {
|
||||||
|
background-color: rgba( 42, 178, 24, 1 ); /* var(--BOX-TIP-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.tip > * {
|
||||||
|
border-color: rgba( 42, 178, 24, 1 ); /* var(--BOX-TIP-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.warning {
|
||||||
|
background-color: rgba( 224, 62, 62, 1 ); /* var(--BOX-WARNING-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.warning > * {
|
||||||
|
border-color: rgba( 224, 62, 62, 1 ); /* var(--BOX-WARNING-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.primary {
|
||||||
|
background-color: #7dc903; /* var(--PRIMARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.primary > * {
|
||||||
|
border-color: #7dc903; /* var(--PRIMARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.secondary {
|
||||||
|
background-color: #486ac9; /* var(--SECONDARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.secondary > * {
|
||||||
|
border-color: #486ac9; /* var(--SECONDARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.accent {
|
||||||
|
background-color: #ff88ff; /* var(--ACCENT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.accent > * {
|
||||||
|
border-color: #ff88ff; /* var(--ACCENT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.blue {
|
||||||
|
background-color: rgba( 48, 117, 229, 1 ); /* var(--BOX-BLUE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.blue > * {
|
||||||
|
border-color: rgba( 48, 117, 229, 1 ); /* var(--BOX-BLUE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.green {
|
||||||
|
background-color: rgba( 42, 178, 24, 1 ); /* var(--BOX-GREEN-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.green > * {
|
||||||
|
border-color: rgba( 42, 178, 24, 1 ); /* var(--BOX-GREEN-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.grey {
|
||||||
|
background-color: rgba( 128, 128, 128, 1 ); /* var(--BOX-GREY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.grey > * {
|
||||||
|
border-color: rgba( 128, 128, 128, 1 ); /* var(--BOX-GREY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.orange {
|
||||||
|
background-color: rgba( 237, 153, 9, 1 ); /* var(--BOX-ORANGE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.orange > * {
|
||||||
|
border-color: rgba( 237, 153, 9, 1 ); /* var(--BOX-ORANGE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.red {
|
||||||
|
background-color: rgba( 224, 62, 62, 1 ); /* var(--BOX-RED-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.red > * {
|
||||||
|
border-color: rgba( 224, 62, 62, 1 ); /* var(--BOX-RED-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.transparent {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #101010; /* var(--MAIN-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.transparent:hover,
|
||||||
|
.btn.cstyle.transparent:focus,
|
||||||
|
.btn.cstyle.transparent:active {
|
||||||
|
background-color: rgba( 128, 128, 128, 1 ); /* var(--BOX-NEUTRAL-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.transparent > * {
|
||||||
|
color: #4a4a4a; /* var(--MAIN-TITLES-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link {
|
||||||
|
background-color: #7dc903; /* var(--TAG-BG-color) */
|
||||||
|
color: #ffffff; /* var(--MAIN-BG-color) */
|
||||||
|
margin-right: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link:before {
|
||||||
|
border-right-color: #7dc903; /* var(--TAG-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link:after {
|
||||||
|
background: #ffffff; /* var(--MAIN-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tab-nav-button.active {
|
||||||
|
background-color: #ffffff !important; /* var(--MAIN-BG-color) */
|
||||||
|
border-bottom-color: #ffffff !important; /* var(--MAIN-BG-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge > * {
|
||||||
|
border-color: rgba( 16, 16, 16, 1 ); /* var(--BOX-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge > .badge-content {
|
||||||
|
background-color: rgba( 128, 128, 128, 1 ); /* var(--INTERNAL-BOX-NEUTRAL-color) */
|
||||||
|
color: rgba( 255, 255, 255, 1 ); /* var(--BOX-CAPTION-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.info > .badge-content {
|
||||||
|
background-color: rgba( 48, 117, 229, 1 ); /* var(--INTERNAL-BOX-INFO-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.warning > .badge-content {
|
||||||
|
background-color: rgba( 224, 62, 62, 1 ); /* var(--INTERNAL-BOX-WARNING-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.note > .badge-content {
|
||||||
|
background-color: rgba( 237, 153, 9, 1 ); /* var(--INTERNAL-BOX-NOTE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.tip > .badge-content {
|
||||||
|
background-color: rgba( 42, 178, 24, 1 ); /* var(--INTERNAL-BOX-TIP-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.primary > .badge-content {
|
||||||
|
background-color: #7dc903; /* var(--INTERNAL-PRIMARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.secondary > .badge-content {
|
||||||
|
background-color: #486ac9; /* var(--INTERNAL-SECONDARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.accent > .badge-content {
|
||||||
|
background-color: #ff88ff; /* var(--INTERNAL-ACCENT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.blue > .badge-content {
|
||||||
|
background-color: rgba( 48, 117, 229, 1 ); /* var(--INTERNAL-BOX-BLUE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.green > .badge-content {
|
||||||
|
background-color: rgba( 42, 178, 24, 1 ); /* var(--INTERNAL-BOX-GREEN-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.grey > .badge-content {
|
||||||
|
background-color: rgba( 128, 128, 128, 1 ); /* var(--INTERNAL-BOX-GREY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.orange > .badge-content {
|
||||||
|
background-color: rgba( 237, 153, 9, 1 ); /* var(--INTERNAL-BOX-ORANGE-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.red > .badge-content {
|
||||||
|
background-color: rgba( 224, 62, 62, 1 ); /* var(--INTERNAL-BOX-RED-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.transparent > .badge-content {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #4a4a4a; /* var(--MAIN-TITLES-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
article ul li input[type="checkbox"] {
|
||||||
|
background-color: #ffffff; /* var(--INTERNAL-MAIN-BG-color); */
|
||||||
|
color: #101010; /* var(--INTERNAL-MAIN-TEXT-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
article ul li input[type="checkbox"]::before {
|
||||||
|
box-shadow: inset 1em 1em #7dc903; /* var(--INTERNAL-PRIMARY-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* set further styles to fix broken stuff in IE11 */
|
||||||
|
|
||||||
|
/* turn off animiation in IE because this causes the menu
|
||||||
|
to move in from the left on every page load */
|
||||||
|
.default-animation{
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* our silly dinosaur browser wants to have the real colors */
|
||||||
|
#header-wrapper {
|
||||||
|
background-color: #7dc903; /* var(--MENU-HEADER-BG-color) */
|
||||||
|
border-bottom-color: #7dc903; /* var(--MENU-HEADER-BORDER-color) */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* clears the 'X' from Internet Explorer's search input */
|
||||||
|
input[type=search]::-ms-clear { display: none; width : 0; height: 0; }
|
||||||
|
input[type=search]::-ms-reveal { display: none; width : 0; height: 0; }
|
||||||
|
|
||||||
|
/* turn off variant selector as it uses modern stuff; don't change
|
||||||
|
order with block below */
|
||||||
|
.showVariantSwitch{
|
||||||
|
display: getamodernbrowser;
|
||||||
|
}
|
||||||
|
/* dumb IE11 doesn't understand initial, so we force a fallback here */
|
||||||
|
.showLangSwitch,
|
||||||
|
.showVisitedLinks,
|
||||||
|
.showFooter {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select-style select::-ms-expand {
|
||||||
|
/* hide the triangle */
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
260
docs/public/css/nucleus.css
Normal file
260
docs/public/css/nucleus.css
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
*, *::before, *::after {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box; }
|
||||||
|
|
||||||
|
@-webkit-viewport {
|
||||||
|
width: device-width; }
|
||||||
|
@-moz-viewport {
|
||||||
|
width: device-width; }
|
||||||
|
@-ms-viewport {
|
||||||
|
width: device-width; }
|
||||||
|
@-o-viewport {
|
||||||
|
width: device-width; }
|
||||||
|
@viewport {
|
||||||
|
width: device-width; }
|
||||||
|
html {
|
||||||
|
font-size: 16px;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
text-size-adjust: 100%; }
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0; }
|
||||||
|
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
details,
|
||||||
|
figcaption,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
main,
|
||||||
|
nav,
|
||||||
|
section,
|
||||||
|
summary {
|
||||||
|
display: block; }
|
||||||
|
|
||||||
|
audio,
|
||||||
|
canvas,
|
||||||
|
progress,
|
||||||
|
video {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: baseline; }
|
||||||
|
|
||||||
|
audio:not([controls]) {
|
||||||
|
display: none;
|
||||||
|
height: 0; }
|
||||||
|
|
||||||
|
[hidden],
|
||||||
|
template {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
a {
|
||||||
|
background: transparent;
|
||||||
|
text-decoration: none; }
|
||||||
|
|
||||||
|
a:active,
|
||||||
|
a:hover {
|
||||||
|
outline: 0; }
|
||||||
|
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: 1px dotted; }
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
dfn {
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline; }
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em; }
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em; }
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: 0;
|
||||||
|
max-width: 100%; }
|
||||||
|
|
||||||
|
svg:not(:root) {
|
||||||
|
overflow: hidden; }
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 1em 40px; }
|
||||||
|
|
||||||
|
hr {
|
||||||
|
height: 0; }
|
||||||
|
|
||||||
|
pre {
|
||||||
|
overflow: auto; }
|
||||||
|
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
optgroup,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
color: inherit;
|
||||||
|
font: inherit;
|
||||||
|
margin: 0; }
|
||||||
|
|
||||||
|
button {
|
||||||
|
overflow: visible; }
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none; }
|
||||||
|
|
||||||
|
button,
|
||||||
|
html input[type="button"],
|
||||||
|
input[type="reset"],
|
||||||
|
input[type="submit"] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
cursor: pointer; }
|
||||||
|
|
||||||
|
button[disabled],
|
||||||
|
html input[disabled] {
|
||||||
|
cursor: default; }
|
||||||
|
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
input::-moz-focus-inner {
|
||||||
|
border: 0;
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
input {
|
||||||
|
line-height: normal; }
|
||||||
|
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"] {
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
input[type="number"]::-webkit-inner-spin-button,
|
||||||
|
input[type="number"]::-webkit-outer-spin-button {
|
||||||
|
height: auto; }
|
||||||
|
|
||||||
|
input[type="search"] {
|
||||||
|
-webkit-appearance: textfield; }
|
||||||
|
|
||||||
|
input[type="search"]::-webkit-search-cancel-button,
|
||||||
|
input[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none; }
|
||||||
|
|
||||||
|
legend {
|
||||||
|
border: 0;
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
overflow: auto; }
|
||||||
|
|
||||||
|
optgroup {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
table-layout: fixed;
|
||||||
|
width: 100%; }
|
||||||
|
|
||||||
|
tr, td, th {
|
||||||
|
vertical-align: middle; }
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
padding: 0.425rem 0; }
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: start; }
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 1rem 0; }
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-bottom: 1rem; }
|
||||||
|
ul ul, ul ol, ol ul, ol ol {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0; }
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
padding-inline-start: 0.85rem; }
|
||||||
|
|
||||||
|
cite {
|
||||||
|
display: block;
|
||||||
|
font-size: 0.925rem; }
|
||||||
|
cite:before {
|
||||||
|
content: "\2014 \0020"; }
|
||||||
|
|
||||||
|
pre {
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
padding: 0.938rem; }
|
||||||
|
|
||||||
|
code {
|
||||||
|
vertical-align: bottom; }
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 0.925rem; }
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border-left: none;
|
||||||
|
border-right: none;
|
||||||
|
border-top: none;
|
||||||
|
margin: 1.5rem 0; }
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
border: 0;
|
||||||
|
padding: 0.938rem;
|
||||||
|
margin: 0 0 1rem 0; }
|
||||||
|
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
select {
|
||||||
|
display: block; }
|
||||||
|
|
||||||
|
label {
|
||||||
|
margin-bottom: 0.425rem; }
|
||||||
|
label.required:after {
|
||||||
|
content: "*"; }
|
||||||
|
label abbr {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] {
|
||||||
|
-webkit-transition: border-color;
|
||||||
|
-moz-transition: border-color;
|
||||||
|
transition: border-color;
|
||||||
|
border-radius: 0.1875rem;
|
||||||
|
margin-bottom: 0.85rem;
|
||||||
|
padding: 0.425rem 0.425rem;
|
||||||
|
width: 100%; }
|
||||||
|
textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus {
|
||||||
|
outline: none; }
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical; }
|
||||||
|
|
||||||
|
input[type="checkbox"], input[type="radio"] {
|
||||||
|
display: inline;
|
||||||
|
margin-right: 0.425rem; }
|
||||||
|
|
||||||
|
input[type="file"] {
|
||||||
|
width: 100%; }
|
||||||
|
|
||||||
|
select {
|
||||||
|
width: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
margin-bottom: 1rem; }
|
||||||
|
|
||||||
|
button,
|
||||||
|
input[type="submit"] {
|
||||||
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
border: inherit; }
|
1
docs/public/css/perfect-scrollbar.min.css
vendored
Normal file
1
docs/public/css/perfect-scrollbar.min.css
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.ps{overflow:hidden!important;overflow-anchor:none;-ms-overflow-style:none;touch-action:auto;-ms-touch-action:auto}.ps__rail-x{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;height:15px;bottom:0;position:absolute}.ps__rail-y{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;width:15px;right:0;position:absolute}.ps--active-x>.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:#eee;opacity:.9}.ps__thumb-x{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px;position:absolute}.ps__thumb-y{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px;position:absolute}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:11px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ps{overflow:auto!important}}
|
1
docs/public/css/print.css
Normal file
1
docs/public/css/print.css
Normal file
@ -0,0 +1 @@
|
|||||||
|
@import "format-print.css";
|
62
docs/public/css/tabs.css
Normal file
62
docs/public/css/tabs.css
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
#body .tab-panel{
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button{
|
||||||
|
background-color: rgba( 134, 134, 134, .166 );
|
||||||
|
border-color: rgba( 134, 134, 134, .333 );
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
bottom: -1px;
|
||||||
|
-webkit-print-color-adjust: exact;
|
||||||
|
color-adjust: exact;
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
font-size: .9rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.42857143;
|
||||||
|
margin-inline-start: 4px;
|
||||||
|
padding: 6px 12px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button.direction-rtl{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tab-nav-button:first-child{
|
||||||
|
margin-inline-start: 9px;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button:not(.active){
|
||||||
|
border-bottom-color: rgba( 134, 134, 134, .1 );
|
||||||
|
margin-top: 8px;
|
||||||
|
padding-bottom: 2px !important;
|
||||||
|
padding-top: 2px !important;
|
||||||
|
}
|
||||||
|
#body .tab-nav-button:not(.active) span{
|
||||||
|
opacity: .8;
|
||||||
|
}
|
||||||
|
#body .tab-content{
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: rgba( 134, 134, 134, .333 );
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
clear: both;
|
||||||
|
-webkit-print-color-adjust: exact;
|
||||||
|
color-adjust: exact;
|
||||||
|
display: block;
|
||||||
|
padding: 8px;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
#body .tab-content-text{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tab-content-text.active{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tab-content-text pre{
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
46
docs/public/css/tags.css
Normal file
46
docs/public/css/tags.css
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/* Tags */
|
||||||
|
|
||||||
|
#head-tags{
|
||||||
|
margin-left:1rem;
|
||||||
|
margin-top:1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link {
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 0.8em;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 2em;
|
||||||
|
margin: 0 0 8px -1px;
|
||||||
|
margin-inline-end: 16px;
|
||||||
|
padding: 0 10px 0 12px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link:before {
|
||||||
|
border-color: transparent;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1em 1em 1em 0;
|
||||||
|
content: "";
|
||||||
|
left: -1em;
|
||||||
|
height: 0;
|
||||||
|
position: absolute;
|
||||||
|
top:0;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link:after {
|
||||||
|
border-radius: 100%;
|
||||||
|
content: "";
|
||||||
|
left: 1px;
|
||||||
|
height: 5px;
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
width: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link:hover:after {
|
||||||
|
width: 5px;
|
||||||
|
}
|
2
docs/public/css/theme-auto.css
Normal file
2
docs/public/css/theme-auto.css
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
@import "theme-relearn-light.css" screen;
|
||||||
|
@import "theme-relearn-dark.css" screen and (prefers-color-scheme: dark);
|
49
docs/public/css/theme-blue.css
Normal file
49
docs/public/css/theme-blue.css
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* here in this showcase we use our own modified chroma syntax highlightning style;
|
||||||
|
if you want to use a predefined style instead:
|
||||||
|
- remove `markup.highlight.noClasses` from your config.toml
|
||||||
|
- set `markup.highlight.style` to a predefined style name in your config.toml
|
||||||
|
- remove the following `@import` of the self-defined chroma stylesheet */
|
||||||
|
@import "chroma-learn.css";
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--MAIN-TEXT-color: #323232; /* Color of text by default */
|
||||||
|
--MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */
|
||||||
|
--MAIN-TITLES-H1-color: #222222; /* text color of h1 titles */
|
||||||
|
--MAIN-LINK-color: #1c90f3; /* Color of links */
|
||||||
|
--MAIN-LINK-HOVER-color: #167ad0; /* Color of hovered links */
|
||||||
|
--MAIN-BG-color: #ffffff; /* color of text by default */
|
||||||
|
|
||||||
|
/* adjusted to base16-snazzy chroma style */
|
||||||
|
--CODE-BLOCK-color: #e2e4e5; /* fallback color for code text */
|
||||||
|
--CODE-BLOCK-BG-color: #282a36; /* fallback color for code background */
|
||||||
|
--CODE-BLOCK-BORDER-color: #282a36; /* color of block code border */
|
||||||
|
|
||||||
|
--CODE-INLINE-color: #5e5e5e; /* color for inline code text */
|
||||||
|
--CODE-INLINE-BG-color: #fffae9; /* color for inline code background */
|
||||||
|
--CODE-INLINE-BORDER-color: #f8e8c8; /* color of inline code border */
|
||||||
|
|
||||||
|
--MENU-HOME-LINK-color: #2d363f; /* Color of the home button text */
|
||||||
|
--MENU-HOME-LINK-HOVER-color: #000000; /* Color of the hovered home button text */
|
||||||
|
|
||||||
|
--MENU-HEADER-BG-color: #1c90f3; /* Background color of menu header */
|
||||||
|
--MENU-HEADER-BORDER-color: #33a1ff; /*Color of menu header border */
|
||||||
|
|
||||||
|
--MENU-SEARCH-color: #ffffff; /* Color of search field text */
|
||||||
|
--MENU-SEARCH-BG-color: #167ad0; /* Search field background color (by default borders + icons) */
|
||||||
|
--MENU-SEARCH-BORDER-color: #33a1ff; /* Override search field border color */
|
||||||
|
|
||||||
|
--MENU-SECTIONS-ACTIVE-BG-color: #20272b; /* Background color of the active section and its children */
|
||||||
|
--MENU-SECTIONS-BG-color: #252c31; /* Background color of other sections */
|
||||||
|
--MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */
|
||||||
|
--MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */
|
||||||
|
|
||||||
|
--MENU-VISITED-color: #1c90f3; /* Color of 'page visited' icons in menu */
|
||||||
|
--MENU-SECTION-HR-color: #20272b; /* Color of <hr> separator in menu */
|
||||||
|
|
||||||
|
/* base styling for boxes */
|
||||||
|
--BOX-CAPTION-color: rgba( 255, 255, 255, 1 ); /* color of the title text */
|
||||||
|
--BOX-BG-color: rgba( 255, 255, 255, .833 ); /* color of the content background */
|
||||||
|
--BOX-TEXT-color: rgba( 16, 16, 16, 1 ); /* fixed color of the content text */
|
||||||
|
}
|
49
docs/public/css/theme-green.css
Normal file
49
docs/public/css/theme-green.css
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* here in this showcase we use our own modified chroma syntax highlightning style;
|
||||||
|
if you want to use a predefined style instead:
|
||||||
|
- remove `markup.highlight.noClasses` from your config.toml
|
||||||
|
- set `markup.highlight.style` to a predefined style name in your config.toml
|
||||||
|
- remove the following `@import` of the self-defined chroma stylesheet */
|
||||||
|
@import "chroma-learn.css";
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--MAIN-TEXT-color: #323232; /* Color of text by default */
|
||||||
|
--MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */
|
||||||
|
--MAIN-TITLES-H1-color: #222222; /* text color of h1 titles */
|
||||||
|
--MAIN-LINK-color: #599a3e; /* Color of links */
|
||||||
|
--MAIN-LINK-HOVER-color: #3f6d2c; /* Color of hovered links */
|
||||||
|
--MAIN-BG-color: #ffffff; /* color of text by default */
|
||||||
|
|
||||||
|
/* adjusted to base16-snazzy chroma style */
|
||||||
|
--CODE-BLOCK-color: #e2e4e5; /* fallback color for code text */
|
||||||
|
--CODE-BLOCK-BG-color: #282a36; /* fallback color for code background */
|
||||||
|
--CODE-BLOCK-BORDER-color: #282a36; /* color of block code border */
|
||||||
|
|
||||||
|
--CODE-INLINE-color: #5e5e5e; /* color for inline code text */
|
||||||
|
--CODE-INLINE-BG-color: #fffae9; /* color for inline code background */
|
||||||
|
--CODE-INLINE-BORDER-color: #f8e8c8; /* color of inline code border */
|
||||||
|
|
||||||
|
--MENU-HOME-LINK-color: #2e3b2e; /* Color of the home button text */
|
||||||
|
--MENU-HOME-LINK-HOVER-color: #000000; /* Color of the hovered home button text */
|
||||||
|
|
||||||
|
--MENU-HEADER-BG-color: #74b559; /* Background color of menu header */
|
||||||
|
--MENU-HEADER-BORDER-color: #9cd484; /*Color of menu header border */
|
||||||
|
|
||||||
|
--MENU-SEARCH-color: #ffffff; /* Color of search field text */
|
||||||
|
--MENU-SEARCH-BG-color: #599a3e; /* Search field background color (by default borders + icons) */
|
||||||
|
--MENU-SEARCH-BORDER-color: #84c767; /* Override search field border color */
|
||||||
|
|
||||||
|
--MENU-SECTIONS-ACTIVE-BG-color: #1b211c; /* Background color of the active section and its children */
|
||||||
|
--MENU-SECTIONS-BG-color: #222723; /* Background color of other sections */
|
||||||
|
--MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */
|
||||||
|
--MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */
|
||||||
|
|
||||||
|
--MENU-VISITED-color: #599a3e; /* Color of 'page visited' icons in menu */
|
||||||
|
--MENU-SECTION-HR-color: #18211c; /* Color of <hr> separator in menu */
|
||||||
|
|
||||||
|
/* base styling for boxes */
|
||||||
|
--BOX-CAPTION-color: rgba( 255, 255, 255, 1 ); /* color of the title text */
|
||||||
|
--BOX-BG-color: rgba( 255, 255, 255, .833 ); /* color of the content background */
|
||||||
|
--BOX-TEXT-color: rgba( 16, 16, 16, 1 ); /* fixed color of the content text */
|
||||||
|
}
|
60
docs/public/css/theme-learn.css
Normal file
60
docs/public/css/theme-learn.css
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/* here in this showcase we use our own modified chroma syntax highlightning style;
|
||||||
|
if you want to use a predefined style instead:
|
||||||
|
- remove `markup.highlight.noClasses` from your config.toml
|
||||||
|
- set `markup.highlight.style` to a predefined style name in your config.toml
|
||||||
|
- remove the following `@import` of the self-defined chroma stylesheet */
|
||||||
|
@import "chroma-learn.css";
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--MAIN-TEXT-color: #323232; /* Color of text by default */
|
||||||
|
--MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */
|
||||||
|
--MAIN-TITLES-H1-color: #222222; /* text color of h1 titles */
|
||||||
|
--MAIN-LINK-color: #00bdf3; /* Color of links */
|
||||||
|
--MAIN-LINK-HOVER-color: #0082a7; /* Color of hovered links */
|
||||||
|
--MAIN-BG-color: #ffffff; /* color of text by default */
|
||||||
|
|
||||||
|
/* adjusted to base16-snazzy chroma style */
|
||||||
|
--CODE-BLOCK-color: #e2e4e5; /* fallback color for code text */
|
||||||
|
--CODE-BLOCK-BG-color: #282a36; /* fallback color for code background */
|
||||||
|
--CODE-BLOCK-BORDER-color: #282a36; /* color of block code border */
|
||||||
|
|
||||||
|
--CODE-INLINE-color: #5e5e5e; /* color for inline code text */
|
||||||
|
--CODE-INLINE-BG-color: #fff7dd; /* color for inline code background */
|
||||||
|
--CODE-INLINE-BORDER-color: #fbf0cb; /* color of inline code border */
|
||||||
|
|
||||||
|
--MENU-HOME-LINK-color: #e0e0e0; /* Color of the home button text */
|
||||||
|
--MENU-HOME-LINK-HOVER-color: #f0f0f0; /* Color of the hovered home button text */
|
||||||
|
|
||||||
|
--MENU-HEADER-BG-color: #8451a1; /* Background color of menu header */
|
||||||
|
--MENU-HEADER-BORDER-color: #9c6fb6; /*Color of menu header border */
|
||||||
|
|
||||||
|
--MENU-SEARCH-color: #ffffff; /* Color of search field text */
|
||||||
|
--MENU-SEARCH-BG-color: #764890; /* Search field background color (by default borders + icons) */
|
||||||
|
--MENU-SEARCH-BORDER-color: #915eae; /* Override search field border color */
|
||||||
|
|
||||||
|
--MENU-SECTIONS-ACTIVE-BG-color: #251f29; /* Background color of the active section and its children */
|
||||||
|
--MENU-SECTIONS-BG-color: #322a38; /* Background color of other sections */
|
||||||
|
--MENU-SECTIONS-LINK-color: #cccccc; /* Color of links in menu */
|
||||||
|
--MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-color: #777777; /* Color of active category text */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-BG-color: #ffffff; /* Color of background for the active category (only) */
|
||||||
|
|
||||||
|
--MENU-VISITED-color: #00bdf3; /* Color of 'page visited' icons in menu */
|
||||||
|
--MENU-SECTION-HR-color: #2a232f; /* Color of <hr> separator in menu */
|
||||||
|
|
||||||
|
/* base styling for boxes */
|
||||||
|
--BOX-CAPTION-color: rgba( 255, 255, 255, 1 ); /* color of the title text */
|
||||||
|
--BOX-BG-color: rgba( 255, 255, 255, .833 ); /* color of the content background */
|
||||||
|
--BOX-TEXT-color: rgba( 16, 16, 16, 1 ); /* fixed color of the content text */
|
||||||
|
}
|
||||||
|
|
||||||
|
body a#logo,
|
||||||
|
body #logo svg,
|
||||||
|
body #logo svg * {
|
||||||
|
color: var(--INTERNAL-MENU-SEARCH-color);
|
||||||
|
fill: var(--INTERNAL-MENU-SEARCH-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
body a#logo:hover {
|
||||||
|
color: var(--INTERNAL-MENU-SEARCH-color);
|
||||||
|
}
|
308
docs/public/css/theme-neon.css
Normal file
308
docs/public/css/theme-neon.css
Normal file
@ -0,0 +1,308 @@
|
|||||||
|
/* here in this showcase we use our own modified chroma syntax highlightning style;
|
||||||
|
if you want to use a predefined style instead:
|
||||||
|
- remove `markup.highlight.noClasses` from your config.toml
|
||||||
|
- set `markup.highlight.style` to a predefined style name in your config.toml
|
||||||
|
- remove the following `@import` of the self-defined chroma stylesheet */
|
||||||
|
@import "chroma-neon.css";
|
||||||
|
|
||||||
|
/* this variant does not work well if we use fallback styles for IE11 so better
|
||||||
|
ignore this variant in IE completely */
|
||||||
|
@supports not (-ms-high-contrast:none) {
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--PRIMARY-color: #f300b2; /* brand primary color */
|
||||||
|
--SECONDARY-color: #1c90f3; /* brand secondary color */
|
||||||
|
--ACCENT-color: #ffff00; /* brand accent color, used for search highlights */
|
||||||
|
|
||||||
|
--MAIN-TEXT-color: #e0e0e0; /* text color of content and h1 titles */
|
||||||
|
--MAIN-LINK-HOVER-color: #4cabff; /* hovered link color of content */
|
||||||
|
--MAIN-BG-color: #202020; /* background color of content */
|
||||||
|
|
||||||
|
/* optional overwrites for specific headers */
|
||||||
|
--MAIN-TITLES-TEXT-color: #f300b2; /* text color of h2-h6 titles and transparent box titles */
|
||||||
|
--MAIN-TITLES-H3-color: #00f3d3; /* text color of h3-h6 titles */
|
||||||
|
--MAIN-TITLES-H4-color: #ffff00; /* text color of h4-h6 titles */
|
||||||
|
|
||||||
|
/* adjusted to neon chroma style */
|
||||||
|
--CODE-BLOCK-color: #f8f8f2; /* fallback text color of block code; should be adjusted to your selected chroma style */
|
||||||
|
--CODE-BLOCK-BG-color: #000000; /* fallback background color of block code; should be adjusted to your selected chroma style */
|
||||||
|
|
||||||
|
--CODE-INLINE-color: #82e550; /* text color of inline code */
|
||||||
|
--CODE-INLINE-BG-color: #282a36; /* background color of inline code */
|
||||||
|
--CODE-INLINE-BORDER-color: #464646; /* border color of inline code */
|
||||||
|
|
||||||
|
--MERMAID-theme: dark; /* name of the default Mermaid theme for this variant, can be overridden in config.toml */
|
||||||
|
--SWAGGER-theme: dark; /* name of the default Swagger theme for this variant, can be overridden in config.toml */
|
||||||
|
|
||||||
|
--MENU-HEADER-BG-color: rgba( 0, 0, 0, 0 ); /* background color of menu header */
|
||||||
|
|
||||||
|
--MENU-HOME-LINK-color: #ffffff; /* home button color if configured */
|
||||||
|
--MENU-HOME-LINK-HOVER-color: #d0d0d0; /* hovered home button color if configured */
|
||||||
|
|
||||||
|
--MENU-SEARCH-color: #f8f8f8; /* text and icon color of search box */
|
||||||
|
--MENU-SEARCH-BG-color: rgba( 16, 16, 16, .6 ); /* background color of search box */
|
||||||
|
--MENU-SEARCH-BORDER-color: #e8e8e8; /* border color of search box */
|
||||||
|
|
||||||
|
--MENU-SECTIONS-BG-color: linear-gradient( 165deg, #f300b2d3 0%, #1c90f3b3 65%, #00e3d3b3 100% ); /* background of the menu; this is NOT just a color value but can be a complete CSS background definition including gradients, etc. */
|
||||||
|
--MENU-SECTIONS-ACTIVE-BG-color: rgba( 0, 0, 0, .166 ); /* background color of the active menu section */
|
||||||
|
--MENU-SECTIONS-LINK-color: #ffffff; /* link color of menu topics */
|
||||||
|
--MENU-SECTIONS-LINK-HOVER-color: #d0d0d0; /* hovered link color of menu topics */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-color: #56ffe8; /* text color of the displayed menu topic */
|
||||||
|
--MENU-SECTION-HR-color: #bababa; /* separator color of menu footer */
|
||||||
|
|
||||||
|
--MENU-VISITED-color: #33a1ff; /* icon color of visited menu topics if configured */
|
||||||
|
|
||||||
|
/* base styling for boxes */
|
||||||
|
--BOX-CAPTION-color: rgba( 240, 240, 240, 1 ); /* text color of colored box titles */
|
||||||
|
--BOX-BG-color: rgba( 20, 20, 20, 1 ); /* background color of colored boxes */
|
||||||
|
--BOX-TEXT-color: initial; /* text color of colored box content */
|
||||||
|
|
||||||
|
/* optional base colors for colored boxes as in attachments, badges, buttons and notice shortcode */
|
||||||
|
--BOX-BLUE-color: rgba( 48, 117, 229, 1 ); /* background color of blue boxes */
|
||||||
|
--BOX-BLUE-TEXT-color: var( --BOX-BLUE-color ); /* text color of blue boxes */
|
||||||
|
--BOX-GREEN-color: rgba( 42, 178, 24, 1 ); /* background color of green boxes */
|
||||||
|
--BOX-GREEN-TEXT-color: var( --BOX-GREEN-color ); /* text color of green boxes */
|
||||||
|
--BOX-GREY-color: rgba( 128, 128, 128, 1 ); /* background color of grey boxes */
|
||||||
|
--BOX-GREY-TEXT-color: var( --BOX-GREY-color ); /* text color of grey boxes */
|
||||||
|
--BOX-ORANGE-color: rgba( 237, 153, 9, 1 ); /* background color of orange boxes */
|
||||||
|
--BOX-ORANGE-TEXT-color: var( --BOX-ORANGE-color ); /* text color of orange boxes */
|
||||||
|
--BOX-RED-color: rgba( 224, 62, 62, 1 ); /* background color of red boxes */
|
||||||
|
--BOX-RED-TEXT-color: var( --BOX-RED-color ); /* text color of red boxes */
|
||||||
|
}
|
||||||
|
|
||||||
|
body a#logo,
|
||||||
|
body #logo svg,
|
||||||
|
body #logo svg * {
|
||||||
|
color: var(--INTERNAL-MENU-SEARCH-BORDER-color);
|
||||||
|
fill: var(--INTERNAL-MENU-SEARCH-BORDER-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
body a#logo{
|
||||||
|
color: var(--INTERNAL-MENU-SEARCH-BORDER-color);
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px var(--INTERNAL-MENU-SEARCH-BORDER-color),
|
||||||
|
0 0 2px var(--INTERNAL-MENU-SEARCH-BORDER-color),
|
||||||
|
0 0 4px var(--INTERNAL-MENU-SEARCH-BORDER-color),
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MENU-SECTIONS-LINK-HOVER-color),
|
||||||
|
0 0 8px var(--INTERNAL-MENU-SECTIONS-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body h1 {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 4px #fff,
|
||||||
|
0 0 8px #fff,
|
||||||
|
0 0 3px var(--INTERNAL-MAIN-TITLES-H1-color),
|
||||||
|
0 0 6px var(--INTERNAL-MAIN-TITLES-H1-color),
|
||||||
|
0 0 8px var(--INTERNAL-MAIN-TITLES-H1-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body h2 {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MAIN-TITLES-H2-color),
|
||||||
|
0 0 8px var(--INTERNAL-MAIN-TITLES-H2-color),
|
||||||
|
0 0 10px var(--INTERNAL-MAIN-TITLES-H2-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen {
|
||||||
|
body:not(.print) rapi-doc::part(section-overview-title) {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MAIN-TITLES-H2-color),
|
||||||
|
0 0 8px var(--INTERNAL-MAIN-TITLES-H2-color),
|
||||||
|
0 0 10px var(--INTERNAL-MAIN-TITLES-H2-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body h3, body .article-subheading {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MAIN-TITLES-H3-color),
|
||||||
|
0 0 8px var(--INTERNAL-MAIN-TITLES-H3-color),
|
||||||
|
0 0 10px var(--INTERNAL-MAIN-TITLES-H3-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body h4 {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MAIN-TITLES-H4-color),
|
||||||
|
0 0 8px var(--INTERNAL-MAIN-TITLES-H4-color),
|
||||||
|
0 0 10px var(--INTERNAL-MAIN-TITLES-H4-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body h5 {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MAIN-TITLES-H5-color),
|
||||||
|
0 0 8px var(--INTERNAL-MAIN-TITLES-H5-color),
|
||||||
|
0 0 10px var(--INTERNAL-MAIN-TITLES-H5-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body h6 {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MAIN-TITLES-H6-color),
|
||||||
|
0 0 8px var(--INTERNAL-MAIN-TITLES-H6-color),
|
||||||
|
0 0 10px var(--INTERNAL-MAIN-TITLES-H5-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body #sidebar ul.collapsible-menu li.active > .toggle,
|
||||||
|
body #sidebar ul.topics li.active > a {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-color),
|
||||||
|
0 0 8px var(--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body #sidebar .searchbox button:hover,
|
||||||
|
body .searchbox span:hover {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MENU-SEARCH-color),
|
||||||
|
0 0 8px var(--INTERNAL-MENU-SEARCH-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body #sidebar select:hover,
|
||||||
|
body #sidebar .collapsible-menu .toggle:hover,
|
||||||
|
body #sidebar .select-container:hover,
|
||||||
|
body #sidebar a:hover,
|
||||||
|
body #sidebar button:hover {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MENU-SECTIONS-LINK-HOVER-color),
|
||||||
|
0 0 8px var(--INTERNAL-MENU-SECTIONS-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body #homelinks a:hover {
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 8px #808080,
|
||||||
|
0 0 4px var(--INTERNAL-MENU-HOME-LINK-HOVER-color),
|
||||||
|
0 0 8px var(--INTERNAL-MENU-HOME-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body h1 a,
|
||||||
|
body h2 a,
|
||||||
|
body h3 a,
|
||||||
|
body h4 a,
|
||||||
|
body h5 a,
|
||||||
|
body h6 a,
|
||||||
|
body .anchor {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
body .badge,
|
||||||
|
body .btn,
|
||||||
|
body div.box {
|
||||||
|
box-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 4px #808080,
|
||||||
|
0 0 4px var(--VARIABLE-BOX-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body .badge > .badge-content,
|
||||||
|
body .btn,
|
||||||
|
body .btn > *,
|
||||||
|
body div.box > .box-label {
|
||||||
|
text-shadow:
|
||||||
|
0 0 1px #fff,
|
||||||
|
0 0 2px #fff,
|
||||||
|
0 0 4px #808080,
|
||||||
|
0 0 4px var(--VARIABLE-BOX-CAPTION-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body .badge.cstyle:not(.transparent),
|
||||||
|
body .btn.cstyle {
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--VARIABLE-BOX-CAPTION-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body .badge.cstyle.transparent,
|
||||||
|
body .btn.cstyle.transparent {
|
||||||
|
--VARIABLE-BOX-BG-color: var(--INTERNAL-BOX-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body .btn.cstyle.transparent > * {
|
||||||
|
border-color: var(--VARIABLE-BOX-color);
|
||||||
|
color: var(--VARIABLE-BOX-CAPTION-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body .btn.cstyle.transparent > *:hover,
|
||||||
|
body .btn.cstyle.transparent > *:focus,
|
||||||
|
body .btn.cstyle.transparent > *:active {
|
||||||
|
background-color: var(--INTERNAL-MAIN-TITLES-TEXT-color);
|
||||||
|
color: var(--INTERNAL-MAIN-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
body .box.cstyle.transparent {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
#body h1,
|
||||||
|
#body h2,
|
||||||
|
#body h3, #body .article-subheading,
|
||||||
|
#body h4,
|
||||||
|
#body h5,
|
||||||
|
#body h6 {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
#body .btn,
|
||||||
|
#body div.box,
|
||||||
|
#body div.box > .box-label {
|
||||||
|
box-shadow: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* if we are in print chapter preview our @media statement from
|
||||||
|
above will not apply, so we have to repeat it here */
|
||||||
|
.print #body h1,
|
||||||
|
.print #body h2,
|
||||||
|
.print #body h3, .print #body .article-subheading,
|
||||||
|
.print #body h4,
|
||||||
|
.print #body h5,
|
||||||
|
.print #body h6 {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.print #body .btn,
|
||||||
|
.print #body div.box,
|
||||||
|
.print #body div.box > .box-label {
|
||||||
|
box-shadow: none;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
49
docs/public/css/theme-red.css
Normal file
49
docs/public/css/theme-red.css
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* here in this showcase we use our own modified chroma syntax highlightning style;
|
||||||
|
if you want to use a predefined style instead:
|
||||||
|
- remove `markup.highlight.noClasses` from your config.toml
|
||||||
|
- set `markup.highlight.style` to a predefined style name in your config.toml
|
||||||
|
- remove the following `@import` of the self-defined chroma stylesheet */
|
||||||
|
@import "chroma-learn.css";
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--MAIN-TEXT-color: #323232; /* Color of text by default */
|
||||||
|
--MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5-h6 */
|
||||||
|
--MAIN-TITLES-H1-color: #222222; /* text color of h1 titles */
|
||||||
|
--MAIN-LINK-color: #f31c1c; /* Color of links */
|
||||||
|
--MAIN-LINK-HOVER-color: #d01616; /* Color of hovered links */
|
||||||
|
--MAIN-BG-color: #ffffff; /* color of text by default */
|
||||||
|
|
||||||
|
/* adjusted to base16-snazzy chroma style */
|
||||||
|
--CODE-BLOCK-color: #e2e4e5; /* fallback color for code text */
|
||||||
|
--CODE-BLOCK-BG-color: #282a36; /* fallback color for code background */
|
||||||
|
--CODE-BLOCK-BORDER-color: #282a36; /* color of block code border */
|
||||||
|
|
||||||
|
--CODE-INLINE-color: #5e5e5e; /* color for inline code text */
|
||||||
|
--CODE-INLINE-BG-color: #fffae9; /* color for inline code background */
|
||||||
|
--CODE-INLINE-BORDER-color: #f8e8c8; /* color of inline code border */
|
||||||
|
|
||||||
|
--MENU-HOME-LINK-color: #382b2b; /* Color of the home button text */
|
||||||
|
--MENU-HOME-LINK-HOVER-color: #000000; /* Color of the hovered home button text */
|
||||||
|
|
||||||
|
--MENU-HEADER-BG-color: #dc1010; /* Background color of menu header */
|
||||||
|
--MENU-HEADER-BORDER-color: #e23131; /*Color of menu header border */
|
||||||
|
|
||||||
|
--MENU-SEARCH-color: #ffffff; /* Color of search field text */
|
||||||
|
--MENU-SEARCH-BG-color: #b90000; /* Search field background color (by default borders + icons) */
|
||||||
|
--MENU-SEARCH-BORDER-color: #ef2020; /* Override search field border color */
|
||||||
|
|
||||||
|
--MENU-SECTIONS-ACTIVE-BG-color: #2b2020; /* Background color of the active section and its children */
|
||||||
|
--MENU-SECTIONS-BG-color: #312525; /* Background color of other sections */
|
||||||
|
--MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */
|
||||||
|
--MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */
|
||||||
|
|
||||||
|
--MENU-VISITED-color: #f31c1c; /* Color of 'page visited' icons in menu */
|
||||||
|
--MENU-SECTION-HR-color: #2b2020; /* Color of <hr> separator in menu */
|
||||||
|
|
||||||
|
/* base styling for boxes */
|
||||||
|
--BOX-CAPTION-color: rgba( 255, 255, 255, 1 ); /* color of the title text */
|
||||||
|
--BOX-BG-color: rgba( 255, 255, 255, .833 ); /* color of the content background */
|
||||||
|
--BOX-TEXT-color: rgba( 16, 16, 16, 1 ); /* fixed color of the content text */
|
||||||
|
}
|
48
docs/public/css/theme-relearn-dark.css
Normal file
48
docs/public/css/theme-relearn-dark.css
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/* here in this showcase we use our own modified chroma syntax highlightning style;
|
||||||
|
if you want to use a predefined style instead:
|
||||||
|
- remove `markup.highlight.noClasses` from your config.toml
|
||||||
|
- set `markup.highlight.style` to a predefined style name in your config.toml
|
||||||
|
- remove the following `@import` of the self-defined chroma stylesheet */
|
||||||
|
@import "chroma-relearn-dark.css";
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--PRIMARY-color: #7dc903; /* brand primary color */
|
||||||
|
--SECONDARY-color: #6c8ce3; /* brand secondary color */
|
||||||
|
--ACCENT-color: #ff44ff; /* brand accent color, used for search highlights */
|
||||||
|
|
||||||
|
--MAIN-TEXT-color: #e0e0e0; /* text color of content and h1 titles */
|
||||||
|
--MAIN-LINK-HOVER-color: #93b0ff; /* hovered link color of content */
|
||||||
|
--MAIN-BG-color: #202020; /* background color of content */
|
||||||
|
--MAIN-TITLES-TEXT-color: #ffffff; /* text color of h2-h6 titles and transparent box titles */
|
||||||
|
|
||||||
|
/* adjusted to relearn-dark chroma style */
|
||||||
|
--CODE-BLOCK-color: #f8f8f8; /* fallback text color of block code; should be adjusted to your selected chroma style */
|
||||||
|
--CODE-BLOCK-BG-color: #2b2b2b; /* fallback background color of block code; should be adjusted to your selected chroma style */
|
||||||
|
|
||||||
|
--CODE-INLINE-color: #82e550; /* text color of inline code */
|
||||||
|
--CODE-INLINE-BG-color: #2d2d2d; /* background color of inline code */
|
||||||
|
--CODE-INLINE-BORDER-color: #464646; /* border color of inline code */
|
||||||
|
|
||||||
|
--MERMAID-theme: dark; /* name of the default Mermaid theme for this variant, can be overridden in config.toml */
|
||||||
|
--SWAGGER-theme: dark; /* name of the default Swagger theme for this variant, can be overridden in config.toml */
|
||||||
|
|
||||||
|
--MENU-HOME-LINK-color: #404040; /* home button color if configured */
|
||||||
|
--MENU-HOME-LINK-HOVER-color: #000000; /* hovered home button color if configured */
|
||||||
|
|
||||||
|
--MENU-SEARCH-color: #e0e0e0; /* text and icon color of search box */
|
||||||
|
--MENU-SEARCH-BG-color: #323232; /* background color of search box */
|
||||||
|
--MENU-SEARCH-BORDER-color: #e0e0e0; /* border color of search box */
|
||||||
|
|
||||||
|
--MENU-SECTIONS-BG-color: #2b2b2b; /* background of the menu; this is NOT just a color value but can be a complete CSS background definition including gradients, etc. */
|
||||||
|
--MENU-SECTIONS-LINK-color: #bababa; /* link color of menu topics */
|
||||||
|
--MENU-SECTIONS-LINK-HOVER-color: #ffffff; /* hovered link color of menu topics */
|
||||||
|
--MENU-SECTIONS-ACTIVE-BG-color: #323232; /* background color of the active menu section */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-color: #82e550; /* text color of the displayed menu topic */
|
||||||
|
--MENU-SECTION-HR-color: #606060; /* separator color of menu footer */
|
||||||
|
|
||||||
|
--MENU-VISITED-color: #486ac9; /* icon color of visited menu topics if configured */
|
||||||
|
|
||||||
|
--BOX-CAPTION-color: rgba( 240, 240, 240, 1 ); /* text color of colored box titles */
|
||||||
|
--BOX-BG-color: rgba( 20, 20, 20, 1 ); /* background color of colored boxes */
|
||||||
|
--BOX-TEXT-color: #e0e0e0; /* text color of colored box content */
|
||||||
|
}
|
47
docs/public/css/theme-relearn-light.css
Normal file
47
docs/public/css/theme-relearn-light.css
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/* here in this showcase we use our own modified chroma syntax highlightning style;
|
||||||
|
if you want to use a predefined style instead:
|
||||||
|
- remove `markup.highlight.noClasses` from your config.toml
|
||||||
|
- set `markup.highlight.style` to a predefined style name in your config.toml
|
||||||
|
- remove the following `@import` of the self-defined chroma stylesheet */
|
||||||
|
@import "chroma-relearn-light.css";
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--PRIMARY-color: #7dc903; /* brand primary color */
|
||||||
|
--SECONDARY-color: #486ac9; /* brand secondary color */
|
||||||
|
--ACCENT-color: #ff88ff; /* brand accent color, used for search highlights */
|
||||||
|
|
||||||
|
--MAIN-TEXT-color: #101010; /* text color of content and h1 titles */
|
||||||
|
--MAIN-LINK-HOVER-color: #202891; /* hovered link color of content */
|
||||||
|
--MAIN-BG-color: #ffffff; /* background color of content */
|
||||||
|
--MAIN-TITLES-TEXT-color: #4a4a4a; /* text color of h2-h6 titles and transparent box titles */
|
||||||
|
|
||||||
|
/* adjusted to relearn-light chroma style */
|
||||||
|
--CODE-BLOCK-color: #000000; /* fallback text color of block code; should be adjusted to your selected chroma style */
|
||||||
|
--CODE-BLOCK-BG-color: #f8f8f8; /* fallback background color of block code; should be adjusted to your selected chroma style */
|
||||||
|
--CODE-BLOCK-BORDER-color: #d8d8d8; /* border color of block code */
|
||||||
|
|
||||||
|
--CODE-INLINE-color: #5e5e5e; /* text color of inline code */
|
||||||
|
--CODE-INLINE-BG-color: #fffae9; /* background color of inline code */
|
||||||
|
--CODE-INLINE-BORDER-color: #f8e8c8; /* border color of inline code */
|
||||||
|
|
||||||
|
--MERMAID-theme: default; /* name of the default Mermaid theme for this variant, can be overridden in config.toml */
|
||||||
|
--SWAGGER-theme: light; /* name of the default Swagger theme for this variant, can be overridden in config.toml */
|
||||||
|
|
||||||
|
--MENU-HOME-LINK-color: #404040; /* home button color if configured */
|
||||||
|
--MENU-HOME-LINK-HOVER-color: #000000; /* hovered home button color if configured */
|
||||||
|
|
||||||
|
--MENU-SEARCH-color: #e0e0e0; /* text and icon color of search box */
|
||||||
|
--MENU-SEARCH-BG-color: #323232; /* background color of search box */
|
||||||
|
--MENU-SEARCH-BORDER-color: #e0e0e0; /* border color of search box */
|
||||||
|
|
||||||
|
--MENU-SECTIONS-BG-color: #282828; /* background of the menu; this is NOT just a color value but can be a complete CSS background definition including gradients, etc. */
|
||||||
|
--MENU-SECTIONS-ACTIVE-BG-color: rgba( 0, 0, 0, .166 ); /* background color of the active menu section */
|
||||||
|
--MENU-SECTIONS-LINK-color: #bababa; /* link color of menu topics */
|
||||||
|
--MENU-SECTIONS-LINK-HOVER-color: #ffffff; /* hovered link color of menu topics */
|
||||||
|
--MENU-SECTION-ACTIVE-CATEGORY-color: #444444; /* text color of the displayed menu topic */
|
||||||
|
--MENU-SECTION-HR-color: #606060; /* separator color of menu footer */
|
||||||
|
|
||||||
|
--BOX-CAPTION-color: rgba( 255, 255, 255, 1 ); /* text color of colored box titles */
|
||||||
|
--BOX-BG-color: rgba( 255, 255, 255, .833 ); /* background color of colored boxes */
|
||||||
|
--BOX-TEXT-color: rgba( 16, 16, 16, 1 ); /* text color of colored box content */
|
||||||
|
}
|
3
docs/public/css/theme-relearn.css
Normal file
3
docs/public/css/theme-relearn.css
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/* this file is here for compatiblity with older installations
|
||||||
|
use theme-relearn-light instead */
|
||||||
|
@import "theme-relearn-light.css";
|
1752
docs/public/css/theme.css
Normal file
1752
docs/public/css/theme.css
Normal file
File diff suppressed because it is too large
Load Diff
468
docs/public/css/variant.css
Normal file
468
docs/public/css/variant.css
Normal file
@ -0,0 +1,468 @@
|
|||||||
|
:root {
|
||||||
|
/* initially use section background to avoid flickering on load when a non default variant is active;
|
||||||
|
this is only possible because every color variant defines this variable, otherwise we would have been lost */
|
||||||
|
--INTERNAL-PRIMARY-color: var(--PRIMARY-color, var(--MENU-HEADER-BG-color, rgba( 0, 0, 0, 0 ))); /* not --INTERNAL-MENU-HEADER-BG-color */
|
||||||
|
--INTERNAL-SECONDARY-color: var(--SECONDARY-color, var(--MAIN-LINK-color, #486ac9)); /* not --INTERNAL-MAIN-LINK-color */
|
||||||
|
--INTERNAL-ACCENT-color: var(--ACCENT-color, #ffff00);
|
||||||
|
|
||||||
|
--INTERNAL-MAIN-LINK-color: var(--MAIN-LINK-color, var(--SECONDARY-color, #486ac9)); /* not --INTERNAL-SECONDARY-color */
|
||||||
|
--INTERNAL-MAIN-LINK-HOVER-color: var(--MAIN-LINK-HOVER-color, var(--INTERNAL-MAIN-LINK-color));
|
||||||
|
--INTERNAL-MAIN-BG-color: var(--MAIN-BG-color, #ffffff);
|
||||||
|
|
||||||
|
--INTERNAL-MAIN-TEXT-color: var(--MAIN-TEXT-color, #101010);
|
||||||
|
--INTERNAL-MAIN-TITLES-TEXT-color: var(--MAIN-TITLES-TEXT-color, var(--INTERNAL-MAIN-TEXT-color));
|
||||||
|
|
||||||
|
--INTERNAL-MAIN-TITLES-H1-color: var(--MAIN-TITLES-H1-color, var(--INTERNAL-MAIN-TEXT-color));
|
||||||
|
--INTERNAL-MAIN-TITLES-H2-color: var(--MAIN-TITLES-H2-color, var(--INTERNAL-MAIN-TITLES-TEXT-color));
|
||||||
|
--INTERNAL-MAIN-TITLES-H3-color: var(--MAIN-TITLES-H3-color, var(--INTERNAL-MAIN-TITLES-H2-color));
|
||||||
|
--INTERNAL-MAIN-TITLES-H4-color: var(--MAIN-TITLES-H4-color, var(--INTERNAL-MAIN-TITLES-H3-color));
|
||||||
|
--INTERNAL-MAIN-TITLES-H5-color: var(--MAIN-TITLES-H5-color, var(--INTERNAL-MAIN-TITLES-H4-color));
|
||||||
|
--INTERNAL-MAIN-TITLES-H6-color: var(--MAIN-TITLES-H6-color, var(--INTERNAL-MAIN-TITLES-H5-color));
|
||||||
|
|
||||||
|
--INTERNAL-MAIN-font: var(--MAIN-font, "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif);
|
||||||
|
--INTERNAL-MAIN-TITLES-TEXT-font: var(--MAIN-TITLES-TEXT-font, var(--INTERNAL-MAIN-font));
|
||||||
|
|
||||||
|
--INTERNAL-MAIN-TITLES-H1-font: var(--MAIN-TITLES-H1-font, var(--INTERNAL-MAIN-font));
|
||||||
|
--INTERNAL-MAIN-TITLES-H2-font: var(--MAIN-TITLES-H2-font, var(--INTERNAL-MAIN-TITLES-TEXT-font));
|
||||||
|
--INTERNAL-MAIN-TITLES-H3-font: var(--MAIN-TITLES-H3-font, var(--INTERNAL-MAIN-TITLES-H2-font));
|
||||||
|
--INTERNAL-MAIN-TITLES-H4-font: var(--MAIN-TITLES-H4-font, var(--INTERNAL-MAIN-TITLES-H3-font));
|
||||||
|
--INTERNAL-MAIN-TITLES-H5-font: var(--MAIN-TITLES-H5-font, var(--INTERNAL-MAIN-TITLES-H4-font));
|
||||||
|
--INTERNAL-MAIN-TITLES-H6-font: var(--MAIN-TITLES-H6-font, var(--INTERNAL-MAIN-TITLES-H5-font));
|
||||||
|
|
||||||
|
--INTERNAL-CODE-BLOCK-color: var(--CODE-BLOCK-color, var(--MAIN-CODE-color, #000000));
|
||||||
|
--INTERNAL-CODE-BLOCK-BG-color: var(--CODE-BLOCK-BG-color, var(--MAIN-CODE-BG-color, #f8f8f8));
|
||||||
|
--INTERNAL-CODE-BLOCK-BORDER-color: var(--CODE-BLOCK-BORDER-color, var(--MAIN-CODE-BG-color, var(--INTERNAL-CODE-BLOCK-BG-color)));
|
||||||
|
|
||||||
|
--INTERNAL-CODE-INLINE-color: var(--CODE-INLINE-color, #5e5e5e);
|
||||||
|
--INTERNAL-CODE-INLINE-BG-color: var(--CODE-INLINE-BG-color, #fffae9);
|
||||||
|
--INTERNAL-CODE-INLINE-BORDER-color: var(--CODE-INLINE-BORDER-color, #fbf0cb);
|
||||||
|
|
||||||
|
--INTERNAL-CODE-font: var(--CODE-font, "Consolas", menlo, monospace);
|
||||||
|
|
||||||
|
--INTERNAL-MERMAID-theme: var(--CONFIG-MERMAID-theme, var(--MERMAID-theme, var(--INTERNAL-PRINT-MERMAID-theme)));
|
||||||
|
--INTERNAL-SWAGGER-theme: var(--CONFIG-SWAGGER-theme, var(--SWAGGER-theme, var(--INTERNAL-PRINT-SWAGGER-theme)));
|
||||||
|
|
||||||
|
--INTERNAL-TAG-BG-color: var(--TAG-BG-color, var(--INTERNAL-PRIMARY-color));
|
||||||
|
|
||||||
|
--INTERNAL-MENU-HEADER-BG-color: var(--MENU-HEADER-BG-color, var(--PRIMARY-color, rgba( 0, 0, 0, 0 ))); /* not --INTERNAL-PRIMARY-color */
|
||||||
|
--INTERNAL-MENU-HEADER-BORDER-color: var(--MENU-HEADER-BORDER-color, var(--INTERNAL-MENU-HEADER-BG-color));
|
||||||
|
|
||||||
|
--INTERNAL-MENU-HOME-LINK-color: var(--MENU-HOME-LINK-color, #323232);
|
||||||
|
--INTERNAL-MENU-HOME-LINK-HOVER-color: var(--MENU-HOME-LINK-HOVER-color, var(--MENU-HOME-LINK-HOVERED-color, #808080));
|
||||||
|
|
||||||
|
--INTERNAL-MENU-SEARCH-color: var(--MENU-SEARCH-color, var(--MENU-SEARCH-BOX-ICONS-color, #e0e0e0));
|
||||||
|
--INTERNAL-MENU-SEARCH-BG-color: var(--MENU-SEARCH-BG-color, #323232);
|
||||||
|
--INTERNAL-MENU-SEARCH-BORDER-color: var(--MENU-SEARCH-BORDER-color, var(--MENU-SEARCH-BOX-color, var(--INTERNAL-MENU-SEARCH-BG-color)));
|
||||||
|
|
||||||
|
--INTERNAL-MENU-SECTIONS-ACTIVE-BG-color: var(--MENU-SECTIONS-ACTIVE-BG-color, rgba( 0, 0, 0, .166 ));
|
||||||
|
--INTERNAL-MENU-SECTIONS-BG-color: var(--MENU-SECTIONS-BG-color, #282828);
|
||||||
|
--INTERNAL-MENU-SECTIONS-LINK-color: var(--MENU-SECTIONS-LINK-color, #bababa);
|
||||||
|
--INTERNAL-MENU-SECTIONS-LINK-HOVER-color: var(--MENU-SECTIONS-LINK-HOVER-color, var(--INTERNAL-MENU-SECTIONS-LINK-color));
|
||||||
|
--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-color: var(--MENU-SECTION-ACTIVE-CATEGORY-color, #444444);
|
||||||
|
--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-BG-color: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color, var(--INTERNAL-MAIN-BG-color));
|
||||||
|
|
||||||
|
--INTERNAL-MENU-VISITED-color: var(--MENU-VISITED-color, var(--INTERNAL-SECONDARY-color));
|
||||||
|
--INTERNAL-MENU-SECTION-HR-color: var(--MENU-SECTION-HR-color, #606060);
|
||||||
|
|
||||||
|
--INTERNAL-BOX-CAPTION-color: var(--BOX-CAPTION-color, rgba( 255, 255, 255, 1 ));
|
||||||
|
--INTERNAL-BOX-BG-color: var(--BOX-BG-color, rgba( 255, 255, 255, .833 ));
|
||||||
|
--INTERNAL-BOX-TEXT-color: var(--BOX-TEXT-color, var(--INTERNAL-MAIN-TEXT-color));
|
||||||
|
|
||||||
|
--INTERNAL-BOX-BLUE-color: var(--BOX-BLUE-color, rgba( 48, 117, 229, 1 ));
|
||||||
|
--INTERNAL-BOX-GREEN-color: var(--BOX-GREEN-color, rgba( 42, 178, 24, 1 ));
|
||||||
|
--INTERNAL-BOX-GREY-color: var(--BOX-GREY-color, rgba( 128, 128, 128, 1 ));
|
||||||
|
--INTERNAL-BOX-ORANGE-color: var(--BOX-ORANGE-color, rgba( 237, 153, 9, 1 ));
|
||||||
|
--INTERNAL-BOX-RED-color: var(--BOX-RED-color, rgba( 224, 62, 62, 1 ));
|
||||||
|
|
||||||
|
--INTERNAL-BOX-INFO-color: var(--BOX-INFO-color, var(--INTERNAL-BOX-BLUE-color));
|
||||||
|
--INTERNAL-BOX-NEUTRAL-color: var(--BOX-NEUTRAL-color, var(--INTERNAL-BOX-GREY-color));
|
||||||
|
--INTERNAL-BOX-NOTE-color: var(--BOX-NOTE-color, var(--INTERNAL-BOX-ORANGE-color));
|
||||||
|
--INTERNAL-BOX-TIP-color: var(--BOX-TIP-color, var(--INTERNAL-BOX-GREEN-color));
|
||||||
|
--INTERNAL-BOX-WARNING-color: var(--BOX-WARNING-color, var(--INTERNAL-BOX-RED-color));
|
||||||
|
|
||||||
|
--INTERNAL-BOX-BLUE-TEXT-color: var(--BOX-BLUE-TEXT-color, var(--INTERNAL-BOX-TEXT-color));
|
||||||
|
--INTERNAL-BOX-GREEN-TEXT-color: var(--BOX-GREEN-TEXT-color, var(--INTERNAL-BOX-TEXT-color));
|
||||||
|
--INTERNAL-BOX-GREY-TEXT-color: var(--BOX-GREY-TEXT-color, var(--INTERNAL-BOX-TEXT-color));
|
||||||
|
--INTERNAL-BOX-ORANGE-TEXT-color: var(--BOX-ORANGE-TEXT-color, var(--INTERNAL-BOX-TEXT-color));
|
||||||
|
--INTERNAL-BOX-RED-TEXT-color: var(--BOX-RED-TEXT-color, var(--INTERNAL-BOX-TEXT-color));
|
||||||
|
|
||||||
|
--INTERNAL-BOX-INFO-TEXT-color: var(--BOX-INFO-TEXT-color, var(--INTERNAL-BOX-BLUE-TEXT-color));
|
||||||
|
--INTERNAL-BOX-NEUTRAL-TEXT-color: var(--BOX-NEUTRAL-TEXT-color, var(--INTERNAL-BOX-GREY-TEXT-color));
|
||||||
|
--INTERNAL-BOX-NOTE-TEXT-color: var(--BOX-NOTE-TEXT-color, var(--INTERNAL-BOX-ORANGE-TEXT-color));
|
||||||
|
--INTERNAL-BOX-TIP-TEXT-color: var(--BOX-TIP-TEXT-color, var(--INTERNAL-BOX-GREEN-TEXT-color));
|
||||||
|
--INTERNAL-BOX-WARNING-TEXT-color: var(--BOX-WARNING-TEXT-color, var(--INTERNAL-BOX-RED-TEXT-color));
|
||||||
|
|
||||||
|
/* print style, values taken from relearn-light as it is used as a default print style */
|
||||||
|
--INTERNAL-PRINT-MERMAID-theme: var(--PRINT-MERMAID-theme, default);
|
||||||
|
--INTERNAL-PRINT-MAIN-BG-color: var(--PRINT-MAIN-BG-color, #ffffff);
|
||||||
|
--INTERNAL-PRINT-CODE-font: var(--PRINT-CODE-font, "Consolas", menlo, monospace);
|
||||||
|
--INTERNAL-PRINT-TAG-BG-color: var(--PRINT-TAG-BG-color, #7dc903);
|
||||||
|
--INTERNAL-PRINT-MAIN-font: var(--PRINT-MAIN-font, "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif);
|
||||||
|
--INTERNAL-PRINT-MAIN-TEXT-color: var(--PRINT-MAIN-TEXT-color, #101010);
|
||||||
|
--INTERNAL-PRINT-SWAGGER-theme: var(--PRINT-SWAGGER-theme, light);
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: var(--INTERNAL-MAIN-BG-color);
|
||||||
|
color: var(--INTERNAL-MAIN-TEXT-color);
|
||||||
|
font-family: var(--INTERNAL-MAIN-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footerVisitedLinks > *,
|
||||||
|
a,
|
||||||
|
.anchor,
|
||||||
|
#toc-menu,
|
||||||
|
#body a.highlight:after,
|
||||||
|
#searchresults .autocomplete-suggestion {
|
||||||
|
color: var(--INTERNAL-MAIN-LINK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover,
|
||||||
|
.anchor:hover,
|
||||||
|
#toc-menu:hover,
|
||||||
|
#body a.highlight:hover:after {
|
||||||
|
color: var(--INTERNAL-MAIN-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
background: var(--INTERNAL-MENU-SECTIONS-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#header-wrapper {
|
||||||
|
background-color: var(--INTERNAL-MENU-HEADER-BG-color);
|
||||||
|
border-color: var(--INTERNAL-MENU-HEADER-BORDER-color);
|
||||||
|
color: var(--INTERNAL-MENU-SEARCH-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox {
|
||||||
|
border-color: var(--INTERNAL-MENU-SEARCH-BORDER-color);
|
||||||
|
background-color: var(--INTERNAL-MENU-SEARCH-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar .searchbox > :first-child,
|
||||||
|
#sidebar .searchbox button,
|
||||||
|
.searchbox span {
|
||||||
|
color: var(--INTERNAL-MENU-SEARCH-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox input::-webkit-input-placeholder,
|
||||||
|
.searchbox input::placeholder {
|
||||||
|
color: var(--INTERNAL-MENU-SEARCH-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar .collapsible-menu .toggle,
|
||||||
|
#sidebar .select-container,
|
||||||
|
#sidebar a,
|
||||||
|
#sidebar button {
|
||||||
|
color: var(--INTERNAL-MENU-SECTIONS-LINK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar select:hover,
|
||||||
|
#sidebar .collapsible-menu .toggle:hover,
|
||||||
|
#sidebar .select-container:hover,
|
||||||
|
#sidebar a:hover,
|
||||||
|
#sidebar button:hover {
|
||||||
|
color: var(--INTERNAL-MENU-SECTIONS-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul.topics > li.parent,
|
||||||
|
#sidebar ul.topics > li.active {
|
||||||
|
background-color: var(--INTERNAL-MENU-SECTIONS-ACTIVE-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul.collapsible-menu li.active > .toggle,
|
||||||
|
#sidebar ul.topics li.active > a {
|
||||||
|
color: var(--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul.topics li.active > a {
|
||||||
|
background-color: var(--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar ul li.visited > a .read-icon {
|
||||||
|
color: var(--INTERNAL-MENU-VISITED-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar .nav-title {
|
||||||
|
color: var(--INTERNAL-MENU-SECTIONS-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar hr {
|
||||||
|
border-color: var(--INTERNAL-MENU-SECTION-HR-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
color: var(--INTERNAL-MENU-SECTIONS-LINK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
background-color: var(--INTERNAL-ACCENT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: var(--INTERNAL-MAIN-TITLES-H1-color);
|
||||||
|
font-family: var(--INTERNAL-MAIN-TITLES-H1-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: var(--INTERNAL-MAIN-TITLES-H2-color);
|
||||||
|
font-family: var(--INTERNAL-MAIN-TITLES-H2-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
h3, .article-subheading {
|
||||||
|
color: var(--INTERNAL-MAIN-TITLES-H3-color);
|
||||||
|
font-family: var(--INTERNAL-MAIN-TITLES-H3-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
color: var(--INTERNAL-MAIN-TITLES-H4-color);
|
||||||
|
font-family: var(--INTERNAL-MAIN-TITLES-H4-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
color: var(--INTERNAL-MAIN-TITLES-H5-color);
|
||||||
|
font-family: var(--INTERNAL-MAIN-TITLES-H5-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
color: var(--INTERNAL-MAIN-TITLES-H6-color);
|
||||||
|
font-family: var(--INTERNAL-MAIN-TITLES-H6-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box {
|
||||||
|
background-color: var(--VARIABLE-BOX-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box > .box-label {
|
||||||
|
color: var(--VARIABLE-BOX-CAPTION-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.box > .box-content {
|
||||||
|
background-color: var(--VARIABLE-BOX-BG-color);
|
||||||
|
color: var(--VARIABLE-BOX-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.info {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-INFO-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-INFO-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.warning {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-WARNING-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-WARNING-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.note {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-NOTE-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-NOTE-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.tip {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-TIP-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-TIP-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.primary {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-PRIMARY-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-MAIN-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.secondary {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-SECONDARY-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-MAIN-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.accent {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-ACCENT-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-MAIN-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.blue {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-BLUE-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-BLUE-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.green {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-GREEN-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-GREEN-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.grey {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-GREY-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-GREY-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.orange {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-ORANGE-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-ORANGE-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.red {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-RED-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-RED-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cstyle.transparent {
|
||||||
|
--VARIABLE-BOX-color: transparent;
|
||||||
|
--VARIABLE-BOX-CAPTION-color: var(--INTERNAL-MAIN-TITLES-TEXT-color);
|
||||||
|
--VARIABLE-BOX-BG-color: transparent;
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--INTERNAL-MAIN-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
pre,
|
||||||
|
samp {
|
||||||
|
font-family: var(--INTERNAL-CODE-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
background-color: var(--INTERNAL-CODE-INLINE-BG-color);
|
||||||
|
border-color: var(--INTERNAL-CODE-INLINE-BORDER-color);
|
||||||
|
color: var(--INTERNAL-CODE-INLINE-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background-color: var(--INTERNAL-CODE-BLOCK-BG-color);
|
||||||
|
border-color: var(--INTERNAL-CODE-BLOCK-BORDER-color);
|
||||||
|
color: var(--INTERNAL-CODE-BLOCK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
background-color: var(--INTERNAL-MAIN-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox img{
|
||||||
|
background-color: var(--INTERNAL-MAIN-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#topbar {
|
||||||
|
background-color: var(--INTERNAL-MAIN-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#body a[aria-disabled="true"],
|
||||||
|
#searchresults .autocomplete-suggestion > .context {
|
||||||
|
color: var(--INTERNAL-MAIN-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-to-clipboard-button {
|
||||||
|
background-color: var(--INTERNAL-CODE-INLINE-BG-color);
|
||||||
|
border-color: var(--INTERNAL-CODE-INLINE-BORDER-color);
|
||||||
|
color: var(--INTERNAL-CODE-INLINE-color);
|
||||||
|
font-family: var(--INTERNAL-CODE-font);
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-to-clipboard-button:hover {
|
||||||
|
background-color: var(--INTERNAL-CODE-INLINE-color);
|
||||||
|
color: var(--INTERNAL-CODE-INLINE-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .copy-to-clipboard-button {
|
||||||
|
border-color: var(--INTERNAL-CODE-BLOCK-BORDER-color);
|
||||||
|
color: var(--INTERNAL-MAIN-LINK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .copy-to-clipboard-button:hover {
|
||||||
|
background-color: var(--INTERNAL-MAIN-LINK-color);
|
||||||
|
border-color: var(--INTERNAL-MAIN-LINK-color);
|
||||||
|
color: var(--INTERNAL-CODE-BLOCK-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand > label {
|
||||||
|
color: var(--INTERNAL-MAIN-LINK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand > label:hover {
|
||||||
|
color: var(--INTERNAL-MAIN-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand > label:after {
|
||||||
|
background-color: var(--INTERNAL-MAIN-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#homelinks {
|
||||||
|
background-color: var(--INTERNAL-MENU-HEADER-BORDER-color);
|
||||||
|
border-color: var(--INTERNAL-MENU-HEADER-BORDER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#homelinks a {
|
||||||
|
color: var(--INTERNAL-MENU-HOME-LINK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#homelinks a:hover {
|
||||||
|
color: var(--INTERNAL-MENU-HOME-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#body a.highlight:after {
|
||||||
|
background-color: var(--INTERNAL-MAIN-LINK-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#body a.highlight:hover:after {
|
||||||
|
background-color: var(--INTERNAL-MAIN-LINK-HOVER-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress {
|
||||||
|
background-color: var(--INTERNAL-MAIN-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: var(--VARIABLE-BOX-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn > * {
|
||||||
|
border-color: var(--VARIABLE-BOX-color);
|
||||||
|
color: var(--VARIABLE-BOX-CAPTION-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn > *:hover,
|
||||||
|
.btn > *:focus,
|
||||||
|
.btn > *:active {
|
||||||
|
background-color: var(--VARIABLE-BOX-BG-color);
|
||||||
|
color: var(--VARIABLE-BOX-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.transparent {
|
||||||
|
--VARIABLE-BOX-BG-color: var(--INTERNAL-BOX-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.transparent:hover,
|
||||||
|
.btn.cstyle.transparent:focus,
|
||||||
|
.btn.cstyle.transparent:active {
|
||||||
|
background-color: var(--INTERNAL-BOX-NEUTRAL-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn.cstyle.transparent > * {
|
||||||
|
--VARIABLE-BOX-color: var(--INTERNAL-BOX-NEUTRAL-color);
|
||||||
|
--VARIABLE-BOX-TEXT-color: var(--VARIABLE-BOX-CAPTION-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link {
|
||||||
|
background-color: var(--INTERNAL-TAG-BG-color);
|
||||||
|
color: var(--INTERNAL-MAIN-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link:before {
|
||||||
|
border-right-color: var(--INTERNAL-TAG-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tags a.tag-link:after {
|
||||||
|
background-color: var(--INTERNAL-MAIN-BG-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
#body .tab-nav-button.active {
|
||||||
|
background-color: var(--INTERNAL-MAIN-BG-color) !important;
|
||||||
|
border-bottom-color: var(--INTERNAL-MAIN-BG-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge > * {
|
||||||
|
border-color: var(--VARIABLE-BOX-TEXT-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge > .badge-content {
|
||||||
|
background-color: var(--VARIABLE-BOX-color);
|
||||||
|
color: var(--VARIABLE-BOX-CAPTION-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge.cstyle.transparent{
|
||||||
|
--VARIABLE-BOX-BG-color: var(--INTERNAL-BOX-BG-color);
|
||||||
|
}
|
BIN
docs/public/fonts/WorkSans-Bold.woff
Normal file
BIN
docs/public/fonts/WorkSans-Bold.woff
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-Bold.woff2
Normal file
BIN
docs/public/fonts/WorkSans-Bold.woff2
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-ExtraLight.woff
Normal file
BIN
docs/public/fonts/WorkSans-ExtraLight.woff
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-ExtraLight.woff2
Normal file
BIN
docs/public/fonts/WorkSans-ExtraLight.woff2
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-Light.woff
Normal file
BIN
docs/public/fonts/WorkSans-Light.woff
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-Light.woff2
Normal file
BIN
docs/public/fonts/WorkSans-Light.woff2
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-Medium.woff
Normal file
BIN
docs/public/fonts/WorkSans-Medium.woff
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-Medium.woff2
Normal file
BIN
docs/public/fonts/WorkSans-Medium.woff2
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-Regular.woff
Normal file
BIN
docs/public/fonts/WorkSans-Regular.woff
Normal file
Binary file not shown.
BIN
docs/public/fonts/WorkSans-Regular.woff2
Normal file
BIN
docs/public/fonts/WorkSans-Regular.woff2
Normal file
Binary file not shown.
355
docs/public/getting-started/config/index.html
Normal file
355
docs/public/getting-started/config/index.html
Normal file
File diff suppressed because one or more lines are too long
240
docs/public/getting-started/index.html
Normal file
240
docs/public/getting-started/index.html
Normal file
File diff suppressed because one or more lines are too long
29
docs/public/getting-started/index.xml
Normal file
29
docs/public/getting-started/index.xml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Getting started on A tool for commands</title>
|
||||||
|
<link>http://example.org/getting-started/index.html</link>
|
||||||
|
<description>Recent content in Getting started on A tool for commands</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language><atom:link href="http://example.org/getting-started/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Install Backy</title>
|
||||||
|
<link>http://example.org/getting-started/install/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/getting-started/install/index.html</guid>
|
||||||
|
<description>Binaries are available from the release page. Make sure to get the correct version for your system, which supports x86_64, ARM64, and i386.
|
||||||
|
Source Install You can install from source. You will need Go installed.
|
||||||
|
Then run:
|
||||||
|
go install git.andrewnw.xyz/CyberShell/backy@master Once set, jump over to the config docs and start configuring your file.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Config File Definitions</title>
|
||||||
|
<link>http://example.org/getting-started/config/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/getting-started/config/index.html</guid>
|
||||||
|
<description>Commands The commands section is for defining commands. These can be run with or without a shell and on a host or locally.
|
||||||
|
See the commands documentation for further information.
|
||||||
|
commands: stop-docker-container: cmd: docker args: - compose - -f /some/path/to/docker-compose.yaml - down # if host is not defined, cmd will be run locally host: some-host backup-docker-container-script: cmd: /path/to/script # The host has to be defined in the config file host: some-host environment: - FOO=BAR - APP=$VAR # defined in .</description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
258
docs/public/getting-started/install/index.html
Normal file
258
docs/public/getting-started/install/index.html
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/public/images/gopher-404.jpg
Normal file
BIN
docs/public/images/gopher-404.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 201 KiB |
278
docs/public/index.html
Normal file
278
docs/public/index.html
Normal file
File diff suppressed because one or more lines are too long
86
docs/public/index.search.js
Normal file
86
docs/public/index.search.js
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
var relearn_search_index = [
|
||||||
|
{
|
||||||
|
"content": "Binaries are available from the release page. Make sure to get the correct version for your system, which supports x86_64, ARM64, and i386.\nSource Install You can install from source. You will need Go installed.\nThen run:\ngo install git.andrewnw.xyz/CyberShell/backy@master Once set, jump over to the config docs and start configuring your file.\n",
|
||||||
|
"description": "This page tells you how to install Backy.\n",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Install Backy",
|
||||||
|
"uri": "/getting-started/install/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "Command lists are for executing commands in sequence and getting notifications from them.\nThe top-level object key can be anything you want.\nkey description type required order Defines the sequence of commands to execute []string yes notifications The notification IDs to use on success and failure []string no name Optional name of the list string no cron Time at which to schedule the list. string no Order The order is an array of commands to execute in order. Each command must be defined.\nNotifications An array of notification IDs to use on success and failure. Must match any of the notifications object map keys.\nName Name is optional for logging. If name is not defined, name will be the object’s map key.\nCron mode Backy also has a cron mode, so one can run backy cron and start a process that schedules jobs to run at times defined in the configuration file.\nAdding cron: 0 0 1 * * * to a cmd-configs object will schedule the list at 1 in the morning. See https://crontab.guru/ for reference.\nTip Note: Backy uses the second field of cron, so add anything except * to the beginning of a regular cron expression.\ncmd-configs: cmds-to-run: # this can be any name you want # all commands have to be defined order: - stop-docker-container - backup-docker-container-script - shell-cmd - hostname notifications: - matrix name: backup-some-server cron: \"0 0 1 * * *\" hostname: name: hostname order: - hostname notifications: - prod-email ",
|
||||||
|
"description": "This page tells you how to get started with Backy.\n",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Command Lists",
|
||||||
|
"uri": "/config/command-lists/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "The yaml top-level map can be any string.\nThe top-level name must be unique.\ncommands: stop-docker-container: cmd: docker Args: - compose - -f /some/path/to/docker-compose.yaml - down # if host is not defined, command will be run locally host: some-host backup-docker-container-script: cmd: /path/to/script # The host has to be defined in either the config file or the SSH Config files host: some-host environment: - FOO=BAR - APP=$VAR Values available for this section:\nname description type required cmd Defines the command to execute string yes args Defines the arguments to the command []string no environment Defines evironment variables for the command []string no host If not specified, the command will execute locally. string no shell Only applicable when host is not specified string no cmd cmd must be a valid command or script to execute.\nargs args must be arguments to cmd as they would be on the command-line:\ncmd [arg1 arg2 ...] Define them in an array:\nargs: - arg1 - arg2 - arg3 host Info If any host is not defined or left blank, the command will run on the local machine.\nHost may or may not be defined in the hosts section.\nInfo If any host from the commands section does not match any object in the hosts section, the Host is assumed to be this value. This value will be used to search in the default SSH config files.\nFor example, say that I have a host defined in my SSH config with the Host defined as web-prod. If I assign a value to host as host: web-prod and don’t specify this value in the hosts object, web-prod will be used as the Host in searching the SSH config files.\nshell If shell is defined and host is NOT defined, the command will run in the specified shell. Make sure to escape any shell input.\nenvironment The environment variables support expansion:\nusing escaped values $VAR or ${VAR} For now the variables have to be defined in an .env file in the same directory as the config file.\nIf using it with host specified, the SSH server has to be configured to accept those env variables.\nIf the command is run locally, the OS’s environment is added.\n",
|
||||||
|
"description": "",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Commands",
|
||||||
|
"uri": "/config/commands/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "If you have not installed Backy, see the install documentation.\n",
|
||||||
|
"description": "This page tells you how to get started with Backy.\n",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Getting started",
|
||||||
|
"uri": "/getting-started/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "Notifications can be sent on command list completion and failure.\nThe supported platforms for notifications are email (SMTP) and Matrix.\nNotifications are defined by type. The top-level object will be the id, and the type is required.\nInfo Type in a cmd-configs object must match one of these.\nnotifications: prod-email: type: mail host: yourhost.tld port: 587 senderaddress: email@domain.tld to: - admin@domain.tld username: smtp-username@domain.tld password: your-password-here matrix: type: matrix home-server: your-home-server.tld room-id: room-id access-token: your-access-token user-id: your-user-id Types recognized are type: mail and type: matrix\nThe type’s object and its keys are listed below.\ntype: mail key description type host Specifies the SMTP host to connect to string port Specifies the SMTP port uint16 senderaddress Address from which to send mail string to Recipients to send emails to []string username SMTP username string password SMTP password string type: matrix key description type home-server Specifies the Matrix server connect to string room-id Specifies the room ID of the room to send messages to string access-token Matrix access token string user-id Matrix user ID string To get your access token (assumes you are using Element) :\nLog in to the account you want to get the access token for. Click on the name in the top left corner, then “Settings”. Click the “Help \u0026 About” tab (left side of the dialog). Scroll to the bottom and click on \u003cclick to reveal\u003e part of Access Token. Copy your access token to a safe place. To get the room ID:\nOn Element or a similar client, navigate to the room. Navigate to the settings from the top menu. Click on Advanced, the room ID is there. Info Make sure to quote the room ID, as YAML spec defines tags using !.\n",
|
||||||
|
"description": "This page tells you how to get set up Backy notifications.\n",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Notifications",
|
||||||
|
"uri": "/config/notifications/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "This is the section on the config file.\nTo use a specific file: backy backup -f /path/to/file\nIf you leave the config path blank, the following paths will be searched in order:\n./backy.yml ./backy.yaml ~/.config/backy.yml ~/.config/backy.yaml Create a file at ~/.config/backy.yml.\nSee the documentation in this section to configure it.\n",
|
||||||
|
"description": "This page tells you how to configure Backy.\n",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Configuring Backy",
|
||||||
|
"uri": "/config/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "This page lists documentation for the CLI.\nSubcommands backy backup Backup executes commands defined in config file. Use the --lists flag to execute the specified commands. If not specified, all lists will be executed. Usage: backy backup [--lists=list1,list2] [flags] Flags: -h, --help help for backup -l, --lists strings Accepts comma-separated names of command lists to execute. Global Flags: -f, --config string config file to read from -v, --verbose Sets verbose level backy exec Exec executes commands defined in config file. Usage: backy exec command ... [flags] Flags: -h, --help help for exec Global Flags: -f, --config string config file to read from -v, --verbose Sets verbose level backy cron Cron starts a scheduler that executes command lists at the time defined in config file. Usage: backy cron [flags] Flags: -h, --help help for cron Global Flags: -f, --config string config file to read from -v, --verbose Sets verbose level backy version Prints the version and exits. Usage: backy version [flags] Flags: -h, --help help for version ",
|
||||||
|
"description": "",
|
||||||
|
"tags": null,
|
||||||
|
"title": "CLI",
|
||||||
|
"uri": "/cli/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "The repo mirrors are:\nhttps://git.andrewnw.xyz/CyberShell/backy https://git.vern.cc/cybershell/backy https://github.com/CybersShell/backy ",
|
||||||
|
"description": "",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Repositories",
|
||||||
|
"uri": "/repositories/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "Backy is a tool for automating data backup and remote command execution. It can work over SSH, and provides completion and failure notifications, error reporting, and more.\nWhy the name Backy? Because I wanted an app for backups.\nTip Feel free to open a PR, raise an issue(s), or request new feature(s).\nFeatures Allows easy configuration of executable commands\nAllows for commands to be run on many hosts over SSH\nCommands can be grouped in list to run in specific order\nNotifications on completion and failure\nRun in cron mode\nFor any command, especially backup commands\n",
|
||||||
|
"description": "",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Backy",
|
||||||
|
"uri": "/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "",
|
||||||
|
"description": "",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Categories",
|
||||||
|
"uri": "/categories/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "Commands The commands section is for defining commands. These can be run with or without a shell and on a host or locally.\nSee the commands documentation for further information.\ncommands: stop-docker-container: cmd: docker args: - compose - -f /some/path/to/docker-compose.yaml - down # if host is not defined, cmd will be run locally host: some-host backup-docker-container-script: cmd: /path/to/script # The host has to be defined in the config file host: some-host environment: - FOO=BAR - APP=$VAR # defined in .env file in config directory shell-cmd: cmd: rsync shell: bash args: - -av - some-host:/path/to/data - ~/Docker/Backups/docker-data hostname: cmd: hostname Lists To execute groups of commands in sequence, use a list configuration.\ncmd-configs: cmds-to-run: # this can be any name you want # all commands have to be defined order: - stop-docker-container - backup-docker-container-script - shell-cmd - hostname notifications: - matrix name: backup-some-server hostname: name: hostname order: - hostname notifications: - prod-email Hosts The hosts object may or may not be defined.\nInfo If any host from a commands object does not match any host object, the needed values will be checked in the default SSH config files.\nhosts: # any ssh_config(5) keys/values not listed here will be looked up in the config file or the default config file some-host: hostname: some-hostname config: ~/.ssh/config user: user privatekeypath: /path/to/private/key port: 22 # can also be env:VAR or the password itself password: file:/path/to/file # can also be env:VAR or the password itself privatekeypassword: file:/path/to/file # only one is supported for now proxyjump: some-proxy-host Notifications The notifications object can have two forms.\nFor more, see the notification object documentation. The top-level map key is id that has to be referenced by the cmd-configs key notifications.\nnotifications: prod-email: type: mail host: yourhost.tld port: 587 senderAddress: email@domain.tld recipients: - admin@domain.tld username: smtp-username@domain.tld password: your-password-here matrix: type: matrix home-server: your-home-server.tld room-id: room-id access-token: your-access-token user-id: your-user-id Logging cmd-std-out controls whether commands output is echoed to StdOut.\nIf logfile is not defined, the log file will be written to the config directory in the file backy.log.\nconsole-disabled controls whether the logging messages are echoed to StdOut. Default is false.\nverbose basically does nothing as all necessary info is already output.\nlogging: verbose: false file: path/to/log/file.log console-disabled: false cmd-std-out: false ",
|
||||||
|
"description": "This page tells you how to configure Backy.\n",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Config File Definitions",
|
||||||
|
"uri": "/getting-started/config/index.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"content": "",
|
||||||
|
"description": "",
|
||||||
|
"tags": null,
|
||||||
|
"title": "Tags",
|
||||||
|
"uri": "/tags/index.html"
|
||||||
|
}
|
||||||
|
]
|
44
docs/public/index.xml
Normal file
44
docs/public/index.xml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Backy on A tool for commands</title>
|
||||||
|
<link>http://example.org/index.html</link>
|
||||||
|
<description>Recent content in Backy on A tool for commands</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language><atom:link href="http://example.org/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Getting started</title>
|
||||||
|
<link>http://example.org/getting-started/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/getting-started/index.html</guid>
|
||||||
|
<description>If you have not installed Backy, see the install documentation.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Configuring Backy</title>
|
||||||
|
<link>http://example.org/config/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/config/index.html</guid>
|
||||||
|
<description>This is the section on the config file.
|
||||||
|
To use a specific file: backy backup -f /path/to/file
|
||||||
|
If you leave the config path blank, the following paths will be searched in order:
|
||||||
|
./backy.yml ./backy.yaml ~/.config/backy.yml ~/.config/backy.yaml Create a file at ~/.config/backy.yml.
|
||||||
|
See the documentation in this section to configure it.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>CLI</title>
|
||||||
|
<link>http://example.org/cli/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/cli/index.html</guid>
|
||||||
|
<description>This page lists documentation for the CLI.
|
||||||
|
Subcommands backy backup Backup executes commands defined in config file. Use the --lists flag to execute the specified commands. If not specified, all lists will be executed. Usage: backy backup [--lists=list1,list2] [flags] Flags: -h, --help help for backup -l, --lists strings Accepts comma-separated names of command lists to execute. Global Flags: -f, --config string config file to read from -v, --verbose Sets verbose level backy exec Exec executes commands defined in config file.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Repositories</title>
|
||||||
|
<link>http://example.org/repositories/index.html</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://example.org/repositories/index.html</guid>
|
||||||
|
<description>The repo mirrors are:
|
||||||
|
https://git.andrewnw.xyz/CyberShell/backy https://git.vern.cc/cybershell/backy https://github.com/CybersShell/backy </description>
|
||||||
|
</item>
|
||||||
|
</channel>
|
||||||
|
</rss>
|
288
docs/public/js/auto-complete.js
Normal file
288
docs/public/js/auto-complete.js
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
/*
|
||||||
|
JavaScript autoComplete v1.0.4+
|
||||||
|
McShelby/hugo-theme-relearn#155
|
||||||
|
- PR #46, PR #75: introducing selectorToInsert and anchor to it
|
||||||
|
- sticky dropdown on scrolling
|
||||||
|
McShelby/hugo-theme-relearn#387
|
||||||
|
- don't empty search input if no data-val is given
|
||||||
|
- don't delete search term but close suggestions when suggestions are open
|
||||||
|
- delete search term when suggestions are closed
|
||||||
|
McShelby/hugo-theme-relearn#452
|
||||||
|
- register focus event ignoring minChars because that doesn't make sense
|
||||||
|
McShelby/hugo-theme-relearn#452
|
||||||
|
- on ESC, close overlay without deleting search term if overlay is open
|
||||||
|
- on ESC, delete search term if overlay is closed
|
||||||
|
- on UP, preventDefault to keep cursor in position
|
||||||
|
|
||||||
|
Copyright (c) 2014 Simon Steinberger / Pixabay
|
||||||
|
GitHub: https://github.com/Pixabay/JavaScript-autoComplete
|
||||||
|
License: http://www.opensource.org/licenses/mit-license.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
var autoComplete = (function(){
|
||||||
|
// "use strict";
|
||||||
|
function autoComplete(options){
|
||||||
|
if (!document.querySelector) return;
|
||||||
|
|
||||||
|
// helpers
|
||||||
|
function hasClass(el, className){ return el.classList ? el.classList.contains(className) : new RegExp('\\b'+ className+'\\b').test(el.className); }
|
||||||
|
|
||||||
|
function addEvent(el, type, handler){
|
||||||
|
if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler);
|
||||||
|
}
|
||||||
|
function removeEvent(el, type, handler){
|
||||||
|
// if (el.removeEventListener) not working in IE11
|
||||||
|
if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler);
|
||||||
|
}
|
||||||
|
function live(elClass, event, cb, context){
|
||||||
|
addEvent(context || document, event, function(e){
|
||||||
|
var found, el = e.target || e.srcElement;
|
||||||
|
while (el && !(found = hasClass(el, elClass))) el = el.parentElement;
|
||||||
|
if (found) cb.call(el, e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var o = {
|
||||||
|
selector: 0,
|
||||||
|
source: 0,
|
||||||
|
minChars: 3,
|
||||||
|
delay: 150,
|
||||||
|
offsetLeft: 0,
|
||||||
|
offsetTop: 1,
|
||||||
|
cache: 1,
|
||||||
|
menuClass: '',
|
||||||
|
selectorToInsert: 0,
|
||||||
|
renderItem: function (item, search){
|
||||||
|
// escape special characters
|
||||||
|
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
||||||
|
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
|
||||||
|
return '<div class="autocomplete-suggestion" data-val="' + item + '">' + item.replace(re, "<b>$1</b>") + '</div>';
|
||||||
|
},
|
||||||
|
onSelect: function(e, term, item){}
|
||||||
|
};
|
||||||
|
for (var k in options) { if (options.hasOwnProperty(k)) o[k] = options[k]; }
|
||||||
|
|
||||||
|
// init
|
||||||
|
var elems = typeof o.selector == 'object' ? [o.selector] : document.querySelectorAll(o.selector);
|
||||||
|
for (var i=0; i<elems.length; i++) {
|
||||||
|
var that = elems[i];
|
||||||
|
|
||||||
|
// create suggestions container "sc"
|
||||||
|
that.sc = document.createElement('div');
|
||||||
|
that.sc.className = 'autocomplete-suggestions '+o.menuClass;
|
||||||
|
|
||||||
|
that.autocompleteAttr = that.getAttribute('autocomplete');
|
||||||
|
that.setAttribute('autocomplete', 'off');
|
||||||
|
that.cache = {};
|
||||||
|
that.last_val = '';
|
||||||
|
|
||||||
|
var parentElement;
|
||||||
|
if (typeof o.selectorToInsert === "string" && document.querySelector(o.selectorToInsert) instanceof HTMLElement) {
|
||||||
|
parentElement = document.querySelector(o.selectorToInsert);
|
||||||
|
}
|
||||||
|
that.updateSC = function(resize, next){
|
||||||
|
var rect = that.getBoundingClientRect();
|
||||||
|
var parentOffsetLeft = 0;
|
||||||
|
var parentOffsetTop = 0;
|
||||||
|
var pageXOffset = 0;
|
||||||
|
var pageYOffset = 0;
|
||||||
|
if (parentElement != false) {
|
||||||
|
parentOffsetLeft = parentElement.getBoundingClientRect().left;
|
||||||
|
parentOffsetTop = parentElement.getBoundingClientRect().top;
|
||||||
|
} else {
|
||||||
|
pageXOffset = window.pageXOffset || document.documentElement.scrollLeft;
|
||||||
|
pageYOffset = window.pageYOffset || document.documentElement.scrollTop;
|
||||||
|
}
|
||||||
|
that.sc.style.left = Math.round(rect.left + pageXOffset + o.offsetLeft - parentOffsetLeft) + 'px';
|
||||||
|
that.sc.style.top = Math.round(rect.bottom + pageYOffset + o.offsetTop - parentOffsetTop) + 'px';
|
||||||
|
that.sc.style.width = Math.round(rect.right - rect.left) + 'px'; // outerWidth
|
||||||
|
if (!resize) {
|
||||||
|
that.sc.style.display = 'block';
|
||||||
|
if (!that.sc.maxHeight) { that.sc.maxHeight = parseInt((window.getComputedStyle ? getComputedStyle(that.sc, null) : that.sc.currentStyle).maxHeight); }
|
||||||
|
if (!that.sc.suggestionHeight) that.sc.suggestionHeight = that.sc.querySelector('.autocomplete-suggestion').offsetHeight;
|
||||||
|
if (that.sc.suggestionHeight)
|
||||||
|
if (!next) that.sc.scrollTop = 0;
|
||||||
|
else {
|
||||||
|
var scrTop = that.sc.scrollTop, selTop = next.getBoundingClientRect().top - that.sc.getBoundingClientRect().top;
|
||||||
|
if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0)
|
||||||
|
that.sc.scrollTop = selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight;
|
||||||
|
else if (selTop < 0)
|
||||||
|
that.sc.scrollTop = selTop + scrTop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
addEvent(window, 'resize', that.updateSC);
|
||||||
|
|
||||||
|
if (typeof o.selectorToInsert === "string" && document.querySelector(o.selectorToInsert) instanceof HTMLElement) {
|
||||||
|
document.querySelector(o.selectorToInsert).appendChild(that.sc);
|
||||||
|
} else {
|
||||||
|
document.body.appendChild(that.sc);
|
||||||
|
}
|
||||||
|
|
||||||
|
live('autocomplete-suggestion', 'mouseleave', function(e){
|
||||||
|
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
||||||
|
if (sel) setTimeout(function(){ sel.className = sel.className.replace('selected', ''); }, 20);
|
||||||
|
}, that.sc);
|
||||||
|
|
||||||
|
live('autocomplete-suggestion', 'mouseover', function(e){
|
||||||
|
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
||||||
|
if (sel) sel.className = sel.className.replace('selected', '');
|
||||||
|
this.className += ' selected';
|
||||||
|
}, that.sc);
|
||||||
|
|
||||||
|
live('autocomplete-suggestion', 'mousedown', function(e){
|
||||||
|
if (hasClass(this, 'autocomplete-suggestion')) { // else outside click
|
||||||
|
var v = this.getAttribute('data-val');
|
||||||
|
that.value = v;
|
||||||
|
o.onSelect(e, v, this);
|
||||||
|
that.sc.style.display = 'none';
|
||||||
|
}
|
||||||
|
}, that.sc);
|
||||||
|
|
||||||
|
that.blurHandler = function(){
|
||||||
|
try { var over_sb = document.querySelector('.autocomplete-suggestions:hover'); } catch(e){ var over_sb = 0; }
|
||||||
|
if (!over_sb) {
|
||||||
|
that.last_val = that.value;
|
||||||
|
that.sc.style.display = 'none';
|
||||||
|
setTimeout(function(){ that.sc.style.display = 'none'; }, 350); // hide suggestions on fast input
|
||||||
|
} else if (that !== document.activeElement) setTimeout(function(){ that.focus(); }, 20);
|
||||||
|
};
|
||||||
|
addEvent(that, 'blur', that.blurHandler);
|
||||||
|
|
||||||
|
var suggest = function(data){
|
||||||
|
var val = that.value;
|
||||||
|
that.cache[val] = data;
|
||||||
|
if (data.length && val.length >= o.minChars) {
|
||||||
|
var s = '';
|
||||||
|
for (var i=0;i<data.length;i++) s += o.renderItem(data[i], val);
|
||||||
|
that.sc.innerHTML = s;
|
||||||
|
that.updateSC(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
that.sc.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
that.keydownHandler = function(e){
|
||||||
|
var key = window.event ? e.keyCode : e.which;
|
||||||
|
// down (40), up (38)
|
||||||
|
if ((key == 40 || key == 38) && that.sc.innerHTML) {
|
||||||
|
e.preventDefault();
|
||||||
|
var next, sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
||||||
|
if (!sel) {
|
||||||
|
next = (key == 40) ? that.sc.querySelector('.autocomplete-suggestion') : that.sc.childNodes[that.sc.childNodes.length - 1]; // first : last
|
||||||
|
next.className += ' selected';
|
||||||
|
if (next.getAttribute('data-val')) that.value = next.getAttribute('data-val');
|
||||||
|
} else {
|
||||||
|
next = (key == 40) ? sel.nextSibling : sel.previousSibling;
|
||||||
|
if (next) {
|
||||||
|
sel.className = sel.className.replace('selected', '');
|
||||||
|
next.className += ' selected';
|
||||||
|
if (next.getAttribute('data-val')) that.value = next.getAttribute('data-val');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sel.className = sel.className.replace('selected', '');
|
||||||
|
that.value = that.last_val;
|
||||||
|
next = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
that.updateSC(0, next);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// esc
|
||||||
|
else if (key == 27) {
|
||||||
|
if (that.sc.style.display != 'none') {
|
||||||
|
// just close the overlay if it's open, and prevent other listeners
|
||||||
|
// from recognizing it; this is not for you!
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopImmediatePropagation();
|
||||||
|
that.sc.style.display = 'none';
|
||||||
|
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
||||||
|
if (sel) {
|
||||||
|
that.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// if no overlay is open, we want to remove the search term and also
|
||||||
|
// want other listeners to recognize it
|
||||||
|
that.value = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// enter
|
||||||
|
else if (key == 13 || key == 9) {
|
||||||
|
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
|
||||||
|
if (sel && that.sc.style.display != 'none') { o.onSelect(e, sel.getAttribute('data-val'), sel); setTimeout(function(){ that.sc.style.display = 'none'; }, 20); }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
addEvent(that, 'keydown', that.keydownHandler);
|
||||||
|
|
||||||
|
that.keyupHandler = function(e){
|
||||||
|
var key = window.event ? e.keyCode : e.which;
|
||||||
|
if (!key || (key < 35 || key > 40) && key != 13 && key != 27) {
|
||||||
|
var val = that.value;
|
||||||
|
if (val.length >= o.minChars) {
|
||||||
|
if (val != that.last_val) {
|
||||||
|
that.last_val = val;
|
||||||
|
clearTimeout(that.timer);
|
||||||
|
if (o.cache) {
|
||||||
|
if (val in that.cache) { suggest(that.cache[val]); return; }
|
||||||
|
// no requests if previous suggestions were empty
|
||||||
|
for (var i=1; i<val.length-o.minChars; i++) {
|
||||||
|
var part = val.slice(0, val.length-i);
|
||||||
|
if (part in that.cache && !that.cache[part].length) { suggest([]); return; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
that.timer = setTimeout(function(){ o.source(val, suggest) }, o.delay);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
that.last_val = val;
|
||||||
|
that.sc.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
addEvent(that, 'keyup', that.keyupHandler);
|
||||||
|
|
||||||
|
that.focusHandler = function(e){
|
||||||
|
that.last_val = '\n';
|
||||||
|
that.keyupHandler(e)
|
||||||
|
};
|
||||||
|
addEvent(that, 'focus', that.focusHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
// public destroy method
|
||||||
|
this.destroy = function(){
|
||||||
|
for (var i=0; i<elems.length; i++) {
|
||||||
|
var that = elems[i];
|
||||||
|
removeEvent(window, 'resize', that.updateSC);
|
||||||
|
removeEvent(that, 'blur', that.blurHandler);
|
||||||
|
removeEvent(that, 'focus', that.focusHandler);
|
||||||
|
removeEvent(that, 'keydown', that.keydownHandler);
|
||||||
|
removeEvent(that, 'keyup', that.keyupHandler);
|
||||||
|
if (that.autocompleteAttr)
|
||||||
|
that.setAttribute('autocomplete', that.autocompleteAttr);
|
||||||
|
else
|
||||||
|
that.removeAttribute('autocomplete');
|
||||||
|
try {
|
||||||
|
if (o.selectorToInsert && document.querySelector(o.selectorToInsert).contains(that.sc)) {
|
||||||
|
document.querySelector(o.selectorToInsert).removeChild(that.sc);
|
||||||
|
} else {
|
||||||
|
document.body.removeChild(that.sc);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log('Destroying error: can\'t find target selector', error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
that = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return autoComplete;
|
||||||
|
})();
|
||||||
|
|
||||||
|
(function(){
|
||||||
|
if (typeof define === 'function' && define.amd)
|
||||||
|
define('autoComplete', function () { return autoComplete; });
|
||||||
|
else if (typeof module !== 'undefined' && module.exports)
|
||||||
|
module.exports = autoComplete;
|
||||||
|
else
|
||||||
|
window.autoComplete = autoComplete;
|
||||||
|
})();
|
7
docs/public/js/clipboard.min.js
vendored
Normal file
7
docs/public/js/clipboard.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/public/js/d3/d3-color.min.js
vendored
Normal file
2
docs/public/js/d3/d3-color.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/public/js/d3/d3-dispatch.min.js
vendored
Normal file
2
docs/public/js/d3/d3-dispatch.min.js
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
// https://d3js.org/d3-dispatch/ v3.0.1 Copyright 2010-2021 Mike Bostock
|
||||||
|
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{})}(this,(function(n){"use strict";var e={value:()=>{}};function t(){for(var n,e=0,t=arguments.length,o={};e<t;++e){if(!(n=arguments[e]+"")||n in o||/[\s.]/.test(n))throw new Error("illegal type: "+n);o[n]=[]}return new r(o)}function r(n){this._=n}function o(n,e){return n.trim().split(/^|\s+/).map((function(n){var t="",r=n.indexOf(".");if(r>=0&&(t=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:t}}))}function i(n,e){for(var t,r=0,o=n.length;r<o;++r)if((t=n[r]).name===e)return t.value}function f(n,t,r){for(var o=0,i=n.length;o<i;++o)if(n[o].name===t){n[o]=e,n=n.slice(0,o).concat(n.slice(o+1));break}return null!=r&&n.push({name:t,value:r}),n}r.prototype=t.prototype={constructor:r,on:function(n,e){var t,r=this._,l=o(n+"",r),a=-1,u=l.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<u;)if(t=(n=l[a]).type)r[t]=f(r[t],n.name,e);else if(null==e)for(t in r)r[t]=f(r[t],n.name,null);return this}for(;++a<u;)if((t=(n=l[a]).type)&&(t=i(r[t],n.name)))return t},copy:function(){var n={},e=this._;for(var t in e)n[t]=e[t].slice();return new r(n)},call:function(n,e){if((t=arguments.length-2)>0)for(var t,r,o=new Array(t),i=0;i<t;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(i=0,t=(r=this._[n]).length;i<t;++i)r[i].value.apply(e,o)},apply:function(n,e,t){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],o=0,i=r.length;o<i;++o)r[o].value.apply(e,t)}},n.dispatch=t,Object.defineProperty(n,"__esModule",{value:!0})}));
|
2
docs/public/js/d3/d3-drag.min.js
vendored
Normal file
2
docs/public/js/d3/d3-drag.min.js
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
// https://d3js.org/d3-drag/ v3.0.0 Copyright 2010-2021 Mike Bostock
|
||||||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-dispatch"),require("d3-selection")):"function"==typeof define&&define.amd?define(["exports","d3-dispatch","d3-selection"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).d3=e.d3||{},e.d3,e.d3)}(this,(function(e,t,n){"use strict";const o={passive:!1},r={capture:!0,passive:!1};function i(e){e.stopImmediatePropagation()}function a(e){e.preventDefault(),e.stopImmediatePropagation()}function u(e){var t=e.document.documentElement,o=n.select(e).on("dragstart.drag",a,r);"onselectstart"in t?o.on("selectstart.drag",a,r):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function c(e,t){var o=e.document.documentElement,i=n.select(e).on("dragstart.drag",null);t&&(i.on("click.drag",a,r),setTimeout((function(){i.on("click.drag",null)}),0)),"onselectstart"in o?i.on("selectstart.drag",null):(o.style.MozUserSelect=o.__noselect,delete o.__noselect)}var l=e=>()=>e;function s(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:u,dx:c,dy:l,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:s}})}function d(e){return!e.ctrlKey&&!e.button}function f(){return this.parentNode}function g(e,t){return null==t?{x:e.x,y:e.y}:t}function h(){return navigator.maxTouchPoints||"ontouchstart"in this}s.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e},e.drag=function(){var e,v,p,b,m=d,y=f,x=g,_=h,w={},T=t.dispatch("start","drag","end"),j=0,E=0;function k(e){e.on("mousedown.drag",M).filter(_).on("touchstart.drag",z).on("touchmove.drag",D,o).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function M(t,o){if(!b&&m.call(this,t,o)){var a=U(this,y.call(this,t,o),t,o,"mouse");a&&(n.select(t.view).on("mousemove.drag",P,r).on("mouseup.drag",q,r),u(t.view),i(t),p=!1,e=t.clientX,v=t.clientY,a("start",t))}}function P(t){if(a(t),!p){var n=t.clientX-e,o=t.clientY-v;p=n*n+o*o>E}w.mouse("drag",t)}function q(e){n.select(e.view).on("mousemove.drag mouseup.drag",null),c(e.view,p),a(e),w.mouse("end",e)}function z(e,t){if(m.call(this,e,t)){var n,o,r=e.changedTouches,a=y.call(this,e,t),u=r.length;for(n=0;n<u;++n)(o=U(this,a,e,t,r[n].identifier,r[n]))&&(i(e),o("start",e,r[n]))}}function D(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=w[o[t].identifier])&&(a(e),n("drag",e,o[t]))}function S(e){var t,n,o=e.changedTouches,r=o.length;for(b&&clearTimeout(b),b=setTimeout((function(){b=null}),500),t=0;t<r;++t)(n=w[o[t].identifier])&&(i(e),n("end",e,o[t]))}function U(e,t,o,r,i,a){var u,c,l,d=T.copy(),f=n.pointer(a||o,t);if(null!=(l=x.call(e,new s("beforestart",{sourceEvent:o,target:k,identifier:i,active:j,x:f[0],y:f[1],dx:0,dy:0,dispatch:d}),r)))return u=l.x-f[0]||0,c=l.y-f[1]||0,function o(a,g,h){var v,p=f;switch(a){case"start":w[i]=o,v=j++;break;case"end":delete w[i],--j;case"drag":f=n.pointer(h||g,t),v=j}d.call(a,e,new s(a,{sourceEvent:g,subject:l,target:k,identifier:i,active:v,x:f[0]+u,y:f[1]+c,dx:f[0]-p[0],dy:f[1]-p[1],dispatch:d}),r)}}return k.filter=function(e){return arguments.length?(m="function"==typeof e?e:l(!!e),k):m},k.container=function(e){return arguments.length?(y="function"==typeof e?e:l(e),k):y},k.subject=function(e){return arguments.length?(x="function"==typeof e?e:l(e),k):x},k.touchable=function(e){return arguments.length?(_="function"==typeof e?e:l(!!e),k):_},k.on=function(){var e=T.on.apply(T,arguments);return e===T?k:e},k.clickDistance=function(e){return arguments.length?(E=(e=+e)*e,k):Math.sqrt(E)},k},e.dragDisable=u,e.dragEnable=c,Object.defineProperty(e,"__esModule",{value:!0})}));
|
2
docs/public/js/d3/d3-ease.min.js
vendored
Normal file
2
docs/public/js/d3/d3-ease.min.js
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
// https://d3js.org/d3-ease/ v3.0.1 Copyright 2010-2021 Mike Bostock, 2001 Robert Penner
|
||||||
|
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).d3=n.d3||{})}(this,(function(n){"use strict";function e(n){return((n*=2)<=1?n*n:--n*(2-n)+1)/2}function t(n){return((n*=2)<=1?n*n*n:(n-=2)*n*n+2)/2}var u=function n(e){function t(n){return Math.pow(n,e)}return e=+e,t.exponent=n,t}(3),r=function n(e){function t(n){return 1-Math.pow(1-n,e)}return e=+e,t.exponent=n,t}(3),a=function n(e){function t(n){return((n*=2)<=1?Math.pow(n,e):2-Math.pow(2-n,e))/2}return e=+e,t.exponent=n,t}(3),o=Math.PI,i=o/2;function c(n){return(1-Math.cos(o*n))/2}function s(n){return 1.0009775171065494*(Math.pow(2,-10*n)-.0009765625)}function f(n){return((n*=2)<=1?s(1-n):2-s(n-1))/2}function h(n){return((n*=2)<=1?1-Math.sqrt(1-n*n):Math.sqrt(1-(n-=2)*n)+1)/2}var p=4/11,M=7.5625;function d(n){return(n=+n)<p?M*n*n:n<.7272727272727273?M*(n-=.5454545454545454)*n+.75:n<.9090909090909091?M*(n-=.8181818181818182)*n+.9375:M*(n-=.9545454545454546)*n+.984375}var l=1.70158,I=function n(e){function t(n){return(n=+n)*n*(e*(n-1)+n)}return e=+e,t.overshoot=n,t}(l),O=function n(e){function t(n){return--n*n*((n+1)*e+n)+1}return e=+e,t.overshoot=n,t}(l),x=function n(e){function t(n){return((n*=2)<1?n*n*((e+1)*n-e):(n-=2)*n*((e+1)*n+e)+2)/2}return e=+e,t.overshoot=n,t}(l),v=2*Math.PI,y=function n(e,t){var u=Math.asin(1/(e=Math.max(1,e)))*(t/=v);function r(n){return e*s(- --n)*Math.sin((u-n)/t)}return r.amplitude=function(e){return n(e,t*v)},r.period=function(t){return n(e,t)},r}(1,.3),b=function n(e,t){var u=Math.asin(1/(e=Math.max(1,e)))*(t/=v);function r(n){return 1-e*s(n=+n)*Math.sin((n+u)/t)}return r.amplitude=function(e){return n(e,t*v)},r.period=function(t){return n(e,t)},r}(1,.3),m=function n(e,t){var u=Math.asin(1/(e=Math.max(1,e)))*(t/=v);function r(n){return((n=2*n-1)<0?e*s(-n)*Math.sin((u-n)/t):2-e*s(n)*Math.sin((u+n)/t))/2}return r.amplitude=function(e){return n(e,t*v)},r.period=function(t){return n(e,t)},r}(1,.3);n.easeBack=x,n.easeBackIn=I,n.easeBackInOut=x,n.easeBackOut=O,n.easeBounce=d,n.easeBounceIn=function(n){return 1-d(1-n)},n.easeBounceInOut=function(n){return((n*=2)<=1?1-d(1-n):d(n-1)+1)/2},n.easeBounceOut=d,n.easeCircle=h,n.easeCircleIn=function(n){return 1-Math.sqrt(1-n*n)},n.easeCircleInOut=h,n.easeCircleOut=function(n){return Math.sqrt(1- --n*n)},n.easeCubic=t,n.easeCubicIn=function(n){return n*n*n},n.easeCubicInOut=t,n.easeCubicOut=function(n){return--n*n*n+1},n.easeElastic=b,n.easeElasticIn=y,n.easeElasticInOut=m,n.easeElasticOut=b,n.easeExp=f,n.easeExpIn=function(n){return s(1-+n)},n.easeExpInOut=f,n.easeExpOut=function(n){return 1-s(n)},n.easeLinear=n=>+n,n.easePoly=a,n.easePolyIn=u,n.easePolyInOut=a,n.easePolyOut=r,n.easeQuad=e,n.easeQuadIn=function(n){return n*n},n.easeQuadInOut=e,n.easeQuadOut=function(n){return n*(2-n)},n.easeSin=c,n.easeSinIn=function(n){return 1==+n?1:1-Math.cos(n*i)},n.easeSinInOut=c,n.easeSinOut=function(n){return Math.sin(n*i)},Object.defineProperty(n,"__esModule",{value:!0})}));
|
2
docs/public/js/d3/d3-interpolate.min.js
vendored
Normal file
2
docs/public/js/d3/d3-interpolate.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/public/js/d3/d3-selection.min.js
vendored
Normal file
2
docs/public/js/d3/d3-selection.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/public/js/d3/d3-timer.min.js
vendored
Normal file
2
docs/public/js/d3/d3-timer.min.js
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
// https://d3js.org/d3-timer/ v3.0.1 Copyright 2010-2021 Mike Bostock
|
||||||
|
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";var n,e,o=0,i=0,r=0,l=0,u=0,a=0,s="object"==typeof performance&&performance.now?performance:Date,c="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function f(){return u||(c(_),u=s.now()+a)}function _(){u=0}function m(){this._call=this._time=this._next=null}function p(t,n,e){var o=new m;return o.restart(t,n,e),o}function w(){f(),++o;for(var t,e=n;e;)(t=u-e._time)>=0&&e._call.call(void 0,t),e=e._next;--o}function d(){u=(l=s.now())+a,o=i=0;try{w()}finally{o=0,function(){var t,o,i=n,r=1/0;for(;i;)i._call?(r>i._time&&(r=i._time),t=i,i=i._next):(o=i._next,i._next=null,i=t?t._next=o:n=o);e=t,y(r)}(),u=0}}function h(){var t=s.now(),n=t-l;n>1e3&&(a-=n,l=t)}function y(t){o||(i&&(i=clearTimeout(i)),t-u>24?(t<1/0&&(i=setTimeout(d,t-s.now()-a)),r&&(r=clearInterval(r))):(r||(l=s.now(),r=setInterval(h,1e3)),o=1,c(d)))}m.prototype=p.prototype={constructor:m,restart:function(t,o,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?f():+i)+(null==o?0:+o),this._next||e===this||(e?e._next=this:n=this,e=this),this._call=t,this._time=i,y()},stop:function(){this._call&&(this._call=null,this._time=1/0,y())}},t.interval=function(t,n,e){var o=new m,i=n;return null==n?(o.restart(t,n,e),o):(o._restart=o.restart,o.restart=function(t,n,e){n=+n,e=null==e?f():+e,o._restart((function r(l){l+=i,o._restart(r,i+=n,e),t(l)}),n,e)},o.restart(t,n,e),o)},t.now=f,t.timeout=function(t,n,e){var o=new m;return n=null==n?0:+n,o.restart((e=>{o.stop(),t(e+n)}),n,e),o},t.timer=p,t.timerFlush=w,Object.defineProperty(t,"__esModule",{value:!0})}));
|
2
docs/public/js/d3/d3-transition.min.js
vendored
Normal file
2
docs/public/js/d3/d3-transition.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/public/js/d3/d3-zoom.min.js
vendored
Normal file
2
docs/public/js/d3/d3-zoom.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/public/js/lunr/lunr.ar.min.js
vendored
Normal file
1
docs/public/js/lunr/lunr.ar.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
docs/public/js/lunr/lunr.da.min.js
vendored
Normal file
18
docs/public/js/lunr/lunr.da.min.js
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*!
|
||||||
|
* Lunr languages, `Danish` language
|
||||||
|
* https://github.com/MihaiValentin/lunr-languages
|
||||||
|
*
|
||||||
|
* Copyright 2014, Mihai Valentin
|
||||||
|
* http://www.mozilla.org/MPL/
|
||||||
|
*/
|
||||||
|
/*!
|
||||||
|
* based on
|
||||||
|
* Snowball JavaScript Library v0.3
|
||||||
|
* http://code.google.com/p/urim/
|
||||||
|
* http://snowball.tartarus.org/
|
||||||
|
*
|
||||||
|
* Copyright 2010, Oleg Mazko
|
||||||
|
* http://www.mozilla.org/MPL/
|
||||||
|
*/
|
||||||
|
|
||||||
|
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
|
18
docs/public/js/lunr/lunr.de.min.js
vendored
Normal file
18
docs/public/js/lunr/lunr.de.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
docs/public/js/lunr/lunr.du.min.js
vendored
Normal file
18
docs/public/js/lunr/lunr.du.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
7
docs/public/js/lunr/lunr.en.min.js
vendored
Normal file
7
docs/public/js/lunr/lunr.en.min.js
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/*!
|
||||||
|
* Lunr languages, `English` language
|
||||||
|
* This is build in into lunr and theirfore needs no other configuration
|
||||||
|
*
|
||||||
|
* Copyright 2022, Sören Weber
|
||||||
|
* http://www.mozilla.org/MPL/
|
||||||
|
*/
|
18
docs/public/js/lunr/lunr.es.min.js
vendored
Normal file
18
docs/public/js/lunr/lunr.es.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
docs/public/js/lunr/lunr.fi.min.js
vendored
Normal file
18
docs/public/js/lunr/lunr.fi.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user