Merge branch 'develop'

ready for v0.2!
This commit is contained in:
gabe 2022-01-16 11:38:59 -06:00
commit ab41e413e4
21 changed files with 4333 additions and 1533 deletions

3
.gitignore vendored
View file

@ -1,3 +1,6 @@
#test result
tests/result*
tests/result*
#vim session files #vim session files
*.vims *.vims

View file

@ -11,9 +11,18 @@ def parse_arguments():
parser=argparse.ArgumentParser(description='create a website directory structure by converting .adoc files in a directory strucutre to .html files.') parser=argparse.ArgumentParser(description='create a website directory structure by converting .adoc files in a directory strucutre to .html files.')
parser.add_argument('inputDir', type=Path, help='The directory of adoc files to be copied and converted.') parser.add_argument('inputDir', type=Path, help='The directory of adoc files to be copied and converted.')
parser.add_argument('-o', '--output', type=Path, help='What to name the generated directory or tar file') parser.add_argument('-o', '--output', type=Path, help='What to name the generated directory or tar file')
parser.add_argument('--stylesheet', type=Path, help='A custom CSS file to be applied to the output.')
parser.add_argument('--exclude-file', type=Path, help='A text file containing glob patterns to exclude, 1 per line.')
parser.add_argument('--exclude', nargs='+', help='A list of glob patterns to ignore. Remember to quote them so your shell doesnt escape them!')
parser.add_argument('-z', '--compress', action='store_true', help='whether to compress the resulting directory to a tar.gz file. can be usefull for scripting to transfer the site to a remote server.') parser.add_argument('-z', '--compress', action='store_true', help='whether to compress the resulting directory to a tar.gz file. can be usefull for scripting to transfer the site to a remote server.')
parser.add_argument('-v', '--verbose', action='store_true', help='outputs debug messages onto the console.')
args=parser.parse_args() args=parser.parse_args()
#setting log level
if args.verbose:
logging.info('setting log level to verbose')
logging.getLogger().setLevel(level=logging.DEBUG)
#set compress flag #set compress flag
if args.output != None and not args.compress: if args.output != None and not args.compress:
#detect based on whether outFile has a .tar.gz filename. #detect based on whether outFile has a .tar.gz filename.
@ -43,15 +52,34 @@ def parse_arguments():
logging.info(f'outputting to {outFile.resolve()}') logging.info(f'outputting to {outFile.resolve()}')
logging.debug(f'compress is {compress}') logging.debug(f'compress is {compress}')
return args.inputDir.resolve(), outFile, compress exclude=[]
if args.exclude_file != None:
with open(args.exclude_file, 'r') as file:
exclude=[glob.strip() for glob in file]
if args.exclude != None:
exclude.extend(args.exclude)
if not args.inputDir.resolve().exists():
print(f'Inputdir {args.inputDir.resolve()} does not exist!')
exit()
stylesheet=None
if args.stylesheet != None:
stylesheet =args.stylesheet.resolve()
logging.info(f'using stylesheet {stylesheet}')
return args.inputDir.resolve(), outFile, stylesheet, compress, exclude
#Doing it in a tmpDir first, as some distrubutions put temp files on a ramdisk. this should speed up the operation sigificantly. #Doing it in a tmpDir first, as some distrubutions put temp files on a ramdisk. this should speed up the operation sigificantly.
class TmpDir: class TmpDir:
def __init__(self, srcDir): def __init__(self, srcDir, exclude):
self.tmpDir=tempfile.TemporaryDirectory() self.tmpDir=tempfile.TemporaryDirectory()
logging.debug(f'making tmp file from {srcDir} at {self.tmpDir.name}') logging.debug(f'making tmp file from {srcDir} at {self.tmpDir.name}')
self.path=self.tmpDir.name+'/'+Path(srcDir).resolve().name self.path=self.tmpDir.name+'/'+Path(srcDir).resolve().name
self.ignorePattern=shutil.ignore_patterns('*.adoc', '.git', '.gitignore') self.ignorePatterns=['*.adoc', '.gitignore', '.git/*']
self.ignorePatterns.extend(exclude)
self.ignorePattern=shutil.ignore_patterns(*self.ignorePatterns)
shutil.copytree(srcDir, self.path, ignore=self.ignorePattern, symlinks=False) shutil.copytree(srcDir, self.path, ignore=self.ignorePattern, symlinks=False)
#copy out from tmpDir (which may be in RAM, depending on distrubution) to disk #copy out from tmpDir (which may be in RAM, depending on distrubution) to disk
@ -73,32 +101,55 @@ class TmpDir:
def find_paths_to_convert(fileNameGlob): def find_paths_to_convert(fileNameGlob):
return glob.glob(f'**/{fileNameGlob}', recursive=True) return glob.glob(f'**/{fileNameGlob}', recursive=True)
#finds the depth of a file relative to given directory
def find_relative_file_depth (subfile, parentDir):
subfile=Path(subfile).resolve()
parentDir=Path(parentDir).resolve()
return len(subfile.parts)-len(parentDir.parts)-1
#simple wrapper around the asciidoctor cli. #simple wrapper around the asciidoctor cli.
def convert_file(inDir, outDir, inFile): def convert_file(inDir: Path, outDir: Path, inFile: Path, stylesheet: Path):
#in order for the stylesdir and imagesdir to be linked to correctly, we need to know the relative depth between the two directories.
depth=find_relative_file_depth(inFile, inDir)
logging.info(f'converting {Path(inFile).resolve()}') logging.info(f'converting {Path(inFile).resolve()}')
logging.debug(f'converting {inFile} from directory {inDir} to directory {outDir}') logging.debug(f'converting {inFile=}, {outDir=}, {inDir=}, {stylesheet=}')
try:
#the destdir can be used instead of destfile in order to preserve the directory structure relative to the base dir. really useful. depthstring= '../'*depth
subprocess.run(['asciidoctor',
arguments=['asciidoctor',
#makes the stylesheet linked, but still includes it in the output.
'--attribute=linkcss',
f'--attribute=stylesdir={depthstring}css',
#set imagesdir
f'--attribute=imagesdir={depthstring}images',
#specifies the source directory root. #specifies the source directory root.
f'--source-dir={inDir}', f'--source-dir={inDir}',
#Destination dir. It takes the file from the subtree --source-dir and puts it in the equivilant location in the subtree --destination-dir. (talking about filesystem subtrees). #Destination dir. It takes the file from the subtree --source-dir and puts it in the equivilant location in the subtree --destination-dir. (talking about filesystem subtrees).
f'--destination-dir={outDir}', f'--destination-dir={outDir}',
inFile], inFile]
check=True)
if stylesheet != None:
arguments.insert(1, f'--attribute=copycss={stylesheet}')
arguments.insert(1, f'--attribute=stylesheet={stylesheet.name}')
else:
arguments.insert(1, f'--attribute=copycss')
logging.debug(f'{arguments=}')
try:
#the destdir can be used instead of destfile in order to preserve the directory structure relative to the base dir. really useful.
subprocess.run(arguments, check=True)
except Exception as e: except Exception as e:
logging.error(f'could not convert {inFile}!') logging.error(f'could not convert {inFile}!')
logging.error(f'stdErr was {e.stderr}') logging.error(f'{e}')
logging.error(f'stdOut was {e.stdout}')
if __name__ == '__main__': if __name__ == '__main__':
inFile, outFile, compress=parse_arguments() inFile, outFile, stylesheet, compress, exclude=parse_arguments()
os.chdir(inFile) os.chdir(inFile)
tmpDir=TmpDir('./') tmpDir=TmpDir('./', exclude)
pathsToConvert=find_paths_to_convert('*.adoc') pathsToConvert=find_paths_to_convert('*.adoc')
for i in pathsToConvert: for i in pathsToConvert:
convert_file('./', tmpDir.path, i) convert_file(inDir='./', outDir=tmpDir.path, inFile=i, stylesheet=stylesheet)
if compress: if compress:
tmpDir.compress_and_copy_self_to(outFile) tmpDir.compress_and_copy_self_to(outFile)

