Add files
This commit is contained in:
parent
77499a5bd8
commit
82c56a247d
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,5 +1,5 @@
|
||||
build/
|
||||
assets/
|
||||
content/
|
||||
layouts/
|
||||
settings.toml
|
||||
#assets/
|
||||
#content/
|
||||
#layouts/
|
||||
#settings.toml
|
||||
|
33
assets/css/custom.css
Normal file
33
assets/css/custom.css
Normal file
@ -0,0 +1,33 @@
|
||||
body {
|
||||
padding: 2rem;
|
||||
max-width: 70ch;
|
||||
font-family: 'Source Code Pro', monospace;
|
||||
font-size: 18px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
ul#posts li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
ul#posts {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
span.meta {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
header {
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
p {
|
||||
text-align: justify;
|
||||
}
|
2
assets/css/html5_polyglot/README.txt
Normal file
2
assets/css/html5_polyglot/README.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Source URL:
|
||||
https://docutils.sourceforge.io/docutils/writers/html5_polyglot/
|
332
assets/css/html5_polyglot/math.css
Normal file
332
assets/css/html5_polyglot/math.css
Normal file
@ -0,0 +1,332 @@
|
||||
/*
|
||||
* math2html: convert LaTeX equations to HTML output.
|
||||
*
|
||||
* Copyright (C) 2009,2010 Alex Fernández
|
||||
* 2021 Günter Milde
|
||||
*
|
||||
* Released under the terms of the `2-Clause BSD license'_, in short:
|
||||
* Copying and distribution of this file, with or without modification,
|
||||
* are permitted in any medium without royalty provided the copyright
|
||||
* notice and this notice are preserved.
|
||||
* This file is offered as-is, without any warranty.
|
||||
*
|
||||
* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause
|
||||
*
|
||||
* Based on eLyXer: convert LyX source files to HTML output.
|
||||
* http://elyxer.nongnu.org/
|
||||
*
|
||||
*
|
||||
* CSS file for LaTeX formulas.
|
||||
*
|
||||
* References: http://www.zipcon.net/~swhite/docs/math/math.html
|
||||
* http://www.cs.tut.fi/~jkorpela/math/
|
||||
*/
|
||||
|
||||
/* Formulas */
|
||||
.formula {
|
||||
text-align: center;
|
||||
margin: 1.2em 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
span.formula {
|
||||
white-space: nowrap;
|
||||
}
|
||||
div.formula {
|
||||
padding: 0.5ex;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* Basic features */
|
||||
a.eqnumber {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
clear: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
span.unknown {
|
||||
color: #800000;
|
||||
}
|
||||
span.ignored, span.arraydef {
|
||||
display: none;
|
||||
}
|
||||
.phantom {
|
||||
visibility: hidden;
|
||||
}
|
||||
.formula i {
|
||||
letter-spacing: 0.1ex;
|
||||
}
|
||||
|
||||
/* Alignment */
|
||||
.align-left, .align-l {
|
||||
text-align: left;
|
||||
}
|
||||
.align-right, .align-r {
|
||||
text-align: right;
|
||||
}
|
||||
.align-center, .align-c {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Structures */
|
||||
span.hspace {
|
||||
display: inline-block;
|
||||
}
|
||||
span.overline, span.bar {
|
||||
text-decoration: overline;
|
||||
}
|
||||
.fraction, .fullfraction, .textfraction {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
}
|
||||
span.formula .fraction,
|
||||
.textfraction,
|
||||
span.smallmatrix {
|
||||
font-size: 80%;
|
||||
line-height: 1;
|
||||
}
|
||||
span.numerator {
|
||||
display: block;
|
||||
line-height: 1;
|
||||
}
|
||||
span.denominator {
|
||||
display: block;
|
||||
line-height: 1;
|
||||
padding: 0ex;
|
||||
border-top: thin solid;
|
||||
}
|
||||
.formula sub, .formula sup {
|
||||
font-size: 80%;
|
||||
}
|
||||
sup.numerator, sup.unit {
|
||||
vertical-align: 80%;
|
||||
}
|
||||
sub.denominator, sub.unit {
|
||||
vertical-align: -20%;
|
||||
}
|
||||
span.smallsymbol {
|
||||
font-size: 75%;
|
||||
line-height: 75%;
|
||||
}
|
||||
span.boldsymbol {
|
||||
font-weight: bold;
|
||||
}
|
||||
span.sqrt {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
padding: 0.1ex;
|
||||
}
|
||||
sup.root {
|
||||
position: relative;
|
||||
left: 1.4ex;
|
||||
}
|
||||
span.radical {
|
||||
display: inline-block;
|
||||
padding: 0ex;
|
||||
/* font-size: 160%; for DejaVu, not required with STIX */
|
||||
line-height: 100%;
|
||||
vertical-align: top;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
span.root {
|
||||
display: inline-block;
|
||||
border-top: thin solid;
|
||||
padding: 0ex;
|
||||
vertical-align: middle;
|
||||
}
|
||||
div.formula .bigoperator,
|
||||
.displaystyle .bigoperator,
|
||||
.displaystyle .bigoperator {
|
||||
line-height: 120%;
|
||||
font-size: 140%;
|
||||
padding-right: 0.2ex;
|
||||
}
|
||||
span.fraction .bigoperator,
|
||||
span.scriptstyle .bigoperator {
|
||||
line-height: inherit;
|
||||
font-size: inherit;
|
||||
padding-right: 0;
|
||||
}
|
||||
span.bigdelimiter {
|
||||
display: inline-block;
|
||||
}
|
||||
span.bigdelimiter.size1 {
|
||||
transform: scale(1, 1.2);
|
||||
line-height: 1.2;
|
||||
}
|
||||
span.bigdelimiter.size2 {
|
||||
transform: scale(1, 1.62);
|
||||
line-height: 1.62%;
|
||||
|
||||
}
|
||||
span.bigdelimiter.size3 {
|
||||
transform: scale(1, 2.05);
|
||||
line-height: 2.05%;
|
||||
}
|
||||
span.bigdelimiter.size4 {
|
||||
transform: scale(1, 2.47);
|
||||
line-height: 2.47%;
|
||||
}
|
||||
/* vertically stacked sub and superscript */
|
||||
span.scripts {
|
||||
display: inline-table;
|
||||
vertical-align: middle;
|
||||
padding-right: 0.2ex;
|
||||
}
|
||||
.script {
|
||||
display: table-row;
|
||||
text-align: left;
|
||||
line-height: 150%;
|
||||
}
|
||||
span.limits {
|
||||
display: inline-table;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.limit {
|
||||
display: table-row;
|
||||
line-height: 99%;
|
||||
}
|
||||
sup.limit, sub.limit {
|
||||
line-height: 100%;
|
||||
}
|
||||
span.embellished,
|
||||
span.embellished > .base {
|
||||
display: inline-block;
|
||||
}
|
||||
span.embellished > sup,
|
||||
span.embellished > sub {
|
||||
display: inline-block;
|
||||
font-size: 100%;
|
||||
position: relative;
|
||||
bottom: 0.3em;
|
||||
width: 0px;
|
||||
}
|
||||
span.embellished > sub {
|
||||
top: 0.4em;
|
||||
}
|
||||
|
||||
/* Environments */
|
||||
span.array, span.bracketcases, span.binomial, span.environment {
|
||||
display: inline-table;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
span.arrayrow, span.binomrow {
|
||||
display: table-row;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
span.arraycell, span.bracket, span.case, span.binomcell, span.environmentcell {
|
||||
display: table-cell;
|
||||
padding: 0ex 0.2ex;
|
||||
line-height: 1; /* 99%; */
|
||||
border: 0ex;
|
||||
}
|
||||
.environment.align > .arrayrow > .arraycell.align-l {
|
||||
padding-right: 2em;
|
||||
}
|
||||
|
||||
/* Inline binomials */
|
||||
span.binom {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
font-size: 80%;
|
||||
}
|
||||
span.binomstack {
|
||||
display: block;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
/* Over- and underbraces */
|
||||
span.overbrace {
|
||||
border-top: 2pt solid;
|
||||
}
|
||||
span.underbrace {
|
||||
border-bottom: 2pt solid;
|
||||
}
|
||||
|
||||
/* Stackrel */
|
||||
span.stackrel {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
}
|
||||
span.upstackrel {
|
||||
display: block;
|
||||
padding: 0em;
|
||||
font-size: 80%;
|
||||
line-height: 64%;
|
||||
position: relative;
|
||||
top: 0.15em;
|
||||
|
||||
}
|
||||
span.downstackrel {
|
||||
display: block;
|
||||
vertical-align: bottom;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
/* Fonts */
|
||||
.formula {
|
||||
font-family: STIX, "DejaVu Serif", "DejaVu Math TeX Gyre", serif;
|
||||
}
|
||||
span.radical, /* ensure correct size of square-root sign */
|
||||
span.integral { /* upright integral signs for better alignment of indices */
|
||||
font-family: "STIXIntegralsUp", STIX;
|
||||
/* font-size: 115%; match apparent size with DejaVu */
|
||||
}
|
||||
span.bracket {
|
||||
/* some "STIX" and "DejaVu Math TeX Gyre" bracket pieces don't fit */
|
||||
font-family: "DejaVu Serif", serif;
|
||||
}
|
||||
span.mathsf, span.textsf {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
span.mathrm, span.textrm {
|
||||
font-family: STIX, "DejaVu Serif", "DejaVu Math TeX Gyre", serif;
|
||||
}
|
||||
span.mathtt, span.texttt {
|
||||
font-family: monospace;
|
||||
}
|
||||
span.text, span.textnormal,
|
||||
span.mathsf, span.mathtt, span.mathrm {
|
||||
font-style: normal;
|
||||
}
|
||||
span.fraktur {
|
||||
font-family: "Lucida Blackletter", eufm10, blackletter;
|
||||
}
|
||||
span.blackboard {
|
||||
font-family: Blackboard, msbm10, serif;
|
||||
}
|
||||
span.scriptfont {
|
||||
font-family: "Monotype Corsiva", "Apple Chancery", "URW Chancery L", cursive;
|
||||
font-style: italic;
|
||||
}
|
||||
span.mathscr {
|
||||
font-family: MathJax_Script, rsfs10, cursive;
|
||||
font-style: italic;
|
||||
}
|
||||
span.textsc {
|
||||
font-variant: small-caps;
|
||||
}
|
||||
span.textsl {
|
||||
font-style: oblique;
|
||||
}
|
||||
|
||||
/* Colors */
|
||||
span.colorbox {
|
||||
display: inline-block;
|
||||
padding: 5px;
|
||||
}
|
||||
span.fbox {
|
||||
display: inline-block;
|
||||
border: thin solid black;
|
||||
padding: 2px;
|
||||
}
|
||||
span.boxed, span.framebox {
|
||||
display: inline-block;
|
||||
border: thin solid black;
|
||||
padding: 5px;
|
||||
}
|
276
assets/css/html5_polyglot/minimal.css
Normal file
276
assets/css/html5_polyglot/minimal.css
Normal file
@ -0,0 +1,276 @@
|
||||
/* Minimal style sheet for the HTML output of Docutils. */
|
||||
/* */
|
||||
/* :Author: Günter Milde, based on html4css1.css by David Goodger */
|
||||
/* :Id: $Id: minimal.css 9079 2022-06-19 14:00:56Z milde $ */
|
||||
/* :Copyright: © 2015, 2021 Günter Milde. */
|
||||
/* :License: Released under the terms of the `2-Clause BSD license`_, */
|
||||
/* in short: */
|
||||
/* */
|
||||
/* Copying and distribution of this file, with or without modification, */
|
||||
/* are permitted in any medium without royalty provided the copyright */
|
||||
/* notice and this notice are preserved. */
|
||||
/* */
|
||||
/* This file is offered as-is, without any warranty. */
|
||||
/* */
|
||||
/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
|
||||
|
||||
/* This CSS3 stylesheet defines rules for Docutils elements without */
|
||||
/* HTML equivalent. It is required to make the document semantics visible. */
|
||||
/* */
|
||||
/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */
|
||||
|
||||
/* titles */
|
||||
p.topic-title,
|
||||
p.admonition-title,
|
||||
p.system-message-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
p.sidebar-title,
|
||||
p.rubric {
|
||||
font-weight: bold;
|
||||
font-size: larger;
|
||||
}
|
||||
p.rubric {
|
||||
color: maroon;
|
||||
}
|
||||
p.subtitle,
|
||||
p.section-subtitle,
|
||||
p.sidebar-subtitle {
|
||||
font-weight: bold;
|
||||
margin-top: -0.5em;
|
||||
}
|
||||
h1 + p.subtitle {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
a.toc-backref {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Warnings, Errors */
|
||||
.system-messages h2,
|
||||
.system-message-title,
|
||||
span.problematic {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* Inline Literals */
|
||||
.docutils.literal {
|
||||
font-family: monospace;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
/* do not wrap at hyphens and similar: */
|
||||
.literal > span.pre { white-space: nowrap; }
|
||||
|
||||
/* Lists */
|
||||
|
||||
/* compact and simple lists: no margin between items */
|
||||
.simple li, .simple ul, .simple ol,
|
||||
.compact li, .compact ul, .compact ol,
|
||||
.simple > li p, dl.simple > dd,
|
||||
.compact > li p, dl.compact > dd {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
/* Nested Paragraphs */
|
||||
p:first-child { margin-top: 0; }
|
||||
p:last-child { margin-bottom: 0; }
|
||||
details > p:last-child { margin-bottom: 1em; }
|
||||
|
||||
/* Table of Contents */
|
||||
.contents ul.auto-toc { /* section numbers present */
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
/* Enumerated Lists */
|
||||
ol.arabic { list-style: decimal }
|
||||
ol.loweralpha { list-style: lower-alpha }
|
||||
ol.upperalpha { list-style: upper-alpha }
|
||||
ol.lowerroman { list-style: lower-roman }
|
||||
ol.upperroman { list-style: upper-roman }
|
||||
|
||||
/* Definition Lists and Derivatives */
|
||||
dt .classifier { font-style: italic }
|
||||
dt .classifier:before {
|
||||
font-style: normal;
|
||||
margin: 0.5em;
|
||||
content: ":";
|
||||
}
|
||||
/* Field Lists and similar */
|
||||
/* bold field name, content starts on the same line */
|
||||
dl.field-list,
|
||||
dl.option-list,
|
||||
dl.docinfo {
|
||||
display: flow-root;
|
||||
}
|
||||
dl.field-list > dt,
|
||||
dl.option-list > dt,
|
||||
dl.docinfo > dt {
|
||||
font-weight: bold;
|
||||
clear: left;
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.2em;
|
||||
}
|
||||
/* Offset for field content (corresponds to the --field-name-limit option) */
|
||||
dl.field-list > dd,
|
||||
dl.option-list > dd,
|
||||
dl.docinfo > dd {
|
||||
margin-left: 9em; /* ca. 14 chars in the test examples, fit all Docinfo fields */
|
||||
}
|
||||
/* start nested lists on new line */
|
||||
dd > dl:first-child,
|
||||
dd > ul:first-child,
|
||||
dd > ol:first-child {
|
||||
clear: left;
|
||||
}
|
||||
/* start field-body on a new line after long field names */
|
||||
dl.field-list > dd > *:first-child,
|
||||
dl.option-list > dd > *:first-child
|
||||
{
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Bibliographic Fields (docinfo) */
|
||||
dl.docinfo pre.address {
|
||||
font: inherit;
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
dl.docinfo > dd.authors > p { margin: 0; }
|
||||
|
||||
/* Option Lists */
|
||||
dl.option-list > dt { font-weight: normal; }
|
||||
span.option { white-space: nowrap; }
|
||||
|
||||
/* Footnotes and Citations */
|
||||
|
||||
.footnote, .citation { margin: 1em 0; } /* default paragraph skip (Firefox) */
|
||||
/* hanging indent */
|
||||
.citation { padding-left: 2em; }
|
||||
.footnote { padding-left: 1.7em; }
|
||||
.footnote.superscript { padding-left: 1.0em; }
|
||||
.citation > .label { margin-left: -2em; }
|
||||
.footnote > .label { margin-left: -1.7em; }
|
||||
.footnote.superscript > .label { margin-left: -1.0em; }
|
||||
|
||||
.footnote > .label + *,
|
||||
.citation > .label + * {
|
||||
display: inline-block;
|
||||
margin-top: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
.footnote > .backrefs + *,
|
||||
.citation > .backrefs + * {
|
||||
margin-top: 0;
|
||||
}
|
||||
.footnote > .label + p, .footnote > .backrefs + p,
|
||||
.citation > .label + p, .citation > .backrefs + p {
|
||||
display: inline;
|
||||
vertical-align: inherit;
|
||||
}
|
||||
|
||||
.backrefs { user-select: none; }
|
||||
.backrefs > a { font-style: italic; }
|
||||
|
||||
/* superscript footnotes */
|
||||
a[role="doc-noteref"].superscript,
|
||||
.footnote.superscript > .label,
|
||||
.footnote.superscript > .backrefs {
|
||||
vertical-align: super;
|
||||
font-size: smaller;
|
||||
line-height: 1;
|
||||
}
|
||||
a[role="doc-noteref"].superscript > .fn-bracket,
|
||||
.footnote.superscript > .label > .fn-bracket {
|
||||
/* hide brackets in display but leave for copy/paste */
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
[role="doc-noteref"].superscript + [role="doc-noteref"].superscript {
|
||||
padding-left: 0.15em; /* separate consecutive footnote references */
|
||||
/* TODO: unfortunately, "+" also selects with text between the references. */
|
||||
}
|
||||
|
||||
/* Alignment */
|
||||
.align-left {
|
||||
text-align: left;
|
||||
margin-right: auto;
|
||||
}
|
||||
.align-center {
|
||||
text-align: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.align-right {
|
||||
text-align: right;
|
||||
margin-left: auto;
|
||||
}
|
||||
.align-top { vertical-align: top; }
|
||||
.align-middle { vertical-align: middle; }
|
||||
.align-bottom { vertical-align: bottom; }
|
||||
|
||||
/* reset inner alignment in figures and tables */
|
||||
figure.align-left, figure.align-right,
|
||||
table.align-left, table.align-center, table.align-right {
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
/* Text Blocks */
|
||||
.topic { margin: 1em 2em; }
|
||||
.sidebar,
|
||||
.admonition,
|
||||
.system-message {
|
||||
margin: 1em 2em;
|
||||
border: thin solid;
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
div.line-block { display: block; }
|
||||
div.line-block div.line-block, pre { margin-left: 2em; }
|
||||
|
||||
/* Code line numbers: dropped when copying text from the page */
|
||||
pre.code .ln { display: none; }
|
||||
pre.code code:before {
|
||||
content: attr(data-lineno); /* …, none) fallback not supported by any browser */
|
||||
color: gray;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
td, th {
|
||||
border: thin solid silver;
|
||||
padding: 0 1ex;
|
||||
}
|
||||
.borderless td, .borderless th {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.5em /* separate table cells */
|
||||
}
|
||||
|
||||
table > caption {
|
||||
text-align: left;
|
||||
margin-top: 0.2em;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
table.captionbelow {
|
||||
caption-side: bottom;
|
||||
}
|
||||
|
||||
/* Document Header and Footer */
|
||||
header { border-bottom: 1px solid black; }
|
||||
footer { border-top: 1px solid black; }
|
||||
|
||||
/* Images are block-level by default in Docutils */
|
||||
/* New HTML5 block elements: set display for older browsers */
|
||||
img, header, footer, main, aside, nav, section, figure, video, details {
|
||||
display: block;
|
||||
}
|
||||
/* inline images */
|
||||
p img, p video, figure img, figure video {
|
||||
display: inline;
|
||||
}
|
312
assets/css/html5_polyglot/plain.css
Normal file
312
assets/css/html5_polyglot/plain.css
Normal file
@ -0,0 +1,312 @@
|
||||
/* CSS31_ style sheet for the output of Docutils HTML writers. */
|
||||
/* Rules for easy reading and pre-defined style variants. */
|
||||
/* */
|
||||
/* :Author: Günter Milde, based on html4css1.css by David Goodger */
|
||||
/* :Id: $Id: plain.css 9081 2022-06-19 20:23:12Z milde $ */
|
||||
/* :Copyright: © 2015 Günter Milde. */
|
||||
/* :License: Released under the terms of the `2-Clause BSD license`_, */
|
||||
/* in short: */
|
||||
/* */
|
||||
/* Copying and distribution of this file, with or without modification, */
|
||||
/* are permitted in any medium without royalty provided the copyright */
|
||||
/* notice and this notice are preserved. */
|
||||
/* */
|
||||
/* This file is offered as-is, without any warranty. */
|
||||
/* */
|
||||
/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
|
||||
/* .. _CSS3: https://www.w3.org/Style/CSS/ */
|
||||
|
||||
|
||||
/* Document Structure */
|
||||
/* ****************** */
|
||||
|
||||
/* "page layout" */
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #dbdbdb;
|
||||
--field-indent: 9em; /* default indent of fields in field lists */
|
||||
}
|
||||
main, footer, header {
|
||||
line-height:1.6;
|
||||
/* avoid long lines --> better reading */
|
||||
/* optimum is 45…75 characters/line <http://webtypography.net/2.1.2> */
|
||||
/* OTOH: lines should not be too short because of missing hyphenation, */
|
||||
max-width: 50rem;
|
||||
padding: 1px 2%; /* 1px on top avoids grey bar above title (mozilla) */
|
||||
margin: auto;
|
||||
}
|
||||
main {
|
||||
counter-reset: table figure;
|
||||
background-color: white;
|
||||
}
|
||||
footer, header {
|
||||
font-size: smaller;
|
||||
padding: 0.5em 2%;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Table of Contents */
|
||||
ul.auto-toc > li > p {
|
||||
padding-left: 1em;
|
||||
text-indent: -1em;
|
||||
}
|
||||
nav.contents ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
main > nav.contents ul ul ul ul:not(.auto-toc) {
|
||||
list-style-type: '\2B29\ ';
|
||||
}
|
||||
main > nav.contents ul ul ul ul ul:not(.auto-toc) {
|
||||
list-style-type: '\2B1D\ ';
|
||||
}
|
||||
|
||||
/* Transitions */
|
||||
hr.docutils {
|
||||
width: 80%;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Paragraphs */
|
||||
|
||||
/* vertical space (parskip) */
|
||||
p, ol, ul, dl, li,
|
||||
div.line-block,
|
||||
.footnote, .citation,
|
||||
div > math,
|
||||
table {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
dd, details > p:last-child {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
/* Lists */
|
||||
/* ===== */
|
||||
|
||||
/* Definition Lists */
|
||||
/* Indent lists nested in definition lists */
|
||||
dd > ul:only-child, dd > ol:only-child { padding-left: 1em; }
|
||||
|
||||
/* Description Lists */
|
||||
/* styled like in most dictionaries, encyclopedias etc. */
|
||||
dl.description {
|
||||
display: flow-root;
|
||||
}
|
||||
dl.description > dt {
|
||||
font-weight: bold;
|
||||
clear: left;
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.3em;
|
||||
}
|
||||
dl.description > dd:after {
|
||||
display: table;
|
||||
content: "";
|
||||
clear: left; /* clearfix for empty descriptions */
|
||||
}
|
||||
|
||||
/* Field Lists */
|
||||
|
||||
dl.field-list > dd,
|
||||
dl.docinfo > dd {
|
||||
margin-left: var(--field-indent); /* adapted in media queries or HTML */
|
||||
}
|
||||
|
||||
/* example for custom field-name width */
|
||||
dl.field-list.narrow > dd {
|
||||
--field-indent: 5em;
|
||||
}
|
||||
/* run-in: start field-body on same line after long field names */
|
||||
dl.field-list.run-in > dd p {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Bibliographic Fields */
|
||||
|
||||
/* generally, bibliographic fields use dl.docinfo */
|
||||
/* but dedication and abstract are placed into divs */
|
||||
div.abstract p.topic-title {
|
||||
text-align: center;
|
||||
}
|
||||
div.dedication {
|
||||
margin: 2em 5em;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
}
|
||||
div.dedication p.topic-title {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* disclosures */
|
||||
details { padding-left: 1em; }
|
||||
summary { margin-left: -1em; }
|
||||
|
||||
/* Text Blocks */
|
||||
/* =========== */
|
||||
|
||||
/* Literal Blocks */
|
||||
pre.literal-block, pre.doctest-block,
|
||||
pre.math, pre.code {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
/* Block Quotes and Topics */
|
||||
bockquote { margin: 1em 2em; }
|
||||
blockquote p.attribution,
|
||||
.topic p.attribution {
|
||||
text-align: right;
|
||||
margin-left: 20%;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
/* ====== */
|
||||
|
||||
/* th { vertical-align: bottom; } */
|
||||
|
||||
table tr { text-align: left; }
|
||||
|
||||
/* "booktabs" style (no vertical lines) */
|
||||
table.booktabs {
|
||||
border: 0;
|
||||
border-top: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
table.booktabs * {
|
||||
border: 0;
|
||||
}
|
||||
table.booktabs th {
|
||||
border-bottom: thin solid;
|
||||
}
|
||||
|
||||
/* numbered tables (counter defined in div.document) */
|
||||
table.numbered > caption:before {
|
||||
counter-increment: table;
|
||||
content: "Table " counter(table) ": ";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Explicit Markup Blocks */
|
||||
/* ====================== */
|
||||
|
||||
/* Footnotes and Citations */
|
||||
/* ----------------------- */
|
||||
|
||||
/* line on the left */
|
||||
.footnote-list {
|
||||
border-left: solid thin;
|
||||
padding-left: 0.25em;
|
||||
}
|
||||
|
||||
/* Directives */
|
||||
/* ---------- */
|
||||
|
||||
/* Body Elements */
|
||||
/* ~~~~~~~~~~~~~ */
|
||||
|
||||
/* Images and Figures */
|
||||
|
||||
/* let content flow to the side of aligned images and figures */
|
||||
figure.align-left,
|
||||
img.align-left,
|
||||
video.align-left,
|
||||
object.align-left {
|
||||
clear: left;
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
figure.align-right,
|
||||
img.align-right,
|
||||
video.align-right,
|
||||
object.align-right {
|
||||
clear: right;
|
||||
float: right;
|
||||
margin-left: 1em;
|
||||
}
|
||||
/* Stop floating sidebars, images and figures */
|
||||
h1, h2, h3, h4, footer, header { clear: both; }
|
||||
|
||||
/* Numbered figures */
|
||||
figure.numbered > figcaption > p:before {
|
||||
counter-increment: figure;
|
||||
content: "Figure " counter(figure) ": ";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Admonitions and System Messages */
|
||||
.caution p.admonition-title,
|
||||
.attention p.admonition-title,
|
||||
.danger p.admonition-title,
|
||||
.error p.admonition-title,
|
||||
.warning p.admonition-title,
|
||||
div.error {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
/* Move right. In a layout with fixed margins, */
|
||||
/* it can be moved into the margin. */
|
||||
aside.sidebar {
|
||||
width: 30%;
|
||||
max-width: 26em;
|
||||
float: right;
|
||||
clear: right;
|
||||
margin-left: 1em;
|
||||
margin-right: -1%;
|
||||
background-color: #fffffa;
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
pre.code { padding: 0.7ex }
|
||||
pre.code, code { background-color: #eeeeee }
|
||||
/* basic highlighting: for a complete scheme, see */
|
||||
/* https://docutils.sourceforge.io/sandbox/stylesheets/ */
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||||
|
||||
/* Math */
|
||||
/* for math-output=MathML (for math-output=HTML, see math.css) */
|
||||
math .boldsymbol {
|
||||
font-weight: bold;
|
||||
}
|
||||
mstyle.mathscr, mi.mathscr {
|
||||
font-family: STIX;
|
||||
}
|
||||
|
||||
/* Epigraph */
|
||||
/* Highlights */
|
||||
/* Pull-Quote */
|
||||
/* Compound Paragraph */
|
||||
/* Container */
|
||||
|
||||
/* Inline Markup */
|
||||
/* ============= */
|
||||
|
||||
sup, sub { line-height: 0.8; } /* do not add leading for lines with sup/sub */
|
||||
|
||||
/* Inline Literals */
|
||||
/* possible values: normal, nowrap, pre, pre-wrap, pre-line */
|
||||
/* span.docutils.literal { white-space: pre-wrap; } */
|
||||
|
||||
/* Hyperlink References */
|
||||
a { text-decoration: none; }
|
||||
|
||||
/* External Targets */
|
||||
/* span.target.external */
|
||||
/* Internal Targets */
|
||||
/* span.target.internal */
|
||||
/* Footnote References */
|
||||
/* a[role="doc-noteref"] */
|
||||
/* Citation References */
|
||||
/* a.citation-reference */
|
495
assets/css/html5_polyglot/responsive.css
Normal file
495
assets/css/html5_polyglot/responsive.css
Normal file
@ -0,0 +1,495 @@
|
||||
/* CSS3_ style sheet for the output of Docutils HTML5 writer. */
|
||||
/* Generic responsive design for all screen sizes. */
|
||||
/* */
|
||||
/* :Author: Günter Milde */
|
||||
/* */
|
||||
/* :Id: $Id: responsive.css 9079 2022-06-19 14:00:56Z milde $ */
|
||||
/* :Copyright: © 2021 Günter Milde. */
|
||||
/* :License: Released under the terms of the `2-Clause BSD license`_, */
|
||||
/* in short: */
|
||||
/* */
|
||||
/* Copying and distribution of this file, with or without modification, */
|
||||
/* are permitted in any medium without royalty provided the copyright */
|
||||
/* notice and this notice are preserved. */
|
||||
/* */
|
||||
/* This file is offered as-is, without any warranty. */
|
||||
/* */
|
||||
/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
|
||||
/* .. _CSS3: https://www.w3.org/Style/CSS/ */
|
||||
|
||||
/* Note: */
|
||||
/* This style sheet is provisional: */
|
||||
/* the API is not settled and may change with any minor Docutils version. */
|
||||
|
||||
|
||||
|
||||
/* General Settings */
|
||||
/* ================ */
|
||||
|
||||
|
||||
* { box-sizing: border-box; }
|
||||
|
||||
body {
|
||||
background-color: #fafaf6;
|
||||
margin: auto;
|
||||
--field-indent: 6.6em; /* indent of fields in field lists */
|
||||
--sidebar-margin-right: 0; /* adapted in media queries below */
|
||||
}
|
||||
main {
|
||||
counter-reset: figure table;
|
||||
}
|
||||
body > * {
|
||||
background-color: white;
|
||||
line-height: 1.6;
|
||||
padding: 0.5rem calc(29% - 7.2rem); /* go from 5% to 15% (8.15em/54em) */
|
||||
margin: auto;
|
||||
max-width: 100rem;
|
||||
}
|
||||
sup, sub { /* avoid additional inter-line space for lines with sup/sub */
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
/* Vertical Space (Parskip) */
|
||||
p, ol, ul, dl, li,
|
||||
div.line-block,
|
||||
.topic,
|
||||
.footnote, .citation,
|
||||
div > math,
|
||||
table {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
dl > dd, details > p:last-child {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
/* Indented Blocks */
|
||||
blockquote, figure, .topic {
|
||||
margin: 1em 2%;
|
||||
padding-left: 1em;
|
||||
}
|
||||
div.line-block div.line-block,
|
||||
pre, dd, dl.option-list {
|
||||
margin-left: calc(2% + 1em);
|
||||
}
|
||||
|
||||
/* Object styling */
|
||||
/* ============== */
|
||||
|
||||
footer, header {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
/* Frontmatter */
|
||||
div.dedication {
|
||||
padding: 0;
|
||||
margin: 1.4em 0;
|
||||
font-style: italic;
|
||||
font-size: large;
|
||||
}
|
||||
.dedication p.topic-title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
blockquote p.attribution,
|
||||
.topic p.attribution {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* Table of Contents */
|
||||
nav.contents ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
ul.auto-toc > li > p { /* hanging indent */
|
||||
padding-left: 1em;
|
||||
text-indent: -1em;
|
||||
}
|
||||
main > nav.contents ul:not(.auto-toc) {
|
||||
list-style-type: square;
|
||||
}
|
||||
main > nav.contents ul ul:not(.auto-toc) {
|
||||
list-style-type: disc;
|
||||
}
|
||||
main > nav.contents ul ul ul:not(.auto-toc) {
|
||||
list-style-type: '\2B29\ ';
|
||||
}
|
||||
main > nav.contents ul ul ul ul:not(.auto-toc) {
|
||||
list-style-type: '\2B1D\ ';
|
||||
}
|
||||
main > nav.contents ul ul ul ul ul:not(.auto-toc) {
|
||||
list-style-type: '\2B2A\ ';
|
||||
}
|
||||
nav.contents ul > li::marker {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
/* Transitions */
|
||||
hr {
|
||||
margin: 1em 10%;
|
||||
}
|
||||
|
||||
/* Lists */
|
||||
|
||||
ul, ol {
|
||||
padding-left: 1.1em; /* indent by bullet width (Firefox, DejaVu fonts) */
|
||||
}
|
||||
dl.field-list > dd,
|
||||
dl.docinfo > dd {
|
||||
margin-left: var(--field-indent); /* adapted in media queries or HTML */
|
||||
}
|
||||
dl.option-list > dd {
|
||||
margin-left: 20%;
|
||||
}
|
||||
/* run-in: start field-body on same line after long field names */
|
||||
dl.field-list.run-in > dd p {
|
||||
display: block;
|
||||
}
|
||||
/* "description style" like in most dictionaries, encyclopedias etc. */
|
||||
dl.description {
|
||||
display: flow-root;
|
||||
}
|
||||
dl.description > dt {
|
||||
clear: left;
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.3em;
|
||||
font-weight: bold;
|
||||
}
|
||||
dl.description > dd:after {
|
||||
display: table;
|
||||
content: "";
|
||||
clear: left; /* clearfix for empty descriptions */
|
||||
}
|
||||
/* start lists nested in description/field lists on new line */
|
||||
dd > dl:first-child,
|
||||
dd > ul:first-child,
|
||||
dd > ol:first-child {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
/* disclosures */
|
||||
details { padding-left: 1em; }
|
||||
summary { margin-left: -1em; }
|
||||
|
||||
/* Footnotes and Citations */
|
||||
.footnote {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
/* Images, Figures, and Tables */
|
||||
img {
|
||||
display: block;
|
||||
}
|
||||
p > img, p > a > img,
|
||||
figure > img, figure > a > img {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
figcaption,
|
||||
table > caption {
|
||||
/* font-size: small; */
|
||||
font-style: italic;
|
||||
}
|
||||
figcaption > .legend {
|
||||
font-size: small;
|
||||
font-style: initial;
|
||||
}
|
||||
figure.numbered > figcaption > p:before {
|
||||
counter-increment: figure;
|
||||
content: "Figure " counter(figure) ": ";
|
||||
font-weight: bold;
|
||||
font-style: initial;
|
||||
}
|
||||
|
||||
table tr {
|
||||
text-align: left;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
table.booktabs { /* "booktabs" style (no vertical lines) */
|
||||
border-top: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
}
|
||||
table.booktabs * {
|
||||
border: 0;
|
||||
}
|
||||
table.booktabs th {
|
||||
border-bottom: thin solid;
|
||||
}
|
||||
table.numbered > caption:before {
|
||||
counter-increment: table;
|
||||
content: "Table " counter(table) ": ";
|
||||
font-weight: bold;
|
||||
font-style: initial;
|
||||
}
|
||||
|
||||
/* Admonitions and System Messages */
|
||||
.admonition,
|
||||
div.system-message {
|
||||
border: thin solid silver;
|
||||
margin: 1em 2%;
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
.caution p.admonition-title,
|
||||
.attention p.admonition-title,
|
||||
.danger p.admonition-title,
|
||||
.warning p.admonition-title,
|
||||
div.error {
|
||||
color: maroon;
|
||||
}
|
||||
div.system-message > p > span.literal {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
/* Literal and Code */
|
||||
pre.literal-block, pre.doctest{
|
||||
padding: 0.2em;
|
||||
overflow-x: auto;
|
||||
}
|
||||
.literal-block, .doctest, span.literal {
|
||||
background-color: #f6f9f8;
|
||||
}
|
||||
.system-message span.literal {
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
/* basic highlighting: for a complete scheme, see */
|
||||
/* https://docutils.sourceforge.io/sandbox/stylesheets/ */
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||||
|
||||
/* Hyperlink References */
|
||||
a {
|
||||
text-decoration: none; /* for chromium */
|
||||
/* Wrap links at any place, if this is the only way to prevent overflow */
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
.contents a, a.toc-backref, a.citation-reference {
|
||||
overflow-wrap: inherit;
|
||||
}
|
||||
/* Undecorated Links (see also minimal.css) */
|
||||
/* a.citation-reference, */
|
||||
.citation a.fn-backref {
|
||||
color: inherit;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
*:hover > a.toc-backref:after {
|
||||
content: " \2191"; /* ↑ UPWARDS ARROW */
|
||||
color: grey;
|
||||
}
|
||||
*:hover > a.self-link:after {
|
||||
content: "\1F517"; /* LINK SYMBOL */
|
||||
color: grey;
|
||||
font-size: smaller;
|
||||
margin-left: 0.2em;
|
||||
}
|
||||
/* highlight the target of the current URL */
|
||||
section:target > h2, section:target > h3, section:target > h4,
|
||||
section:target > h5, section:target > h6,
|
||||
.contents :target,
|
||||
.contents:target > .topic-title,
|
||||
[role="doc-biblioentry"]:target > .label,
|
||||
[role="doc-biblioref"]:target,
|
||||
[role="note"]:target, /* Docutils 0.18 ... 0.19 */
|
||||
[role="doc-footnote"]:target, /* Docutils >= 0.20 */
|
||||
[role="doc-noteref"]:target {
|
||||
background-color: #d2e6ec;
|
||||
}
|
||||
|
||||
/* Block Alignment */
|
||||
/* Let content flow to the side of aligned images and figures */
|
||||
|
||||
/* no floats around this elements */
|
||||
footer, header, hr,
|
||||
h1, h2, h3 {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
img.align-left,
|
||||
video.align-left,
|
||||
figure.align-left,
|
||||
table.align-left {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
margin-right: 0.5em;
|
||||
clear: left;
|
||||
float: left;
|
||||
}
|
||||
img.align-right,
|
||||
video.align-right,
|
||||
figure.align-right,
|
||||
table.align-right {
|
||||
margin-left: 0.5em;
|
||||
margin-right: 0;
|
||||
clear: right;
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* Margin Elements */
|
||||
/* see below for screen size dependent rules */
|
||||
.sidebar,
|
||||
.marginal,
|
||||
.admonition.marginal {
|
||||
max-width: 40%;
|
||||
border: none;
|
||||
background-color: #efefea;
|
||||
margin: 0.5em var(--sidebar-margin-right) 0.5em 1em;
|
||||
padding: 0.5em;
|
||||
padding-left: 0.7em;
|
||||
clear: right;
|
||||
float: right;
|
||||
font-size: small;
|
||||
}
|
||||
.sidebar {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
/* Math */
|
||||
/* for math-output=MathML (for math-output=HTML, see math.css) */
|
||||
math .boldsymbol {
|
||||
font-weight: bold;
|
||||
}
|
||||
mstyle.mathscr, mi.mathscr {
|
||||
font-family: STIX;
|
||||
}
|
||||
|
||||
/* Adaptive page layout */
|
||||
/* ==================== */
|
||||
|
||||
@media (max-width: 30em) {
|
||||
/* Smaller margins and no floating elements for small screens */
|
||||
/* (main text less than 40 characters/line) */
|
||||
body > * {
|
||||
padding: 0.5rem 5%;
|
||||
line-height: 1.4
|
||||
}
|
||||
.sidebar,
|
||||
.marginal,
|
||||
.admonition.marginal {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
float: none;
|
||||
}
|
||||
dl.option-list,
|
||||
pre {
|
||||
margin-left: 0;
|
||||
}
|
||||
body {
|
||||
--field-indent: 4em;
|
||||
}
|
||||
dl.field-list.narrow, dl.docinfo, dl.option-list {
|
||||
--field-indent: 2.4em;
|
||||
}
|
||||
pre, pre * {
|
||||
font-size: 0.9em;
|
||||
/* overflow: auto; */
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 54em) {
|
||||
/* Move ToC to the left */
|
||||
/* Main text width before: 70% ≙ 35em ≙ 75…95 chrs (Dejavu/Times) */
|
||||
/* after: ≳ 30em ≙ 54…70 chrs (Dejavu/Times) */
|
||||
body.with-toc {
|
||||
padding-left: 8%;
|
||||
}
|
||||
body.with-toc > * {
|
||||
margin-left: 0;
|
||||
padding-left: 22rem; /* fallback for webkit */
|
||||
padding-left: min(22%, 22rem);
|
||||
padding-right: 7%;
|
||||
}
|
||||
main > nav.contents { /* global ToC */
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: min(25%, 25em);
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
background-color: #fafaf6;
|
||||
padding: 1em 2% 0 2%;
|
||||
overflow: auto;
|
||||
}
|
||||
main > nav.contents > * {
|
||||
padding-left: 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
main > nav.contents a {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 70em) {
|
||||
body {
|
||||
--field-indent: 9em;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 77em) {
|
||||
/* Move marginalia to 6rem from right border */
|
||||
/* .sidebar, */
|
||||
/* .marginal, */
|
||||
/* .admonition.marginal { */
|
||||
/* margin-right: calc(6rem - 15%); */
|
||||
/* } */
|
||||
/* BUG: margin is calculated for break point width */
|
||||
/* workaround: variable + many breakpoints */
|
||||
body > * {
|
||||
padding-left: 18%;
|
||||
padding-right: 28%; /* fallback for webkit */
|
||||
padding-right: min(28%, 28rem);
|
||||
--sidebar-margin-right: -20rem;
|
||||
}
|
||||
/* limit main text to ~ 50em ≙ 85…100 characters DejaVu rsp. …120 Times */
|
||||
body.with-toc > * {
|
||||
padding-left: min(22%, 22rem);
|
||||
padding-right: calc(78% - 50rem); /* fallback for webkit */
|
||||
padding-right: min(78% - 50rem, 28rem);
|
||||
--sidebar-margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 85em) {
|
||||
body.with-toc > * {
|
||||
--sidebar-margin-right: -9rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 90em) {
|
||||
/* move marginalia into the margin */
|
||||
body > * {
|
||||
padding-left: min(22%, 22rem);
|
||||
--sidebar-margin-right: -23rem;
|
||||
}
|
||||
body.with-toc > * {
|
||||
--sidebar-margin-right: -14rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 99em) {
|
||||
/* move marginalia out of main text area */
|
||||
body.with-toc > * {
|
||||
--sidebar-margin-right: -20rem;
|
||||
}
|
||||
body > *, body.with-toc > * { /* for webkit */
|
||||
padding-left: 22rem;
|
||||
padding-right: 28rem;
|
||||
}
|
||||
.admonition.marginal,
|
||||
.marginal {
|
||||
width: 40%; /* make marginal figures, ... "full width" */
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 104em) {
|
||||
body.with-toc > * {
|
||||
--sidebar-margin-right: -23rem;
|
||||
}
|
||||
}
|
568
assets/css/html5_polyglot/tuftig.css
Normal file
568
assets/css/html5_polyglot/tuftig.css
Normal file
@ -0,0 +1,568 @@
|
||||
/* CSS3_ style sheet for the output of Docutils HTML writers. */
|
||||
/* Rules inspired by Edward Tufte's layout design. */
|
||||
/* */
|
||||
/* :Author: Günter Milde */
|
||||
/* based on tufte.css_ by Dave Liepmann */
|
||||
/* and the tufte-latex_ package. */
|
||||
/* */
|
||||
/* :Id: $Id: tuftig.css 9081 2022-06-19 20:23:12Z milde $ */
|
||||
/* :Copyright: © 2020 Günter Milde. */
|
||||
/* :License: Released under the terms of the `2-Clause BSD license`_, */
|
||||
/* in short: */
|
||||
/* */
|
||||
/* Copying and distribution of this file, with or without modification, */
|
||||
/* are permitted in any medium without royalty provided the copyright */
|
||||
/* notice and this notice are preserved. */
|
||||
/* */
|
||||
/* This file is offered as-is, without any warranty. */
|
||||
/* */
|
||||
/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
|
||||
/* .. _CSS3: https://www.w3.org/Style/CSS/ */
|
||||
/* .. _tufte.css: https://edwardtufte.github.io/tufte-css/ */
|
||||
/* .. _tufte-latex_: https://www.ctan.org/pkg/tufte-latex */
|
||||
|
||||
|
||||
/* General Settings */
|
||||
/* ================ */
|
||||
|
||||
body {
|
||||
font-family: et-book, Palatino, Georgia, serif;
|
||||
background-color: #fafaf6;
|
||||
font-size: 1.2em;
|
||||
line-height: 1.4;
|
||||
margin: auto;
|
||||
}
|
||||
main {
|
||||
counter-reset: figure table;
|
||||
}
|
||||
main, header, footer {
|
||||
padding: 0.5em 5%;
|
||||
background-color: #fefef8;
|
||||
max-width: 100rem;
|
||||
}
|
||||
|
||||
/* Spacing */
|
||||
|
||||
/* vertical space (parskip) */
|
||||
p, ol, ul, dl, li,
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
div.line-block,
|
||||
.topic,
|
||||
.footnote, .citation,
|
||||
table {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
dl > dd {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
/* exceptions */
|
||||
p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* Indented Blocks */
|
||||
blockquote,
|
||||
.topic {
|
||||
/* background-color: Honeydew; */
|
||||
margin: 0.5em 2%;
|
||||
padding-left: 1em;
|
||||
}
|
||||
div.line-block div.line-block,
|
||||
dl.option-list,
|
||||
figure > img,
|
||||
pre.literal-block, pre.math,
|
||||
pre.doctest-block, pre.code {
|
||||
/* background-color: LightCyan; */
|
||||
margin-left: calc(2% + 1em);
|
||||
}
|
||||
|
||||
/* Object styling */
|
||||
/* ============== */
|
||||
|
||||
footer, header {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
/* Titles and Headings */
|
||||
|
||||
h2, h3, h4, p.subtitle, p.section-subtitle,
|
||||
p.topic-title, p.sidebar-title, p.sidebar-subtitle {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
text-align: left;
|
||||
}
|
||||
.sectnum {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
h1.title {
|
||||
text-align: left;
|
||||
margin-top: 2.4em;
|
||||
margin-bottom: 2em;
|
||||
font-size: 2.4em;
|
||||
}
|
||||
h1 + p.subtitle {
|
||||
margin-top: -2em;
|
||||
margin-bottom: 2em;
|
||||
font-size: 2.0em;
|
||||
}
|
||||
section {
|
||||
margin-top: 2em;
|
||||
}
|
||||
h2, .contents > p.topic-title {
|
||||
font-size: 2.2em;
|
||||
}
|
||||
h2 + p.section-subtitle {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
h3 + p.section-subtitle {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
p.section-subtitle {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/* Dedication and Abstract */
|
||||
div.dedication {
|
||||
padding: 0;
|
||||
margin-left: 0;
|
||||
font-style: italic;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
/* div.abstract p.topic-title, */
|
||||
div.dedication p.topic-title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Attribution */
|
||||
blockquote p.attribution,
|
||||
.topic p.attribution {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* Table of Contents */
|
||||
nav.contents {
|
||||
padding: 0;
|
||||
font-style: italic;
|
||||
}
|
||||
ul.auto-toc > li > p {
|
||||
padding-left: 1em;
|
||||
text-indent: -1em;
|
||||
}
|
||||
nav.contents ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* Transitions */
|
||||
hr {
|
||||
border: 0;
|
||||
border-top: 1px solid #ccc;
|
||||
margin: 1em 10%;
|
||||
}
|
||||
|
||||
/* Lists */
|
||||
/* Less indent per level */
|
||||
ul, ol {
|
||||
padding-left: 1.1em;
|
||||
}
|
||||
dd {
|
||||
margin-left: 1.5em;
|
||||
}
|
||||
dd > dl:first-child,
|
||||
dd > ul:first-child,
|
||||
dd > ol:first-child {
|
||||
/* lists nested in definition/description/field lists */
|
||||
clear: left;
|
||||
}
|
||||
|
||||
dl.field-list > dd,
|
||||
dl.docinfo > dd,
|
||||
dl.option-list > dd {
|
||||
margin-left: 4em;
|
||||
}
|
||||
/* example for custom field-name width */
|
||||
dl.field-list.narrow > dd {
|
||||
margin-left: 3em;
|
||||
}
|
||||
/* run-in: start field-body on same line after long field names */
|
||||
dl.field-list.run-in > dd p {
|
||||
display: block;
|
||||
}
|
||||
/* italic field name */
|
||||
dl.description > dt,
|
||||
dl.field-list > dt,
|
||||
dl.docinfo > dt {
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* "description style" like in most dictionaries, encyclopedias etc. */
|
||||
dl.description > dt {
|
||||
clear: left;
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
dl.description > dd:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Citation list (style as description list) */
|
||||
.citation-list,
|
||||
.footnote-list {
|
||||
display: contents;
|
||||
}
|
||||
.citation {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
.citation .label {
|
||||
margin-left: -1.5em;
|
||||
}
|
||||
|
||||
/* Images and Figures */
|
||||
img {
|
||||
display: block;
|
||||
}
|
||||
p > img, p > a > img,
|
||||
figure > img, figure > a > img {
|
||||
display: inline;
|
||||
}
|
||||
/* Caption to the left (if there is space) or below: */
|
||||
figure {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
margin: 0.5em 2%;
|
||||
padding-left: 1em;
|
||||
}
|
||||
figure > img,
|
||||
figure.fullwidth > img {
|
||||
margin: 0 0.5em 0.5em 0;
|
||||
padding: 0;
|
||||
}
|
||||
figcaption {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
.fullwidth > figcaption {
|
||||
font-size: inherit;
|
||||
}
|
||||
figure.numbered > figcaption > p:before {
|
||||
counter-increment: figure;
|
||||
content: "Figure " counter(figure) ": ";
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
table tr {
|
||||
text-align: left;
|
||||
}
|
||||
/* th { vertical-align: bottom; } */
|
||||
/* "booktabs" style (no vertical lines) */
|
||||
table.booktabs {
|
||||
border-top: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
}
|
||||
table.booktabs * {
|
||||
border: 0;
|
||||
}
|
||||
table.booktabs th {
|
||||
border-bottom: thin solid;
|
||||
}
|
||||
table.numbered > caption:before {
|
||||
counter-increment: table;
|
||||
content: "Table " counter(table) ": ";
|
||||
}
|
||||
|
||||
/* Admonitions and System Messages */
|
||||
.admonition, .system-message {
|
||||
border-style: solid;
|
||||
border-color: silver;
|
||||
border-width: thin;
|
||||
margin: 1em 0;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.caution p.admonition-title,
|
||||
.attention p.admonition-title,
|
||||
.danger p.admonition-title,
|
||||
.warning p.admonition-title,
|
||||
div.error {
|
||||
color: maroon;
|
||||
}
|
||||
|
||||
/* Literal and Code */
|
||||
pre.literal-block, pre.doctest-block,
|
||||
pre.math, pre.code {
|
||||
/* font-family: Consolas, "Liberation Mono", Menlo, monospace; */
|
||||
/* font-size: 0.9em; */
|
||||
overflow: auto;
|
||||
}
|
||||
/* basic highlighting: for a complete scheme, see */
|
||||
/* https://docutils.sourceforge.io/sandbox/stylesheets/ */
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||||
|
||||
.sans {
|
||||
font-family: "Gill Sans", "Gill Sans MT", Calibri, "Lucida Sans", "Noto Sans", sans-serif;
|
||||
letter-spacing: .02em;
|
||||
}
|
||||
|
||||
/* Hyperlink References */
|
||||
/* underline that clears descenders */
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
a:link {
|
||||
text-decoration: underline;
|
||||
/* text-decoration-skip-ink: auto; nonstandard selector */
|
||||
}
|
||||
/* undecorated links */
|
||||
.contents a:link, a.toc-backref:link, a.image-reference:link,
|
||||
a[role="doc-noteref"]:link, a[role="doc-backlink"]:link, .backrefs a:link,
|
||||
a.citation-reference:link,
|
||||
a[href^="#system-message"] {
|
||||
text-decoration: none;
|
||||
}
|
||||
a:link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Block Alignment */
|
||||
/* Let content flow to the side of aligned images and figures */
|
||||
/* (does not work if the image/figure is a grid element). */
|
||||
|
||||
/* no floats around this elements */
|
||||
footer, header,
|
||||
hr.docutils,
|
||||
h1, h2, h3, .contents > p.topic-title,
|
||||
.fullwidth {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
img.align-left,
|
||||
figure.align-left,
|
||||
table.align-left {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0.5em;
|
||||
clear: left;
|
||||
float: left;
|
||||
}
|
||||
figure.align-left > img {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
|
||||
img.align-right {
|
||||
padding-left: 0.5em;
|
||||
clear: right;
|
||||
float: right;
|
||||
}
|
||||
figure.align-right {
|
||||
clear: right;
|
||||
float: right;
|
||||
}
|
||||
figure.align-right > img {
|
||||
justify-self: right;
|
||||
padding: 0;
|
||||
}
|
||||
table.align-right {
|
||||
margin-right: 2.5%;
|
||||
}
|
||||
|
||||
figure.align-center {
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
figure.align-center > img {
|
||||
padding-left: 0;
|
||||
justify-self: center;
|
||||
}
|
||||
|
||||
/* Margin Elements */
|
||||
/* see below for screen size dependent rules */
|
||||
aside.sidebar,
|
||||
.marginal,
|
||||
.admonition.marginal,
|
||||
.topic.marginal {
|
||||
background-color: #efefea;
|
||||
box-sizing: border-box;
|
||||
margin-left: 2%;
|
||||
margin-right: 0;
|
||||
padding: 0.5em;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
aside.sidebar {
|
||||
background-color: inherit;
|
||||
}
|
||||
figure.marginal > figcaption {
|
||||
font-size: 1em;
|
||||
}
|
||||
.footnote {
|
||||
font-size: smaller;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* Adaptive page layout */
|
||||
|
||||
/* no floating for very small Screens */
|
||||
/* (main text up to ca. 40 characters/line) */
|
||||
@media (min-width: 35em) {
|
||||
main, header, footer {
|
||||
padding: 0.5em calc(15% - 3rem);
|
||||
line-height: 1.6
|
||||
}
|
||||
aside.sidebar,
|
||||
.marginal,
|
||||
.admonition.marginal,
|
||||
.topic.marginal {
|
||||
max-width: 45%;
|
||||
float: right;
|
||||
clear: right;
|
||||
}
|
||||
dl.field-list > dd,
|
||||
dl.docinfo > dd {
|
||||
margin-left: 6em;
|
||||
}
|
||||
dl.option-list > dd {
|
||||
margin-left: 6em;
|
||||
}
|
||||
}
|
||||
|
||||
/* 2 column layout with wide margin */
|
||||
@media (min-width: 65em) {
|
||||
/* use the same grid for main, all sections, and figures */
|
||||
main, section {
|
||||
display: grid;
|
||||
grid-template-columns: [content] minmax(0, 6fr)
|
||||
[margin] 3fr [end];
|
||||
grid-column-gap: calc(3em + 1%);
|
||||
}
|
||||
main > section, section > section {
|
||||
grid-column: 1 / end;
|
||||
}
|
||||
main, header, footer {
|
||||
padding-right: 5%; /* less padding right of margin-column */
|
||||
}
|
||||
section > figure {
|
||||
display: contents; /* to place caption in the margin */
|
||||
}
|
||||
/* Main text elements */
|
||||
main > *, section > *,
|
||||
figure > img,
|
||||
.footnote.align-left, /* override the placement in the margin */
|
||||
.citation.align-left {
|
||||
grid-column: content;
|
||||
}
|
||||
.citation.align-left {
|
||||
font-size: 1em;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
.citation.align-left .label {
|
||||
margin-left: -1.5em;
|
||||
}
|
||||
figure > img { /* indent */
|
||||
margin: 0.5em 2%;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
/* Margin Elements */
|
||||
/* Sidebar, Footnotes, Citations, Captions */
|
||||
aside.sidebar,
|
||||
.citation,
|
||||
.footnote,
|
||||
figcaption,
|
||||
/* table > caption, does not work :(*/
|
||||
.marginal,
|
||||
.admonition.marginal,
|
||||
.topic.marginal {
|
||||
/* color: red; */
|
||||
grid-column: margin;
|
||||
width: auto;
|
||||
max-width: 55em;
|
||||
margin: 0.5em 0;
|
||||
border: none;
|
||||
padding: 0;
|
||||
font-size: 0.8em;
|
||||
text-align: initial; /* overwrite align-* */
|
||||
background-color: inherit;
|
||||
}
|
||||
.admonition.marginal {
|
||||
padding: 0.5em;
|
||||
}
|
||||
figure.marginal {
|
||||
display: block;
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
.citation,
|
||||
.footnote {
|
||||
padding-left: 0;
|
||||
}
|
||||
.citation .label,
|
||||
.footnote .label {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* Fullwidth Elements */
|
||||
h1.title, p.subtitle,
|
||||
dl.docinfo,
|
||||
div.abstract,
|
||||
div.dedication,
|
||||
nav.contents,
|
||||
aside.system-message,
|
||||
pre,
|
||||
.fullwidth,
|
||||
.fullwidth img,
|
||||
.fullwidth figcaption {
|
||||
/* background-color: Linen; */
|
||||
grid-column: content / end;
|
||||
margin-right: calc(10% - 3rem);
|
||||
max-width: 55em;
|
||||
}
|
||||
}
|
||||
|
||||
/* 3 column layout */
|
||||
|
||||
@media (min-width: 100em) {
|
||||
main, header, footer {
|
||||
padding-left: 30%;
|
||||
}
|
||||
main > nav.contents {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
box-sizing: border-box;
|
||||
width: 25%;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
background-color: #fafaf6;
|
||||
padding: 5.5em 2%;
|
||||
overflow: auto;
|
||||
}
|
||||
main > nav.contents > * {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* wrap URLs */
|
||||
/* a:link { */
|
||||
/* white-space: normal; */
|
||||
/* hyphens: none; */
|
||||
/* } */
|
349
assets/css/normalize-8.0.1.css
Normal file
349
assets/css/normalize-8.0.1.css
Normal file
@ -0,0 +1,349 @@
|
||||
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
||||
|
||||
/* Document
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Correct the line height in all browsers.
|
||||
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
||||
*/
|
||||
|
||||
html {
|
||||
line-height: 1.15; /* 1 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
}
|
||||
|
||||
/* Sections
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the margin in all browsers.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the `main` element consistently in IE.
|
||||
*/
|
||||
|
||||
main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the font size and margin on `h1` elements within `section` and
|
||||
* `article` contexts in Chrome, Firefox, and Safari.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
/* Grouping content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in Firefox.
|
||||
* 2. Show the overflow in Edge and IE.
|
||||
*/
|
||||
|
||||
hr {
|
||||
box-sizing: content-box; /* 1 */
|
||||
height: 0; /* 1 */
|
||||
overflow: visible; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/* Text-level semantics
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the gray background on active links in IE 10.
|
||||
*/
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Remove the bottom border in Chrome 57-
|
||||
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none; /* 1 */
|
||||
text-decoration: underline; /* 2 */
|
||||
text-decoration: underline dotted; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font weight in Chrome, Edge, and Safari.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` elements from affecting the line height in
|
||||
* all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
/* Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the border on images inside links in IE 10.
|
||||
*/
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
/* Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Change the font styles in all browsers.
|
||||
* 2. Remove the margin in Firefox and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family: inherit; /* 1 */
|
||||
font-size: 100%; /* 1 */
|
||||
line-height: 1.15; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the overflow in IE.
|
||||
* 1. Show the overflow in Edge.
|
||||
*/
|
||||
|
||||
button,
|
||||
input { /* 1 */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
||||
* 1. Remove the inheritance of text transform in Firefox.
|
||||
*/
|
||||
|
||||
button,
|
||||
select { /* 1 */
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the inability to style clickable types in iOS and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner border and padding in Firefox.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore the focus styles unset by the previous rule.
|
||||
*/
|
||||
|
||||
button:-moz-focusring,
|
||||
[type="button"]:-moz-focusring,
|
||||
[type="reset"]:-moz-focusring,
|
||||
[type="submit"]:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the padding in Firefox.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
padding: 0.35em 0.75em 0.625em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the text wrapping in Edge and IE.
|
||||
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||
* 3. Remove the padding so developers are not caught out when they zero out
|
||||
* `fieldset` elements in all browsers.
|
||||
*/
|
||||
|
||||
legend {
|
||||
box-sizing: border-box; /* 1 */
|
||||
color: inherit; /* 2 */
|
||||
display: table; /* 1 */
|
||||
max-width: 100%; /* 1 */
|
||||
padding: 0; /* 3 */
|
||||
white-space: normal; /* 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||
*/
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the default vertical scrollbar in IE 10+.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in IE 10.
|
||||
* 2. Remove the padding in IE 10.
|
||||
*/
|
||||
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the cursor style of increment and decrement buttons in Chrome.
|
||||
*/
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the odd appearance in Chrome and Safari.
|
||||
* 2. Correct the outline style in Safari.
|
||||
*/
|
||||
|
||||
[type="search"] {
|
||||
-webkit-appearance: textfield; /* 1 */
|
||||
outline-offset: -2px; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner padding in Chrome and Safari on macOS.
|
||||
*/
|
||||
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inability to style clickable types in iOS and Safari.
|
||||
* 2. Change font properties to `inherit` in Safari.
|
||||
*/
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button; /* 1 */
|
||||
font: inherit; /* 2 */
|
||||
}
|
||||
|
||||
/* Interactive
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
* Add the correct display in Edge, IE 10+, and Firefox.
|
||||
*/
|
||||
|
||||
details {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the correct display in all browsers.
|
||||
*/
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* Misc
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10+.
|
||||
*/
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10.
|
||||
*/
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
73
assets/css/old.css
Normal file
73
assets/css/old.css
Normal file
@ -0,0 +1,73 @@
|
||||
/* С Bludit версии Nixhacks.
|
||||
*
|
||||
* Надо позаимствовать отсюда переключение тем день/ночь */
|
||||
|
||||
:root {
|
||||
--b: #000;
|
||||
--g: #888;
|
||||
--w: #fff
|
||||
}
|
||||
|
||||
body {
|
||||
font: 400 18px/1.6 sans-serif;
|
||||
padding: 2rem;
|
||||
background: var(--w);
|
||||
color: var(--b)
|
||||
}
|
||||
|
||||
.container { max-width: 70ch }
|
||||
.mbh { margin: 0 0 .5rem }
|
||||
.mb1 { margin: 0 0 1rem }
|
||||
.mb2 { margin: 0 0 2rem }
|
||||
.g, pre { color: var(--g); overflow: auto; }
|
||||
|
||||
img { width: 100%; image-rendering: -moz-crisp-edges; image-rendering: pixelated }
|
||||
a, a:visited { color: var(--b); text-decoration-color: var(--g) }
|
||||
a:hover { text-decoration-color: var(--b) }
|
||||
pre, ul, ol, blockquote { margin: 0; padding: 0 1rem }
|
||||
/*pre { white-space: pre-wrap }*/
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--b: #fff;
|
||||
--g: #888;
|
||||
--w: #000
|
||||
}
|
||||
}
|
||||
|
||||
.links-content {
|
||||
margin: 18px 0 28px 16px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.links-content ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.links-content ul li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-right: 8px;
|
||||
display: inline-block;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.links-content ul li::before {
|
||||
content: '|';
|
||||
position: relative;
|
||||
left: -6px;
|
||||
}
|
||||
|
||||
.links-content ul li:first-child::before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.links-label {display: inline-block;}
|
||||
|
||||
.separator::after {
|
||||
content: '- - -';
|
||||
}
|
||||
|
||||
.copyright {
|
||||
margin-top: 28px;
|
||||
}
|
74
assets/css/pygments/default.css
Normal file
74
assets/css/pygments/default.css
Normal file
@ -0,0 +1,74 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #ffffcc }
|
||||
.highlight { background: #f8f8f8; }
|
||||
.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
|
||||
.highlight .err { border: 1px solid #FF0000 } /* Error */
|
||||
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #666666 } /* Operator */
|
||||
.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #9C6500 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
|
||||
.highlight .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #E40000 } /* Generic.Error */
|
||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #008400 } /* Generic.Inserted */
|
||||
.highlight .go { color: #717171 } /* Generic.Output */
|
||||
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: #0044DD } /* Generic.Traceback */
|
||||
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #B00040 } /* Keyword.Type */
|
||||
.highlight .m { color: #666666 } /* Literal.Number */
|
||||
.highlight .s { color: #BA2121 } /* Literal.String */
|
||||
.highlight .na { color: #687822 } /* Name.Attribute */
|
||||
.highlight .nb { color: #008000 } /* Name.Builtin */
|
||||
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: #880000 } /* Name.Constant */
|
||||
.highlight .nd { color: #AA22FF } /* Name.Decorator */
|
||||
.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
|
||||
.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
|
||||
.highlight .nf { color: #0000FF } /* Name.Function */
|
||||
.highlight .nl { color: #767600 } /* Name.Label */
|
||||
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #19177C } /* Name.Variable */
|
||||
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #666666 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
|
||||
.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #008000 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #A45A77 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #19177C } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #19177C } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
|
83
assets/css/pygments/monokai.css
Normal file
83
assets/css/pygments/monokai.css
Normal file
@ -0,0 +1,83 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #49483e }
|
||||
.highlight { background: #272822; color: #f8f8f2 }
|
||||
.highlight .c { color: #75715e } /* Comment */
|
||||
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
|
||||
.highlight .esc { color: #f8f8f2 } /* Escape */
|
||||
.highlight .g { color: #f8f8f2 } /* Generic */
|
||||
.highlight .k { color: #66d9ef } /* Keyword */
|
||||
.highlight .l { color: #ae81ff } /* Literal */
|
||||
.highlight .n { color: #f8f8f2 } /* Name */
|
||||
.highlight .o { color: #f92672 } /* Operator */
|
||||
.highlight .x { color: #f8f8f2 } /* Other */
|
||||
.highlight .p { color: #f8f8f2 } /* Punctuation */
|
||||
.highlight .ch { color: #75715e } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #75715e } /* Comment.Multiline */
|
||||
.highlight .cp { color: #75715e } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #75715e } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #75715e } /* Comment.Single */
|
||||
.highlight .cs { color: #75715e } /* Comment.Special */
|
||||
.highlight .gd { color: #f92672 } /* Generic.Deleted */
|
||||
.highlight .ge { color: #f8f8f2; font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #f8f8f2 } /* Generic.Error */
|
||||
.highlight .gh { color: #f8f8f2 } /* Generic.Heading */
|
||||
.highlight .gi { color: #a6e22e } /* Generic.Inserted */
|
||||
.highlight .go { color: #66d9ef } /* Generic.Output */
|
||||
.highlight .gp { color: #f92672; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { color: #f8f8f2; font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #75715e } /* Generic.Subheading */
|
||||
.highlight .gt { color: #f8f8f2 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #66d9ef } /* Keyword.Constant */
|
||||
.highlight .kd { color: #66d9ef } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #f92672 } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #66d9ef } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #66d9ef } /* Keyword.Type */
|
||||
.highlight .ld { color: #e6db74 } /* Literal.Date */
|
||||
.highlight .m { color: #ae81ff } /* Literal.Number */
|
||||
.highlight .s { color: #e6db74 } /* Literal.String */
|
||||
.highlight .na { color: #a6e22e } /* Name.Attribute */
|
||||
.highlight .nb { color: #f8f8f2 } /* Name.Builtin */
|
||||
.highlight .nc { color: #a6e22e } /* Name.Class */
|
||||
.highlight .no { color: #66d9ef } /* Name.Constant */
|
||||
.highlight .nd { color: #a6e22e } /* Name.Decorator */
|
||||
.highlight .ni { color: #f8f8f2 } /* Name.Entity */
|
||||
.highlight .ne { color: #a6e22e } /* Name.Exception */
|
||||
.highlight .nf { color: #a6e22e } /* Name.Function */
|
||||
.highlight .nl { color: #f8f8f2 } /* Name.Label */
|
||||
.highlight .nn { color: #f8f8f2 } /* Name.Namespace */
|
||||
.highlight .nx { color: #a6e22e } /* Name.Other */
|
||||
.highlight .py { color: #f8f8f2 } /* Name.Property */
|
||||
.highlight .nt { color: #f92672 } /* Name.Tag */
|
||||
.highlight .nv { color: #f8f8f2 } /* Name.Variable */
|
||||
.highlight .ow { color: #f92672 } /* Operator.Word */
|
||||
.highlight .w { color: #f8f8f2 } /* Text.Whitespace */
|
||||
.highlight .mb { color: #ae81ff } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #ae81ff } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #e6db74 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #e6db74 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #e6db74 } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #e6db74 } /* Literal.String.Double */
|
||||
.highlight .se { color: #ae81ff } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #e6db74 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #e6db74 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #e6db74 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #e6db74 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #a6e22e } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */
|
83
assets/css/pygments/native.css
Normal file
83
assets/css/pygments/native.css
Normal file
@ -0,0 +1,83 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #404040 }
|
||||
.highlight { background: #202020; color: #d0d0d0 }
|
||||
.highlight .c { color: #ababab; font-style: italic } /* Comment */
|
||||
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
||||
.highlight .esc { color: #d0d0d0 } /* Escape */
|
||||
.highlight .g { color: #d0d0d0 } /* Generic */
|
||||
.highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */
|
||||
.highlight .l { color: #d0d0d0 } /* Literal */
|
||||
.highlight .n { color: #d0d0d0 } /* Name */
|
||||
.highlight .o { color: #d0d0d0 } /* Operator */
|
||||
.highlight .x { color: #d0d0d0 } /* Other */
|
||||
.highlight .p { color: #d0d0d0 } /* Punctuation */
|
||||
.highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */
|
||||
.highlight .gd { color: #d22323 } /* Generic.Deleted */
|
||||
.highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #d22323 } /* Generic.Error */
|
||||
.highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #589819 } /* Generic.Inserted */
|
||||
.highlight .go { color: #cccccc } /* Generic.Output */
|
||||
.highlight .gp { color: #aaaaaa } /* Generic.Prompt */
|
||||
.highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */
|
||||
.highlight .gt { color: #d22323 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */
|
||||
.highlight .ld { color: #d0d0d0 } /* Literal.Date */
|
||||
.highlight .m { color: #51b2fd } /* Literal.Number */
|
||||
.highlight .s { color: #ed9d13 } /* Literal.String */
|
||||
.highlight .na { color: #bbbbbb } /* Name.Attribute */
|
||||
.highlight .nb { color: #2fbccd } /* Name.Builtin */
|
||||
.highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */
|
||||
.highlight .no { color: #40ffff } /* Name.Constant */
|
||||
.highlight .nd { color: #ffa500 } /* Name.Decorator */
|
||||
.highlight .ni { color: #d0d0d0 } /* Name.Entity */
|
||||
.highlight .ne { color: #bbbbbb } /* Name.Exception */
|
||||
.highlight .nf { color: #71adff } /* Name.Function */
|
||||
.highlight .nl { color: #d0d0d0 } /* Name.Label */
|
||||
.highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */
|
||||
.highlight .nx { color: #d0d0d0 } /* Name.Other */
|
||||
.highlight .py { color: #d0d0d0 } /* Name.Property */
|
||||
.highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #40ffff } /* Name.Variable */
|
||||
.highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #666666 } /* Text.Whitespace */
|
||||
.highlight .mb { color: #51b2fd } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #51b2fd } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #51b2fd } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #51b2fd } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #51b2fd } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #ed9d13 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #ed9d13 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #ed9d13 } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #ed9d13 } /* Literal.String.Double */
|
||||
.highlight .se { color: #ed9d13 } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #ed9d13 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #ffa500 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #ed9d13 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #ed9d13 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #71adff } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #40ffff } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #40ffff } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #40ffff } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #40ffff } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */
|
73
assets/css/pygments/pastie.css
Normal file
73
assets/css/pygments/pastie.css
Normal file
@ -0,0 +1,73 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #ffffcc }
|
||||
.highlight { background: #ffffff; }
|
||||
.highlight .c { color: #888888 } /* Comment */
|
||||
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
||||
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
|
||||
.highlight .ch { color: #888888 } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #888888 } /* Comment.Multiline */
|
||||
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #888888 } /* Comment.Single */
|
||||
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
|
||||
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #aa0000 } /* Generic.Error */
|
||||
.highlight .gh { color: #333333 } /* Generic.Heading */
|
||||
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
|
||||
.highlight .go { color: #888888 } /* Generic.Output */
|
||||
.highlight .gp { color: #555555 } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #666666 } /* Generic.Subheading */
|
||||
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
|
||||
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
|
||||
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
|
||||
.highlight .na { color: #336699 } /* Name.Attribute */
|
||||
.highlight .nb { color: #003388 } /* Name.Builtin */
|
||||
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
|
||||
.highlight .nd { color: #555555 } /* Name.Decorator */
|
||||
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
|
||||
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
|
||||
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
|
||||
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
|
||||
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #336699 } /* Name.Variable */
|
||||
.highlight .ow { color: #008800 } /* Operator.Word */
|
||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
|
||||
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #336699 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
|
83
assets/css/pygments/rrt.css
Normal file
83
assets/css/pygments/rrt.css
Normal file
@ -0,0 +1,83 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #0000ff }
|
||||
.highlight { background: #000000; color: #dddddd }
|
||||
.highlight .c { color: #00ff00 } /* Comment */
|
||||
.highlight .err { color: #dddddd } /* Error */
|
||||
.highlight .esc { color: #dddddd } /* Escape */
|
||||
.highlight .g { color: #dddddd } /* Generic */
|
||||
.highlight .k { color: #ff0000 } /* Keyword */
|
||||
.highlight .l { color: #dddddd } /* Literal */
|
||||
.highlight .n { color: #dddddd } /* Name */
|
||||
.highlight .o { color: #dddddd } /* Operator */
|
||||
.highlight .x { color: #dddddd } /* Other */
|
||||
.highlight .p { color: #dddddd } /* Punctuation */
|
||||
.highlight .ch { color: #00ff00 } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #00ff00 } /* Comment.Multiline */
|
||||
.highlight .cp { color: #e5e5e5 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #00ff00 } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #00ff00 } /* Comment.Single */
|
||||
.highlight .cs { color: #00ff00 } /* Comment.Special */
|
||||
.highlight .gd { color: #dddddd } /* Generic.Deleted */
|
||||
.highlight .ge { color: #dddddd } /* Generic.Emph */
|
||||
.highlight .gr { color: #dddddd } /* Generic.Error */
|
||||
.highlight .gh { color: #dddddd } /* Generic.Heading */
|
||||
.highlight .gi { color: #dddddd } /* Generic.Inserted */
|
||||
.highlight .go { color: #dddddd } /* Generic.Output */
|
||||
.highlight .gp { color: #dddddd } /* Generic.Prompt */
|
||||
.highlight .gs { color: #dddddd } /* Generic.Strong */
|
||||
.highlight .gu { color: #dddddd } /* Generic.Subheading */
|
||||
.highlight .gt { color: #dddddd } /* Generic.Traceback */
|
||||
.highlight .kc { color: #ff0000 } /* Keyword.Constant */
|
||||
.highlight .kd { color: #ff0000 } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #ff0000 } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #ff0000 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #ff0000 } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #ee82ee } /* Keyword.Type */
|
||||
.highlight .ld { color: #dddddd } /* Literal.Date */
|
||||
.highlight .m { color: #dddddd } /* Literal.Number */
|
||||
.highlight .s { color: #87ceeb } /* Literal.String */
|
||||
.highlight .na { color: #dddddd } /* Name.Attribute */
|
||||
.highlight .nb { color: #dddddd } /* Name.Builtin */
|
||||
.highlight .nc { color: #dddddd } /* Name.Class */
|
||||
.highlight .no { color: #7fffd4 } /* Name.Constant */
|
||||
.highlight .nd { color: #dddddd } /* Name.Decorator */
|
||||
.highlight .ni { color: #dddddd } /* Name.Entity */
|
||||
.highlight .ne { color: #dddddd } /* Name.Exception */
|
||||
.highlight .nf { color: #ffff00 } /* Name.Function */
|
||||
.highlight .nl { color: #dddddd } /* Name.Label */
|
||||
.highlight .nn { color: #dddddd } /* Name.Namespace */
|
||||
.highlight .nx { color: #dddddd } /* Name.Other */
|
||||
.highlight .py { color: #dddddd } /* Name.Property */
|
||||
.highlight .nt { color: #dddddd } /* Name.Tag */
|
||||
.highlight .nv { color: #eedd82 } /* Name.Variable */
|
||||
.highlight .ow { color: #dddddd } /* Operator.Word */
|
||||
.highlight .w { color: #dddddd } /* Text.Whitespace */
|
||||
.highlight .mb { color: #dddddd } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #dddddd } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #dddddd } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #dddddd } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #dddddd } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #87ceeb } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #87ceeb } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #87ceeb } /* Literal.String.Char */
|
||||
.highlight .dl { color: #87ceeb } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #87ceeb } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #87ceeb } /* Literal.String.Double */
|
||||
.highlight .se { color: #87ceeb } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #87ceeb } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #87ceeb } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #87ceeb } /* Literal.String.Other */
|
||||
.highlight .sr { color: #87ceeb } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #87ceeb } /* Literal.String.Single */
|
||||
.highlight .ss { color: #87ceeb } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #dddddd } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #ffff00 } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #eedd82 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #eedd82 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #eedd82 } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #eedd82 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #dddddd } /* Literal.Number.Integer.Long */
|
83
assets/css/pygments/solarized-light.css
Normal file
83
assets/css/pygments/solarized-light.css
Normal file
@ -0,0 +1,83 @@
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: #93a1a1; background-color: #eee8d5; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: #93a1a1; background-color: #eee8d5; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.highlight .hll { background-color: #eee8d5 }
|
||||
.highlight { background: #fdf6e3; color: #657b83 }
|
||||
.highlight .c { color: #93a1a1; font-style: italic } /* Comment */
|
||||
.highlight .err { color: #657b83; background-color: #dc322f } /* Error */
|
||||
.highlight .esc { color: #657b83 } /* Escape */
|
||||
.highlight .g { color: #657b83 } /* Generic */
|
||||
.highlight .k { color: #859900 } /* Keyword */
|
||||
.highlight .l { color: #657b83 } /* Literal */
|
||||
.highlight .n { color: #657b83 } /* Name */
|
||||
.highlight .o { color: #93a1a1 } /* Operator */
|
||||
.highlight .x { color: #657b83 } /* Other */
|
||||
.highlight .p { color: #657b83 } /* Punctuation */
|
||||
.highlight .ch { color: #93a1a1; font-style: italic } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #93a1a1; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #d33682 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #93a1a1 } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #93a1a1; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #93a1a1; font-style: italic } /* Comment.Special */
|
||||
.highlight .gd { color: #dc322f } /* Generic.Deleted */
|
||||
.highlight .ge { color: #657b83; font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #dc322f } /* Generic.Error */
|
||||
.highlight .gh { color: #657b83; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #859900 } /* Generic.Inserted */
|
||||
.highlight .go { color: #657b83 } /* Generic.Output */
|
||||
.highlight .gp { color: #268bd2; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { color: #657b83; font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #657b83; text-decoration: underline } /* Generic.Subheading */
|
||||
.highlight .gt { color: #268bd2 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #2aa198 } /* Keyword.Constant */
|
||||
.highlight .kd { color: #2aa198 } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #cb4b16 } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #859900 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #859900 } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #b58900 } /* Keyword.Type */
|
||||
.highlight .ld { color: #657b83 } /* Literal.Date */
|
||||
.highlight .m { color: #2aa198 } /* Literal.Number */
|
||||
.highlight .s { color: #2aa198 } /* Literal.String */
|
||||
.highlight .na { color: #657b83 } /* Name.Attribute */
|
||||
.highlight .nb { color: #268bd2 } /* Name.Builtin */
|
||||
.highlight .nc { color: #268bd2 } /* Name.Class */
|
||||
.highlight .no { color: #268bd2 } /* Name.Constant */
|
||||
.highlight .nd { color: #268bd2 } /* Name.Decorator */
|
||||
.highlight .ni { color: #268bd2 } /* Name.Entity */
|
||||
.highlight .ne { color: #268bd2 } /* Name.Exception */
|
||||
.highlight .nf { color: #268bd2 } /* Name.Function */
|
||||
.highlight .nl { color: #268bd2 } /* Name.Label */
|
||||
.highlight .nn { color: #268bd2 } /* Name.Namespace */
|
||||
.highlight .nx { color: #657b83 } /* Name.Other */
|
||||
.highlight .py { color: #657b83 } /* Name.Property */
|
||||
.highlight .nt { color: #268bd2 } /* Name.Tag */
|
||||
.highlight .nv { color: #268bd2 } /* Name.Variable */
|
||||
.highlight .ow { color: #859900 } /* Operator.Word */
|
||||
.highlight .w { color: #657b83 } /* Text.Whitespace */
|
||||
.highlight .mb { color: #2aa198 } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #2aa198 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #2aa198 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #2aa198 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #2aa198 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #2aa198 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #93a1a1 } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #2aa198 } /* Literal.String.Double */
|
||||
.highlight .se { color: #2aa198 } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #2aa198 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #2aa198 } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #2aa198 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #cb4b16 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #2aa198 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #268bd2 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #268bd2 } /* Name.Function.Magic */
|
||||
.highlight .vc { color: #268bd2 } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #268bd2 } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #268bd2 } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #268bd2 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */
|
134
assets/css/restructuredtext.css
Normal file
134
assets/css/restructuredtext.css
Normal file
@ -0,0 +1,134 @@
|
||||
/* Typography
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1.2rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
h1 { font-size: 3.6rem; line-height: 1.2; letter-spacing: -.1rem;}
|
||||
h2 { font-size: 3.0rem; line-height: 1.25; letter-spacing: -.1rem; }
|
||||
h3 { font-size: 2.6rem; line-height: 1.3; letter-spacing: -.1rem; }
|
||||
h4 { font-size: 2.0rem; line-height: 1.35; letter-spacing: -.08rem; }
|
||||
h5 { font-size: 1.6rem; line-height: 1.5; letter-spacing: -.05rem; }
|
||||
h6 { font-size: 1.2rem; line-height: 1.6; letter-spacing: 0; }
|
||||
p { margin: 1rem 0; }
|
||||
|
||||
/* Links
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
|
||||
a {
|
||||
color: #0b6adc;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b6adc;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Code
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
|
||||
pre {
|
||||
font-size: 85%;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: .2rem .5rem;
|
||||
margin: 0 .2rem;
|
||||
white-space: nowrap;
|
||||
background: #f1f1f1;
|
||||
border: 1px solid #e1e1e1;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
display: block;
|
||||
padding: 1rem;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.highlight pre {
|
||||
padding: 1rem;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
span.docutils.literal { /* Inline literal */
|
||||
background-color: #d0d7de;
|
||||
border-radius: 4px;
|
||||
padding: 0 4px 2px 4px;
|
||||
font-family: monospace;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/* Lists
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
|
||||
dt { /* Defenition list title */
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Blockquotes
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
|
||||
blockquote {
|
||||
padding: 0 1em;
|
||||
border-left: .25em solid #d0d7de;
|
||||
}
|
||||
|
||||
/* Tables
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
|
||||
table, th, td {
|
||||
border: 1px solid;
|
||||
border-collapse: collapse;
|
||||
border-color: #afb4b9;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
th {
|
||||
font-weight: 600;
|
||||
background-color: #d0d7de;
|
||||
}
|
||||
|
||||
td p {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
color: #d0d7de;
|
||||
}
|
||||
|
||||
/* Admonitions
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
.admonition {
|
||||
padding: .5rem 1rem;
|
||||
}
|
||||
.admonition-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
.attention {}
|
||||
.caution {}
|
||||
.danger {}
|
||||
.error {}
|
||||
.hint {}
|
||||
.important {}
|
||||
.note {
|
||||
color: #3171b5;
|
||||
background-color: #e5f1fb;
|
||||
}
|
||||
.tip {}
|
||||
.warning {}
|
||||
.topic {}
|
||||
.topic-title {
|
||||
font-weight: bold;
|
||||
}
|
49
content/bash_prompt.rst
Normal file
49
content/bash_prompt.rst
Normal file
@ -0,0 +1,49 @@
|
||||
:title: Функциональный и простой Bash prompt
|
||||
:date: 10 Jul 2022
|
||||
|
||||
====================================
|
||||
Функциональный и простой Bash prompt
|
||||
====================================
|
||||
|
||||
О промптинге в Bash написано очень много, в этой заметке я просто покажу
|
||||
лаконичный и функциональный вариант приглашения командной строки.
|
||||
|
||||
Вот фрагмент из моего **~/.bashrc**:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
# Command line prompt
|
||||
# Print a non-zero exit code
|
||||
__exit_code_ps1() {
|
||||
if [ "$1" -ne 0 ]; then
|
||||
echo "$1 "
|
||||
fi
|
||||
}
|
||||
|
||||
PS1='\[\033[0;92m\]\w \[\033[0;31m\]$(__exit_code_ps1 $?)\[\033[0;15m\]\$ '
|
||||
|
||||
# Git prompt
|
||||
# See /usr/share/git/completion/git-prompt.sh or download from:
|
||||
# https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
|
||||
if [ -f /usr/share/git/completion/git-prompt.sh ]; then
|
||||
. /usr/share/git/completion/git-prompt.sh
|
||||
GIT_PS1_SHOWDIRTYSTATE=1
|
||||
PS1='\[\033[0;96m\]$(__git_ps1 "(%s) ")\[\033[0;92m\]\w \[\033[0;31m\]$(__exit_code_ps1 $?)\[\033[0;15m\]\$ '
|
||||
fi
|
||||
|
||||
На GitHub можно найти много всяких скриптов или даже целых "фремворков" типа `этого`_
|
||||
или `отдельные скрипты`_ для Git. А вы знали, что скрипт для PS1 и так `поставляется`_
|
||||
в пакете Git? Не вижу смысла не использовать его, если только вам не надо
|
||||
как-то иначе работать с PS1.
|
||||
|
||||
.. _этого: https://github.com/ohmybash/oh-my-bash
|
||||
.. _отдельные скрипты: https://github.com/magicmonty/bash-git-prompt
|
||||
.. _поставляется: https://github.com/git/git/tree/master/contrib/completion>
|
||||
|
||||
Помимо **git-prompt.sh** я использую функцию ``__exit_code_ps1()``, которая просто
|
||||
печатает число, если оно не равно нулю. Это очень удобно — всегда видишь код выхода
|
||||
предыдущей запущенной команды, порой очень помогает при отладке скриптов.
|
||||
|
||||
В итоге всё это дело у меня выглядит вот так:
|
||||
|
||||
.. image:: https://i.nxhs.cloud/ovD.png
|
54
content/python_oop.rst
Normal file
54
content/python_oop.rst
Normal file
@ -0,0 +1,54 @@
|
||||
:title: Питонячье ООП на уточках
|
||||
:date: 24 Jul 2021
|
||||
|
||||
========================
|
||||
Питонячье ООП на уточках
|
||||
========================
|
||||
|
||||
Это весьма скупая на информацию напоминалка о работе с классами. Более подробно написали на `proglib.io`_ и в `документации`_.
|
||||
|
||||
.. _proglib.io: https://proglib.io/p/python-oop/
|
||||
.. _документации: https://docs.python.org/3/reference/compound_stmts.html#class-definitions
|
||||
|
||||
Создал файл ``duck.py``:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# Объявляем класс "птица". От него в последствии будет унаследован
|
||||
# класс "уточка". Здесь задаются общие характеристики для всех птиц
|
||||
# и метод "летать". Аргумент `self` – это ссылка на объект, в контексте
|
||||
# которого вызывается метод. Она обязательна для методов классов.
|
||||
|
||||
class Bird(object):
|
||||
can_fly = True
|
||||
wings = 2
|
||||
def fly(self):
|
||||
print('I\'m flying!')
|
||||
|
||||
# Уточка это уже конкретный биологический вид (опускам породы и
|
||||
# виды уточек).
|
||||
# У неё есть имя и цвет (хотя цвет мог быть и у абстрактной птицы).
|
||||
# Также уточка обладает уникальным методом "сказать кря".
|
||||
|
||||
class Duck(Bird):
|
||||
name = 'Duck'
|
||||
color = 'Yellow'
|
||||
def say_quack(self):
|
||||
print('quack!')
|
||||
|
||||
Как этим пользоваться:
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
>>> import duck
|
||||
>>> bird = duck.Bird()
|
||||
>>> duck = duck.Duck()
|
||||
>>> bird.fly()
|
||||
I'm flying!
|
||||
>>> duck.fly()
|
||||
I'm flying!
|
||||
>>> duck.say_quack()
|
||||
quack!
|
||||
>>> duck.name = 'Cool Duck'
|
||||
>>> duck.name
|
||||
'Cool Duck'
|
192
content/rst.rst
Normal file
192
content/rst.rst
Normal file
@ -0,0 +1,192 @@
|
||||
:title: Превью reStructuredText
|
||||
:date: 5 Aug 2022
|
||||
:not_a_post:
|
||||
|
||||
===================================
|
||||
Превью *re*\ **Structured**\ *Text*
|
||||
===================================
|
||||
|
||||
This document is the theme preview.
|
||||
|
||||
Sphinx provides several different types of admonitions.
|
||||
|
||||
.. topic:: This is a topic.
|
||||
|
||||
This is what admonitions are a special case of, according to the docutils
|
||||
documentation.
|
||||
|
||||
.. admonition:: The one with the custom titles
|
||||
|
||||
It's got a certain charm to it.
|
||||
|
||||
.. attention::
|
||||
|
||||
Climate change is real.
|
||||
|
||||
.. caution::
|
||||
|
||||
Cliff ahead: Don't drive off it.
|
||||
|
||||
.. danger::
|
||||
|
||||
Mad scientist at work!
|
||||
|
||||
.. error::
|
||||
|
||||
Does not compute.
|
||||
|
||||
.. hint::
|
||||
|
||||
Insulators insulate, until they are subject to ______ voltage.
|
||||
|
||||
.. important::
|
||||
|
||||
Tech is not neutral, nor is it apolitical.
|
||||
|
||||
.. note::
|
||||
|
||||
This is a note.
|
||||
|
||||
.. tip::
|
||||
|
||||
25% if the service is good.
|
||||
|
||||
.. warning::
|
||||
|
||||
Reader discretion is strongly advised.
|
||||
|
||||
Subheading
|
||||
==========
|
||||
|
||||
.. Press :kbd:`Ctrl+Alt+Del`.
|
||||
|
||||
Subsubheading
|
||||
-------------
|
||||
|
||||
Subsububheading
|
||||
```````````````
|
||||
|
||||
Subsubsubsubheading
|
||||
'''''''''''''''''''
|
||||
|
||||
Subsubsubsubsubheading
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
`Python Docs`_.
|
||||
|
||||
.. _Python Docs: https://docs.python.org/
|
||||
|
||||
The area of a circle is :math:`A_\text{c} = (\pi/4) d^2`.
|
||||
|
||||
.. math::
|
||||
|
||||
\frac{ \sum_{t=0}^{N}f(t,k) }{N}
|
||||
|
||||
Python code block:
|
||||
|
||||
.. code:: python
|
||||
|
||||
@app.get('/api/hello/{name}')
|
||||
async def get_user_info(name: str) -> str:
|
||||
return 'Hello, {}!'.format(name)
|
||||
|
||||
There is an ``inline literal`` and `interpreted text`
|
||||
|
||||
``code-block`` properties supported by Sphinx:
|
||||
|
||||
::
|
||||
|
||||
:linenos: Show line numbers
|
||||
:emphasize-lines: 3,5 Highlight specific lines
|
||||
|
||||
------------
|
||||
|
||||
Bullet lists:
|
||||
|
||||
- This is item 1
|
||||
|
||||
- Sub item
|
||||
|
||||
- 3rd level sub item
|
||||
|
||||
- 4nd level
|
||||
|
||||
- This is item 2
|
||||
|
||||
- Bullets are "-", "*" or "+".
|
||||
Continuing text must be aligned
|
||||
after the bullet and whitespace.
|
||||
|
||||
Note that a blank line is required
|
||||
before the first item and after the
|
||||
last, but is optional between items.
|
||||
|
||||
Enumerated lists:
|
||||
|
||||
3. This is the first item
|
||||
4. This is the second item
|
||||
5. Enumerators are arabic numbers,
|
||||
single letters, or roman numerals
|
||||
6. List items should be sequentially
|
||||
numbered, but need not start at 1
|
||||
(although not all formatters will
|
||||
honour the first index).
|
||||
#. This item is auto-enumerated
|
||||
|
||||
Definition lists:
|
||||
|
||||
what
|
||||
Definition lists associate a term with
|
||||
a definition.
|
||||
|
||||
how
|
||||
The term is a one-line phrase, and the
|
||||
definition is one or more paragraphs or
|
||||
body elements, indented relative to the
|
||||
term. Blank lines are not allowed
|
||||
between term and definition.
|
||||
|
||||
Field Lists:
|
||||
|
||||
:Authors:
|
||||
Tony J. (Tibs) Ibbs,
|
||||
David Goodger
|
||||
|
||||
(and sundry other good-natured folks)
|
||||
|
||||
:Version: 1.0 of 2001/08/08
|
||||
:Dedication: To my father.
|
||||
|
||||
Block quotes are just:
|
||||
|
||||
Indented paragraphs,
|
||||
|
||||
and they may nest.
|
||||
|
||||
Grid table:
|
||||
|
||||
+------------+------------+-----------+
|
||||
| Header 1 | Header 2 | Header 3 |
|
||||
+============+============+===========+
|
||||
| body row 1 | column 2 | column 3 |
|
||||
+------------+------------+-----------+
|
||||
| body row 2 | Cells may span columns.|
|
||||
+------------+------------+-----------+
|
||||
| body row 3 | Cells may | - Cells |
|
||||
+------------+ span rows. | - contain |
|
||||
| body row 4 | | - blocks. |
|
||||
+------------+------------+-----------+
|
||||
|
||||
Simple table:
|
||||
|
||||
===== ===== ======
|
||||
Inputs Output
|
||||
------------ ------
|
||||
A B A or B
|
||||
===== ===== ======
|
||||
False False False
|
||||
True False True
|
||||
False True True
|
||||
True True True
|
||||
===== ===== ======
|
||||
|
335
content/this_blog.rst
Normal file
335
content/this_blog.rst
Normal file
@ -0,0 +1,335 @@
|
||||
:title: Как я написал этот блог
|
||||
:date: 5 Aug 2022
|
||||
|
||||
=======================
|
||||
Как я написал этот блог
|
||||
=======================
|
||||
|
||||
Предыстория
|
||||
===========
|
||||
|
||||
Я очень давно планировал написать блог. Именно что написать CMS для ведения
|
||||
блога. Если погуглить, то CMS для этих целей сотни на разных языках с разным
|
||||
позиционированием и фичами. Но мне хотелось своего.
|
||||
|
||||
Первые попытки создать сайт были на `Flask`_, особым успехом не увенчались,
|
||||
но это была хорошая практика и я немного прокачал свой уровень программирования.
|
||||
|
||||
Для блога я не хотел использовать базу данных. Вместо этого я хранил статьи в
|
||||
исходном Markdown, а метаданные по каждой статье писал в отдельный JSON, который
|
||||
заменял мне БД. С тем же успехом я мог бы использовать SQLite, но мне нужно было
|
||||
хранить контент в text/plain.
|
||||
|
||||
Блог даже работал, но мне хотелось сделать админку, чтобы можно было писать
|
||||
прямо в браузере. На этой части разработка заглохла и я окончательно запутался в
|
||||
импортах в Python)
|
||||
|
||||
Прошло ещё много времени, я вернулся к идее, но решил сделать ставку на простоту
|
||||
и начал писать на `Bottle`_. Здесь разработка остановилась не дойдя даже до
|
||||
варианта хоть как-то работающей системы. Причины скорее всего надо искать в
|
||||
лени.
|
||||
|
||||
Устав я взял `CMS Bludit`_ и стал вести свои редкие заметки в нём. Решение не
|
||||
самое плохое, но и не супер отличное. Для простой кастомизации футера пришлось
|
||||
городить костыли.
|
||||
|
||||
.. _Flask: https://flask.palletsprojects.com/
|
||||
.. _Bottle: https://bottlepy.org/
|
||||
.. _CMS Bludit: https://www.bludit.com/ru/
|
||||
|
||||
Статика VS динамика
|
||||
===================
|
||||
|
||||
Преимуществ у статических сайтов много. Об этом уже много написано. Мне больше
|
||||
всего в статических сайтах нравится то, что:
|
||||
|
||||
* роутингом запросов не управляет какой-либо скрипт, я могу свободно
|
||||
распоряжаться тем, что у меня есть в DocumentRoot;
|
||||
* не нужно настраивать application-сервер и реверс-прокси на него.
|
||||
|
||||
С редактированием сайта чуть сложнее, так как сперва надо внести изменения
|
||||
локально, а затем заменить изменившиеся файлы на сервере. Но и тут есть
|
||||
какие-то решения.
|
||||
|
||||
Я рассматривал уже готовые генераторы статических сайтов, но у них всех были
|
||||
фатальные недостатки:
|
||||
|
||||
* они сложные и требуют изучения документации чтобы начать писать;
|
||||
* написать собственную тему задача весьма непростая;
|
||||
* они написаны не мной.
|
||||
|
||||
Здесь и рождается мой велосипед, которому я не придумал названия. Буду называть
|
||||
его `генератором`.
|
||||
|
||||
*re*\ **Structured**\ *Text*
|
||||
============================
|
||||
|
||||
Я очень долго писал на Markdown, но в один момент понял, что возможностей языка
|
||||
стало нехватать. Тут пришёлся очень кстати `Python-Markdown`_ к которому можно
|
||||
было прикручивать `расширения`_. Одно даже сам `написал`_.
|
||||
|
||||
Постепенно я пришёл к `reStructuredText`_. Все приколюхи, которые в нём есть
|
||||
существуют не за счёт расширения синтаксиса плагинами, а заложены в спецификации.
|
||||
Функциональности из коробки хватает чтобы писать даже `формулы`_.
|
||||
|
||||
Такие вещи делаются через `роли` и `директивы`. Некоторые готовые директивы есть
|
||||
в системе документации `Sphinx`_. Их я собираюсь потихоньку скопировать к себе.
|
||||
|
||||
Ещё одно большое преимущество перед Markdown состоит в том, что reStructuredText
|
||||
поддерживает атрибуты. Вот как это выглядит:
|
||||
|
||||
.. code-block:: rst
|
||||
|
||||
:title: Как я написал этот блог
|
||||
:date: 5 Aug 2022
|
||||
|
||||
Это нативная фича, которую можно использовать в статьях для добавления метаданных.
|
||||
|
||||
По сути это место, где можно сделать настройки, касающиеся отдельно взятой статьи.
|
||||
|
||||
Большинство генераторов статических сайтов колхозят нечно подобное в Markdown, делая
|
||||
исходник статьи непригодным для парсинга другими инструментами. Это причина по
|
||||
которой в старой реализации блога мне пришлось использовать JSON для метаданных.
|
||||
|
||||
.. _Sphinx: https://www.sphinx-doc.org/en/master/index.html
|
||||
.. _Python-Markdown: https://python-markdown.github.io/
|
||||
.. _расширения: https://python-markdown.github.io/extensions/
|
||||
.. _написал: https://pypi.org/project/markdown-alerts/
|
||||
.. _rST: https://docutils.sourceforge.io/rst.html
|
||||
.. _формулы: https://docutils.sourceforge.io/docs/ref/rst/mathematics.html
|
||||
|
||||
Обзор
|
||||
=====
|
||||
|
||||
Сайт состоит из следующих частей.
|
||||
|
||||
rst_blg.py
|
||||
Непосредственно код генератора. Сейчас там всего около 200 строк без учёта
|
||||
комментариев.
|
||||
|
||||
requirements.txt
|
||||
Список зависимостей. Стараюсь держать минимум. Пока что там: `docutils`,
|
||||
`jinja2`, `toml` и `pygments`.
|
||||
|
||||
settings.toml
|
||||
Файл с настройками. Здесь можно переопределить практически всё.
|
||||
|
||||
Makefile
|
||||
Через него запускаются команды для сборки сайта и некоторые другие. Не
|
||||
является обязательным, но с ним удобнее.
|
||||
|
||||
layouts
|
||||
Директория для шаблонов Jinja2.
|
||||
|
||||
assets
|
||||
Директория для хранения статических файлов, будь то CSS, JS или изображения.
|
||||
Всё что нужно для визуального оформления страниц. Внутренняя структура
|
||||
каталога может быть произвольной.
|
||||
|
||||
content
|
||||
Директория с исходниками статей в reStructuredText. Сюда можно также
|
||||
положить любые файлы и директории.
|
||||
|
||||
build
|
||||
В эту директорию копируются ассеты, файлы и сгенерированный HTML.
|
||||
|
||||
Статьи, шаблоны и ассеты могут быть оформлены абсолютно любым образом. Скрипту
|
||||
безразлично что собирать. Пути и имена всех директорий можно переопределить в
|
||||
settings.toml.
|
||||
|
||||
Написание постов
|
||||
================
|
||||
|
||||
Тут всё предельно просто. Пишем файл и кладём в директорию `content`. В файле
|
||||
должны быть указаны обязательные атрибуты ``:title:`` и ``:date:``.
|
||||
|
||||
Блог пока не умеет работать с вложенной структурой статей. Поэтому всё будет
|
||||
свалено в кучу в корневую директорию сайта.
|
||||
|
||||
Все статьи добавляются в список постов и отображаются на главной странице.
|
||||
|
||||
Для того, чтобы сделать "отдельную" страницу, надо добавить атрибут
|
||||
``:not_a_post:``.
|
||||
|
||||
================= ======= =========== ====================================
|
||||
Атрибут Тип Умолчание Описание
|
||||
================= ======= =========== ====================================
|
||||
``:title:`` Строка Заголовок статьи
|
||||
``:date:`` Дата Дата публикации, формат задаётся в
|
||||
settings.toml
|
||||
``:not_a_post:`` Флаг для одиночных страниц
|
||||
================= ======= =========== ====================================
|
||||
|
||||
Темы оформления
|
||||
===============
|
||||
|
||||
Никаких готовых тем. Пишем CSS вручную. Генератору сайтов всё равно что там
|
||||
будет. От уровеня представления он никак не зависит. Так что можно писать любые
|
||||
шаблоны и стили для них.
|
||||
|
||||
Отдельно можно задать тему для блоков кода. Список тем для Pygments с превью
|
||||
есть на странице https://pygments.org/styles/
|
||||
|
||||
Чтобы поменять тему, например, на `default` надо выполнить команду:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
make css default
|
||||
# или
|
||||
pygmentize -f html -S default -a .highlight > assets/css/pygments/default.css
|
||||
|
||||
Затем поменять значение ``theme`` в секции ``pygments`` settings.toml.
|
||||
|
||||
.. code-block:: toml
|
||||
|
||||
[pygments]
|
||||
theme = 'default'
|
||||
|
||||
Шаблоны
|
||||
========
|
||||
|
||||
Шаблоны можно писать какие угодно. Для этогой сайта я написал три файла.
|
||||
Приведу их без лишних строк.
|
||||
|
||||
**base.j2**
|
||||
|
||||
.. code-block:: html+jinja
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<link rel="icon" href="data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=">
|
||||
<link rel="stylesheet" href="assets/css/pygments/{{ pygments_theme }}.css">
|
||||
<link rel="stylesheet" href="assets/css/custom.css">
|
||||
<title>{{ page_title }} | {{ site_title }}</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<p>
|
||||
{% if posts %}
|
||||
{{ site_title }}
|
||||
{% else %}
|
||||
<a href="/">{{ site_title }}</a> / {{ page_title }}</p>
|
||||
{% endif %}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
<footer>
|
||||
<!-- Footer content -->
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
**post.j2**
|
||||
|
||||
.. code-block:: html+jinja
|
||||
|
||||
{% extends "base.j2" %}
|
||||
{% block content %}
|
||||
|
||||
<article>
|
||||
{{ post | safe }}
|
||||
<article>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
**index.j2**
|
||||
|
||||
.. code-block:: html+jinja
|
||||
|
||||
{% extends "base.j2" %}
|
||||
{% block content %}
|
||||
|
||||
<section>
|
||||
<ul id="posts">
|
||||
{% for post in posts %}
|
||||
<li>
|
||||
<a href="/{{ post['path'] }}">{{ post['title'] }}</a>
|
||||
<span class="meta"> — {{ post['date'] }}</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
settings.toml
|
||||
=============
|
||||
|
||||
Сначала я хотел использовать обычный INI, но мне нужно было получать из конфига
|
||||
словарь. Немного подумал и выбрал TOML. Он отлично сериализируется в словарь,
|
||||
визуально повторяет INI.
|
||||
|
||||
**settings.toml** разделён на несколько секций.
|
||||
|
||||
site
|
||||
Данные касающиеся непосредственно сайта.
|
||||
|
||||
title
|
||||
Название сайта
|
||||
|
||||
index_page_title
|
||||
Заголовок главной страницы. Для всех остальных страниц заголовок
|
||||
берётся из атрибута.
|
||||
|
||||
datatime_format
|
||||
Формат даты для атрибута ``:date:``.
|
||||
|
||||
build
|
||||
Параметры, используетмые при сборке.
|
||||
|
||||
build_dir
|
||||
Директория, куда будет сохранён собранный сайт.
|
||||
|
||||
content_dir
|
||||
Директория с исходниками статей.
|
||||
|
||||
templates_dir
|
||||
Директория с шаблонами Jinja2.
|
||||
|
||||
assets_dir
|
||||
Директория с ассетами.
|
||||
|
||||
pygments
|
||||
Параметры подсветки синтаксиса в блоках кода.
|
||||
|
||||
theme
|
||||
Стиль Pygments.
|
||||
|
||||
docutils
|
||||
Конфигурация для docutils. Здесь можно указать любые параметры, которые
|
||||
есть здесь: https://docutils.sourceforge.io/docs/user/config.html
|
||||
|
||||
Мне достаточно:
|
||||
|
||||
.. code-block:: toml
|
||||
|
||||
[docutils]
|
||||
initial_header_level = 2
|
||||
section_self_link = true
|
||||
syntax_highlight = 'short'
|
||||
|
||||
Что ещё хочется сделать
|
||||
=======================
|
||||
|
||||
В перспективе я планирую добавить следующие фичи.
|
||||
|
||||
- RSS
|
||||
- OpenGraph
|
||||
- Webmention
|
||||
- Расширить возможности rST до уровня Sphinx
|
||||
- Улучшить CSS
|
||||
- Комментарии
|
||||
- Кастомный лейаут для отдельных статей
|
||||
- Поддержка вложенной структуры статей
|
||||
|
||||
.. * https://jinja.palletsprojects.com/en/3.0.x/templates/
|
||||
* https://docutils.sourceforge.io/docs/user/config.html
|
||||
|
43
content/todo_text_markup.rst
Normal file
43
content/todo_text_markup.rst
Normal file
@ -0,0 +1,43 @@
|
||||
:title: Менеджер задач в текстовом файле
|
||||
:date: 2 Sep 2021
|
||||
|
||||
================================
|
||||
Менеджер задач в текстовом файле
|
||||
================================
|
||||
|
||||
Кажется, я нашёл почти идеальную формулу для ведения списка задач. По сути я
|
||||
придумал новый формат разметки текста, специализированный для списков задач.
|
||||
Придумать для него название оказалось тяжело. Приложение Todo это второе по
|
||||
популярности приложение после Hello World и все хорошие названия уже давно
|
||||
заняты. Поэтому пусть будет просто **.todo**.
|
||||
|
||||
Синтаксис выглядит таким образом
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
- Uncompleted task (light blue)
|
||||
+ Completed task (green)
|
||||
x Rejected task (red)
|
||||
# Comment
|
||||
\Marked text (yellow background)\
|
||||
`Code (magenta)`
|
||||
Plain text
|
||||
|
||||
.. image:: https://i.nxhs.cloud/MQ9.png
|
||||
|
||||
Да, это все элементы синтаксиса. Предельно просто.
|
||||
|
||||
Какие есть возможности (сравниваю с тем, что предлагают обычные
|
||||
todo-приложения):
|
||||
|
||||
- Не нужно устанавливать никакого дополнительного ПО или каждый раз открывать
|
||||
громоздкий веб-интерфейс. Всё что надо это текстовый редактор. В моём случае
|
||||
идеально подошёл **vim**. Написал для него `скрипт для подсветки синтаксиса`_.
|
||||
При желании можно написать подсветку для других редакторов.
|
||||
- Текстовая заметка и задача это одна сущность — один файл.
|
||||
- Всё управление полностью с клавиатуры.
|
||||
- Полная свобода включать в файл что угодно. Разумеется, текст, это не
|
||||
специальный формат для встраивания изображений или других файлов, но можно
|
||||
использовать элементы Markdown.
|
||||
|
||||
.. _скрипт для подсветки синтаксиса: https://git.nxhs.cloud/ge/todolist-syntax
|
61
layouts/base.j2
Normal file
61
layouts/base.j2
Normal file
@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<link rel="icon" href="data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=">
|
||||
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
|
||||
|
||||
<link rel="stylesheet" href="assets/css/normalize-8.0.1.css">
|
||||
<link rel="stylesheet" href="assets/css/pygments/{{ pygments_theme }}.css">
|
||||
<link rel="stylesheet" href="assets/css/html5_polyglot/math.css">
|
||||
<link rel="stylesheet" href="assets/css/restructuredtext.css">
|
||||
<link rel="stylesheet" href="assets/css/custom.css">
|
||||
<title>{{ page_title }} | {{ site_title }}</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<p>
|
||||
{% if posts %}
|
||||
{{ site_title }}
|
||||
{% else %}
|
||||
<a href="/">{{ site_title }}</a> / {{ page_title }}</p>
|
||||
{% endif %}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
<span>- - -</span>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/">home</a> |
|
||||
<a href="/projects">projects</a> |
|
||||
<a href="https://git.nxhs.cloud/">code</a> |
|
||||
<a href="/kb/">knowledge base</a> |
|
||||
<a href="/writing">writing</a> |
|
||||
<a href="/cgi-bin/ip.cgi">my ip</a>
|
||||
</p>
|
||||
<h3>About</h3>
|
||||
<p>
|
||||
Ещё один сайт про cисадмиство и программирование.
|
||||
Пишу про софт, GNU/Linux и на смежные айтишные темы.
|
||||
</p>
|
||||
<p>
|
||||
Copyright © 2021-2022 Материалы и исходные коды программ, представленные
|
||||
на этом сайте, если не указано иное, распространяются по лицензии
|
||||
<a href="https://creativecommons.org/publicdomain/zero/1.0/deed.en"
|
||||
target="_blank">CC0 1.0</a>.
|
||||
Вы можете свободно копировать и использовать их.
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
15
layouts/index.j2
Normal file
15
layouts/index.j2
Normal file
@ -0,0 +1,15 @@
|
||||
{% extends "base.j2" %}
|
||||
{% block content %}
|
||||
|
||||
<section>
|
||||
<ul id="posts">
|
||||
{% for post in posts %}
|
||||
<li>
|
||||
<a href="/{{ post['path'] }}">{{post['title'] }}</a>
|
||||
<span class="meta"> — {{ post['date'] }}</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
8
layouts/post.j2
Normal file
8
layouts/post.j2
Normal file
@ -0,0 +1,8 @@
|
||||
{% extends "base.j2" %}
|
||||
{% block content %}
|
||||
|
||||
<article>
|
||||
{{ post | safe }}
|
||||
<article>
|
||||
|
||||
{% endblock %}
|
Loading…
Reference in New Issue
Block a user