From 3e5250a8dc4847ad829f52de67b700c63584f134 Mon Sep 17 00:00:00 2001 From: gabe Date: Mon, 27 Sep 2021 14:55:37 -0500 Subject: [PATCH 01/10] include.txt snuck into results again. --- tests/result/include/include.txt | 65 -------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 tests/result/include/include.txt diff --git a/tests/result/include/include.txt b/tests/result/include/include.txt deleted file mode 100644 index a7151a2..0000000 --- a/tests/result/include/include.txt +++ /dev/null @@ -1,65 +0,0 @@ -== included section - -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. - -=== blocks - -.listing block ----- -example of _listing block_ -with verbatim line break ----- - -.example block -==== -example block -with line break -==== - -.literal block -.... -_literal_ block -with line break -.... - -.pass block -++++ -pass block -with underlined text -++++ - -.quote block -____ -quote block -with line break -____ - -.sidebar block -**** -sidebar block -with line break -**** - -[NOTE] -==== -This is an example of an admonition block. - -Unlike an admonition paragraph, it may contain any AsciiDoc content. -The style can be any one of the admonition labels: - -* NOTE -* TIP -* WARNING -* CAUTION -* IMPORTANT -==== From 3e1a15ac48739a17d47297a76e6ba76dc4292bfc Mon Sep 17 00:00:00 2001 From: gabe Date: Sun, 9 Jan 2022 21:55:23 -0600 Subject: [PATCH 02/10] fixed logic error in inputdir validation. --- ASCIIsite.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ASCIIsite.py b/ASCIIsite.py index d0ad22a..be356fb 100755 --- a/ASCIIsite.py +++ b/ASCIIsite.py @@ -55,7 +55,7 @@ def parse_arguments(): print(str(e)) exit() - if args.inputDir.resolve().exists(): + if not args.inputDir.resolve().exists(): print(f'Inputdir {args.inputDir.resolve()} does not exist!') exit() From d611923e89eb9f2f46a4868c83b283bd2d74d131 Mon Sep 17 00:00:00 2001 From: gabe Date: Sun, 9 Jan 2022 21:56:47 -0600 Subject: [PATCH 03/10] added a few more things to test suite --- tests/result/dir/subdir/linked.html | 25 ++++++++++++++- tests/result/landing_page.html | 48 ++++++++++++++++++++++++++--- tests/test.sh | 2 ++ tests/test/dir/subdir/linked.adoc | 17 ++++++++-- tests/test/landing_page.adoc | 13 ++++++++ 5 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 tests/test.sh diff --git a/tests/result/dir/subdir/linked.html b/tests/result/dir/subdir/linked.html index 31be3d8..1a4a433 100644 --- a/tests/result/dir/subdir/linked.html +++ b/tests/result/dir/subdir/linked.html @@ -448,10 +448,33 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
-Stand By +Stand By
Figure 1. Technical Difficulties
+
+
+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. +
+
+— Lawrence Lessig
+May the Source Be With You +
+
+
+
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.
+
+— J.R.R. Tolkien
+The Fellowship of the Ring +
+
diff --git a/tests/result/landing_page.html b/tests/result/landing_page.html index cf05dcc..3aaf826 100644 --- a/tests/result/landing_page.html +++ b/tests/result/landing_page.html @@ -449,7 +449,6 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
Table of Contents
  • inline formatting tests
  • -
  • list tests
  • link tests
  • tables test
  • included section @@ -527,11 +526,15 @@ Sed eleifend, enim vitae ultrices auctor, dolor ipsum molestie dui, id dignissim

    → ⇒ ← ⇐

    +
    +

    ==colapsable block

    +
    +Details +
    +
    +

    == list tests

    -
    -

    list tests

    -
    unordered list test
      @@ -666,6 +669,17 @@ Sed eleifend, enim vitae ultrices auctor, dolor ipsum molestie dui, id dignissim
    +
    +
    +
    +
    math test
    +

    \(\frac{\frac{1}{x}+\frac{1}{y}}{y-z}\)

    +
    +
    +
    +\$[[a,b\],[c,d\]\]((n),(k))\$ +
    +
    description list test
    @@ -701,7 +715,7 @@ printers
    -

    Lets go back to the list tests or to the tables

    +

    Lets go back to the [list tests] or to the tables

    gittea absolute link

    @@ -893,5 +907,29 @@ The style can be any one of the admonition labels:

    + + \ No newline at end of file diff --git a/tests/test.sh b/tests/test.sh new file mode 100644 index 0000000..f379168 --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,2 @@ +rm -r result +../ASCIIsite.py --output result --exclude-file globignore test diff --git a/tests/test/dir/subdir/linked.adoc b/tests/test/dir/subdir/linked.adoc index 4225eb8..307c515 100644 --- a/tests/test/dir/subdir/linked.adoc +++ b/tests/test/dir/subdir/linked.adoc @@ -1,13 +1,26 @@ = relatively linked doc Gabe Venberg -:imagesdir: ../../images/ +:imagesdir: ../../images :reproducible: :giturl: git.venberg.xyz/Gabe/adocStaticSiteGen [#test-pattern] .Technical Difficulties [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 diff --git a/tests/test/landing_page.adoc b/tests/test/landing_page.adoc index ea59699..ea08317 100644 --- a/tests/test/landing_page.adoc +++ b/tests/test/landing_page.adoc @@ -6,6 +6,7 @@ Gabe Venberg :giturl: https://git.venberg.xyz/Gabe/adocStaticSiteGen :toc: :icons: font +:stem: latexmath :includedir: include/ @@ -48,6 +49,9 @@ _*italic bold test*_ -> => <- <= +==colapsable block +[%collapsible] +==== == list tests .unordered list test @@ -85,6 +89,15 @@ _*italic bold test*_ ** adipiscing ** elit +==== + +.math test +stem:[\frac{\frac{1}{x}+\frac{1}{y}}{y-z}] +[asciimath] +++++ +[[a,b\],[c,d\]\]((n),(k)) +++++ + .description list test [horizontal] test:: to make sure software works correctly From 8972e43113700c6c6c912f2d2bda672f5b303a4b Mon Sep 17 00:00:00 2001 From: gabe Date: Sun, 9 Jan 2022 22:52:10 -0600 Subject: [PATCH 04/10] allowed setting the log level via command line. --- ASCIIsite.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ASCIIsite.py b/ASCIIsite.py index be356fb..3277b64 100755 --- a/ASCIIsite.py +++ b/ASCIIsite.py @@ -14,8 +14,14 @@ def parse_arguments(): 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('-v', '--verbose', action='store_true', help='outputs debug messages onto the console.') 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 if args.output != None and not args.compress: #detect based on whether outFile has a .tar.gz filename. From 80d510a282b66366b56e73f95a7244f7e15f86d3 Mon Sep 17 00:00:00 2001 From: gabe Date: Sun, 9 Jan 2022 22:52:39 -0600 Subject: [PATCH 05/10] made auto-tester script. tests against a known compiled file. --- .gitignore | 2 + tests/control/dir/collatz.py | 16 + tests/control/dir/subdir/linked.html | 496 +++++ tests/control/images/test_pattern.svg | 2495 +++++++++++++++++++++++++ tests/control/landing_page.html | 935 +++++++++ tests/test.sh | 15 +- 6 files changed, 3958 insertions(+), 1 deletion(-) create mode 100755 tests/control/dir/collatz.py create mode 100644 tests/control/dir/subdir/linked.html create mode 100644 tests/control/images/test_pattern.svg create mode 100644 tests/control/landing_page.html diff --git a/.gitignore b/.gitignore index eb0a0b1..d793de9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +#test result +result/* #vim session files *.vims diff --git a/tests/control/dir/collatz.py b/tests/control/dir/collatz.py new file mode 100755 index 0000000..073528a --- /dev/null +++ b/tests/control/dir/collatz.py @@ -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 diff --git a/tests/control/dir/subdir/linked.html b/tests/control/dir/subdir/linked.html new file mode 100644 index 0000000..1a4a433 --- /dev/null +++ b/tests/control/dir/subdir/linked.html @@ -0,0 +1,496 @@ + + + + + + + + +relatively linked doc + + + + + +
    +
    +
    +Stand By +
    +
    Figure 1. Technical Difficulties
    +
    +
    +
    +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. +
    +
    +— Lawrence Lessig
    +May the Source Be With You +
    +
    +
    +
    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.
    +
    +— J.R.R. Tolkien
    +The Fellowship of the Ring +
    +
    + +
    +
    A mechanical marvel
    +
    + +
    +
    + +
    + + + \ No newline at end of file diff --git a/tests/control/images/test_pattern.svg b/tests/control/images/test_pattern.svg new file mode 100644 index 0000000..7e86992 --- /dev/null +++ b/tests/control/images/test_pattern.svg @@ -0,0 +1,2495 @@ + + + + + + + + image/svg+xml + + Carta de Ajuste + 11/JUN/08 + + + EBNZ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/control/landing_page.html b/tests/control/landing_page.html new file mode 100644 index 0000000..3aaf826 --- /dev/null +++ b/tests/control/landing_page.html @@ -0,0 +1,935 @@ + + + + + + + + +test page for an adoc static site generator. + + + + + + +
    +
    +
    +
    +
    + + + + +
    + + +Test the links in this page! +
    +
    +
    +

    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.

    +
    +
+ +
+

inline formatting tests

+
+
+

bold test

+
+
+

italics test

+
+
+

'monospace test'

+
+
+

'monospace bold test'

+
+
+

'monospace italic test'

+
+
+

*italic bold test*

+
+
+

'all three test'

+
+
+

*escaped bold test*

+
+
+

underline test using html passthrough test

+
+
+

*escaped bold test with plus*

+
+
+

→ ⇒ ← ⇐

+
+
+

==colapsable block

+
+
+Details +
+
+

== list tests

+
+
+
unordered list test
+
    +
  • +

    Lorum

    +
  • +
  • +

    ipsum

    +
    +
      +
    • +

      dolor

      +
    • +
    • +

      sit

      +
      +
        +
      • +

        amet

        +
      • +
      +
      +
    • +
    • +

      consectetur

      +
    • +
    +
    +
  • +
+
+
+
ordered list test.
+
    +
  1. +

    Lorum

    +
  2. +
  3. +

    ipsum

    +
    +
      +
    1. +

      dolor

      +
    2. +
    3. +

      sit

      +
      +
        +
      1. +

        amet

        +
      2. +
      +
      +
    4. +
    5. +

      consectetur

      +
    6. +
    +
    +
  4. +
+
+
+
reversed ordered list test.
+
    +
  1. +

    Lorum

    +
  2. +
  3. +

    ipsum

    +
    +
      +
    1. +

      dolor

      +
    2. +
    3. +

      sit

      +
      +
        +
      1. +

        amet

        +
      2. +
      +
      +
    4. +
    5. +

      consectetur

      +
    6. +
    +
    +
  4. +
+
+
+
mixed list
+
    +
  1. +

    Lorum

    +
  2. +
  3. +

    ipsum

    +
    +
      +
    • +

      dolor

      +
    • +
    • +

      sit

      +
      +
        +
      • +

        amet

        +
      • +
      +
      +
    • +
    +
    +
  4. +
  5. +

    consectetur

    +
    +
      +
    • +

      adipiscing

      +
    • +
    • +

      elit

      +
    • +
    +
    +
  6. +
+
+
+
+
+
math test
+

\(\frac{\frac{1}{x}+\frac{1}{y}}{y-z}\)

+
+
+
+\$[[a,b\],[c,d\]\]((n),(k))\$ +
+
+
+
description list test
+ + + + + + + + + + + + + +
+test + +

to make sure software works correctly

+
+git + +

a gift from the machine spirits

+
+printers + +

the greatest evil to ever befall IT.

+
+
+
+
+
+ +
+
+

Lets go back to the [list tests] or to the tables

+
+ +
+
+Stand By +
+
Figure 1. Technical Difficulties
+
+
+

link!

+
+
+

xref!

+
+
+
Source code test
+
+
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
+
+
+
+
+
+

tables test

+
+ +++++ + + + + + + + + + + + + + + + + + + + +
NameGroupDescription

Firefox

Web Browser

+

Mozilla Firefox is an open-source web browser. +It’s designed for:

+
+
+
    +
  • +

    standards compliance,

    +
  • +
  • +

    performance and

    +
  • +
  • +

    portability.

    +
  • +
+

Ruby

Programming Language

A programmer’s best friend.

+
+
+
+

included section

+
+
+

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.

+
+
+

blocks

+
+
listing block
+
+
example of _listing block_
+with verbatim line break
+
+
+
+
Example 1. example block
+
+
+

example block +with line break

+
+
+
+
+
literal block
+
+
_literal_ block
+with line break
+
+
+pass block +with underlined text +
+
quote block
+
+
+

quote block +with line break

+
+
+
+
+
+
sidebar block
+
+

sidebar block +with line break

+
+
+
+
+ + + + + +
+ + +
+

This is an example of an admonition block.

+
+
+

Unlike an admonition paragraph, it may contain any AsciiDoc content. +The style can be any one of the admonition labels:

+
+
+
    +
  • +

    NOTE

    +
  • +
  • +

    TIP

    +
  • +
  • +

    WARNING

    +
  • +
  • +

    CAUTION

    +
  • +
  • +

    IMPORTANT

    +
  • +
+
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/tests/test.sh b/tests/test.sh index f379168..f704c8a 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -1,2 +1,15 @@ rm -r result -../ASCIIsite.py --output result --exclude-file globignore test +../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 ../ +echo result sum is $result +echo control sum is $control +if [ "$result" = "$control" ]; then + echo test passed! +else + echo test did not pass!!!!! +fi From 817953c6f1fe07857e3684008b35ed09053f4771 Mon Sep 17 00:00:00 2001 From: gabe Date: Mon, 10 Jan 2022 00:45:51 -0600 Subject: [PATCH 06/10] split stylesheet into seperate file. Instead of being embedded in every document, the stylesheet is now copied to a single directory at the top of the website directory structure. Also reused that code to automatically set the imagesdir attribute. fixes #5 --- ASCIIsite.py | 30 +- tests/control/css/asciidoctor.css | 427 ++++++++++++++++++++++++++ tests/control/dir/subdir/linked.html | 430 +-------------------------- tests/control/landing_page.html | 430 +-------------------------- tests/result/css/asciidoctor.css | 427 ++++++++++++++++++++++++++ tests/result/dir/subdir/linked.html | 430 +-------------------------- tests/result/landing_page.html | 430 +-------------------------- tests/test.sh | 1 + tests/test/dir/subdir/linked.adoc | 1 - tests/test/landing_page.adoc | 1 - 10 files changed, 882 insertions(+), 1725 deletions(-) create mode 100644 tests/control/css/asciidoctor.css create mode 100644 tests/result/css/asciidoctor.css diff --git a/ASCIIsite.py b/ASCIIsite.py index 3277b64..9860f1d 100755 --- a/ASCIIsite.py +++ b/ASCIIsite.py @@ -51,15 +51,13 @@ def parse_arguments(): logging.info(f'outputting to {outFile.resolve()}') logging.debug(f'compress is {compress}') - try: + 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) - except Exception as e: - print(str(e)) - exit() + if args.exclude != None: + exclude.extend(args.exclude) if not args.inputDir.resolve().exists(): print(f'Inputdir {args.inputDir.resolve()} does not exist!') @@ -97,13 +95,31 @@ class TmpDir: def find_paths_to_convert(fileNameGlob): 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. def convert_file(inDir, outDir, inFile): + #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.debug(f'converting {inFile} from directory {inDir} to directory {outDir}') + logging.debug(f'converting {inFile} from directory {inDir} to directory {outDir} with a relative depth of {depth}') + + depthstring= '../'*depth + 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(['asciidoctor', + #makes the stylesheet linked, but still includes it in the output. + '--attribute=linkcss', + '--attribute=copycss', + f'--attribute=stylesdir={depthstring}css', + #set imagesdir + f'--attribute=imagesdir={depthstring}images', #specifies the source directory root. 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). diff --git a/tests/control/css/asciidoctor.css b/tests/control/css/asciidoctor.css new file mode 100644 index 0000000..d6d02fb --- /dev/null +++ b/tests/control/css/asciidoctor.css @@ -0,0 +1,427 @@ +/*! 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}} \ No newline at end of file diff --git a/tests/control/dir/subdir/linked.html b/tests/control/dir/subdir/linked.html index 1a4a433..cf08c73 100644 --- a/tests/control/dir/subdir/linked.html +++ b/tests/control/dir/subdir/linked.html @@ -8,435 +8,7 @@ relatively linked doc - +