View file

@ -3,17 +3,26 @@
![Licence](https://img.shields.io/badge/Licence-GPL-blue) ![Licence](https://img.shields.io/badge/Licence-GPL-blue)
## What is it? ## What is it?
ASCIIsite is a simple, barebones static site generator. You give it a directory contaning asciidoctor documents and supporing media in the strucutre you want your site to be in, and it spits out a fully functional static site based on that input directory. ASCIIsite is a simple, bare bones static site generator. You give it a directory containing asciidoctor documents and supporting media in the structure you want your site to be in, and it spits out a fully functional static site based on that input directory.
## Usage ## Usage
ASCIISite takes 2 (so far) optional arguments followed by the single mandatory arument telling it what directory to convert. ASCIISite several optional arguments followed by a single mandatory argument telling it what directory to convert.
the -o or --output option simply tells ASCIISite what to name the output file. the -o or --output option simply tells ASCIISite what to name the output file.
the -z or --compress flag tells ASCIISite to put the final product in a compressed tar.gz file as its output. the -z or --compress flag tells ASCIISite to put the final product in a compressed tar.gz file as its output.
This is especially useful if you are running ASCIISite on your personal computer, and will be uploading the tar.gz file to your server. This is especially useful if you are running ASCIISite on your personal computer, and will be uploading the tar.gz file to your server.
The --sylesheet options allows you to set a custom stylesheet to use instead of the default ASCIIDoctor stylesheet.
The --exclude flag allows you to specify a list of glob patterns. Any file matching these glob patterns will not be copied to the output.
The --exclude-file flag allows you to specify a file containing one glob to exclude per line. Other than inputting from a file, works exactly the same as --exclude. Note that it cannot parse the full spec of .gitignore files, only traditional globs.
Exclusions are helpful for any files that are needed for the compilation of the asciidoc files, but do not need to be in the final site.
The main use case I am aware of is files that are put into an asciidoc document via an include statement.
As for how to format the input directory, thats up to you. The directory structure of the input will be mirrored in the structure of the output website. As for how to format the input directory, thats up to you. The directory structure of the input will be mirrored in the structure of the output website.
The only real rule you need to follow is that all your links to other pages in the input directory should be relative, so they dont get broken when you move the output directory around. The only real rule you need to follow is that all your links to other pages in the input directory should be relative, so they dont get broken when you move the output directory around.
@ -23,13 +32,12 @@ Say you have a nice asciidoctor directory like this:
``` ```
test test
├── dir ├── dir
│   ├── collatz.py
│   └── subdir │   └── subdir
│   └── linked.adoc │   └── linked.adoc
├── images ├── images
│   └── test_pattern.svg │   └── test_pattern.svg
├── include ├── include
│   └── include.adoc │   └── include.txt
└── landing_page.adoc └── landing_page.adoc
``` ```
@ -37,26 +45,67 @@ Where some pages link to others, some pages include others, and some pages have
You can run You can run
``` ```
ASCIISite.py -o result test ASCIISite.py -o output test
``` ```
to get a file tree like: to get a file tree like:
``` ```
result output
├── css
│   └── asciidoctor.css
├── dir
│   └── subdir
│   └── linked.html
├── include
│   └── include.txt
├── images
│   └── test_pattern.svg
└── landing_page.html
```
If, say, the include directory is a directory needed for the asciidoc compilation,
but not needed for the final website, you can use the --exclude option to specify a list of glob patterns to exclude. For example,
````
ASCIIsite.py --exclude 'include*' -o output test
```
will get you an output like:
```
output
├── css
│   └── asciidoctor.css
├── dir ├── dir
│   ├── collatz.py
│   └── subdir │   └── subdir
│   └── linked.html │   └── linked.html
├── images ├── images
│   └── test_pattern.svg │   └── test_pattern.svg
└── landing_page.html
```
and, to use your custom stylesheet named `+myTheme.css+`, you can use:
```
ASCIIsite.py --stylesheet myTheme.css -o output test
```
```
output
├── css
│   └── myTheme.css
├── dir
│   └── subdir
│   └── linked.html
├── include ├── include
│   └── include.html │   └── include.txt
├── images
│   └── test_pattern.svg
└── landing_page.html └── landing_page.html
``` ```
Alternatively, you can run Alternatively, you can run
``` ```
ASCIISite.py -z -o result test ASCIISite.py -z -o output test
``` ```
to get a .tar.gz file containing the result directory. to get a .tar.gz file containing the output directory.

View file

@ -1,14 +1,3 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.16">
<meta name="author" content="Gabe Venberg">
<title>relatively linked doc</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */ /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment the following line when using as a custom stylesheet */ /* Uncomment the following line when using as a custom stylesheet */
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */ /* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
@ -194,7 +183,8 @@ body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221} #content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em} details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details{margin-left:1.25rem} details{margin-left:1.25rem}
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;-webkit-tap-highlight-color:transparent} details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)} details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)} details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem} details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
@ -236,9 +226,8 @@ pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none} table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal} table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em} table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em} table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em} pre.pygments span.linenos{display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table} .quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em} .quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify} .quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
@ -275,7 +264,7 @@ table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-c
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0} table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0} table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0} table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7} table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left} th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right} th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center} th.halign-center,td.halign-center{text-align:center}
@ -291,10 +280,11 @@ ol{margin-left:1.75em}
ul li ol{margin-left:1.5em} ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em} dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0} dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em} li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none} ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em} ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0} ul.unstyled,ol.unstyled{margin-left:0}
li>p:empty:only-child::before{content:"";display:inline-block}
ul.checklist>li>p:first-child{margin-left:-1em} ul.checklist>li>p:first-child{margin-left:-1em}
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em} ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em} ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
@ -337,8 +327,6 @@ sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em} #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0} #footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0} #content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid} div.unbreakable{page-break-inside:avoid}
.big{font-size:larger} .big{font-size:larger}
.small{font-size:smaller} .small{font-size:smaller}
@ -436,38 +424,3 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
#footer{background:none} #footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}} #footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
</head>
<body class="article">
<div id="header">
<h1>relatively linked doc</h1>
<div class="details">
<span id="author" class="author">Gabe Venberg</span><br>
</div>
</div>
<div id="content">
<div id="test-pattern" class="imageblock">
<div class="content">
<a class="image" href="git.venberg.xyz/Gabe/adocStaticSiteGen"><img src="../../images/test_patern.jpg" alt="Stand By"></a>
</div>
<div class="title">Figure 1. Technical Difficulties</div>
</div>
<div class="paragraph">
<p><a href="https://git.venberg.xyz/Gabe/adocStaticSiteGen" class="bare">https://git.venberg.xyz/Gabe/adocStaticSiteGen</a></p>
</div>
<div class="videoblock">
<div class="title">A mechanical marvel</div>
<div class="content">
<iframe src="https://www.youtube.com/embed/IvUU8joBb1Q?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<div class="paragraph">
<p><a href="../../landing_page.html#_link_tests">back to where you came!</a></p>
</div>
</div>
<div id="footer">
<div id="footer-text">
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.17">
<meta name="author" content="Gabe Venberg">
<title>relatively linked doc</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<link rel="stylesheet" href="../../css/asciidoctor.css">
</head>
<body class="article">
<div id="header">
<h1>relatively linked doc</h1>
<div class="details">
<span id="author" class="author">Gabe Venberg</span><br>
</div>
</div>
<div id="content">
<div id="test-pattern" class="imageblock">
<div class="content">
<a class="image" href="git.venberg.xyz/Gabe/adocStaticSiteGen"><img src="../../images/test_pattern.svg" alt="Stand By"></a>
</div>
<div class="title">Figure 1. Technical Difficulties</div>
</div>
<div class="quoteblock">
<blockquote>
While the creative works from the 16th century can still be accessed and used by others, the data in some software programs from the 1990s is already inaccessible. Once a company that produces a certain product goes out of business, it has no simple way to uncover how its product encoded data. The code is thus lost, and the software is inaccessible. Knowledge has been destroyed.
</blockquote>
<div class="attribution">
&#8212; Lawrence Lessig<br>
<cite>May the Source Be With You</cite>
</div>
</div>
<div class="verseblock">
<pre class="content">Three Rings for the Elven-kings under the sky,
Seven for the dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne,
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.</pre>
<div class="attribution">
&#8212; J.R.R. Tolkien<br>
<cite>The Fellowship of the Ring</cite>
</div>
</div>
<div class="paragraph">
<p><a href="https://git.venberg.xyz/Gabe/adocStaticSiteGen" class="bare">https://git.venberg.xyz/Gabe/adocStaticSiteGen</a></p>
</div>
<div class="videoblock">
<div class="title">A mechanical marvel</div>
<div class="content">
<iframe src="https://www.youtube.com/embed/IvUU8joBb1Q?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<div class="paragraph">
<p><a href="../../landing_page.html#_link_tests">back to where you came!</a></p>
</div>
</div>
<div id="footer">
<div id="footer-text">
</div>
</div>
</body>
</html>

View file

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

View file

@ -0,0 +1,507 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.17">
<meta name="author" content="Gabe Venberg">
<title>test page for an adoc static site generator.</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<link rel="stylesheet" href="css/asciidoctor.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="article">
<div id="header">
<h1>test page for an adoc static site generator.</h1>
<div class="details">
<span id="author" class="author">Gabe Venberg</span><br>
</div>
<div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_inline_formatting_tests">inline formatting tests</a></li>
<li><a href="#_link_tests">link tests</a></li>
<li><a href="#_tables_test">tables test</a></li>
<li><a href="#_included_section">included section</a>
<ul class="sectlevel2">
<li><a href="#_blocks">blocks</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="admonitionblock important">
<table>
<tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
Test the links in this page!
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus mi tellus, suscipit in dolor nec, faucibus aliquam nulla.
Mauris gravida, felis commodo molestie tincidunt, sem erat varius lorem, nec lobortis eros sem ut augue.
Donec suscipit tristique imperdiet.
Sed maximus est ultrices urna imperdiet, vitae facilisis eros posuere.
Quisque a mollis mauris.
Pellentesque fermentum, libero sed sollicitudin interdum, dolor nunc euismod purus, et laoreet tellus augue vitae turpis.
Pellentesque condimentum elit quis semper tincidunt.
Nullam consectetur euismod accumsan.
In dictum nibh ut iaculis euismod.
Phasellus ut nibh non ipsum volutpat cursus.
Sed eleifend, enim vitae ultrices auctor, dolor ipsum molestie dui, id dignissim massa neque a mauris.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_inline_formatting_tests">inline formatting tests</h2>
<div class="sectionbody">
<div class="paragraph">
<p><strong>bold test</strong></p>
</div>
<div class="paragraph">
<p><em>italics test</em></p>
</div>
<div class="paragraph">
<p>'monospace test'</p>
</div>
<div class="paragraph">
<p>'<strong>monospace bold test</strong>'</p>
</div>
<div class="paragraph">
<p>'<em>monospace italic test</em>'</p>
</div>
<div class="paragraph">
<p><em>*italic bold test*</em></p>
</div>
<div class="paragraph">
<p>'<strong><em>all three test</em></strong>'</p>
</div>
<div class="paragraph">
<p>*escaped bold test*</p>
</div>
<div class="paragraph">
<p><u>underline test using html passthrough test</u></p>
</div>
<div class="paragraph">
<p>*escaped bold test with plus*</p>
</div>
<div class="paragraph">
<p>&#8594; &#8658; &#8592; &#8656;</p>
</div>
<div class="paragraph">
<p>==colapsable block</p>
</div>
<details>
<summary class="title">Details</summary>
<div class="content">
<div class="paragraph">
<p>== list tests</p>
</div>
<div class="ulist">
<div class="title">unordered list test</div>
<ul>
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="ulist">
<ul>
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="ulist">
<ul>
<li>
<p>amet</p>
</li>
</ul>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="olist arabic">
<div class="title">ordered list test.</div>
<ol class="arabic">
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="olist lowerroman">
<ol class="lowerroman" type="i">
<li>
<p>amet</p>
</li>
</ol>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="olist arabic">
<div class="title">reversed ordered list test.</div>
<ol class="arabic" reversed>
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="olist lowerroman">
<ol class="lowerroman" type="i">
<li>
<p>amet</p>
</li>
</ol>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="olist arabic">
<div class="title">mixed list</div>
<ol class="arabic">
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="ulist">
<ul>
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="ulist">
<ul>
<li>
<p>amet</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>consectetur</p>
<div class="ulist">
<ul>
<li>
<p>adipiscing</p>
</li>
<li>
<p>elit</p>
</li>
</ul>
</div>
</li>
</ol>
</div>
</div>
</details>
<div class="paragraph">
<div class="title">math test</div>
<p>\(\frac{\frac{1}{x}+\frac{1}{y}}{y-z}\)</p>
</div>
<div class="stemblock">
<div class="content">
\$[[a,b\],[c,d\]\]((n),(k))\$
</div>
</div>
<div class="hdlist">
<div class="title">description list test</div>
<table>
<tr>
<td class="hdlist1">
test
</td>
<td class="hdlist2">
<p>to make sure software works correctly</p>
</td>
</tr>
<tr>
<td class="hdlist1">
git
</td>
<td class="hdlist2">
<p>a gift from the machine spirits</p>
</td>
</tr>
<tr>
<td class="hdlist1">
printers
</td>
<td class="hdlist2">
<p>the greatest evil to ever befall IT.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_link_tests">link tests</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Lets go back to the <a href="#list tests">[list tests]</a> or to the <a href="#_tables_test">tables</a></p>
</div>
<div class="paragraph">
<p><a href="https://git.venberg.xyz/Gabe/adocStaticSiteGen">gittea absolute link</a></p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="https://git.venberg.xyz/Gabe/adocStaticSiteGen"><img src="images/test_pattern.svg" alt="Stand By"></a>
</div>
<div class="title">Figure 1. Technical Difficulties</div>
</div>
<div class="paragraph">
<p><a href="dir/subdir/linked.html">link!</a></p>
</div>
<div class="paragraph">
<p><a href="dir/subdir/linked.html">xref!</a></p>
</div>
<div class="listingblock">
<div class="title">Source code test</div>
<div class="content">
<pre class="highlight"><code class="language-python" data-lang="python">def nextInSequence(number):
if isinstance(number, int):
if number % 2 == 0:
return number // 2
else:
return 3*number+1
else:
raise TypeError('input must be int!')
def seqenceLength(number):
length = 0
while number != 1:
number = nextInSequence(number)
length += 1
return length</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_tables_test">tables test</h2>
<div class="sectionbody">
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Group</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Firefox</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Web Browser</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mozilla Firefox is an open-source web browser.
It&#8217;s designed for:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>standards compliance,</p>
</li>
<li>
<p>performance and</p>
</li>
<li>
<p>portability.</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ruby</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Programming Language</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A programmer&#8217;s best friend.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="_included_section">included section</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Fusce maximus nec magna eu ultricies.
Fusce quis tellus vitae arcu facilisis lobortis.
Donec id erat at enim porta placerat in vitae sapien.
Duis justo arcu, hendrerit nec nulla eu, dictum dapibus ipsum.
Sed fermentum id elit eget fringilla.
Suspendisse volutpat imperdiet justo, ut efficitur odio maximus et.
Nunc interdum sollicitudin eros sit amet convallis.
Praesent volutpat tempus metus id tincidunt.
Proin aliquet justo a fermentum consectetur.
Nunc scelerisque, nisi id scelerisque dictum, nibh lectus ultrices nunc, quis ultricies erat velit sit amet urna.
Maecenas orci felis, volutpat at bibendum ut, mattis eu justo.</p>
</div>
<div class="sect2">
<h3 id="_blocks">blocks</h3>
<div class="listingblock">
<div class="title">listing block</div>
<div class="content">
<pre>example of _listing block_
with verbatim line break</pre>
</div>
</div>
<div class="exampleblock">
<div class="title">Example 1. example block</div>
<div class="content">
<div class="paragraph">
<p>example block
with line break</p>
</div>
</div>
</div>
<div class="literalblock">
<div class="title">literal block</div>
<div class="content">
<pre>_literal_ block
with line break</pre>
</div>
</div>
pass block
with <u>underlined text</u>
<div class="quoteblock">
<div class="title">quote block</div>
<blockquote>
<div class="paragraph">
<p>quote block
with line break</p>
</div>
</blockquote>
</div>
<div class="sidebarblock">
<div class="content">
<div class="title">sidebar block</div>
<div class="paragraph">
<p>sidebar block
with line break</p>
</div>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>This is an example of an admonition block.</p>
</div>
<div class="paragraph">
<p>Unlike an admonition paragraph, it may contain any AsciiDoc content.
The style can be any one of the admonition labels:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>NOTE</p>
</li>
<li>
<p>TIP</p>
</li>
<li>
<p>WARNING</p>
</li>
<li>
<p>CAUTION</p>
</li>
<li>
<p>IMPORTANT</p>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
</div>
</div>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
messageStyle: "none",
tex2jax: {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
ignoreClass: "nostem|nolatexmath"
},
asciimath2jax: {
delimiters: [["\\$", "\\$"]],
ignoreClass: "nostem|noasciimath"
},
TeX: { equationNumbers: { autoNumber: "none" } }
})
MathJax.Hub.Register.StartupHook("AsciiMath Jax Ready", function () {
MathJax.InputJax.AsciiMath.postfilterHooks.Add(function (data, node) {
if ((node = data.script.parentNode) && (node = node.parentNode) && node.classList.contains("stemblock")) {
data.math.root.display = "block"
}
return data
})
})
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-MML-AM_HTMLorMML"></script>
</body>
</html>

View file

@ -0,0 +1,239 @@
/*template asciidoctor skin from https://github.com/darshandsoni/asciidoctor-skins/blob/gh-pages/css/template.css*/
/*
* The MIT License (MIT)
*
* Copyright (c) 2016 Darshan Soni
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
/* document body (contains all content) */
body {
font-size: small;
}
/* document header (contains title etc) */
#header {
width: 100%;
}
/* headings */
h1 {
color: purple;
}
h2 {
color: chartreuse;
}
h3 {
color: coral;
}
h4 {
color: darkcyan;
}
h5 {
color: darkslategray;
}
h6 {
color: olive;
}
/* Table of Contents sidebar */
#toc {
background-color: plum!important;
color: white;
font-weight: bold;
}
/* title of the TOC */
#toctitle {
color: white;
}
/* top-level entries in TOC */
.sectlevel1 {
background-color: palegoldenrod;
}
/* second-level entries in TOC */
.sectlevel2 {
background-color: palegreen;
}
/* main content window */
#content {
background-color: lavender;
color: navy;
}
/* plain paragraph text */
.paragraph {
font-family: sans-serif;
}
p {
font-family: sans-serif;
}
/* blockquote text */
.quoteblock {
font-style: italic;
}
blockquote {
font-style: italic;
}
/* the quotation mark itself (before the block) */
.quoteblock blockquote::before {
color: blue;
}
/* blockquote attribution text */
.attribution {
font-size: x-large;
}
/* blockquote citation (work where quote cited) */
cite {
font-size: x-large;
}
/* ordered list */
ol {
color: red;
}
.olist {
color: red;
}
/* unordered list */
ul {
color: blue;
}
.ulist {
color: blue;
}
/* links */
a {
text-decoration: none;
}
/* bold text */
strong {
color: green;
}
/* italic text */
em {
color: orange;
}
/* underlined text */
u {
color: yellow;
}
/* deleted text */
del {
text-decoration: line-through;
color: red;
}
/* inserted text */
ins {
text-decoration: overline;
color: green;
}
/* strikethrough text */
s {
text-decoration-color: red;
}
/* superscript text */
sup {}
/* subscript text */
sub {}
/* small text */
small {}
/* highlighted text */
mark {}
/* horizontal rules */
hr {}
/* table */
table {}
/* table caption */
caption {}
/* table header row */
thead {}
/* table header cell */
th {}
/* table row */
tr {}
/* table footer */
tfoot {}
/* table cell */
td {}
/* table body */
tbody {}
/* inline code */
code {
background-color: papayawhip!important;
}
/* pre-formatted text */
pre {
background-color: burlywood!important;
}
.literalblock {
background-color: burlywood!important;
}
/* image */
img {
max-width: 100%;
}
/* image caption */
.imageblock .title {
font-weight: bold!important;
}
/* audio */
audio {}
/* video */
video {}
/* footer section */
#footer {
background-color: gray;
color: red;
}
/* footer text (by default contains time of last document update) */
#footer-text {
font-weight: bold;
color: white;
}
/* Responsiveness fixes */
video {
max-width: 100%;
}
@media all and (max-width: 600px) {
table {
width: 55vw!important;
font-size: 3vw;
}

View file

@ -0,0 +1,16 @@
def nextInSequence(number):
if isinstance(number, int):
if number % 2 == 0:
return number // 2
else:
return 3*number+1
else:
raise TypeError('input must be int!')
def seqenceLength(number):
length = 0
while number != 1:
number = nextInSequence(number)
length += 1
return length

View file

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.17">
<meta name="author" content="Gabe Venberg">
<title>relatively linked doc</title>
<link rel="stylesheet" href="../../css/test.css">
</head>
<body class="article">
<div id="header">
<h1>relatively linked doc</h1>
<div class="details">
<span id="author" class="author">Gabe Venberg</span><br>
</div>
</div>
<div id="content">
<div id="test-pattern" class="imageblock">
<div class="content">
<a class="image" href="git.venberg.xyz/Gabe/adocStaticSiteGen"><img src="../../images/test_pattern.svg" alt="Stand By"></a>
</div>
<div class="title">Figure 1. Technical Difficulties</div>
</div>
<div class="quoteblock">
<blockquote>
While the creative works from the 16th century can still be accessed and used by others, the data in some software programs from the 1990s is already inaccessible. Once a company that produces a certain product goes out of business, it has no simple way to uncover how its product encoded data. The code is thus lost, and the software is inaccessible. Knowledge has been destroyed.
</blockquote>
<div class="attribution">
&#8212; Lawrence Lessig<br>
<cite>May the Source Be With You</cite>
</div>
</div>
<div class="verseblock">
<pre class="content">Three Rings for the Elven-kings under the sky,
Seven for the dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne,
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.</pre>
<div class="attribution">
&#8212; J.R.R. Tolkien<br>
<cite>The Fellowship of the Ring</cite>
</div>
</div>
<div class="paragraph">
<p><a href="https://git.venberg.xyz/Gabe/adocStaticSiteGen" class="bare">https://git.venberg.xyz/Gabe/adocStaticSiteGen</a></p>
</div>
<div class="videoblock">
<div class="title">A mechanical marvel</div>
<div class="content">
<iframe src="https://www.youtube.com/embed/IvUU8joBb1Q?rel=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<div class="paragraph">
<p><a href="../../landing_page.html#_link_tests">back to where you came!</a></p>
</div>
</div>
<div id="footer">
<div id="footer-text">
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 119 KiB

View file

@ -0,0 +1,506 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.17">
<meta name="author" content="Gabe Venberg">
<title>test page for an adoc static site generator.</title>
<link rel="stylesheet" href="css/test.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="article">
<div id="header">
<h1>test page for an adoc static site generator.</h1>
<div class="details">
<span id="author" class="author">Gabe Venberg</span><br>
</div>
<div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_inline_formatting_tests">inline formatting tests</a></li>
<li><a href="#_link_tests">link tests</a></li>
<li><a href="#_tables_test">tables test</a></li>
<li><a href="#_included_section">included section</a>
<ul class="sectlevel2">
<li><a href="#_blocks">blocks</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="admonitionblock important">
<table>
<tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
Test the links in this page!
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus mi tellus, suscipit in dolor nec, faucibus aliquam nulla.
Mauris gravida, felis commodo molestie tincidunt, sem erat varius lorem, nec lobortis eros sem ut augue.
Donec suscipit tristique imperdiet.
Sed maximus est ultrices urna imperdiet, vitae facilisis eros posuere.
Quisque a mollis mauris.
Pellentesque fermentum, libero sed sollicitudin interdum, dolor nunc euismod purus, et laoreet tellus augue vitae turpis.
Pellentesque condimentum elit quis semper tincidunt.
Nullam consectetur euismod accumsan.
In dictum nibh ut iaculis euismod.
Phasellus ut nibh non ipsum volutpat cursus.
Sed eleifend, enim vitae ultrices auctor, dolor ipsum molestie dui, id dignissim massa neque a mauris.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_inline_formatting_tests">inline formatting tests</h2>
<div class="sectionbody">
<div class="paragraph">
<p><strong>bold test</strong></p>
</div>
<div class="paragraph">
<p><em>italics test</em></p>
</div>
<div class="paragraph">
<p>'monospace test'</p>
</div>
<div class="paragraph">
<p>'<strong>monospace bold test</strong>'</p>
</div>
<div class="paragraph">
<p>'<em>monospace italic test</em>'</p>
</div>
<div class="paragraph">
<p><em>*italic bold test*</em></p>
</div>
<div class="paragraph">
<p>'<strong><em>all three test</em></strong>'</p>
</div>
<div class="paragraph">
<p>*escaped bold test*</p>
</div>
<div class="paragraph">
<p><u>underline test using html passthrough test</u></p>
</div>
<div class="paragraph">
<p>*escaped bold test with plus*</p>
</div>
<div class="paragraph">
<p>&#8594; &#8658; &#8592; &#8656;</p>
</div>
<div class="paragraph">
<p>==colapsable block</p>
</div>
<details>
<summary class="title">Details</summary>
<div class="content">
<div class="paragraph">
<p>== list tests</p>
</div>
<div class="ulist">
<div class="title">unordered list test</div>
<ul>
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="ulist">
<ul>
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="ulist">
<ul>
<li>
<p>amet</p>
</li>
</ul>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="olist arabic">
<div class="title">ordered list test.</div>
<ol class="arabic">
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="olist lowerroman">
<ol class="lowerroman" type="i">
<li>
<p>amet</p>
</li>
</ol>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="olist arabic">
<div class="title">reversed ordered list test.</div>
<ol class="arabic" reversed>
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="olist lowerroman">
<ol class="lowerroman" type="i">
<li>
<p>amet</p>
</li>
</ol>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="olist arabic">
<div class="title">mixed list</div>
<ol class="arabic">
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="ulist">
<ul>
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="ulist">
<ul>
<li>
<p>amet</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>consectetur</p>
<div class="ulist">
<ul>
<li>
<p>adipiscing</p>
</li>
<li>
<p>elit</p>
</li>
</ul>
</div>
</li>
</ol>
</div>
</div>
</details>
<div class="paragraph">
<div class="title">math test</div>
<p>\(\frac{\frac{1}{x}+\frac{1}{y}}{y-z}\)</p>
</div>
<div class="stemblock">
<div class="content">
\$[[a,b\],[c,d\]\]((n),(k))\$
</div>
</div>
<div class="hdlist">
<div class="title">description list test</div>
<table>
<tr>
<td class="hdlist1">
test
</td>
<td class="hdlist2">
<p>to make sure software works correctly</p>
</td>
</tr>
<tr>
<td class="hdlist1">
git
</td>
<td class="hdlist2">
<p>a gift from the machine spirits</p>
</td>
</tr>
<tr>
<td class="hdlist1">
printers
</td>
<td class="hdlist2">
<p>the greatest evil to ever befall IT.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_link_tests">link tests</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Lets go back to the <a href="#list tests">[list tests]</a> or to the <a href="#_tables_test">tables</a></p>
</div>
<div class="paragraph">
<p><a href="https://git.venberg.xyz/Gabe/adocStaticSiteGen">gittea absolute link</a></p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="https://git.venberg.xyz/Gabe/adocStaticSiteGen"><img src="images/test_pattern.svg" alt="Stand By"></a>
</div>
<div class="title">Figure 1. Technical Difficulties</div>
</div>
<div class="paragraph">
<p><a href="dir/subdir/linked.html">link!</a></p>
</div>
<div class="paragraph">
<p><a href="dir/subdir/linked.html">xref!</a></p>
</div>
<div class="listingblock">
<div class="title">Source code test</div>
<div class="content">
<pre class="highlight"><code class="language-python" data-lang="python">def nextInSequence(number):
if isinstance(number, int):
if number % 2 == 0:
return number // 2
else:
return 3*number+1
else:
raise TypeError('input must be int!')
def seqenceLength(number):
length = 0
while number != 1:
number = nextInSequence(number)
length += 1
return length</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_tables_test">tables test</h2>
<div class="sectionbody">
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Group</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Firefox</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Web Browser</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mozilla Firefox is an open-source web browser.
It&#8217;s designed for:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>standards compliance,</p>
</li>
<li>
<p>performance and</p>
</li>
<li>
<p>portability.</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ruby</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Programming Language</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A programmer&#8217;s best friend.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="_included_section">included section</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Fusce maximus nec magna eu ultricies.
Fusce quis tellus vitae arcu facilisis lobortis.
Donec id erat at enim porta placerat in vitae sapien.
Duis justo arcu, hendrerit nec nulla eu, dictum dapibus ipsum.
Sed fermentum id elit eget fringilla.
Suspendisse volutpat imperdiet justo, ut efficitur odio maximus et.
Nunc interdum sollicitudin eros sit amet convallis.
Praesent volutpat tempus metus id tincidunt.
Proin aliquet justo a fermentum consectetur.
Nunc scelerisque, nisi id scelerisque dictum, nibh lectus ultrices nunc, quis ultricies erat velit sit amet urna.
Maecenas orci felis, volutpat at bibendum ut, mattis eu justo.</p>
</div>
<div class="sect2">
<h3 id="_blocks">blocks</h3>
<div class="listingblock">
<div class="title">listing block</div>
<div class="content">
<pre>example of _listing block_
with verbatim line break</pre>
</div>
</div>
<div class="exampleblock">
<div class="title">Example 1. example block</div>
<div class="content">
<div class="paragraph">
<p>example block
with line break</p>
</div>
</div>
</div>
<div class="literalblock">
<div class="title">literal block</div>
<div class="content">
<pre>_literal_ block
with line break</pre>
</div>
</div>
pass block
with <u>underlined text</u>
<div class="quoteblock">
<div class="title">quote block</div>
<blockquote>
<div class="paragraph">
<p>quote block
with line break</p>
</div>
</blockquote>
</div>
<div class="sidebarblock">
<div class="content">
<div class="title">sidebar block</div>
<div class="paragraph">
<p>sidebar block
with line break</p>
</div>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>This is an example of an admonition block.</p>
</div>
<div class="paragraph">
<p>Unlike an admonition paragraph, it may contain any AsciiDoc content.
The style can be any one of the admonition labels:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>NOTE</p>
</li>
<li>
<p>TIP</p>
</li>
<li>
<p>WARNING</p>
</li>
<li>
<p>CAUTION</p>
</li>
<li>
<p>IMPORTANT</p>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
</div>
</div>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
messageStyle: "none",
tex2jax: {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
ignoreClass: "nostem|nolatexmath"
},
asciimath2jax: {
delimiters: [["\\$", "\\$"]],
ignoreClass: "nostem|noasciimath"
},
TeX: { equationNumbers: { autoNumber: "none" } }
})
MathJax.Hub.Register.StartupHook("AsciiMath Jax Ready", function () {
MathJax.InputJax.AsciiMath.postfilterHooks.Add(function (data, node) {
if ((node = data.script.parentNode) && (node = node.parentNode) && node.classList.contains("stemblock")) {
data.math.root.display = "block"
}
return data
})
})
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-MML-AM_HTMLorMML"></script>
</body>
</html>

1
tests/globignore Normal file
View file

@ -0,0 +1 @@
include*

View file

@ -1,552 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.16">
<title>included section</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment the following line when using as a custom stylesheet */
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
html{font-family:sans-serif;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
b,strong{font-weight:bold}
abbr{font-size:.9em}
abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
dfn{font-style:italic}
hr{height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type=checkbox],input[type=radio]{padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,::before,::after{box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre).nobreak{word-wrap:normal}
:not(pre).nowrap{white-space:nowrap}
:not(pre).pre-wrap{white-space:pre-wrap}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details{margin-left:1.25rem}
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;-webkit-tap-highlight-color:transparent}
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em}
pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px}
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist>li>p:first-child{margin-left:-1em}
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
td.hdlist2{word-wrap:anywhere}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]{border-bottom:1px dotted}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
</head>
<body class="article">
<div id="header">
</div>
<div id="content">
<div class="sect1">
<h2 id="_included_section">included section</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Fusce maximus nec magna eu ultricies.
Fusce quis tellus vitae arcu facilisis lobortis.
Donec id erat at enim porta placerat in vitae sapien.
Duis justo arcu, hendrerit nec nulla eu, dictum dapibus ipsum.
Sed fermentum id elit eget fringilla.
Suspendisse volutpat imperdiet justo, ut efficitur odio maximus et.
Nunc interdum sollicitudin eros sit amet convallis.
Praesent volutpat tempus metus id tincidunt.
Proin aliquet justo a fermentum consectetur.
Nunc scelerisque, nisi id scelerisque dictum, nibh lectus ultrices nunc, quis ultricies erat velit sit amet urna.
Maecenas orci felis, volutpat at bibendum ut, mattis eu justo.</p>
</div>
<div class="sect2">
<h3 id="_blocks">blocks</h3>
<div class="listingblock">
<div class="title">listing block</div>
<div class="content">
<pre>example of _listing block_
with verbatim line break</pre>
</div>
</div>
<div class="exampleblock">
<div class="title">Example 1. example block</div>
<div class="content">
<div class="paragraph">
<p>example block
with line break</p>
</div>
</div>
</div>
<div class="literalblock">
<div class="title">literal block</div>
<div class="content">
<pre>_literal_ block
with line break</pre>
</div>
</div>
pass block
with <u>underlined text</u>
<div class="quoteblock">
<div class="title">quote block</div>
<blockquote>
<div class="paragraph">
<p>quote block
with line break</p>
</div>
</blockquote>
</div>
<div class="sidebarblock">
<div class="content">
<div class="title">sidebar block</div>
<div class="paragraph">
<p>sidebar block
with line break</p>
</div>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
<div class="paragraph">
<p>This is an example of an admonition block.</p>
</div>
<div class="paragraph">
<p>Unlike an admonition paragraph, it may contain any AsciiDoc content.
The style can be any one of the admonition labels:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>NOTE</p>
</li>
<li>
<p>TIP</p>
</li>
<li>
<p>WARNING</p>
</li>
<li>
<p>CAUTION</p>
</li>
<li>
<p>IMPORTANT</p>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2021-08-15 10:12:20 -0500
</div>
</div>
</body>
</html>

View file

@ -1,897 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.16">
<meta name="author" content="Gabe Venberg">
<title>test page for an adoc static site generator.</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment the following line when using as a custom stylesheet */
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
html{font-family:sans-serif;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
b,strong{font-weight:bold}
abbr{font-size:.9em}
abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
dfn{font-style:italic}
hr{height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type=checkbox],input[type=radio]{padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,::before,::after{box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre).nobreak{word-wrap:normal}
:not(pre).nowrap{white-space:nowrap}
:not(pre).pre-wrap{white-space:pre-wrap}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details{margin-left:1.25rem}
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;-webkit-tap-highlight-color:transparent}
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em}
pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px}
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist>li>p:first-child{margin-left:-1em}
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
td.hdlist2{word-wrap:anywhere}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]{border-bottom:1px dotted}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="article">
<div id="header">
<h1>test page for an adoc static site generator.</h1>
<div class="details">
<span id="author" class="author">Gabe Venberg</span><br>
</div>
<div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#_inline_formatting_tests">inline formatting tests</a></li>
<li><a href="#_list_tests">list tests</a></li>
<li><a href="#_link_tests">link tests</a></li>
<li><a href="#_tables_test">tables test</a></li>
<li><a href="#_included_section">included section</a>
<ul class="sectlevel2">
<li><a href="#_blocks">blocks</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="admonitionblock important">
<table>
<tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
Test the links in this page!
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus mi tellus, suscipit in dolor nec, faucibus aliquam nulla.
Mauris gravida, felis commodo molestie tincidunt, sem erat varius lorem, nec lobortis eros sem ut augue.
Donec suscipit tristique imperdiet.
Sed maximus est ultrices urna imperdiet, vitae facilisis eros posuere.
Quisque a mollis mauris.
Pellentesque fermentum, libero sed sollicitudin interdum, dolor nunc euismod purus, et laoreet tellus augue vitae turpis.
Pellentesque condimentum elit quis semper tincidunt.
Nullam consectetur euismod accumsan.
In dictum nibh ut iaculis euismod.
Phasellus ut nibh non ipsum volutpat cursus.
Sed eleifend, enim vitae ultrices auctor, dolor ipsum molestie dui, id dignissim massa neque a mauris.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_inline_formatting_tests">inline formatting tests</h2>
<div class="sectionbody">
<div class="paragraph">
<p><strong>bold test</strong></p>
</div>
<div class="paragraph">
<p><em>italics test</em></p>
</div>
<div class="paragraph">
<p>'monospace test'</p>
</div>
<div class="paragraph">
<p>'<strong>monospace bold test</strong>'</p>
</div>
<div class="paragraph">
<p>'<em>monospace italic test</em>'</p>
</div>
<div class="paragraph">
<p><em>*italic bold test*</em></p>
</div>
<div class="paragraph">
<p>'<strong><em>all three test</em></strong>'</p>
</div>
<div class="paragraph">
<p>*escaped bold test*</p>
</div>
<div class="paragraph">
<p><u>underline test using html passthrough test</u></p>
</div>
<div class="paragraph">
<p>*escaped bold test with plus*</p>
</div>
<div class="paragraph">
<p>&#8594; &#8658; &#8592; &#8656;</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_list_tests">list tests</h2>
<div class="sectionbody">
<div class="ulist">
<div class="title">unordered list test</div>
<ul>
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="ulist">
<ul>
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="ulist">
<ul>
<li>
<p>amet</p>
</li>
</ul>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="olist arabic">
<div class="title">ordered list test.</div>
<ol class="arabic">
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="olist lowerroman">
<ol class="lowerroman" type="i">
<li>
<p>amet</p>
</li>
</ol>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="olist arabic">
<div class="title">reversed ordered list test.</div>
<ol class="arabic" reversed>
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="olist lowerroman">
<ol class="lowerroman" type="i">
<li>
<p>amet</p>
</li>
</ol>
</div>
</li>
<li>
<p>consectetur</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="olist arabic">
<div class="title">mixed list</div>
<ol class="arabic">
<li>
<p>Lorum</p>
</li>
<li>
<p>ipsum</p>
<div class="ulist">
<ul>
<li>
<p>dolor</p>
</li>
<li>
<p>sit</p>
<div class="ulist">
<ul>
<li>
<p>amet</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>
<p>consectetur</p>
<div class="ulist">
<ul>
<li>
<p>adipiscing</p>
</li>
<li>
<p>elit</p>
</li>
</ul>
</div>
</li>
</ol>
</div>
<div class="hdlist">
<div class="title">description list test</div>
<table>
<tr>
<td class="hdlist1">
test
</td>
<td class="hdlist2">
<p>to make sure software works correctly</p>
</td>
</tr>
<tr>
<td class="hdlist1">
git
</td>
<td class="hdlist2">
<p>a gift from the machine spirits</p>
</td>
</tr>
<tr>
<td class="hdlist1">
printers
</td>
<td class="hdlist2">
<p>the greatest evil to ever befall IT.</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_link_tests">link tests</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Lets go back to the <a href="#_list_tests">list tests</a> or to the <a href="#_tables_test">tables</a></p>
</div>
<div class="paragraph">
<p><a href="https://git.venberg.xyz/Gabe/adocStaticSiteGen">gittea absolute link</a></p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="https://git.venberg.xyz/Gabe/adocStaticSiteGen"><img src="images/test_pattern.svg" alt="Stand By"></a>
</div>
<div class="title">Figure 1. Technical Difficulties</div>
</div>
<div class="paragraph">
<p><a href="dir/subdir/linked.html">link!</a></p>
</div>
<div class="paragraph">
<p><a href="dir/subdir/linked.html">xref!</a></p>
</div>
<div class="listingblock">
<div class="title">Source code test</div>
<div class="content">
<pre class="highlight"><code class="language-python" data-lang="python">def nextInSequence(number):
if isinstance(number, int):
if number % 2 == 0:
return number // 2
else:
return 3*number+1
else:
raise TypeError('input must be int!')
def seqenceLength(number):
length = 0
while number != 1:
number = nextInSequence(number)
length += 1
return length</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_tables_test">tables test</h2>
<div class="sectionbody">
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Group</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Firefox</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Web Browser</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Mozilla Firefox is an open-source web browser.
It&#8217;s designed for:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>standards compliance,</p>
</li>
<li>
<p>performance and</p>
</li>
<li>
<p>portability.</p>
</li>
</ul>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ruby</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Programming Language</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A programmer&#8217;s best friend.</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="_included_section">included section</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Fusce maximus nec magna eu ultricies.
Fusce quis tellus vitae arcu facilisis lobortis.
Donec id erat at enim porta placerat in vitae sapien.
Duis justo arcu, hendrerit nec nulla eu, dictum dapibus ipsum.
Sed fermentum id elit eget fringilla.
Suspendisse volutpat imperdiet justo, ut efficitur odio maximus et.
Nunc interdum sollicitudin eros sit amet convallis.
Praesent volutpat tempus metus id tincidunt.
Proin aliquet justo a fermentum consectetur.
Nunc scelerisque, nisi id scelerisque dictum, nibh lectus ultrices nunc, quis ultricies erat velit sit amet urna.
Maecenas orci felis, volutpat at bibendum ut, mattis eu justo.</p>
</div>
<div class="sect2">
<h3 id="_blocks">blocks</h3>
<div class="listingblock">
<div class="title">listing block</div>
<div class="content">
<pre>example of _listing block_
with verbatim line break</pre>
</div>
</div>
<div class="exampleblock">
<div class="title">Example 1. example block</div>
<div class="content">
<div class="paragraph">
<p>example block
with line break</p>
</div>
</div>
</div>
<div class="literalblock">
<div class="title">literal block</div>
<div class="content">
<pre>_literal_ block
with line break</pre>
</div>
</div>
pass block
with <u>underlined text</u>
<div class="quoteblock">
<div class="title">quote block</div>
<blockquote>
<div class="paragraph">
<p>quote block
with line break</p>
</div>
</blockquote>
</div>
<div class="sidebarblock">
<div class="content">
<div class="title">sidebar block</div>
<div class="paragraph">
<p>sidebar block
with line break</p>
</div>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>This is an example of an admonition block.</p>
</div>
<div class="paragraph">
<p>Unlike an admonition paragraph, it may contain any AsciiDoc content.
The style can be any one of the admonition labels:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>NOTE</p>
</li>
<li>
<p>TIP</p>
</li>
<li>
<p>WARNING</p>
</li>
<li>
<p>CAUTION</p>
</li>
<li>
<p>IMPORTANT</p>
</li>
</ul>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
</div>
</div>
</body>
</html>

239
tests/test.css Normal file
View file

@ -0,0 +1,239 @@
/*template asciidoctor skin from https://github.com/darshandsoni/asciidoctor-skins/blob/gh-pages/css/template.css*/
/*
* The MIT License (MIT)
*
* Copyright (c) 2016 Darshan Soni
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
/* document body (contains all content) */
body {
font-size: small;
}
/* document header (contains title etc) */
#header {
width: 100%;
}
/* headings */
h1 {
color: purple;
}
h2 {
color: chartreuse;
}
h3 {
color: coral;
}
h4 {
color: darkcyan;
}
h5 {
color: darkslategray;
}
h6 {
color: olive;
}
/* Table of Contents sidebar */
#toc {
background-color: plum!important;
color: white;
font-weight: bold;
}
/* title of the TOC */
#toctitle {
color: white;
}
/* top-level entries in TOC */
.sectlevel1 {
background-color: palegoldenrod;
}
/* second-level entries in TOC */
.sectlevel2 {
background-color: palegreen;
}
/* main content window */
#content {
background-color: lavender;
color: navy;
}
/* plain paragraph text */
.paragraph {
font-family: sans-serif;
}
p {
font-family: sans-serif;
}
/* blockquote text */
.quoteblock {
font-style: italic;
}
blockquote {
font-style: italic;
}
/* the quotation mark itself (before the block) */
.quoteblock blockquote::before {
color: blue;
}
/* blockquote attribution text */
.attribution {
font-size: x-large;
}
/* blockquote citation (work where quote cited) */
cite {
font-size: x-large;
}
/* ordered list */
ol {
color: red;
}
.olist {
color: red;
}
/* unordered list */
ul {
color: blue;
}
.ulist {
color: blue;
}
/* links */
a {
text-decoration: none;
}
/* bold text */
strong {
color: green;
}
/* italic text */
em {
color: orange;
}
/* underlined text */
u {
color: yellow;
}
/* deleted text */
del {
text-decoration: line-through;
color: red;
}
/* inserted text */
ins {
text-decoration: overline;
color: green;
}
/* strikethrough text */
s {
text-decoration-color: red;
}
/* superscript text */
sup {}
/* subscript text */
sub {}
/* small text */
small {}
/* highlighted text */
mark {}
/* horizontal rules */
hr {}
/* table */
table {}
/* table caption */
caption {}
/* table header row */
thead {}
/* table header cell */
th {}
/* table row */
tr {}
/* table footer */
tfoot {}
/* table cell */
td {}
/* table body */
tbody {}
/* inline code */
code {
background-color: papayawhip!important;
}
/* pre-formatted text */
pre {
background-color: burlywood!important;
}
.literalblock {
background-color: burlywood!important;
}
/* image */
img {
max-width: 100%;
}
/* image caption */
.imageblock .title {
font-weight: bold!important;
}
/* audio */
audio {}
/* video */
video {}
/* footer section */
#footer {
background-color: gray;
color: red;
}
/* footer text (by default contains time of last document update) */
#footer-text {
font-weight: bold;
color: white;
}
/* Responsiveness fixes */
video {
max-width: 100%;
}
@media all and (max-width: 600px) {
table {
width: 55vw!important;
font-size: 3vw;
}

31
tests/test.sh Normal file
View file

@ -0,0 +1,31 @@
rm -r result
../ASCIIsite.py --verbose --output result --exclude-file globignore test
#find the sha1sum of the output
cd result
result=$(find . -type f -print0 | xargs -0 -P0 -n1 md5sum | sort -k 2 | md5sum)
cd ../control
control=$(find . -type f -print0 | xargs -0 -P0 -n1 md5sum | sort -k 2 | md5sum)
cd ../
tree result
echo result sum is $result
echo control sum is $control
if [ "$result" = "$control" ]; then
echo test passed!
else
echo test did not pass!!!!!
fi
rm -r result_css
../ASCIIsite.py --verbose --output result_css --exclude-file globignore --stylesheet test.css test
cd result_css
result_css=$(find . -type f -print0 | xargs -0 -P0 -n1 md5sum | sort -k 2 | md5sum)
cd ../control_css
control_css=$(find . -type f -print0 | xargs -0 -P0 -n1 md5sum | sort -k 2 | md5sum)
cd ../
tree result_css
echo result_css sum is $result_css
echo control_css sum is $control_css
if [ "$result_css" = "$control_css" ]; then
echo test passed!
else
echo test did not pass!!!!!
fi

View file

@ -1,13 +1,25 @@
= relatively linked doc = relatively linked doc
Gabe Venberg Gabe Venberg
:imagesdir: ../../images/
:reproducible: :reproducible:
:giturl: git.venberg.xyz/Gabe/adocStaticSiteGen :giturl: git.venberg.xyz/Gabe/adocStaticSiteGen
[#test-pattern] [#test-pattern]
.Technical Difficulties .Technical Difficulties
[link={giturl}] [link={giturl}]
image::test_patern.jpg[Stand By] image::test_pattern.svg[Stand By]
[quote, Lawrence Lessig, May the Source Be With You]
While the creative works from the 16th century can still be accessed and used by others, the data in some software programs from the 1990s is already inaccessible. Once a company that produces a certain product goes out of business, it has no simple way to uncover how its product encoded data. The code is thus lost, and the software is inaccessible. Knowledge has been destroyed.
[verse, J.R.R. Tolkien, The Fellowship of the Ring]
Three Rings for the Elven-kings under the sky,
Seven for the dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne,
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
https://git.venberg.xyz/Gabe/adocStaticSiteGen https://git.venberg.xyz/Gabe/adocStaticSiteGen

View file

@ -1,11 +1,11 @@
= test page for an adoc static site generator. = test page for an adoc static site generator.
Gabe Venberg Gabe Venberg
:imagesdir: images
:docdate: 2021-08-06 :docdate: 2021-08-06
:reproducible: :reproducible:
:giturl: https://git.venberg.xyz/Gabe/adocStaticSiteGen :giturl: https://git.venberg.xyz/Gabe/adocStaticSiteGen
:toc: :toc:
:icons: font :icons: font
:stem: latexmath
:includedir: include/ :includedir: include/
@ -48,6 +48,9 @@ _*italic bold test*_
-> => <- <= -> => <- <=
==colapsable block
[%collapsible]
====
== list tests == list tests
.unordered list test .unordered list test
@ -85,6 +88,15 @@ _*italic bold test*_
** adipiscing ** adipiscing
** elit ** elit
====
.math test
stem:[\frac{\frac{1}{x}+\frac{1}{y}}{y-z}]
[asciimath]
++++
[[a,b\],[c,d\]\]((n),(k))
++++
.description list test .description list test
[horizontal] [horizontal]
test:: to make sure software works correctly test:: to make sure software works correctly
@ -131,4 +143,4 @@ It's designed for:
|=== |===
include::{includedir}/include.adoc[] include::{includedir}/include.txt[]