Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
0003a874db | |||
59fb270c60 | |||
8c7fce2538 | |||
9b13ee0b3a | |||
b6ab0fb7ee | |||
8105144d82 | |||
4a4241a4e4 | |||
3b97489374 | |||
b1203327ad | |||
86010351b7 | |||
c87dd60c5e | |||
f85c5fc6eb | |||
04a410a85b | |||
6247034203 | |||
9d75fefb81 | |||
06cce2edc3 |
19
.drone.yml
19
.drone.yml
@ -6,6 +6,11 @@
|
|||||||
# ```
|
# ```
|
||||||
# git clone https://code.studioinfinity.org/glen/mkdocs-semiliterate
|
# git clone https://code.studioinfinity.org/glen/mkdocs-semiliterate
|
||||||
# ```
|
# ```
|
||||||
|
#
|
||||||
|
# For the remaining steps, it may be easiest to do them in a python
|
||||||
|
# virtual environment. If you put the virtual environment in `.venv` at
|
||||||
|
# the top level of the project, it will not disrupt any of the tests.
|
||||||
|
# Remember to activate your virtual environment before doing the testing.
|
||||||
###
|
###
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: bootstrap
|
name: bootstrap
|
||||||
@ -33,7 +38,7 @@ steps:
|
|||||||
### develop
|
### develop
|
||||||
# ### Testing
|
# ### Testing
|
||||||
#
|
#
|
||||||
# If you have a a Docker daemon running on your local machine and the Drone
|
# If you have a Docker daemon running on your local machine and the Drone
|
||||||
# [command-line](https://readme.drone.io/cli/install) installed, you can run all
|
# [command-line](https://readme.drone.io/cli/install) installed, you can run all
|
||||||
# of the tests via `drone exec`. If not, or if you don't want to wait for the
|
# of the tests via `drone exec`. If not, or if you don't want to wait for the
|
||||||
# Docker container to spin up and install all of the prerequisites, you can make
|
# Docker container to spin up and install all of the prerequisites, you can make
|
||||||
@ -42,7 +47,7 @@ steps:
|
|||||||
# starting from the top-level `mkdocs-semiliterate` directory, run the commands
|
# starting from the top-level `mkdocs-semiliterate` directory, run the commands
|
||||||
# that drone uses to test:
|
# that drone uses to test:
|
||||||
# ```
|
# ```
|
||||||
- flake8 --max-line-length=80 --extend-exclude=build
|
- flake8 --max-line-length=80 --extend-exclude=build --extend-exclude=.venv
|
||||||
- mkdocs build
|
- mkdocs build
|
||||||
- find site -not -path '*fonts*' -not -path '*img*' -not -path '*js*' | sort -f | diff tests/bootstrap.manifest -
|
- find site -not -path '*fonts*' -not -path '*img*' -not -path '*js*' | sort -f | diff tests/bootstrap.manifest -
|
||||||
- bash tests/sites.bash
|
- bash tests/sites.bash
|
||||||
@ -86,12 +91,18 @@ steps:
|
|||||||
# [repository site](https://code.studioinfinity.org/glen/mkdocs-semiliterate).
|
# [repository site](https://code.studioinfinity.org/glen/mkdocs-semiliterate).
|
||||||
# Pull requests are welcome as well. If you're new to contributing to open-source
|
# Pull requests are welcome as well. If you're new to contributing to open-source
|
||||||
# projects, `mkdocs-simple-plugin` has a very nice
|
# projects, `mkdocs-simple-plugin` has a very nice
|
||||||
# [tutorial](https://athackst.github.io/mkdocs-simple-plugin/CONTRIBUTING/).
|
# [tutorial](https://althack.dev/mkdocs-simple-plugin/v{! setup.cfg { extract: {start: 'mkdocs~=', stop: '(\d*\.\d*\.?\d*)'}} !}/CONTRIBUTING/).
|
||||||
#
|
#
|
||||||
# ### Publishing
|
# ### Publishing
|
||||||
#
|
#
|
||||||
# This package is published to [PyPI](https://pypi.org/project/mkdocs-semiliterate/)
|
# This package is published to [PyPI](https://pypi.org/project/mkdocs-semiliterate/)
|
||||||
# using [twine](https://twine.readthedocs.io). Mostly to jog the developer's
|
# using [twine](https://twine.readthedocs.io). Mostly to jog the developer's
|
||||||
# memory, when a new release is freshly built, the command to update PyPI is
|
# memory, when a new release is freshly built, the command to update PyPI is
|
||||||
# `twine upload dist/*`.
|
# `twine upload dist/*`. Also don't forget to create a fresh release on the
|
||||||
|
# repository site as well. Finally, you can manually upload the new doc pages
|
||||||
|
# for mkdocs-semiliterate itself so the pages can be served by moving the
|
||||||
|
# newly-produced `site` directory to `semiliterate` and then executing
|
||||||
|
#
|
||||||
|
# `scp -r -i [IDENTITY_FILE] semiliterate [USER]@[SERVER]:/opt/bitnami/apps/wordpress/htdocs`
|
||||||
|
#
|
||||||
###
|
###
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# MkDocs semiliterate Plugin
|
# ![Dreaming of integrated documentation](assets/icons8-ask-question-100.png) MkDocs semiliterate Plugin
|
||||||
|
|
||||||
This plugin for [MkDocs](http://mkdocs.org) is an extension of Allison Thackston's excellent [mkdocs-simple-plugin](https://athackst.github.io/mkdocs-simple-plugin). It allows you to include content from one file into another (via `{! ... !}` syntax), using exactly the same extraction specification that the `simple` plugin already uses for identifying documentation in source files.
|
This plugin for [MkDocs](http://mkdocs.org) is an extension of Allison Thackston's excellent [mkdocs-simple-plugin](https://www.althack.dev/mkdocs-simple-plugin/). It allows you to include content from one file into another (via `{! ... !}` syntax), using exactly the same extraction specification that the `simple` plugin already uses for identifying documentation in source files.
|
||||||
<!-- repo: --><!-- site: The current version of mkdocs-semiliterate is {! setup.cfg { extract: {start: name}, terminate: '(\d*\.\d*\.\d*)', ensurelines: false} !}. -->
|
<!-- repo: --><!-- site: The current version of mkdocs-semiliterate is {! setup.cfg { extract: {start: name}, terminate: '(\d*\.\d*\.\d*)', ensurelines: false} !}. -->
|
||||||
|
<!-- repo: --><!-- site: It is built on mkdocs-simple-plugin v{! setup.cfg { extract: {start: 'mkdocs~=', stop: '(\d*\.\d*\.?\d*)'}, ensurelines: false} !}. -->
|
||||||
|
|
||||||
## Rationale
|
## Rationale
|
||||||
|
|
||||||
@ -28,6 +29,6 @@ or of course if your `pip` is already set up to use a Python 3.5 (or later) inst
|
|||||||
|
|
||||||
`pip install mkdocs-semiliterate`
|
`pip install mkdocs-semiliterate`
|
||||||
|
|
||||||
## License
|
## License and Acknowledgments
|
||||||
|
|
||||||
This software is licensed under [Apache 2.0](LICENSE).
|
This software is licensed under [Apache 2.0](LICENSE). [Icons8](https://icons8.com/icon/115368/ask-question) provided the icon.
|
||||||
|
BIN
assets/icons8-ask-question-100.png
Normal file
BIN
assets/icons8-ask-question-100.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
13
mkdocs.yml
13
mkdocs.yml
@ -7,14 +7,21 @@ plugins:
|
|||||||
- search
|
- search
|
||||||
- semiliterate:
|
- semiliterate:
|
||||||
merge_docs_dir: false
|
merge_docs_dir: false
|
||||||
ignore_folders: [build, dist, tests, semiliterate]
|
ignore: [build, dist, tests, semiliterate, .venv]
|
||||||
include_extensions: [LICENSE]
|
include: [LICENSE, '.png']
|
||||||
|
copy: true
|
||||||
extract_standard_markdown:
|
extract_standard_markdown:
|
||||||
extract:
|
extract:
|
||||||
replace: [['^(.*)<!-- repo: -->.*<!-- site:(.*?) -->(.*\s*)$', '\1\2\3']]
|
replace: [['^(.*)<!-- repo: -->.*<!-- site:(.*?) -->(.*\s*)$', '\1\2\3']]
|
||||||
|
ensurelines: false
|
||||||
semiliterate:
|
semiliterate:
|
||||||
- pattern: '\.py$'
|
- pattern: '\.py$'
|
||||||
extract: {start: '"""\smd', stop: '"""'}
|
extract:
|
||||||
|
- start: '"""\smd'
|
||||||
|
stop: '"""'
|
||||||
|
- start: '#\sstart-md'
|
||||||
|
stop: '#\send-md'
|
||||||
|
replace: ['^# (.*\s*)$']
|
||||||
- pattern: '.drone.yml'
|
- pattern: '.drone.yml'
|
||||||
destination: 'drone_develop.md'
|
destination: 'drone_develop.md'
|
||||||
extract:
|
extract:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
""" md
|
r""" md
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Once this plugin is [installed](../README.md#installation), just replace
|
Once this plugin is [installed](../README.md#installation), just replace
|
||||||
@ -6,52 +6,77 @@ the plugin name `simple` with `semiliterate` in your `mkdocs.yml` file.
|
|||||||
It accepts all of the same parameters, so `mkdocs` will still work as before,
|
It accepts all of the same parameters, so `mkdocs` will still work as before,
|
||||||
and you will have immediate access to all of the following extensions.
|
and you will have immediate access to all of the following extensions.
|
||||||
(Note that this documentation assumes a familiarity with the
|
(Note that this documentation assumes a familiarity with the
|
||||||
[usage](https://athackst.github.io/mkdocs-simple-plugin/mkdocs_simple_plugin/plugin/)
|
[usage](https://althack.dev/mkdocs-simple-plugin/v{! ../setup.cfg {
|
||||||
|
extract: {start: 'mkdocs~=', stop: '(\d*\.\d*\.?\d*)'}
|
||||||
|
} !}/mkdocs_simple_plugin/plugin/)
|
||||||
of the `simple` plugin.)
|
of the `simple` plugin.)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from mkdocs import utils
|
from mkdocs import utils
|
||||||
from mkdocs.config import config_options
|
from mkdocs.config import config_options
|
||||||
|
from mkdocs.config.defaults import MkDocsConfig
|
||||||
|
from mkdocs.structure.files import File, Files
|
||||||
|
|
||||||
from mkdocs_simple_plugin.semiliterate import (
|
from mkdocs_simple_plugin.semiliterate import (
|
||||||
Semiliterate, LazyFile, ExtractionPattern, StreamExtract, get_line)
|
Semiliterate, LazyFile, ExtractionPattern, StreamExtract)
|
||||||
|
from mkdocs_simple_plugin.simple import (Simple, SimplePath)
|
||||||
from mkdocs_simple_plugin.plugin import SimplePlugin
|
from mkdocs_simple_plugin.plugin import SimplePlugin
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
import tempfile
|
import tempfile
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
class FlextractionPattern(ExtractionPattern):
|
class BorrowFile:
|
||||||
r""" Extends ExtractionPattern to add ensure_line argument
|
"""Just forwards to another stream, and never closes it
|
||||||
to replace_line method.
|
Except it also has its own value of ensurelines.
|
||||||
"""
|
"""
|
||||||
# Following must be identical to ExtractionPattern.replace_line,
|
def __init__(self, other, ensurelines=True):
|
||||||
# except as marked:
|
self.other = other
|
||||||
def replace_line(self, line, ensure_line=True):
|
self.file_name = other.file_name
|
||||||
"""Apply the specified replacements to the line and return it."""
|
self.ensurelines = ensurelines
|
||||||
if not self.replace:
|
|
||||||
return line
|
def write_just(self, arg):
|
||||||
for item in self.replace:
|
self.other.write_just(arg)
|
||||||
pattern = item[0] if isinstance(item, tuple) else item
|
|
||||||
match_object = pattern.search(line)
|
def write(self, arg):
|
||||||
if match_object:
|
if (self.ensurelines and not arg.endswith("\n")):
|
||||||
# CHANGES HERE
|
arg += "\n"
|
||||||
replaced = False
|
self.other.write_just(arg)
|
||||||
replacement = ''
|
|
||||||
if isinstance(item, tuple):
|
def close(self):
|
||||||
replacement = match_object.expand(item[1])
|
return None
|
||||||
replaced = True
|
|
||||||
elif match_object.lastindex:
|
|
||||||
replacement = match_object[match_object.lastindex]
|
class LazierFile(LazyFile):
|
||||||
replaced = True
|
"""Just like LazyFile, except with ensurelines parameter
|
||||||
if replaced and ensure_line:
|
The parameter controls whether every call to write guarantees a newline
|
||||||
replacement = get_line(replacement)
|
is written.
|
||||||
return replacement
|
"""
|
||||||
# END OF CHANGES
|
def __init__(self, directory: str, name: str, ensurelines=True):
|
||||||
# Otherwise, just return the line.
|
super().__init__(directory, name)
|
||||||
return line
|
self.ensurelines = ensurelines
|
||||||
|
|
||||||
|
# Basically identical to LazyFile write, so take care to sync
|
||||||
|
def write_just(self, arg: str) -> None:
|
||||||
|
""" create and write exactly arg to file, no newlines added"""
|
||||||
|
if arg is None:
|
||||||
|
return
|
||||||
|
if self.file_object is None:
|
||||||
|
filename = os.path.join(self.file_directory, self.file_name)
|
||||||
|
os.makedirs(self.file_directory, exist_ok=True)
|
||||||
|
self.file_object = open(filename, 'w+')
|
||||||
|
self.file_object.write(arg)
|
||||||
|
|
||||||
|
def write(self, arg: str) -> None:
|
||||||
|
if self.ensurelines:
|
||||||
|
super().write(arg)
|
||||||
|
else:
|
||||||
|
self.write_just(arg)
|
||||||
|
|
||||||
|
|
||||||
class StreamInclusion(StreamExtract):
|
class StreamInclusion(StreamExtract):
|
||||||
@ -60,7 +85,7 @@ class StreamInclusion(StreamExtract):
|
|||||||
### Inclusion syntax
|
### Inclusion syntax
|
||||||
|
|
||||||
While extracting content from a file (because it matches one of the
|
While extracting content from a file (because it matches one of the
|
||||||
`semiliterate` patterns, rather than just one of the `include_extensions`),
|
`semiliterate` patterns, rather than just `include`),
|
||||||
an unescaped expression of the form
|
an unescaped expression of the form
|
||||||
|
|
||||||
`{! FILENAME YAML !}`
|
`{! FILENAME YAML !}`
|
||||||
@ -71,7 +96,7 @@ enclosed in single or double quotes. Note that FILENAME is interpreted relative
|
|||||||
to the directory in which the file containing the `{! .. !}` expression
|
to the directory in which the file containing the `{! .. !}` expression
|
||||||
resides. The YAML is interpreted exactly as the extraction options to a
|
resides. The YAML is interpreted exactly as the extraction options to a
|
||||||
`semiliterate` item as
|
`semiliterate` item as
|
||||||
[documented](https://athackst.github.io/mkdocs-simple-plugin/mkdocs_simple_plugin/plugin/index.html#semiliterate)
|
[documented](https://althack.dev/mkdocs-simple-plugin/v{! ../setup.cfg { extract: {start: 'mkdocs~=', stop: '(\d*\.\d*\.?\d*)'}, ensurelines: false} !}/mkdocs_simple_plugin/plugin/index.html#semiliterate)
|
||||||
for the `simple` extension, subject to the extensions below. The text
|
for the `simple` extension, subject to the extensions below. The text
|
||||||
extracted from FILENAME is interpolated at the current location in the file
|
extracted from FILENAME is interpolated at the current location in the file
|
||||||
currently being written. Recursive inclusion is supported.
|
currently being written. Recursive inclusion is supported.
|
||||||
@ -85,9 +110,7 @@ For an example that uses more of the extraction parameters, the current
|
|||||||
version number of mkdocs-semiliterate is extracted into the
|
version number of mkdocs-semiliterate is extracted into the
|
||||||
[Overview](../README.md) of this documentation via
|
[Overview](../README.md) of this documentation via
|
||||||
|
|
||||||
` {! ../README.md extract: { start: 'repo:.*(\{!.*!\})', stop: '' }
|
` {! ../README.md extract: { start: 'repo:.*(\{!.*!\})', stop: 'repo' } !}`
|
||||||
terminate: Rationale
|
|
||||||
!}`
|
|
||||||
|
|
||||||
to take advantage of the beginning of the `setup.cfg` file:
|
to take advantage of the beginning of the `setup.cfg` file:
|
||||||
```
|
```
|
||||||
@ -115,32 +138,33 @@ is checked for `{! ... !}`.
|
|||||||
include_bare_file = re.compile(r'\s(?P<fn>.*?)\s+(?P<yml>[\s\S]*?)\s?\!\}')
|
include_bare_file = re.compile(r'\s(?P<fn>.*?)\s+(?P<yml>[\s\S]*?)\s?\!\}')
|
||||||
|
|
||||||
def __init__(self, input_stream, output_stream, include_root,
|
def __init__(self, input_stream, output_stream, include_root,
|
||||||
ensurelines=True, terminate=None, patterns=None, **kwargs):
|
terminate=None, patterns=None, extract=None, **kwargs):
|
||||||
if terminate and not hasattr(terminate, 'search'):
|
if terminate and not hasattr(terminate, 'search'):
|
||||||
terminate = re.compile(terminate)
|
terminate = re.compile(terminate)
|
||||||
# Unfortunately, "simple" has now moved the pattern parsing into
|
if patterns is None and extract:
|
||||||
# Semiliterate, so we need to reiterate the code for that here:
|
# Sadly we must reiterate the pattern parsing here, because of
|
||||||
if patterns is None:
|
# inclusions not coming from a [DS]emiliterate object
|
||||||
if 'extract' in kwargs:
|
extractions = []
|
||||||
extract = kwargs.pop('extract')
|
if isinstance(extract, dict):
|
||||||
if isinstance(extract, dict):
|
extract = [extract]
|
||||||
extract = [extract]
|
for extract_params in extract:
|
||||||
patterns = [FlextractionPattern(**p) for p in extract]
|
extractions.append(ExtractionPattern(**extract_params))
|
||||||
else:
|
if len(extractions) > 0:
|
||||||
patterns = [FlextractionPattern()]
|
patterns = extractions
|
||||||
super().__init__(input_stream, output_stream,
|
super().__init__(input_stream, output_stream,
|
||||||
terminate, patterns, **kwargs)
|
terminate, patterns, **kwargs)
|
||||||
self.include_root = include_root
|
self.include_root = include_root
|
||||||
self.ensure_lines = ensurelines
|
|
||||||
|
|
||||||
def extract_line(self, line, extraction_pattern):
|
def extract_line(self, line, extraction_pattern):
|
||||||
"""Copy line to the output stream, applying all specified replacements
|
"""Copy line to the output stream, applying all specified replacements
|
||||||
and handling inclusion syntax.
|
and handling inclusion syntax.
|
||||||
"""
|
"""
|
||||||
line = extraction_pattern.replace_line(line, self.ensure_lines)
|
line = extraction_pattern.replace_line(line)
|
||||||
|
if line is None:
|
||||||
|
return
|
||||||
include_match = StreamInclusion.include_open.search(line)
|
include_match = StreamInclusion.include_open.search(line)
|
||||||
if not include_match:
|
if not include_match:
|
||||||
self.transcribe(line)
|
self.output_stream.write(line)
|
||||||
return
|
return
|
||||||
# OK, we have found (the start of) an inclusion and must process it
|
# OK, we have found (the start of) an inclusion and must process it
|
||||||
preamble = line[:include_match.start()]
|
preamble = line[:include_match.start()]
|
||||||
@ -154,8 +178,7 @@ is checked for `{! ... !}`.
|
|||||||
body_match = body_pattern.search(remainder)
|
body_match = body_pattern.search(remainder)
|
||||||
if not body_match:
|
if not body_match:
|
||||||
for extra_line in self.input_stream:
|
for extra_line in self.input_stream:
|
||||||
remainder += extraction_pattern.replace_line(extra_line,
|
remainder += extraction_pattern.replace_line(extra_line)
|
||||||
self.ensure_lines)
|
|
||||||
body_match = body_pattern.search(remainder)
|
body_match = body_pattern.search(remainder)
|
||||||
if body_match:
|
if body_match:
|
||||||
break
|
break
|
||||||
@ -164,9 +187,8 @@ is checked for `{! ... !}`.
|
|||||||
utils.log.error(errmsg)
|
utils.log.error(errmsg)
|
||||||
raise EOFError(errmsg)
|
raise EOFError(errmsg)
|
||||||
filename = body_match['fn']
|
filename = body_match['fn']
|
||||||
gitextract = False
|
|
||||||
r""" md
|
r""" md
|
||||||
### Double-quoted filenames and Git extraction
|
### Double-quoted filenames and special extraction
|
||||||
|
|
||||||
Standard Python escape sequences in double-quoted filenames are interpreted
|
Standard Python escape sequences in double-quoted filenames are interpreted
|
||||||
as usual; for example you can write
|
as usual; for example you can write
|
||||||
@ -179,9 +201,13 @@ as usual; for example you can write
|
|||||||
to include a file whose name (`snippet/Say "Don't"`, in this case) has both
|
to include a file whose name (`snippet/Say "Don't"`, in this case) has both
|
||||||
double and single quotes.
|
double and single quotes.
|
||||||
|
|
||||||
Further, `semiliterate` supports a special escape to extract a file from the
|
Further, `semiliterate` supports some special escape sequences for
|
||||||
Git archive of the project (presuming it is under Git version control) and then
|
doublequoted file names to include text from other places than current files
|
||||||
include content from that file. For example, you could write
|
in the project tree:
|
||||||
|
|
||||||
|
`\git`: extracts a version of a file from the Git archive of the project
|
||||||
|
(presuming it is under Git version control) and then
|
||||||
|
includes content from that file. For example, you could write
|
||||||
```
|
```
|
||||||
{! ../tests/fixtures/git-inclusion/README.md extract:
|
{! ../tests/fixtures/git-inclusion/README.md extract:
|
||||||
start: '(.*!.*)'
|
start: '(.*!.*)'
|
||||||
@ -206,22 +232,46 @@ form
|
|||||||
|
|
||||||
is that the output of `git show SPECIFIER` is written to a temporary file,
|
is that the output of `git show SPECIFIER` is written to a temporary file,
|
||||||
and that file is extracted from.
|
and that file is extracted from.
|
||||||
|
|
||||||
|
`\syspath`: searches for the remainder of the doublequoted filename in the
|
||||||
|
python `sys.path` and includes content from the found file. For example, you
|
||||||
|
could write
|
||||||
|
```
|
||||||
|
{! ../tests/fixtures/theme-modification/doc_theme/.base.generator extract:
|
||||||
|
start: '(.*!.*)'
|
||||||
|
!}
|
||||||
|
```
|
||||||
|
to create a version of the "base.html" of the "readthedocs" theme with
|
||||||
|
additional content at the very top of the body. As the example suggests, this
|
||||||
|
mechanism is primarily useful to tweak an mkdocs theme in ways not
|
||||||
|
anticipated by the `{%- block ... %}` directives placed by the theme writer.
|
||||||
"""
|
"""
|
||||||
|
gitextract = False
|
||||||
|
syspathextract = False
|
||||||
if doublequoted:
|
if doublequoted:
|
||||||
if filename[:5] == r'\git ':
|
if filename[:5] == r'\git ':
|
||||||
gitextract = True
|
gitextract = True
|
||||||
filename = filename[5:]
|
filename = filename[5:]
|
||||||
|
elif filename[:9] == r'\syspath ':
|
||||||
|
syspathextract = True
|
||||||
|
filename = filename[9:]
|
||||||
filename = (filename.encode('latin-1', 'backslashreplace')
|
filename = (filename.encode('latin-1', 'backslashreplace')
|
||||||
.decode('unicode-escape'))
|
.decode('unicode-escape'))
|
||||||
include_path = self.include_root + '/' + filename
|
include_path = os.path.join(self.include_root, filename)
|
||||||
if gitextract:
|
if gitextract:
|
||||||
(write_handle, include_path) = tempfile.mkstemp()
|
(write_handle, include_path) = tempfile.mkstemp()
|
||||||
utils.log.info(
|
utils.log.info(
|
||||||
f"semiliterate: extracting {filename} to {include_path}")
|
f"semiliterate: git extracting {filename} to {include_path}")
|
||||||
contents = subprocess.check_output(['git', 'show', filename])
|
contents = subprocess.check_output(['git', 'show', filename])
|
||||||
os.write(write_handle, contents)
|
os.write(write_handle, contents)
|
||||||
os.close(write_handle)
|
os.close(write_handle)
|
||||||
new_root = re.match(r'(.*)/', include_path)[1]
|
if syspathextract:
|
||||||
|
for dirname in sys.path:
|
||||||
|
candidate = os.path.join(dirname, filename)
|
||||||
|
if os.path.isfile(candidate):
|
||||||
|
include_path = candidate
|
||||||
|
break
|
||||||
|
new_root = os.path.dirname(include_path)
|
||||||
try:
|
try:
|
||||||
include_parameters = yaml.safe_load(body_match['yml'])
|
include_parameters = yaml.safe_load(body_match['yml'])
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
@ -234,59 +284,20 @@ and that file is extracted from.
|
|||||||
if not include_parameters:
|
if not include_parameters:
|
||||||
include_parameters = {}
|
include_parameters = {}
|
||||||
with open(include_path) as include_file:
|
with open(include_path) as include_file:
|
||||||
self.transcribe(preamble)
|
self.output_stream.write(preamble)
|
||||||
inclusion = StreamInclusion(
|
inclusion = StreamInclusion(
|
||||||
include_file, self.output_stream, new_root,
|
include_file,
|
||||||
|
BorrowFile(self.output_stream,
|
||||||
|
include_parameters.get('ensurelines', True)),
|
||||||
|
new_root,
|
||||||
**include_parameters)
|
**include_parameters)
|
||||||
if inclusion.extract():
|
if inclusion.extract():
|
||||||
self.wrote_something = True
|
self.wrote_something = True
|
||||||
self.transcribe(remainder[body_match.end():])
|
self.output_stream.write(remainder[body_match.end():])
|
||||||
|
|
||||||
# ## The following has to be identical to StreamExtract.check_pattern
|
|
||||||
# ## except for the marked bit handling ensure_lines
|
|
||||||
def check_pattern(self, pattern, line, emit_last=True):
|
|
||||||
"""Check if pattern is contained in line.
|
|
||||||
|
|
||||||
If _pattern_ is not false-y and is contained in _line_,
|
|
||||||
returns true (and if the _emit_last_ flag is true,
|
|
||||||
emits the last group of the match if any). Otherwise,
|
|
||||||
check_pattern does nothing but return false.
|
|
||||||
"""
|
|
||||||
if not pattern:
|
|
||||||
return False
|
|
||||||
match_object = pattern.search(line)
|
|
||||||
if not match_object:
|
|
||||||
return False
|
|
||||||
if match_object.lastindex and emit_last:
|
|
||||||
# CHANGES HERE
|
|
||||||
# self.transcribe(get_line(match_object[match_object.lastindex]))
|
|
||||||
to_emit = match_object[match_object.lastindex]
|
|
||||||
if self.ensure_lines:
|
|
||||||
to_emit = get_line(to_emit)
|
|
||||||
self.transcribe(to_emit)
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
class SemiliteratePlugin(SimplePlugin):
|
class SemiliteratePlugin(SimplePlugin):
|
||||||
r""" md An extension of the mkdocs-simple-plugin
|
r""" md An extension of the mkdocs-simple-plugin
|
||||||
|
|
||||||
### Universal block-comment markdown
|
|
||||||
|
|
||||||
By default, `semiliterate` scans for block-comment markdown `/** md` ... `**/`
|
|
||||||
in all files with _any_ extension, as it's valid in so many disparate languages.
|
|
||||||
(As opposed to `simple`, which defaults to searching for such markdown in a
|
|
||||||
specific list of file types.)
|
|
||||||
"""
|
|
||||||
|
|
||||||
super_sdict = dict(SimplePlugin.config_scheme)
|
|
||||||
super_semi_dflt = super_sdict['semiliterate'].default
|
|
||||||
semi_dflt = [b if 'js' not in b['pattern'] else dict(b, pattern=r'\.')
|
|
||||||
for b in super_semi_dflt]
|
|
||||||
altered_config_scheme = dict(
|
|
||||||
super_sdict,
|
|
||||||
semiliterate=config_options.Type(list, default=semi_dflt)).items()
|
|
||||||
|
|
||||||
add_param_doc = r""" md
|
|
||||||
### Additional plugin parameters
|
### Additional plugin parameters
|
||||||
|
|
||||||
`semiliterate` adds a couple of new plugin parameters to further tailor its
|
`semiliterate` adds a couple of new plugin parameters to further tailor its
|
||||||
@ -294,7 +305,7 @@ behavior as compared to `simple`. They are described in this section, with
|
|||||||
default values in parentheses at the beginning of each entry.
|
default values in parentheses at the beginning of each entry.
|
||||||
|
|
||||||
{! plugin.py extract:
|
{! plugin.py extract:
|
||||||
start: '[*]altered_config_scheme'
|
start: '[*]super_config_scheme'
|
||||||
replace:
|
replace:
|
||||||
- ["\\('(.*)',\\s*$", '\1\n']
|
- ["\\('(.*)',\\s*$", '\1\n']
|
||||||
- ['config_options.Type.*?default=([^\)]*)', ': (\1)']
|
- ['config_options.Type.*?default=([^\)]*)', ': (\1)']
|
||||||
@ -302,25 +313,26 @@ default values in parentheses at the beginning of each entry.
|
|||||||
terminate: '^\s*\)'
|
terminate: '^\s*\)'
|
||||||
!}
|
!}
|
||||||
"""
|
"""
|
||||||
|
super_config_scheme = SimplePlugin.config_scheme
|
||||||
config_scheme = (
|
config_scheme = (
|
||||||
# Note documentation of each new parameter **follows** the parameter.
|
# Note documentation of each new parameter **follows** the parameter.
|
||||||
*altered_config_scheme,
|
*super_config_scheme,
|
||||||
('exclude_extensions',
|
('exclude',
|
||||||
config_options.Type(list, default=['.o'])),
|
config_options.Type(list, default=['.o'])),
|
||||||
# Files whose name contains a string in this list will not be
|
# Files whose name contains a string in this list will not be
|
||||||
# processed by `semiliterate`, regardless of whether they might
|
# processed by `semiliterate`, regardless of whether they might
|
||||||
# match `include_extensions`, the `semiliterate` patterns, or
|
# match `include`, the `semiliterate` patterns, or
|
||||||
# standard Markdown.
|
# standard Markdown.
|
||||||
('copy_standard_markdown',
|
('copy_standard_markdown',
|
||||||
config_options.Type(bool, default=False)),
|
config_options.Type(bool, default=False)),
|
||||||
# Whether to add MkDocs' list of standard Markdown extensions to
|
# Whether to add MkDocs' list of standard Markdown extensions to
|
||||||
# the `include_extensions` parameter so that Markdown files will be
|
# the `include` parameter so that Markdown files will be
|
||||||
# directly copied to the docsite. Note that the `simple` behavior
|
# directly copied to the docsite. Note that the `simple` behavior
|
||||||
# corresponds to a _true_ value for `copy_standard_markdown`, but
|
# corresponds to a _true_ value for `copy_standard_markdown`, but
|
||||||
# `semiliterate` still incorporates all standard Markdown files
|
# `semiliterate` still incorporates all standard Markdown files
|
||||||
# because of the following `extract_standard_markdown` parameter.
|
# because of the following `extract_standard_markdown` parameter.
|
||||||
('extract_standard_markdown',
|
('extract_standard_markdown',
|
||||||
config_options.Type(dict, default={}))
|
config_options.Type(dict, default={})),
|
||||||
# If the `enable` key of this dict parameter is true
|
# If the `enable` key of this dict parameter is true
|
||||||
# (it defaults to the opposite of `copy_standard_markdown`),
|
# (it defaults to the opposite of `copy_standard_markdown`),
|
||||||
# it adds a semiliterate block causing extraction (and hence
|
# it adds a semiliterate block causing extraction (and hence
|
||||||
@ -333,43 +345,167 @@ terminate: '^\s*\)'
|
|||||||
# (which is also the default when `copy_standard_markdown` is true)
|
# (which is also the default when `copy_standard_markdown` is true)
|
||||||
# will prevent automatic extraction (and hence disable
|
# will prevent automatic extraction (and hence disable
|
||||||
# inclusion-directive processing) from standard Markdown files.
|
# inclusion-directive processing) from standard Markdown files.
|
||||||
|
('extract_on_copy',
|
||||||
|
config_options.Type(bool, default=False)),
|
||||||
|
# Whether to also attempt extraction from a file that is copied
|
||||||
|
# verbatim (because of matching the `include_extensions`).
|
||||||
)
|
)
|
||||||
|
|
||||||
def on_config(self, config, **kwargs):
|
def on_config(self, config, **kwargs):
|
||||||
|
# Save the include extensions before SimplePlugin modifies them:
|
||||||
|
saved_includes = self.config['include']
|
||||||
|
new_config = super().on_config(config, **kwargs)
|
||||||
|
self.config['saved_includes'] = saved_includes
|
||||||
|
curpath = os.path.abspath('.')
|
||||||
|
self.custom_dir = None
|
||||||
|
for themedir in config['theme'].dirs:
|
||||||
|
common = os.path.commonpath(
|
||||||
|
[os.path.abspath('.'), os.path.abspath(themedir)])
|
||||||
|
if common == curpath:
|
||||||
|
self.custom_dir = os.path.relpath(themedir, curpath)
|
||||||
|
newthemedir = os.path.join(
|
||||||
|
self.config['build_dir'], self.custom_dir)
|
||||||
|
utils.log.debug(
|
||||||
|
'mkdocs-semiliterate: found theme.custom_dir = '
|
||||||
|
+ self.custom_dir
|
||||||
|
+ f"; adding theme directory {newthemedir}")
|
||||||
|
config['theme'].dirs.insert(0, newthemedir)
|
||||||
|
break
|
||||||
|
return new_config
|
||||||
|
|
||||||
|
# Override rather than extend so that we use Semisimple instead of simple
|
||||||
|
# Note code must track mkdocs_simple_plugin, with the added section for
|
||||||
|
# the custom_dir at the bottom. Also removed a section about removing
|
||||||
|
# files from the docs dir if not merging; it was unclear how it was
|
||||||
|
# supposed to work, and it would crash whenever it triggered anyway.
|
||||||
|
def on_files(self, files: Files, /, *,
|
||||||
|
config: MkDocsConfig):
|
||||||
|
"""Update files based on plugin settings."""
|
||||||
|
# Configure Semisimple
|
||||||
|
semisimple = Semisimple(**self.config)
|
||||||
|
|
||||||
|
# Save paths to add to watch if serving
|
||||||
|
do_copy = self.config["copy"]
|
||||||
|
self.paths = semisimple.build_docs(
|
||||||
|
self.dirty, self.last_build_time, do_copy)
|
||||||
|
self.last_build_time = time.time()
|
||||||
|
|
||||||
|
# Code section from mkdocs_simple_plugin has been CUT FROM HERE
|
||||||
|
# If not merging, remove files that are from the docs dir
|
||||||
|
# End of CUT FROM HERE
|
||||||
|
|
||||||
|
for path in self.paths:
|
||||||
|
file = File(
|
||||||
|
src_dir=os.path.abspath(path.output_root),
|
||||||
|
path=path.output_relpath,
|
||||||
|
dest_dir=config.site_dir,
|
||||||
|
use_directory_urls=config["use_directory_urls"]
|
||||||
|
)
|
||||||
|
if file.src_uri in files.src_uris:
|
||||||
|
files.remove(file)
|
||||||
|
files.append(file)
|
||||||
|
|
||||||
|
# If we designated a subdirectory for the theme, ignore files in it
|
||||||
|
if self.custom_dir:
|
||||||
|
sources = files.src_paths
|
||||||
|
for path in sources:
|
||||||
|
if path.startswith(self.custom_dir):
|
||||||
|
utils.log.debug(
|
||||||
|
f"mkdocs-semiliterate: ignoring {path} "
|
||||||
|
+ f"from theme directory {self.custom_dir}")
|
||||||
|
files.remove(sources[path])
|
||||||
|
|
||||||
|
return files
|
||||||
|
|
||||||
|
|
||||||
|
class Semisimple(Simple):
|
||||||
|
"""Mkdocs Semisimple Plugin"""
|
||||||
|
def __init__(self, semiliterate, exclude, saved_includes,
|
||||||
|
copy_standard_markdown, extract_standard_markdown,
|
||||||
|
extract_on_copy, **kwargs):
|
||||||
# Since we have extensions in Demiliterate, suppress the semiliterate
|
# Since we have extensions in Demiliterate, suppress the semiliterate
|
||||||
# configuration until we handle it ourselves:
|
# configuration until we handle it ourselves:
|
||||||
semi = self.config['semiliterate']
|
super().__init__(semiliterate=[], **kwargs)
|
||||||
self.config['semiliterate'] = []
|
self.semiliterate = [Demiliterate(**item) for item in semiliterate]
|
||||||
new_config = super().on_config(config, **kwargs)
|
self.exclude = exclude
|
||||||
self.config['semiliterate'] = semi
|
self.extract_on_copy = extract_on_copy
|
||||||
self.semiliterate = [Demiliterate(**item) for item in semi]
|
|
||||||
self.exclude_extensions = self.config['exclude_extensions']
|
|
||||||
dflt_enable = False
|
dflt_enable = False
|
||||||
if not self.config['copy_standard_markdown']:
|
if not copy_standard_markdown:
|
||||||
self.include_extensions = self.config['include_extensions']
|
self.doc_glob = set(saved_includes)
|
||||||
dflt_enable = True
|
dflt_enable = True
|
||||||
if self.config['extract_standard_markdown'].get('enable', dflt_enable):
|
if extract_standard_markdown.get('enable', dflt_enable):
|
||||||
ext_pat = '|'.join(re.escape(s) for s in utils.markdown_extensions)
|
ext_pat = '|'.join(re.escape(s) for s in utils.markdown_extensions)
|
||||||
self.semiliterate.append(
|
self.semiliterate.append(
|
||||||
Demiliterate(
|
Demiliterate(
|
||||||
pattern=re.compile(f"^(.*(?:{ext_pat}))$"),
|
pattern=re.compile(f"^(.*(?:{ext_pat}))$"),
|
||||||
destination=r'\1',
|
destination=r'\1',
|
||||||
**self.config['extract_standard_markdown']))
|
**extract_standard_markdown))
|
||||||
return new_config
|
|
||||||
|
|
||||||
def in_extensions(self, file):
|
def is_doc_file(self, name: str) -> bool:
|
||||||
if any(ext in file for ext in self.exclude_extensions):
|
if any(ext in name for ext in self.exclude):
|
||||||
return False
|
return False
|
||||||
return super().in_extensions(file)
|
return super().is_doc_file(name)
|
||||||
|
|
||||||
def extract_from(self, from_directory, name, to_directory):
|
def try_extract(self, from_dir: str, name: str, to_dir: str) -> list:
|
||||||
if any(ext in name for ext in self.exclude_extensions):
|
if any(ext in name for ext in self.exclude):
|
||||||
return False
|
return []
|
||||||
return super().extract_from(from_directory, name, to_directory)
|
if not self.extract_on_copy and self.is_doc_file(name):
|
||||||
|
return []
|
||||||
|
return super().try_extract(from_dir, name, to_dir)
|
||||||
|
|
||||||
|
# Had to override this because the simple version hardcoded that if a file
|
||||||
|
# was copied, it could not be extracted. So check carefully for changes in
|
||||||
|
# simple. Only the line marked # REMOVED was commented out
|
||||||
|
def build_docs(
|
||||||
|
self,
|
||||||
|
dirty=False,
|
||||||
|
last_build_time=None,
|
||||||
|
do_copy=False) -> list:
|
||||||
|
"""Build the docs directory from workspace files."""
|
||||||
|
paths = []
|
||||||
|
files = self.get_files()
|
||||||
|
for file in files:
|
||||||
|
if not os.path.isfile(file):
|
||||||
|
continue
|
||||||
|
if dirty and last_build_time and (
|
||||||
|
os.path.getmtime(file) <= last_build_time):
|
||||||
|
continue
|
||||||
|
from_dir = os.path.dirname(file)
|
||||||
|
name = os.path.basename(file)
|
||||||
|
build_prefix = os.path.normpath(
|
||||||
|
os.path.join(self.build_dir, from_dir))
|
||||||
|
|
||||||
|
doc_paths = self.get_doc_file(
|
||||||
|
from_dir, name, build_prefix, True)
|
||||||
|
if doc_paths:
|
||||||
|
paths.append(
|
||||||
|
SimplePath(
|
||||||
|
output_root=".",
|
||||||
|
output_relpath=os.path.relpath(path=file, start="."),
|
||||||
|
input_path=file)
|
||||||
|
)
|
||||||
|
utils.log.info("mkdocs-semiliterate: Added %s", file)
|
||||||
|
# continue # REMOVED
|
||||||
|
|
||||||
|
extracted_paths = self.try_extract(from_dir, name, build_prefix)
|
||||||
|
for path in extracted_paths:
|
||||||
|
paths.append(
|
||||||
|
SimplePath(
|
||||||
|
output_root=self.build_dir,
|
||||||
|
output_relpath=os.path.relpath(
|
||||||
|
path=path,
|
||||||
|
start=self.build_dir),
|
||||||
|
input_path=file))
|
||||||
|
utils.log.info(
|
||||||
|
"mkdocs-semiliterate: Extracted %s -> %s", file, path)
|
||||||
|
if extracted_paths:
|
||||||
|
continue
|
||||||
|
|
||||||
|
return paths
|
||||||
|
|
||||||
|
|
||||||
class Demiliterate(Semiliterate):
|
class Demiliterate(Semiliterate):
|
||||||
r""" md Extends Semiliterate to use StreamInclusion, not StreamExtract
|
r""" md Extends Semiliterate to use StreamInclusion, not StreamExtract
|
||||||
|
|
||||||
semiliterate.ensurelines
|
semiliterate.ensurelines
|
||||||
: (true) Guarantees that a newline is trancribed for each line of the input,
|
: (true) Guarantees that a newline is trancribed for each line of the input,
|
||||||
@ -382,51 +518,72 @@ semiliterate.ensurelines
|
|||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
pattern,
|
pattern: str,
|
||||||
destination=None,
|
destination: str = None,
|
||||||
terminate=None,
|
terminate: str = None,
|
||||||
ensurelines=True,
|
extract: list = None,
|
||||||
extract=[]):
|
ensurelines=True):
|
||||||
super().__init__(pattern, destination, terminate)
|
super().__init__(pattern, destination, terminate, extract)
|
||||||
self.ensure_lines = ensurelines
|
self.ensurelines = ensurelines
|
||||||
if isinstance(extract, dict):
|
|
||||||
extract = [extract]
|
|
||||||
self.patterns = [FlextractionPattern(**p) for p in extract]
|
|
||||||
if len(self.patterns) == 0:
|
|
||||||
self.patterns = [FlextractionPattern()]
|
|
||||||
|
|
||||||
# Note this needs to be identical to Semiliterate.try_extraction
|
# Note that this has diverged noticeably from the
|
||||||
# except with StreamInclusion in place of StreamExtract in the
|
# Semiliterate.try_extraction method that it overrides, especially
|
||||||
# `extraction =` line, and a couple of options as noted below:
|
# in regards to adjusting the destination directory.
|
||||||
|
# Hence, great care must be taken when mkdocs-simple-plugin is updated
|
||||||
|
# to make sure that any changes to this method are reflected in the
|
||||||
|
# code below:
|
||||||
def try_extraction(
|
def try_extraction(
|
||||||
self,
|
self,
|
||||||
from_directory,
|
from_directory,
|
||||||
from_file,
|
from_file,
|
||||||
destination_directory,
|
destination_directory,
|
||||||
**kwargs):
|
**kwargs) -> list:
|
||||||
"""Try to extract documentation from file with name.
|
"""Try to extract documentation from file with name.
|
||||||
|
|
||||||
Returns True if extraction was successful.
|
Args:
|
||||||
|
from_directory (str): The source directory
|
||||||
|
from_file (str): The source filename within directory
|
||||||
|
destination_directory (str): The destination directory
|
||||||
|
|
||||||
|
Returns a list of extracted files.
|
||||||
"""
|
"""
|
||||||
to_file = self.filenname_match(from_file)
|
to_file = self.filename_match(from_file)
|
||||||
if not to_file:
|
if not to_file:
|
||||||
return False
|
return []
|
||||||
from_file_path = os.path.join(from_directory, from_file)
|
from_file_path = os.path.join(from_directory, from_file)
|
||||||
|
to_file_path = os.path.join(destination_directory, to_file) # ## ADDED
|
||||||
|
(destination_directory, to_file) = os.path.split(to_file_path) # ADDED
|
||||||
try:
|
try:
|
||||||
with open(from_file_path) as original_file:
|
with open(from_file_path) as original_file:
|
||||||
utils.log.debug(
|
utils.log.debug(
|
||||||
"mkdocs-simple-plugin: Scanning {}...".format(from_file))
|
f"mkdocs-semiliterate: Scanning {from_file_path}... ")
|
||||||
# extraction = StreamExtract(
|
# extraction = StreamExtract(
|
||||||
extraction = StreamInclusion(
|
extraction = StreamInclusion(
|
||||||
input_stream=original_file,
|
input_stream=original_file,
|
||||||
output_stream=LazyFile(destination_directory, to_file),
|
output_stream=LazierFile(
|
||||||
|
destination_directory, to_file, self.ensurelines),
|
||||||
include_root=from_directory, # ## ADDED
|
include_root=from_directory, # ## ADDED
|
||||||
ensurelines=self.ensure_lines, # ## ADDED
|
|
||||||
terminate=self.terminate,
|
terminate=self.terminate,
|
||||||
patterns=self.patterns,
|
patterns=self.extractions,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
return extraction.extract()
|
return extraction.extract()
|
||||||
except BaseException:
|
except (UnicodeDecodeError) as error:
|
||||||
utils.log.error("mkdocs-simple-plugin: could not build {}".format(
|
utils.log.debug("mkdocs-semiliterate: Skipped %s", from_file_path)
|
||||||
from_file_path))
|
utils.log.debug(
|
||||||
return False
|
"mkdocs-semiliterate: Error details: %s", str(error))
|
||||||
|
except (OSError, IOError) as error:
|
||||||
|
utils.log.error("mkdocs-semiliterate: could not build %s\n %s",
|
||||||
|
from_file_path, str(error))
|
||||||
|
return []
|
||||||
|
|
||||||
|
# start-md
|
||||||
|
# ### Adjusting the mkdocs theme
|
||||||
|
|
||||||
|
# `semiliterate` also makes it possible to add generated files to the mkdocs
|
||||||
|
# theme. It does this by detecting if a `theme.custom_dir` parameter has been
|
||||||
|
# set in the mkdocs configuration, and if so, it adds the corresponding
|
||||||
|
# directory in the generated docs dir to the theme search path. (Note this
|
||||||
|
# means that
|
||||||
|
# files in the corresponding subdirectory of your project will be copied into
|
||||||
|
# the resulting doc site unless their names start with a '.')
|
||||||
|
# end-md
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = mkdocs-semiliterate
|
name = mkdocs-semiliterate
|
||||||
version = 0.3.0
|
version = 0.8.3
|
||||||
description = Extension of mkdocs-simple-plugin adding easy content inclusion
|
description = Extension of mkdocs-simple-plugin adding easy content inclusion
|
||||||
long_description = file: README.md
|
long_description = file: README.md
|
||||||
long_description_content_type = text/markdown
|
long_description_content_type = text/markdown
|
||||||
@ -24,8 +24,8 @@ license = Apache-2.0
|
|||||||
[options]
|
[options]
|
||||||
packages = mkdocs_semiliterate
|
packages = mkdocs_semiliterate
|
||||||
install_requires =
|
install_requires =
|
||||||
mkdocs
|
mkdocs~=1.4
|
||||||
mkdocs-simple-plugin>=1.0.0
|
mkdocs-simple-plugin==3.2.0
|
||||||
|
|
||||||
[options.entry_points]
|
[options.entry_points]
|
||||||
mkdocs.plugins =
|
mkdocs.plugins =
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
site
|
site
|
||||||
site/404.html
|
site/404.html
|
||||||
|
site/assets
|
||||||
|
site/assets/icons8-ask-question-100.png
|
||||||
site/css
|
site/css
|
||||||
site/css/theme.css
|
site/css/theme.css
|
||||||
site/css/theme_extra.css
|
site/css/theme_extra.css
|
||||||
|
6
tests/fixtures/extract-inclusion/README.md
vendored
Normal file
6
tests/fixtures/extract-inclusion/README.md
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Want to copy and extract
|
||||||
|
|
||||||
|
The [whole text](raw.txt).
|
||||||
|
|
||||||
|
The [extracted markdown](polished.md).
|
||||||
|
|
BIN
tests/fixtures/extract-inclusion/assets/icons8-ask-question-100.png
vendored
Normal file
BIN
tests/fixtures/extract-inclusion/assets/icons8-ask-question-100.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
12
tests/fixtures/extract-inclusion/mkdocs.yml
vendored
Normal file
12
tests/fixtures/extract-inclusion/mkdocs.yml
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
site_name: Enable extraction from included files
|
||||||
|
docs_dir: refsite # dummy
|
||||||
|
plugins:
|
||||||
|
- semiliterate:
|
||||||
|
ignore: [refsite]
|
||||||
|
merge_docs_dir: false
|
||||||
|
include: ['.txt']
|
||||||
|
extract_on_copy: true
|
||||||
|
semiliterate:
|
||||||
|
- pattern: '\.txt'
|
||||||
|
extract: {start: '---', stop: '---'}
|
||||||
|
destination: 'polished.md'
|
7
tests/fixtures/extract-inclusion/raw.txt
vendored
Normal file
7
tests/fixtures/extract-inclusion/raw.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
This is a free-form file, used as an example
|
||||||
|
---
|
||||||
|
# Internals
|
||||||
|
|
||||||
|
But this is __markdown__ hidden within.
|
||||||
|
---
|
||||||
|
There can of course be stuff after it.
|
103
tests/fixtures/extract-inclusion/refsite/404.html.cropped
vendored
Normal file
103
tests/fixtures/extract-inclusion/refsite/404.html.cropped
vendored
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<title>Enable extraction from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="/.">Enable extraction from included files</a>
|
||||||
|
<!-- Expander button -->
|
||||||
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
<!-- Main navigation -->
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="/." class="nav-link">Want to copy and extract</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="/polished/" class="nav-link">Internals</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div id="main-content" class="span12">
|
||||||
|
<h1 id="404-page-not-found" style="text-align: center">404</h1>
|
||||||
|
<p style="text-align: center"><strong>Page not found</strong></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = "/",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
366
tests/fixtures/extract-inclusion/refsite/css/base.css
vendored
Normal file
366
tests/fixtures/extract-inclusion/refsite/css/base.css
vendored
Normal file
@ -0,0 +1,366 @@
|
|||||||
|
html {
|
||||||
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
|
main container. */
|
||||||
|
scroll-padding-top: calc(3.5rem + 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Replacement for `body { background-attachment: fixed; }`, which has
|
||||||
|
performance issues when scrolling on large displays. See #1394. */
|
||||||
|
body::before {
|
||||||
|
content: ' ';
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
background: url(../img/grid.png) repeat-x;
|
||||||
|
will-change: transform;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
body > .container {
|
||||||
|
margin-top: 20px;
|
||||||
|
min-height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.fixed-top {
|
||||||
|
position: -webkit-sticky;
|
||||||
|
position: sticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
.source-links {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-md-9 img {
|
||||||
|
max-width: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 4px;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
|
border: 1px solid var(--bs-secondary-border-subtle);
|
||||||
|
border-radius: 4px;
|
||||||
|
margin: 20px auto 30px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h3, h4, h5, h6 {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border-top: 1px solid #aaa;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre, .rst-content tt {
|
||||||
|
max-width: 100%;
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
border: solid 1px var(--bs-border-color);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
code.code-large, .rst-content tt.code-large {
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 2px 5px;
|
||||||
|
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
|
||||||
|
border: solid 1px var(--bs-border-color);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
display: block;
|
||||||
|
border: none;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
padding: 2px 4px;
|
||||||
|
font-size: 90%;
|
||||||
|
color: var(--bs-secondary-text-emphasis);
|
||||||
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
a code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover code, a:focus code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
margin-top: 30px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog {
|
||||||
|
margin-top: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Side navigation
|
||||||
|
*
|
||||||
|
* Scrollspy and affixed enhanced navigation to highlight sections and secondary
|
||||||
|
* sections of docs content.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.bs-sidebar.affix {
|
||||||
|
position: -webkit-sticky;
|
||||||
|
position: sticky;
|
||||||
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
|
main container. */
|
||||||
|
top: calc(3.5rem + 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar.card {
|
||||||
|
padding: 0;
|
||||||
|
max-height: 90%;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Toggle (vertically flip) sidebar collapse icon */
|
||||||
|
.bs-sidebar .navbar-toggler span {
|
||||||
|
-moz-transform: scale(1, -1);
|
||||||
|
-webkit-transform: scale(1, -1);
|
||||||
|
-o-transform: scale(1, -1);
|
||||||
|
-ms-transform: scale(1, -1);
|
||||||
|
transform: scale(1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .navbar-toggler.collapsed span {
|
||||||
|
-moz-transform: scale(1, 1);
|
||||||
|
-webkit-transform: scale(1, 1);
|
||||||
|
-o-transform: scale(1, 1);
|
||||||
|
-ms-transform: scale(1, 1);
|
||||||
|
transform: scale(1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* First level of nav */
|
||||||
|
.bs-sidebar > .navbar-collapse > .nav {
|
||||||
|
padding-top: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* All levels of nav */
|
||||||
|
.bs-sidebar .nav > li > a {
|
||||||
|
display: block;
|
||||||
|
padding: 5px 20px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.bs-sidebar .nav > li > a:hover,
|
||||||
|
.bs-sidebar .nav > li > a:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
.bs-sidebar .nav > li > a.active,
|
||||||
|
.bs-sidebar .nav > li > a.active:hover,
|
||||||
|
.bs-sidebar .nav > li > a.active:focus {
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: transparent;
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav .nav .nav {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav > li > a {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav .nav > li > a {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerlink {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
font-size: 14px;
|
||||||
|
display: none;
|
||||||
|
padding-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 10px;
|
||||||
|
border-left: 4px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
padding: 15px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.note, details.note {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
|
border-color: var(--bs-primary-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.note h1, .admonition.note h2, .admonition.note h3,
|
||||||
|
.admonition.note h4, .admonition.note h5, .admonition.note h6,
|
||||||
|
details.note h1, details.note h2, details.note h3,
|
||||||
|
details.note h4, details.note h5, details.note h6 {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.info, details.info {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
background-color: var(--bs-info-bg-subtle);
|
||||||
|
border-color: var(--bs-info-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.info h1, .admonition.info h2, .admonition.info h3,
|
||||||
|
.admonition.info h4, .admonition.info h5, .admonition.info h6,
|
||||||
|
details.info h1, details.info h2, details.info h3,
|
||||||
|
details.info h4, details.info h5, details.info h6 {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning, details.warning {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
background-color: var(--bs-warning-bg-subtle);
|
||||||
|
border-color: var(--bs-warning-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
|
||||||
|
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
|
||||||
|
details.warning h1, details.warning h2, details.warning h3,
|
||||||
|
details.warning h4, details.warning h5, details.warning h6 {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger, details.danger {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
|
border-color: var(--bs-danger-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
|
||||||
|
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
|
||||||
|
details.danger h1, details.danger h2, details.danger h3,
|
||||||
|
details.danger h4, details.danger h5, details.danger h6 {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
background-color: var(--bs-light-bg-subtle);
|
||||||
|
border-color: var(--bs-light-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition h1, .admonition h2, .admonition h3,
|
||||||
|
.admonition h4, .admonition h5, .admonition h6,
|
||||||
|
details h1, details h2, details h3,
|
||||||
|
details h4, details h5, details h6 {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition-title, summary {
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition>p:last-child, details>p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 991.98px) {
|
||||||
|
.navbar-collapse.show {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height: calc(100vh - 3.5rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item.open {
|
||||||
|
color: var(--bs-dropdown-link-active-color);
|
||||||
|
background-color: var(--bs-dropdown-link-active-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > .dropdown-menu {
|
||||||
|
margin: 0 0 0 1.5rem;
|
||||||
|
padding: 0;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > a::after {
|
||||||
|
display: block;
|
||||||
|
content: " ";
|
||||||
|
float: right;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-color: transparent;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 5px 0 5px 5px;
|
||||||
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-right: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu:hover > a::after {
|
||||||
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.dropdown-menu {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height: calc(100vh - 3.5rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > .dropdown-menu {
|
||||||
|
position: fixed !important;
|
||||||
|
margin-top: -9px;
|
||||||
|
margin-left: -2px;
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 0.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left > .dropdown-menu {
|
||||||
|
left: -100%;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
/* Remove sidebar when print */
|
||||||
|
.col-md-3 { display: none; }
|
||||||
|
}
|
12
tests/fixtures/extract-inclusion/refsite/css/bootstrap.min.css
vendored
Normal file
12
tests/fixtures/extract-inclusion/refsite/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/extract-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
1
tests/fixtures/extract-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/extract-inclusion/refsite/css/brands.min.css
vendored
Normal file
6
tests/fixtures/extract-inclusion/refsite/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
9
tests/fixtures/extract-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
9
tests/fixtures/extract-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/extract-inclusion/refsite/css/solid.min.css
vendored
Normal file
6
tests/fixtures/extract-inclusion/refsite/css/solid.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
6
tests/fixtures/extract-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
6
tests/fixtures/extract-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
130
tests/fixtures/extract-inclusion/refsite/index.html.cropped
vendored
Normal file
130
tests/fixtures/extract-inclusion/refsite/index.html.cropped
vendored
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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="description" content="None">
|
||||||
|
|
||||||
|
|
||||||
|
<title>Enable extraction from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="homepage">
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href=".">Enable extraction from included files</a>
|
||||||
|
<!-- Expander button -->
|
||||||
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
<!-- Main navigation -->
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="." class="nav-link active" aria-current="page">Want to copy and extract</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="polished/" class="nav-link">Internals</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="prev" class="nav-link disabled">
|
||||||
|
<i class="fa fa-arrow-left"></i> Previous
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="next" href="polished/" class="nav-link">
|
||||||
|
Next <i class="fa fa-arrow-right"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
|
<span class="fa fa-angle-down"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
|
<li class="nav-item" data-bs-level="1"><a href="#want-to-copy-and-extract" class="nav-link">Want to copy and extract</a>
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div></div>
|
||||||
|
<div class="col-md-9" role="main">
|
||||||
|
|
||||||
|
<h1 id="want-to-copy-and-extract">Want to copy and extract</h1>
|
||||||
|
<p>The <a href="raw.txt">whole text</a>.</p>
|
||||||
|
<p>The <a href="polished/">extracted markdown</a>.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = ".",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
-->
|
126
tests/fixtures/extract-inclusion/refsite/polished/index.html.cropped
vendored
Normal file
126
tests/fixtures/extract-inclusion/refsite/polished/index.html.cropped
vendored
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<title>Internals - Enable extraction from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="..">Enable extraction from included files</a>
|
||||||
|
<!-- Expander button -->
|
||||||
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
<!-- Main navigation -->
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href=".." class="nav-link">Want to copy and extract</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="./" class="nav-link active" aria-current="page">Internals</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="prev" href=".." class="nav-link">
|
||||||
|
<i class="fa fa-arrow-left"></i> Previous
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="next" class="nav-link disabled">
|
||||||
|
Next <i class="fa fa-arrow-right"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
|
<span class="fa fa-angle-down"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
|
<li class="nav-item" data-bs-level="1"><a href="#internals" class="nav-link">Internals</a>
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div></div>
|
||||||
|
<div class="col-md-9" role="main">
|
||||||
|
|
||||||
|
<h1 id="internals">Internals</h1>
|
||||||
|
<p>But this is <strong>markdown</strong> hidden within.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = "..",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
7
tests/fixtures/extract-inclusion/refsite/raw.txt
vendored
Normal file
7
tests/fixtures/extract-inclusion/refsite/raw.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
This is a free-form file, used as an example
|
||||||
|
---
|
||||||
|
# Internals
|
||||||
|
|
||||||
|
But this is __markdown__ hidden within.
|
||||||
|
---
|
||||||
|
There can of course be stuff after it.
|
2
tests/fixtures/full-inclusion/mkdocs.yml
vendored
2
tests/fixtures/full-inclusion/mkdocs.yml
vendored
@ -2,5 +2,5 @@ site_name: Full inclusion
|
|||||||
docs_dir: refsite # dummy
|
docs_dir: refsite # dummy
|
||||||
plugins:
|
plugins:
|
||||||
- semiliterate:
|
- semiliterate:
|
||||||
ignore_folders: [refsite, snippet]
|
ignore: [refsite, snippet]
|
||||||
merge_docs_dir: false
|
merge_docs_dir: false
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Full inclusion</title>
|
<title>Full inclusion</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -19,7 +18,7 @@
|
|||||||
<!-- Expanded navigation -->
|
<!-- Expanded navigation -->
|
||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -51,7 +50,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
152
tests/fixtures/full-inclusion/refsite/css/base.css
vendored
152
tests/fixtures/full-inclusion/refsite/css/base.css
vendored
@ -1,9 +1,7 @@
|
|||||||
html {
|
html {
|
||||||
/* csslint ignore:start */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
scroll-padding-top: calc(3.5rem + 20px);
|
scroll-padding-top: calc(3.5rem + 20px);
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Replacement for `body { background-attachment: fixed; }`, which has
|
/* Replacement for `body { background-attachment: fixed; }`, which has
|
||||||
@ -15,7 +13,7 @@ body::before {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
background-color: #f8f8f8;
|
background-color: var(--bs-body-bg);
|
||||||
background: url(../img/grid.png) repeat-x;
|
background: url(../img/grid.png) repeat-x;
|
||||||
will-change: transform;
|
will-change: transform;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
@ -26,11 +24,9 @@ body > .container {
|
|||||||
min-height: 400px;
|
min-height: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar.fixed-top { /* csslint allow: adjoining-classes */
|
.navbar.fixed-top {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-links {
|
.source-links {
|
||||||
@ -42,32 +38,33 @@ body > .container {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
line-height: 1.428571429;
|
line-height: 1.428571429;
|
||||||
background-color: #fff;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border: 1px solid #ddd;
|
border: 1px solid var(--bs-secondary-border-subtle);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin: 20px auto 30px auto;
|
margin: 20px auto 30px auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 42px;
|
font-size: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2, h3, h4, h5, h6 {
|
h2, h3, h4, h5, h6 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
border-top: 1px solid #aaa;
|
border-top: 1px solid #aaa;
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre, .rst-content tt {
|
pre, .rst-content tt {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
background: #fff;
|
background-color: var(--bs-body-bg);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,16 +74,15 @@ code.code-large, .rst-content tt.code-large {
|
|||||||
|
|
||||||
code {
|
code {
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
background: #fff;
|
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre code {
|
pre code {
|
||||||
display: block;
|
display: block;
|
||||||
background: transparent;
|
|
||||||
border: none;
|
border: none;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
word-wrap: normal;
|
word-wrap: normal;
|
||||||
@ -97,19 +93,19 @@ pre code {
|
|||||||
kbd {
|
kbd {
|
||||||
padding: 2px 4px;
|
padding: 2px 4px;
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
color: #fff;
|
color: var(--bs-secondary-text-emphasis);
|
||||||
background-color: #333;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
a code {
|
a code {
|
||||||
color: #2FA4E7;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover code, a:focus code {
|
a:hover code, a:focus code {
|
||||||
color: #157AB5;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
@ -130,17 +126,15 @@ footer {
|
|||||||
* sections of docs content.
|
* sections of docs content.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.bs-sidebar.affix { /* csslint allow: adjoining-classes */
|
.bs-sidebar.affix {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
top: calc(3.5rem + 20px);
|
top: calc(3.5rem + 20px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar.card { /* csslint allow: adjoining-classes */
|
.bs-sidebar.card {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
max-height: 90%;
|
max-height: 90%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@ -155,7 +149,7 @@ footer {
|
|||||||
transform: scale(1, -1);
|
transform: scale(1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar .navbar-toggler.collapsed span { /* csslint allow: adjoining-classes */
|
.bs-sidebar .navbar-toggler.collapsed span {
|
||||||
-moz-transform: scale(1, 1);
|
-moz-transform: scale(1, 1);
|
||||||
-webkit-transform: scale(1, 1);
|
-webkit-transform: scale(1, 1);
|
||||||
-o-transform: scale(1, 1);
|
-o-transform: scale(1, 1);
|
||||||
@ -207,15 +201,20 @@ footer {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
display: none;
|
display: none;
|
||||||
padding-left: .5em;
|
padding-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink{
|
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 10px;
|
||||||
|
border-left: 4px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
.admonition {
|
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
@ -223,39 +222,90 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.note { /* csslint allow: adjoining-classes */
|
.admonition.note, details.note {
|
||||||
color: #3a87ad;
|
color: var(--bs-primary-text-emphasis);
|
||||||
background-color: #d9edf7;
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
border-color: #bce8f1;
|
border-color: var(--bs-primary-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.warning { /* csslint allow: adjoining-classes */
|
.admonition.note h1, .admonition.note h2, .admonition.note h3,
|
||||||
color: #c09853;
|
.admonition.note h4, .admonition.note h5, .admonition.note h6,
|
||||||
background-color: #fcf8e3;
|
details.note h1, details.note h2, details.note h3,
|
||||||
border-color: #fbeed5;
|
details.note h4, details.note h5, details.note h6 {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.danger { /* csslint allow: adjoining-classes */
|
.admonition.info, details.info {
|
||||||
color: #b94a48;
|
color: var(--bs-info-text-emphasis);
|
||||||
background-color: #f2dede;
|
background-color: var(--bs-info-bg-subtle);
|
||||||
border-color: #eed3d7;
|
border-color: var(--bs-info-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition-title {
|
.admonition.info h1, .admonition.info h2, .admonition.info h3,
|
||||||
|
.admonition.info h4, .admonition.info h5, .admonition.info h6,
|
||||||
|
details.info h1, details.info h2, details.info h3,
|
||||||
|
details.info h4, details.info h5, details.info h6 {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning, details.warning {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
background-color: var(--bs-warning-bg-subtle);
|
||||||
|
border-color: var(--bs-warning-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
|
||||||
|
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
|
||||||
|
details.warning h1, details.warning h2, details.warning h3,
|
||||||
|
details.warning h4, details.warning h5, details.warning h6 {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger, details.danger {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
|
border-color: var(--bs-danger-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
|
||||||
|
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
|
||||||
|
details.danger h1, details.danger h2, details.danger h3,
|
||||||
|
details.danger h4, details.danger h5, details.danger h6 {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
background-color: var(--bs-light-bg-subtle);
|
||||||
|
border-color: var(--bs-light-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition h1, .admonition h2, .admonition h3,
|
||||||
|
.admonition h4, .admonition h5, .admonition h6,
|
||||||
|
details h1, details h2, details h3,
|
||||||
|
details h4, details h5, details h6 {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition-title, summary {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.admonition>p:last-child, details>p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 991.98px) {
|
@media (max-width: 991.98px) {
|
||||||
.navbar-collapse.show { /* csslint allow: adjoining-classes */
|
.navbar-collapse.show {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
max-height: calc(100vh - 3.5rem);
|
max-height: calc(100vh - 3.5rem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item.open { /* csslint allow: adjoining-classes */
|
.dropdown-item.open {
|
||||||
color: #fff;
|
color: var(--bs-dropdown-link-active-color);
|
||||||
background-color: #2FA4E7;
|
background-color: var(--bs-dropdown-link-active-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
@ -273,13 +323,13 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 5px 0 5px 5px;
|
border-width: 5px 0 5px 5px;
|
||||||
border-left-color: #ccc;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-right: -10px;
|
margin-right: -10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu:hover > a::after {
|
.dropdown-submenu:hover > a::after {
|
||||||
border-left-color: #fff;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
@ -293,20 +343,18 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
/* csslint ignore:end */
|
|
||||||
margin-top: -9px;
|
margin-top: -9px;
|
||||||
margin-left: -2px;
|
margin-left: -2px;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
padding: 0.5rem 0;
|
padding: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left {
|
||||||
float: none;
|
float: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left > .dropdown-menu { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left > .dropdown-menu {
|
||||||
left: -100%;
|
left: -100%;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
1
tests/fixtures/full-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
1
tests/fixtures/full-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/full-inclusion/refsite/css/brands.min.css
vendored
Normal file
6
tests/fixtures/full-inclusion/refsite/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
9
tests/fixtures/full-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
9
tests/fixtures/full-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/full-inclusion/refsite/css/solid.min.css
vendored
Normal file
6
tests/fixtures/full-inclusion/refsite/css/solid.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
6
tests/fixtures/full-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
6
tests/fixtures/full-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Full inclusion</title>
|
<title>Full inclusion</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="homepage">
|
<body class="homepage">
|
||||||
@ -19,7 +18,7 @@
|
|||||||
<!-- Expanded navigation -->
|
<!-- Expanded navigation -->
|
||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -27,18 +26,18 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3"><div class="navbar-light navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#toc-collapse" title="Table of Contents">
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
<span class="fa fa-angle-down"></span>
|
<span class="fa fa-angle-down"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="toc-collapse" class="navbar-collapse collapse card bg-secondary">
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
<li class="nav-item" data-level="1"><a href="#test-of-vanilla-inclusion" class="nav-link">Test of vanilla inclusion</a>
|
<li class="nav-item" data-bs-level="1"><a href="#test-of-vanilla-inclusion" class="nav-link">Test of vanilla inclusion</a>
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@ -66,7 +65,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
2
tests/fixtures/git-inclusion/mkdocs.yml
vendored
2
tests/fixtures/git-inclusion/mkdocs.yml
vendored
@ -2,5 +2,5 @@ site_name: Full inclusion
|
|||||||
docs_dir: refsite # dummy
|
docs_dir: refsite # dummy
|
||||||
plugins:
|
plugins:
|
||||||
- semiliterate:
|
- semiliterate:
|
||||||
ignore_folders: [refsite, snippet]
|
ignore: [refsite, snippet]
|
||||||
merge_docs_dir: false
|
merge_docs_dir: false
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Full inclusion</title>
|
<title>Full inclusion</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -19,7 +18,7 @@
|
|||||||
<!-- Expanded navigation -->
|
<!-- Expanded navigation -->
|
||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -51,7 +50,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
152
tests/fixtures/git-inclusion/refsite/css/base.css
vendored
152
tests/fixtures/git-inclusion/refsite/css/base.css
vendored
@ -1,9 +1,7 @@
|
|||||||
html {
|
html {
|
||||||
/* csslint ignore:start */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
scroll-padding-top: calc(3.5rem + 20px);
|
scroll-padding-top: calc(3.5rem + 20px);
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Replacement for `body { background-attachment: fixed; }`, which has
|
/* Replacement for `body { background-attachment: fixed; }`, which has
|
||||||
@ -15,7 +13,7 @@ body::before {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
background-color: #f8f8f8;
|
background-color: var(--bs-body-bg);
|
||||||
background: url(../img/grid.png) repeat-x;
|
background: url(../img/grid.png) repeat-x;
|
||||||
will-change: transform;
|
will-change: transform;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
@ -26,11 +24,9 @@ body > .container {
|
|||||||
min-height: 400px;
|
min-height: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar.fixed-top { /* csslint allow: adjoining-classes */
|
.navbar.fixed-top {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-links {
|
.source-links {
|
||||||
@ -42,32 +38,33 @@ body > .container {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
line-height: 1.428571429;
|
line-height: 1.428571429;
|
||||||
background-color: #fff;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border: 1px solid #ddd;
|
border: 1px solid var(--bs-secondary-border-subtle);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin: 20px auto 30px auto;
|
margin: 20px auto 30px auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 42px;
|
font-size: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2, h3, h4, h5, h6 {
|
h2, h3, h4, h5, h6 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
border-top: 1px solid #aaa;
|
border-top: 1px solid #aaa;
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre, .rst-content tt {
|
pre, .rst-content tt {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
background: #fff;
|
background-color: var(--bs-body-bg);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,16 +74,15 @@ code.code-large, .rst-content tt.code-large {
|
|||||||
|
|
||||||
code {
|
code {
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
background: #fff;
|
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre code {
|
pre code {
|
||||||
display: block;
|
display: block;
|
||||||
background: transparent;
|
|
||||||
border: none;
|
border: none;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
word-wrap: normal;
|
word-wrap: normal;
|
||||||
@ -97,19 +93,19 @@ pre code {
|
|||||||
kbd {
|
kbd {
|
||||||
padding: 2px 4px;
|
padding: 2px 4px;
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
color: #fff;
|
color: var(--bs-secondary-text-emphasis);
|
||||||
background-color: #333;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
a code {
|
a code {
|
||||||
color: #2FA4E7;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover code, a:focus code {
|
a:hover code, a:focus code {
|
||||||
color: #157AB5;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
@ -130,17 +126,15 @@ footer {
|
|||||||
* sections of docs content.
|
* sections of docs content.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.bs-sidebar.affix { /* csslint allow: adjoining-classes */
|
.bs-sidebar.affix {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
top: calc(3.5rem + 20px);
|
top: calc(3.5rem + 20px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar.card { /* csslint allow: adjoining-classes */
|
.bs-sidebar.card {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
max-height: 90%;
|
max-height: 90%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@ -155,7 +149,7 @@ footer {
|
|||||||
transform: scale(1, -1);
|
transform: scale(1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar .navbar-toggler.collapsed span { /* csslint allow: adjoining-classes */
|
.bs-sidebar .navbar-toggler.collapsed span {
|
||||||
-moz-transform: scale(1, 1);
|
-moz-transform: scale(1, 1);
|
||||||
-webkit-transform: scale(1, 1);
|
-webkit-transform: scale(1, 1);
|
||||||
-o-transform: scale(1, 1);
|
-o-transform: scale(1, 1);
|
||||||
@ -207,15 +201,20 @@ footer {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
display: none;
|
display: none;
|
||||||
padding-left: .5em;
|
padding-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink{
|
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 10px;
|
||||||
|
border-left: 4px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
.admonition {
|
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
@ -223,39 +222,90 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.note { /* csslint allow: adjoining-classes */
|
.admonition.note, details.note {
|
||||||
color: #3a87ad;
|
color: var(--bs-primary-text-emphasis);
|
||||||
background-color: #d9edf7;
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
border-color: #bce8f1;
|
border-color: var(--bs-primary-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.warning { /* csslint allow: adjoining-classes */
|
.admonition.note h1, .admonition.note h2, .admonition.note h3,
|
||||||
color: #c09853;
|
.admonition.note h4, .admonition.note h5, .admonition.note h6,
|
||||||
background-color: #fcf8e3;
|
details.note h1, details.note h2, details.note h3,
|
||||||
border-color: #fbeed5;
|
details.note h4, details.note h5, details.note h6 {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.danger { /* csslint allow: adjoining-classes */
|
.admonition.info, details.info {
|
||||||
color: #b94a48;
|
color: var(--bs-info-text-emphasis);
|
||||||
background-color: #f2dede;
|
background-color: var(--bs-info-bg-subtle);
|
||||||
border-color: #eed3d7;
|
border-color: var(--bs-info-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition-title {
|
.admonition.info h1, .admonition.info h2, .admonition.info h3,
|
||||||
|
.admonition.info h4, .admonition.info h5, .admonition.info h6,
|
||||||
|
details.info h1, details.info h2, details.info h3,
|
||||||
|
details.info h4, details.info h5, details.info h6 {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning, details.warning {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
background-color: var(--bs-warning-bg-subtle);
|
||||||
|
border-color: var(--bs-warning-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
|
||||||
|
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
|
||||||
|
details.warning h1, details.warning h2, details.warning h3,
|
||||||
|
details.warning h4, details.warning h5, details.warning h6 {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger, details.danger {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
|
border-color: var(--bs-danger-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
|
||||||
|
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
|
||||||
|
details.danger h1, details.danger h2, details.danger h3,
|
||||||
|
details.danger h4, details.danger h5, details.danger h6 {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
background-color: var(--bs-light-bg-subtle);
|
||||||
|
border-color: var(--bs-light-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition h1, .admonition h2, .admonition h3,
|
||||||
|
.admonition h4, .admonition h5, .admonition h6,
|
||||||
|
details h1, details h2, details h3,
|
||||||
|
details h4, details h5, details h6 {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition-title, summary {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.admonition>p:last-child, details>p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 991.98px) {
|
@media (max-width: 991.98px) {
|
||||||
.navbar-collapse.show { /* csslint allow: adjoining-classes */
|
.navbar-collapse.show {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
max-height: calc(100vh - 3.5rem);
|
max-height: calc(100vh - 3.5rem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item.open { /* csslint allow: adjoining-classes */
|
.dropdown-item.open {
|
||||||
color: #fff;
|
color: var(--bs-dropdown-link-active-color);
|
||||||
background-color: #2FA4E7;
|
background-color: var(--bs-dropdown-link-active-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
@ -273,13 +323,13 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 5px 0 5px 5px;
|
border-width: 5px 0 5px 5px;
|
||||||
border-left-color: #ccc;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-right: -10px;
|
margin-right: -10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu:hover > a::after {
|
.dropdown-submenu:hover > a::after {
|
||||||
border-left-color: #fff;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
@ -293,20 +343,18 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
/* csslint ignore:end */
|
|
||||||
margin-top: -9px;
|
margin-top: -9px;
|
||||||
margin-left: -2px;
|
margin-left: -2px;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
padding: 0.5rem 0;
|
padding: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left {
|
||||||
float: none;
|
float: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left > .dropdown-menu { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left > .dropdown-menu {
|
||||||
left: -100%;
|
left: -100%;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
1
tests/fixtures/git-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
1
tests/fixtures/git-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/git-inclusion/refsite/css/brands.min.css
vendored
Normal file
6
tests/fixtures/git-inclusion/refsite/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
9
tests/fixtures/git-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
9
tests/fixtures/git-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/git-inclusion/refsite/css/solid.min.css
vendored
Normal file
6
tests/fixtures/git-inclusion/refsite/css/solid.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
6
tests/fixtures/git-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
6
tests/fixtures/git-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Full inclusion</title>
|
<title>Full inclusion</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="homepage">
|
<body class="homepage">
|
||||||
@ -19,7 +18,7 @@
|
|||||||
<!-- Expanded navigation -->
|
<!-- Expanded navigation -->
|
||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -27,18 +26,18 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3"><div class="navbar-light navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#toc-collapse" title="Table of Contents">
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
<span class="fa fa-angle-down"></span>
|
<span class="fa fa-angle-down"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="toc-collapse" class="navbar-collapse collapse card bg-secondary">
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
<li class="nav-item" data-level="1"><a href="#test-of-git-extraction" class="nav-link">Test of git extraction</a>
|
<li class="nav-item" data-bs-level="1"><a href="#test-of-git-extraction" class="nav-link">Test of git extraction</a>
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@ -74,7 +73,7 @@ docs_dir: mkdocs_semiliterate # dummy</p>
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
3
tests/fixtures/no-extract-inclusion/README.md
vendored
Normal file
3
tests/fixtures/no-extract-inclusion/README.md
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Just want the image
|
||||||
|
|
||||||
|
It's a dream: ![Dreamy question](assets/icons8-ask-question-100.png)
|
BIN
tests/fixtures/no-extract-inclusion/assets/icons8-ask-question-100.png
vendored
Normal file
BIN
tests/fixtures/no-extract-inclusion/assets/icons8-ask-question-100.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
6
tests/fixtures/no-extract-inclusion/mkdocs.yml
vendored
Normal file
6
tests/fixtures/no-extract-inclusion/mkdocs.yml
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
site_name: Do not extract from included files
|
||||||
|
docs_dir: refsite # dummy
|
||||||
|
plugins:
|
||||||
|
- semiliterate:
|
||||||
|
ignore: [refsite]
|
||||||
|
merge_docs_dir: false
|
90
tests/fixtures/no-extract-inclusion/refsite/404.html.cropped
vendored
Normal file
90
tests/fixtures/no-extract-inclusion/refsite/404.html.cropped
vendored
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<title>Do not extract from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="/.">Do not extract from included files</a>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div id="main-content" class="span12">
|
||||||
|
<h1 id="404-page-not-found" style="text-align: center">404</h1>
|
||||||
|
<p style="text-align: center"><strong>Page not found</strong></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = "/",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
tests/fixtures/no-extract-inclusion/refsite/assets/icons8-ask-question-100.png
vendored
Normal file
BIN
tests/fixtures/no-extract-inclusion/refsite/assets/icons8-ask-question-100.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
366
tests/fixtures/no-extract-inclusion/refsite/css/base.css
vendored
Normal file
366
tests/fixtures/no-extract-inclusion/refsite/css/base.css
vendored
Normal file
@ -0,0 +1,366 @@
|
|||||||
|
html {
|
||||||
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
|
main container. */
|
||||||
|
scroll-padding-top: calc(3.5rem + 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Replacement for `body { background-attachment: fixed; }`, which has
|
||||||
|
performance issues when scrolling on large displays. See #1394. */
|
||||||
|
body::before {
|
||||||
|
content: ' ';
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
background: url(../img/grid.png) repeat-x;
|
||||||
|
will-change: transform;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
body > .container {
|
||||||
|
margin-top: 20px;
|
||||||
|
min-height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.fixed-top {
|
||||||
|
position: -webkit-sticky;
|
||||||
|
position: sticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
.source-links {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-md-9 img {
|
||||||
|
max-width: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 4px;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
|
border: 1px solid var(--bs-secondary-border-subtle);
|
||||||
|
border-radius: 4px;
|
||||||
|
margin: 20px auto 30px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h3, h4, h5, h6 {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border-top: 1px solid #aaa;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre, .rst-content tt {
|
||||||
|
max-width: 100%;
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
border: solid 1px var(--bs-border-color);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
code.code-large, .rst-content tt.code-large {
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 2px 5px;
|
||||||
|
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
|
||||||
|
border: solid 1px var(--bs-border-color);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
display: block;
|
||||||
|
border: none;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
padding: 2px 4px;
|
||||||
|
font-size: 90%;
|
||||||
|
color: var(--bs-secondary-text-emphasis);
|
||||||
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
a code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover code, a:focus code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
margin-top: 30px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog {
|
||||||
|
margin-top: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Side navigation
|
||||||
|
*
|
||||||
|
* Scrollspy and affixed enhanced navigation to highlight sections and secondary
|
||||||
|
* sections of docs content.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.bs-sidebar.affix {
|
||||||
|
position: -webkit-sticky;
|
||||||
|
position: sticky;
|
||||||
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
|
main container. */
|
||||||
|
top: calc(3.5rem + 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar.card {
|
||||||
|
padding: 0;
|
||||||
|
max-height: 90%;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Toggle (vertically flip) sidebar collapse icon */
|
||||||
|
.bs-sidebar .navbar-toggler span {
|
||||||
|
-moz-transform: scale(1, -1);
|
||||||
|
-webkit-transform: scale(1, -1);
|
||||||
|
-o-transform: scale(1, -1);
|
||||||
|
-ms-transform: scale(1, -1);
|
||||||
|
transform: scale(1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .navbar-toggler.collapsed span {
|
||||||
|
-moz-transform: scale(1, 1);
|
||||||
|
-webkit-transform: scale(1, 1);
|
||||||
|
-o-transform: scale(1, 1);
|
||||||
|
-ms-transform: scale(1, 1);
|
||||||
|
transform: scale(1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* First level of nav */
|
||||||
|
.bs-sidebar > .navbar-collapse > .nav {
|
||||||
|
padding-top: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* All levels of nav */
|
||||||
|
.bs-sidebar .nav > li > a {
|
||||||
|
display: block;
|
||||||
|
padding: 5px 20px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.bs-sidebar .nav > li > a:hover,
|
||||||
|
.bs-sidebar .nav > li > a:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
.bs-sidebar .nav > li > a.active,
|
||||||
|
.bs-sidebar .nav > li > a.active:hover,
|
||||||
|
.bs-sidebar .nav > li > a.active:focus {
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: transparent;
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav .nav .nav {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav > li > a {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav .nav > li > a {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerlink {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
font-size: 14px;
|
||||||
|
display: none;
|
||||||
|
padding-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 10px;
|
||||||
|
border-left: 4px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
padding: 15px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.note, details.note {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
|
border-color: var(--bs-primary-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.note h1, .admonition.note h2, .admonition.note h3,
|
||||||
|
.admonition.note h4, .admonition.note h5, .admonition.note h6,
|
||||||
|
details.note h1, details.note h2, details.note h3,
|
||||||
|
details.note h4, details.note h5, details.note h6 {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.info, details.info {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
background-color: var(--bs-info-bg-subtle);
|
||||||
|
border-color: var(--bs-info-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.info h1, .admonition.info h2, .admonition.info h3,
|
||||||
|
.admonition.info h4, .admonition.info h5, .admonition.info h6,
|
||||||
|
details.info h1, details.info h2, details.info h3,
|
||||||
|
details.info h4, details.info h5, details.info h6 {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning, details.warning {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
background-color: var(--bs-warning-bg-subtle);
|
||||||
|
border-color: var(--bs-warning-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
|
||||||
|
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
|
||||||
|
details.warning h1, details.warning h2, details.warning h3,
|
||||||
|
details.warning h4, details.warning h5, details.warning h6 {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger, details.danger {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
|
border-color: var(--bs-danger-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
|
||||||
|
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
|
||||||
|
details.danger h1, details.danger h2, details.danger h3,
|
||||||
|
details.danger h4, details.danger h5, details.danger h6 {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
background-color: var(--bs-light-bg-subtle);
|
||||||
|
border-color: var(--bs-light-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition h1, .admonition h2, .admonition h3,
|
||||||
|
.admonition h4, .admonition h5, .admonition h6,
|
||||||
|
details h1, details h2, details h3,
|
||||||
|
details h4, details h5, details h6 {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition-title, summary {
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition>p:last-child, details>p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 991.98px) {
|
||||||
|
.navbar-collapse.show {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height: calc(100vh - 3.5rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item.open {
|
||||||
|
color: var(--bs-dropdown-link-active-color);
|
||||||
|
background-color: var(--bs-dropdown-link-active-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > .dropdown-menu {
|
||||||
|
margin: 0 0 0 1.5rem;
|
||||||
|
padding: 0;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > a::after {
|
||||||
|
display: block;
|
||||||
|
content: " ";
|
||||||
|
float: right;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-color: transparent;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 5px 0 5px 5px;
|
||||||
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-right: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu:hover > a::after {
|
||||||
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.dropdown-menu {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height: calc(100vh - 3.5rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > .dropdown-menu {
|
||||||
|
position: fixed !important;
|
||||||
|
margin-top: -9px;
|
||||||
|
margin-left: -2px;
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 0.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left > .dropdown-menu {
|
||||||
|
left: -100%;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
/* Remove sidebar when print */
|
||||||
|
.col-md-3 { display: none; }
|
||||||
|
}
|
12
tests/fixtures/no-extract-inclusion/refsite/css/bootstrap.min.css
vendored
Normal file
12
tests/fixtures/no-extract-inclusion/refsite/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/no-extract-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
1
tests/fixtures/no-extract-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/no-extract-inclusion/refsite/css/brands.min.css
vendored
Normal file
6
tests/fixtures/no-extract-inclusion/refsite/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
9
tests/fixtures/no-extract-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
9
tests/fixtures/no-extract-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/no-extract-inclusion/refsite/css/solid.min.css
vendored
Normal file
6
tests/fixtures/no-extract-inclusion/refsite/css/solid.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
6
tests/fixtures/no-extract-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
6
tests/fixtures/no-extract-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
106
tests/fixtures/no-extract-inclusion/refsite/index.html.cropped
vendored
Normal file
106
tests/fixtures/no-extract-inclusion/refsite/index.html.cropped
vendored
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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="description" content="None">
|
||||||
|
|
||||||
|
|
||||||
|
<title>Do not extract from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="homepage">
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href=".">Do not extract from included files</a>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
|
<span class="fa fa-angle-down"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
|
<li class="nav-item" data-bs-level="1"><a href="#just-want-the-image" class="nav-link">Just want the image</a>
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div></div>
|
||||||
|
<div class="col-md-9" role="main">
|
||||||
|
|
||||||
|
<h1 id="just-want-the-image">Just want the image</h1>
|
||||||
|
<p>It's a dream: <img alt="Dreamy question" src="assets/icons8-ask-question-100.png" /></p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = ".",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
-->
|
2
tests/fixtures/quoted-filename/mkdocs.yml
vendored
2
tests/fixtures/quoted-filename/mkdocs.yml
vendored
@ -2,5 +2,5 @@ site_name: Full inclusion
|
|||||||
docs_dir: refsite # dummy
|
docs_dir: refsite # dummy
|
||||||
plugins:
|
plugins:
|
||||||
- semiliterate:
|
- semiliterate:
|
||||||
ignore_folders: [refsite, snippet]
|
ignore: [refsite, snippet]
|
||||||
merge_docs_dir: false
|
merge_docs_dir: false
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Full inclusion</title>
|
<title>Full inclusion</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -19,7 +18,7 @@
|
|||||||
<!-- Expanded navigation -->
|
<!-- Expanded navigation -->
|
||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -51,7 +50,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
152
tests/fixtures/quoted-filename/refsite/css/base.css
vendored
152
tests/fixtures/quoted-filename/refsite/css/base.css
vendored
@ -1,9 +1,7 @@
|
|||||||
html {
|
html {
|
||||||
/* csslint ignore:start */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
scroll-padding-top: calc(3.5rem + 20px);
|
scroll-padding-top: calc(3.5rem + 20px);
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Replacement for `body { background-attachment: fixed; }`, which has
|
/* Replacement for `body { background-attachment: fixed; }`, which has
|
||||||
@ -15,7 +13,7 @@ body::before {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
background-color: #f8f8f8;
|
background-color: var(--bs-body-bg);
|
||||||
background: url(../img/grid.png) repeat-x;
|
background: url(../img/grid.png) repeat-x;
|
||||||
will-change: transform;
|
will-change: transform;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
@ -26,11 +24,9 @@ body > .container {
|
|||||||
min-height: 400px;
|
min-height: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar.fixed-top { /* csslint allow: adjoining-classes */
|
.navbar.fixed-top {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-links {
|
.source-links {
|
||||||
@ -42,32 +38,33 @@ body > .container {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
line-height: 1.428571429;
|
line-height: 1.428571429;
|
||||||
background-color: #fff;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border: 1px solid #ddd;
|
border: 1px solid var(--bs-secondary-border-subtle);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin: 20px auto 30px auto;
|
margin: 20px auto 30px auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 42px;
|
font-size: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2, h3, h4, h5, h6 {
|
h2, h3, h4, h5, h6 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
border-top: 1px solid #aaa;
|
border-top: 1px solid #aaa;
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre, .rst-content tt {
|
pre, .rst-content tt {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
background: #fff;
|
background-color: var(--bs-body-bg);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,16 +74,15 @@ code.code-large, .rst-content tt.code-large {
|
|||||||
|
|
||||||
code {
|
code {
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
background: #fff;
|
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre code {
|
pre code {
|
||||||
display: block;
|
display: block;
|
||||||
background: transparent;
|
|
||||||
border: none;
|
border: none;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
word-wrap: normal;
|
word-wrap: normal;
|
||||||
@ -97,19 +93,19 @@ pre code {
|
|||||||
kbd {
|
kbd {
|
||||||
padding: 2px 4px;
|
padding: 2px 4px;
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
color: #fff;
|
color: var(--bs-secondary-text-emphasis);
|
||||||
background-color: #333;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
a code {
|
a code {
|
||||||
color: #2FA4E7;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover code, a:focus code {
|
a:hover code, a:focus code {
|
||||||
color: #157AB5;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
@ -130,17 +126,15 @@ footer {
|
|||||||
* sections of docs content.
|
* sections of docs content.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.bs-sidebar.affix { /* csslint allow: adjoining-classes */
|
.bs-sidebar.affix {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
top: calc(3.5rem + 20px);
|
top: calc(3.5rem + 20px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar.card { /* csslint allow: adjoining-classes */
|
.bs-sidebar.card {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
max-height: 90%;
|
max-height: 90%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@ -155,7 +149,7 @@ footer {
|
|||||||
transform: scale(1, -1);
|
transform: scale(1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar .navbar-toggler.collapsed span { /* csslint allow: adjoining-classes */
|
.bs-sidebar .navbar-toggler.collapsed span {
|
||||||
-moz-transform: scale(1, 1);
|
-moz-transform: scale(1, 1);
|
||||||
-webkit-transform: scale(1, 1);
|
-webkit-transform: scale(1, 1);
|
||||||
-o-transform: scale(1, 1);
|
-o-transform: scale(1, 1);
|
||||||
@ -207,15 +201,20 @@ footer {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
display: none;
|
display: none;
|
||||||
padding-left: .5em;
|
padding-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink{
|
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 10px;
|
||||||
|
border-left: 4px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
.admonition {
|
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
@ -223,39 +222,90 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.note { /* csslint allow: adjoining-classes */
|
.admonition.note, details.note {
|
||||||
color: #3a87ad;
|
color: var(--bs-primary-text-emphasis);
|
||||||
background-color: #d9edf7;
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
border-color: #bce8f1;
|
border-color: var(--bs-primary-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.warning { /* csslint allow: adjoining-classes */
|
.admonition.note h1, .admonition.note h2, .admonition.note h3,
|
||||||
color: #c09853;
|
.admonition.note h4, .admonition.note h5, .admonition.note h6,
|
||||||
background-color: #fcf8e3;
|
details.note h1, details.note h2, details.note h3,
|
||||||
border-color: #fbeed5;
|
details.note h4, details.note h5, details.note h6 {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.danger { /* csslint allow: adjoining-classes */
|
.admonition.info, details.info {
|
||||||
color: #b94a48;
|
color: var(--bs-info-text-emphasis);
|
||||||
background-color: #f2dede;
|
background-color: var(--bs-info-bg-subtle);
|
||||||
border-color: #eed3d7;
|
border-color: var(--bs-info-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition-title {
|
.admonition.info h1, .admonition.info h2, .admonition.info h3,
|
||||||
|
.admonition.info h4, .admonition.info h5, .admonition.info h6,
|
||||||
|
details.info h1, details.info h2, details.info h3,
|
||||||
|
details.info h4, details.info h5, details.info h6 {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning, details.warning {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
background-color: var(--bs-warning-bg-subtle);
|
||||||
|
border-color: var(--bs-warning-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
|
||||||
|
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
|
||||||
|
details.warning h1, details.warning h2, details.warning h3,
|
||||||
|
details.warning h4, details.warning h5, details.warning h6 {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger, details.danger {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
|
border-color: var(--bs-danger-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
|
||||||
|
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
|
||||||
|
details.danger h1, details.danger h2, details.danger h3,
|
||||||
|
details.danger h4, details.danger h5, details.danger h6 {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
background-color: var(--bs-light-bg-subtle);
|
||||||
|
border-color: var(--bs-light-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition h1, .admonition h2, .admonition h3,
|
||||||
|
.admonition h4, .admonition h5, .admonition h6,
|
||||||
|
details h1, details h2, details h3,
|
||||||
|
details h4, details h5, details h6 {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition-title, summary {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.admonition>p:last-child, details>p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 991.98px) {
|
@media (max-width: 991.98px) {
|
||||||
.navbar-collapse.show { /* csslint allow: adjoining-classes */
|
.navbar-collapse.show {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
max-height: calc(100vh - 3.5rem);
|
max-height: calc(100vh - 3.5rem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item.open { /* csslint allow: adjoining-classes */
|
.dropdown-item.open {
|
||||||
color: #fff;
|
color: var(--bs-dropdown-link-active-color);
|
||||||
background-color: #2FA4E7;
|
background-color: var(--bs-dropdown-link-active-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
@ -273,13 +323,13 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 5px 0 5px 5px;
|
border-width: 5px 0 5px 5px;
|
||||||
border-left-color: #ccc;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-right: -10px;
|
margin-right: -10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu:hover > a::after {
|
.dropdown-submenu:hover > a::after {
|
||||||
border-left-color: #fff;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
@ -293,20 +343,18 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
/* csslint ignore:end */
|
|
||||||
margin-top: -9px;
|
margin-top: -9px;
|
||||||
margin-left: -2px;
|
margin-left: -2px;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
padding: 0.5rem 0;
|
padding: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left {
|
||||||
float: none;
|
float: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left > .dropdown-menu { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left > .dropdown-menu {
|
||||||
left: -100%;
|
left: -100%;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
1
tests/fixtures/quoted-filename/refsite/css/bootstrap.min.css.map
vendored
Normal file
1
tests/fixtures/quoted-filename/refsite/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/quoted-filename/refsite/css/brands.min.css
vendored
Normal file
6
tests/fixtures/quoted-filename/refsite/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
9
tests/fixtures/quoted-filename/refsite/css/fontawesome.min.css
vendored
Normal file
9
tests/fixtures/quoted-filename/refsite/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/quoted-filename/refsite/css/solid.min.css
vendored
Normal file
6
tests/fixtures/quoted-filename/refsite/css/solid.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
6
tests/fixtures/quoted-filename/refsite/css/v4-font-face.min.css
vendored
Normal file
6
tests/fixtures/quoted-filename/refsite/css/v4-font-face.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Full inclusion</title>
|
<title>Full inclusion</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="homepage">
|
<body class="homepage">
|
||||||
@ -19,7 +18,7 @@
|
|||||||
<!-- Expanded navigation -->
|
<!-- Expanded navigation -->
|
||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -27,18 +26,18 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3"><div class="navbar-light navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#toc-collapse" title="Table of Contents">
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
<span class="fa fa-angle-down"></span>
|
<span class="fa fa-angle-down"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="toc-collapse" class="navbar-collapse collapse card bg-secondary">
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
<li class="nav-item" data-level="1"><a href="#test-of-quoted-inclusion" class="nav-link">Test of quoted inclusion</a>
|
<li class="nav-item" data-bs-level="1"><a href="#test-of-quoted-inclusion" class="nav-link">Test of quoted inclusion</a>
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@ -66,7 +65,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
@ -2,7 +2,7 @@ site_name: Custom semiliterate
|
|||||||
docs_dir: refsite # dummy
|
docs_dir: refsite # dummy
|
||||||
plugins:
|
plugins:
|
||||||
- semiliterate:
|
- semiliterate:
|
||||||
ignore_folders: [refsite]
|
ignore: [refsite]
|
||||||
merge_docs_dir: false
|
merge_docs_dir: false
|
||||||
copy_standard_markdown: true
|
copy_standard_markdown: true
|
||||||
semiliterate:
|
semiliterate:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Custom semiliterate</title>
|
<title>Custom semiliterate</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -16,7 +15,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<a class="navbar-brand" href="/.">Custom semiliterate</a>
|
<a class="navbar-brand" href="/.">Custom semiliterate</a>
|
||||||
<!-- Expander button -->
|
<!-- Expander button -->
|
||||||
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar-collapse">
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
@ -24,15 +23,15 @@
|
|||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
<!-- Main navigation -->
|
<!-- Main navigation -->
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li class="navitem">
|
<li class="nav-item">
|
||||||
<a href="/." class="nav-link">About</a>
|
<a href="/." class="nav-link">About</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="navitem">
|
<li class="nav-item">
|
||||||
<a href="/foo/" class="nav-link">Details</a>
|
<a href="/foo/" class="nav-link">Details</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -64,7 +63,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
html {
|
html {
|
||||||
/* csslint ignore:start */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
scroll-padding-top: calc(3.5rem + 20px);
|
scroll-padding-top: calc(3.5rem + 20px);
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Replacement for `body { background-attachment: fixed; }`, which has
|
/* Replacement for `body { background-attachment: fixed; }`, which has
|
||||||
@ -15,7 +13,7 @@ body::before {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
background-color: #f8f8f8;
|
background-color: var(--bs-body-bg);
|
||||||
background: url(../img/grid.png) repeat-x;
|
background: url(../img/grid.png) repeat-x;
|
||||||
will-change: transform;
|
will-change: transform;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
@ -26,11 +24,9 @@ body > .container {
|
|||||||
min-height: 400px;
|
min-height: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar.fixed-top { /* csslint allow: adjoining-classes */
|
.navbar.fixed-top {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-links {
|
.source-links {
|
||||||
@ -42,32 +38,33 @@ body > .container {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
line-height: 1.428571429;
|
line-height: 1.428571429;
|
||||||
background-color: #fff;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border: 1px solid #ddd;
|
border: 1px solid var(--bs-secondary-border-subtle);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin: 20px auto 30px auto;
|
margin: 20px auto 30px auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 42px;
|
font-size: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2, h3, h4, h5, h6 {
|
h2, h3, h4, h5, h6 {
|
||||||
color: #444;
|
color: inherit;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
border-top: 1px solid #aaa;
|
border-top: 1px solid #aaa;
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre, .rst-content tt {
|
pre, .rst-content tt {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
background: #fff;
|
background-color: var(--bs-body-bg);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,16 +74,15 @@ code.code-large, .rst-content tt.code-large {
|
|||||||
|
|
||||||
code {
|
code {
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
background: #fff;
|
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
|
||||||
border: solid 1px #e1e4e5;
|
border: solid 1px var(--bs-border-color);
|
||||||
color: #333;
|
color: var(--bs-body-color);
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre code {
|
pre code {
|
||||||
display: block;
|
display: block;
|
||||||
background: transparent;
|
|
||||||
border: none;
|
border: none;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
word-wrap: normal;
|
word-wrap: normal;
|
||||||
@ -97,19 +93,19 @@ pre code {
|
|||||||
kbd {
|
kbd {
|
||||||
padding: 2px 4px;
|
padding: 2px 4px;
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
color: #fff;
|
color: var(--bs-secondary-text-emphasis);
|
||||||
background-color: #333;
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
a code {
|
a code {
|
||||||
color: #2FA4E7;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover code, a:focus code {
|
a:hover code, a:focus code {
|
||||||
color: #157AB5;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
@ -130,17 +126,15 @@ footer {
|
|||||||
* sections of docs content.
|
* sections of docs content.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.bs-sidebar.affix { /* csslint allow: adjoining-classes */
|
.bs-sidebar.affix {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: -webkit-sticky;
|
position: -webkit-sticky;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
/* csslint ignore:end */
|
|
||||||
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
main container. */
|
main container. */
|
||||||
top: calc(3.5rem + 20px);
|
top: calc(3.5rem + 20px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar.card { /* csslint allow: adjoining-classes */
|
.bs-sidebar.card {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
max-height: 90%;
|
max-height: 90%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@ -155,7 +149,7 @@ footer {
|
|||||||
transform: scale(1, -1);
|
transform: scale(1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-sidebar .navbar-toggler.collapsed span { /* csslint allow: adjoining-classes */
|
.bs-sidebar .navbar-toggler.collapsed span {
|
||||||
-moz-transform: scale(1, 1);
|
-moz-transform: scale(1, 1);
|
||||||
-webkit-transform: scale(1, 1);
|
-webkit-transform: scale(1, 1);
|
||||||
-o-transform: scale(1, 1);
|
-o-transform: scale(1, 1);
|
||||||
@ -207,15 +201,20 @@ footer {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
display: none;
|
display: none;
|
||||||
padding-left: .5em;
|
padding-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink{
|
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 10px;
|
||||||
|
border-left: 4px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
.admonition {
|
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
@ -223,39 +222,90 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.note { /* csslint allow: adjoining-classes */
|
.admonition.note, details.note {
|
||||||
color: #3a87ad;
|
color: var(--bs-primary-text-emphasis);
|
||||||
background-color: #d9edf7;
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
border-color: #bce8f1;
|
border-color: var(--bs-primary-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.warning { /* csslint allow: adjoining-classes */
|
.admonition.note h1, .admonition.note h2, .admonition.note h3,
|
||||||
color: #c09853;
|
.admonition.note h4, .admonition.note h5, .admonition.note h6,
|
||||||
background-color: #fcf8e3;
|
details.note h1, details.note h2, details.note h3,
|
||||||
border-color: #fbeed5;
|
details.note h4, details.note h5, details.note h6 {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition.danger { /* csslint allow: adjoining-classes */
|
.admonition.info, details.info {
|
||||||
color: #b94a48;
|
color: var(--bs-info-text-emphasis);
|
||||||
background-color: #f2dede;
|
background-color: var(--bs-info-bg-subtle);
|
||||||
border-color: #eed3d7;
|
border-color: var(--bs-info-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.admonition-title {
|
.admonition.info h1, .admonition.info h2, .admonition.info h3,
|
||||||
|
.admonition.info h4, .admonition.info h5, .admonition.info h6,
|
||||||
|
details.info h1, details.info h2, details.info h3,
|
||||||
|
details.info h4, details.info h5, details.info h6 {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning, details.warning {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
background-color: var(--bs-warning-bg-subtle);
|
||||||
|
border-color: var(--bs-warning-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
|
||||||
|
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
|
||||||
|
details.warning h1, details.warning h2, details.warning h3,
|
||||||
|
details.warning h4, details.warning h5, details.warning h6 {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger, details.danger {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
|
border-color: var(--bs-danger-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
|
||||||
|
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
|
||||||
|
details.danger h1, details.danger h2, details.danger h3,
|
||||||
|
details.danger h4, details.danger h5, details.danger h6 {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
background-color: var(--bs-light-bg-subtle);
|
||||||
|
border-color: var(--bs-light-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition h1, .admonition h2, .admonition h3,
|
||||||
|
.admonition h4, .admonition h5, .admonition h6,
|
||||||
|
details h1, details h2, details h3,
|
||||||
|
details h4, details h5, details h6 {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition-title, summary {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.admonition>p:last-child, details>p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 991.98px) {
|
@media (max-width: 991.98px) {
|
||||||
.navbar-collapse.show { /* csslint allow: adjoining-classes */
|
.navbar-collapse.show {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
max-height: calc(100vh - 3.5rem);
|
max-height: calc(100vh - 3.5rem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item.open { /* csslint allow: adjoining-classes */
|
.dropdown-item.open {
|
||||||
color: #fff;
|
color: var(--bs-dropdown-link-active-color);
|
||||||
background-color: #2FA4E7;
|
background-color: var(--bs-dropdown-link-active-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
@ -273,13 +323,13 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 5px 0 5px 5px;
|
border-width: 5px 0 5px 5px;
|
||||||
border-left-color: #ccc;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-right: -10px;
|
margin-right: -10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu:hover > a::after {
|
.dropdown-submenu:hover > a::after {
|
||||||
border-left-color: #fff;
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
@ -293,20 +343,18 @@ h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .head
|
|||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu > .dropdown-menu {
|
.dropdown-submenu > .dropdown-menu {
|
||||||
/* csslint ignore:start */
|
|
||||||
position: fixed !important;
|
position: fixed !important;
|
||||||
/* csslint ignore:end */
|
|
||||||
margin-top: -9px;
|
margin-top: -9px;
|
||||||
margin-left: -2px;
|
margin-left: -2px;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
padding: 0.5rem 0;
|
padding: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left {
|
||||||
float: none;
|
float: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-submenu.pull-left > .dropdown-menu { /* csslint allow: adjoining-classes */
|
.dropdown-submenu.pull-left > .dropdown-menu {
|
||||||
left: -100%;
|
left: -100%;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
1
tests/fixtures/recursive-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
1
tests/fixtures/recursive-inclusion/refsite/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/recursive-inclusion/refsite/css/brands.min.css
vendored
Normal file
6
tests/fixtures/recursive-inclusion/refsite/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
9
tests/fixtures/recursive-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
9
tests/fixtures/recursive-inclusion/refsite/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/recursive-inclusion/refsite/css/solid.min.css
vendored
Normal file
6
tests/fixtures/recursive-inclusion/refsite/css/solid.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
6
tests/fixtures/recursive-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
6
tests/fixtures/recursive-inclusion/refsite/css/v4-font-face.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Details - Custom semiliterate</title>
|
<title>Details - Custom semiliterate</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -16,7 +15,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<a class="navbar-brand" href="..">Custom semiliterate</a>
|
<a class="navbar-brand" href="..">Custom semiliterate</a>
|
||||||
<!-- Expander button -->
|
<!-- Expander button -->
|
||||||
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar-collapse">
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
@ -24,15 +23,15 @@
|
|||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
<!-- Main navigation -->
|
<!-- Main navigation -->
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li class="navitem">
|
<li class="nav-item">
|
||||||
<a href=".." class="nav-link">About</a>
|
<a href=".." class="nav-link">About</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="navitem active">
|
<li class="nav-item">
|
||||||
<a href="./" class="nav-link">Details</a>
|
<a href="./" class="nav-link active" aria-current="page">Details</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a rel="prev" href=".." class="nav-link">
|
<a rel="prev" href=".." class="nav-link">
|
||||||
<i class="fa fa-arrow-left"></i> Previous
|
<i class="fa fa-arrow-left"></i> Previous
|
||||||
@ -50,18 +49,18 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3"><div class="navbar-light navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#toc-collapse" title="Table of Contents">
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
<span class="fa fa-angle-down"></span>
|
<span class="fa fa-angle-down"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="toc-collapse" class="navbar-collapse collapse card bg-secondary">
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
<li class="nav-item" data-level="2"><a href="#exposition" class="nav-link">Exposition</a>
|
<li class="nav-item" data-bs-level="2"><a href="#exposition" class="nav-link">Exposition</a>
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@ -90,7 +89,7 @@ syntax and <code>{! escaped syntax !}</code>.</p></div>
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en" data-bs-theme="light">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<title>Custom semiliterate</title>
|
<title>Custom semiliterate</title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="homepage">
|
<body class="homepage">
|
||||||
@ -16,7 +15,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<a class="navbar-brand" href=".">Custom semiliterate</a>
|
<a class="navbar-brand" href=".">Custom semiliterate</a>
|
||||||
<!-- Expander button -->
|
<!-- Expander button -->
|
||||||
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar-collapse">
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
@ -24,15 +23,15 @@
|
|||||||
<div id="navbar-collapse" class="navbar-collapse collapse">
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
<!-- Main navigation -->
|
<!-- Main navigation -->
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li class="navitem active">
|
<li class="nav-item">
|
||||||
<a href="." class="nav-link">About</a>
|
<a href="." class="nav-link active" aria-current="page">About</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="navitem">
|
<li class="nav-item">
|
||||||
<a href="foo/" class="nav-link">Details</a>
|
<a href="foo/" class="nav-link">Details</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul class="nav navbar-nav ml-auto">
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a rel="prev" class="nav-link disabled">
|
<a rel="prev" class="nav-link disabled">
|
||||||
<i class="fa fa-arrow-left"></i> Previous
|
<i class="fa fa-arrow-left"></i> Previous
|
||||||
@ -50,18 +49,18 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3"><div class="navbar-light navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#toc-collapse" title="Table of Contents">
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
<span class="fa fa-angle-down"></span>
|
<span class="fa fa-angle-down"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="toc-collapse" class="navbar-collapse collapse card bg-secondary">
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
<li class="nav-item" data-level="1"><a href="#more-complex-semiliterate-site" class="nav-link">More complex semiliterate site</a>
|
<li class="nav-item" data-bs-level="1"><a href="#more-complex-semiliterate-site" class="nav-link">More complex semiliterate site</a>
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@ -87,7 +86,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
4
tests/fixtures/sibling-destination/README.md
vendored
Normal file
4
tests/fixtures/sibling-destination/README.md
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Want to extract to a sibling directory
|
||||||
|
|
||||||
|
The [extracted markdown](finished/polished.md).
|
||||||
|
|
BIN
tests/fixtures/sibling-destination/assets/icons8-ask-question-100.png
vendored
Normal file
BIN
tests/fixtures/sibling-destination/assets/icons8-ask-question-100.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
10
tests/fixtures/sibling-destination/mkdocs.yml
vendored
Normal file
10
tests/fixtures/sibling-destination/mkdocs.yml
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
site_name: Enable extraction from included files
|
||||||
|
docs_dir: refsite # dummy
|
||||||
|
plugins:
|
||||||
|
- semiliterate:
|
||||||
|
ignore: [refsite]
|
||||||
|
merge_docs_dir: false
|
||||||
|
semiliterate:
|
||||||
|
- pattern: 'raw\.txt'
|
||||||
|
extract: {start: '---', stop: '---'}
|
||||||
|
destination: '../finished/polished.md'
|
109
tests/fixtures/sibling-destination/refsite/404.html.cropped
vendored
Normal file
109
tests/fixtures/sibling-destination/refsite/404.html.cropped
vendored
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<title>Enable extraction from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="/.">Enable extraction from included files</a>
|
||||||
|
<!-- Expander button -->
|
||||||
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
<!-- Main navigation -->
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="/." class="nav-link">Want to extract to a sibling directory</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">Finished</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="/finished/polished/" class="dropdown-item">Internals</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div id="main-content" class="span12">
|
||||||
|
<h1 id="404-page-not-found" style="text-align: center">404</h1>
|
||||||
|
<p style="text-align: center"><strong>Page not found</strong></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = "/",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
tests/fixtures/sibling-destination/refsite/assets/icons8-ask-question-100.png
vendored
Normal file
BIN
tests/fixtures/sibling-destination/refsite/assets/icons8-ask-question-100.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
366
tests/fixtures/sibling-destination/refsite/css/base.css
vendored
Normal file
366
tests/fixtures/sibling-destination/refsite/css/base.css
vendored
Normal file
@ -0,0 +1,366 @@
|
|||||||
|
html {
|
||||||
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
|
main container. */
|
||||||
|
scroll-padding-top: calc(3.5rem + 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Replacement for `body { background-attachment: fixed; }`, which has
|
||||||
|
performance issues when scrolling on large displays. See #1394. */
|
||||||
|
body::before {
|
||||||
|
content: ' ';
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
background: url(../img/grid.png) repeat-x;
|
||||||
|
will-change: transform;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
body > .container {
|
||||||
|
margin-top: 20px;
|
||||||
|
min-height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.fixed-top {
|
||||||
|
position: -webkit-sticky;
|
||||||
|
position: sticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
.source-links {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-md-9 img {
|
||||||
|
max-width: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 4px;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
|
border: 1px solid var(--bs-secondary-border-subtle);
|
||||||
|
border-radius: 4px;
|
||||||
|
margin: 20px auto 30px auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h3, h4, h5, h6 {
|
||||||
|
color: inherit;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border-top: 1px solid #aaa;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre, .rst-content tt {
|
||||||
|
max-width: 100%;
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
border: solid 1px var(--bs-border-color);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
code.code-large, .rst-content tt.code-large {
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 2px 5px;
|
||||||
|
background-color: rgba(var(--bs-body-bg-rgb), 0.75);
|
||||||
|
border: solid 1px var(--bs-border-color);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
display: block;
|
||||||
|
border: none;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
padding: 2px 4px;
|
||||||
|
font-size: 90%;
|
||||||
|
color: var(--bs-secondary-text-emphasis);
|
||||||
|
background-color: var(--bs-secondary-bg-subtle);
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
a code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover code, a:focus code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
margin-top: 30px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog {
|
||||||
|
margin-top: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Side navigation
|
||||||
|
*
|
||||||
|
* Scrollspy and affixed enhanced navigation to highlight sections and secondary
|
||||||
|
* sections of docs content.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.bs-sidebar.affix {
|
||||||
|
position: -webkit-sticky;
|
||||||
|
position: sticky;
|
||||||
|
/* The nav header is 3.5rem high, plus 20px for the margin-top of the
|
||||||
|
main container. */
|
||||||
|
top: calc(3.5rem + 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar.card {
|
||||||
|
padding: 0;
|
||||||
|
max-height: 90%;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Toggle (vertically flip) sidebar collapse icon */
|
||||||
|
.bs-sidebar .navbar-toggler span {
|
||||||
|
-moz-transform: scale(1, -1);
|
||||||
|
-webkit-transform: scale(1, -1);
|
||||||
|
-o-transform: scale(1, -1);
|
||||||
|
-ms-transform: scale(1, -1);
|
||||||
|
transform: scale(1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .navbar-toggler.collapsed span {
|
||||||
|
-moz-transform: scale(1, 1);
|
||||||
|
-webkit-transform: scale(1, 1);
|
||||||
|
-o-transform: scale(1, 1);
|
||||||
|
-ms-transform: scale(1, 1);
|
||||||
|
transform: scale(1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* First level of nav */
|
||||||
|
.bs-sidebar > .navbar-collapse > .nav {
|
||||||
|
padding-top: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* All levels of nav */
|
||||||
|
.bs-sidebar .nav > li > a {
|
||||||
|
display: block;
|
||||||
|
padding: 5px 20px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.bs-sidebar .nav > li > a:hover,
|
||||||
|
.bs-sidebar .nav > li > a:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
.bs-sidebar .nav > li > a.active,
|
||||||
|
.bs-sidebar .nav > li > a.active:hover,
|
||||||
|
.bs-sidebar .nav > li > a.active:focus {
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: transparent;
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav .nav .nav {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav > li > a {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-sidebar .nav .nav > li > a {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerlink {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
font-size: 14px;
|
||||||
|
display: none;
|
||||||
|
padding-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding-left: 10px;
|
||||||
|
border-left: 4px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
padding: 15px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.note, details.note {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
|
background-color: var(--bs-primary-bg-subtle);
|
||||||
|
border-color: var(--bs-primary-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.note h1, .admonition.note h2, .admonition.note h3,
|
||||||
|
.admonition.note h4, .admonition.note h5, .admonition.note h6,
|
||||||
|
details.note h1, details.note h2, details.note h3,
|
||||||
|
details.note h4, details.note h5, details.note h6 {
|
||||||
|
color: var(--bs-primary-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.info, details.info {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
background-color: var(--bs-info-bg-subtle);
|
||||||
|
border-color: var(--bs-info-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.info h1, .admonition.info h2, .admonition.info h3,
|
||||||
|
.admonition.info h4, .admonition.info h5, .admonition.info h6,
|
||||||
|
details.info h1, details.info h2, details.info h3,
|
||||||
|
details.info h4, details.info h5, details.info h6 {
|
||||||
|
color: var(--bs-info-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning, details.warning {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
background-color: var(--bs-warning-bg-subtle);
|
||||||
|
border-color: var(--bs-warning-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.warning h1, .admonition.warning h2, .admonition.warning h3,
|
||||||
|
.admonition.warning h4, .admonition.warning h5, .admonition.warning h6,
|
||||||
|
details.warning h1, details.warning h2, details.warning h3,
|
||||||
|
details.warning h4, details.warning h5, details.warning h6 {
|
||||||
|
color: var(--bs-warning-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger, details.danger {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
|
border-color: var(--bs-danger-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition.danger h1, .admonition.danger h2, .admonition.danger h3,
|
||||||
|
.admonition.danger h4, .admonition.danger h5, .admonition.danger h6,
|
||||||
|
details.danger h1, details.danger h2, details.danger h3,
|
||||||
|
details.danger h4, details.danger h5, details.danger h6 {
|
||||||
|
color: var(--bs-danger-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition, details {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
background-color: var(--bs-light-bg-subtle);
|
||||||
|
border-color: var(--bs-light-border-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition h1, .admonition h2, .admonition h3,
|
||||||
|
.admonition h4, .admonition h5, .admonition h6,
|
||||||
|
details h1, details h2, details h3,
|
||||||
|
details h4, details h5, details h6 {
|
||||||
|
color: var(--bs-light-text-emphasis);
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition-title, summary {
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.admonition>p:last-child, details>p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 991.98px) {
|
||||||
|
.navbar-collapse.show {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height: calc(100vh - 3.5rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item.open {
|
||||||
|
color: var(--bs-dropdown-link-active-color);
|
||||||
|
background-color: var(--bs-dropdown-link-active-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > .dropdown-menu {
|
||||||
|
margin: 0 0 0 1.5rem;
|
||||||
|
padding: 0;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > a::after {
|
||||||
|
display: block;
|
||||||
|
content: " ";
|
||||||
|
float: right;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-color: transparent;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 5px 0 5px 5px;
|
||||||
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-right: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu:hover > a::after {
|
||||||
|
border-left-color: var(--bs-dropdown-link-active-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.dropdown-menu {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height: calc(100vh - 3.5rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu > .dropdown-menu {
|
||||||
|
position: fixed !important;
|
||||||
|
margin-top: -9px;
|
||||||
|
margin-left: -2px;
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 0.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-submenu.pull-left > .dropdown-menu {
|
||||||
|
left: -100%;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
/* Remove sidebar when print */
|
||||||
|
.col-md-3 { display: none; }
|
||||||
|
}
|
12
tests/fixtures/sibling-destination/refsite/css/bootstrap.min.css
vendored
Normal file
12
tests/fixtures/sibling-destination/refsite/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/sibling-destination/refsite/css/bootstrap.min.css.map
vendored
Normal file
1
tests/fixtures/sibling-destination/refsite/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/sibling-destination/refsite/css/brands.min.css
vendored
Normal file
6
tests/fixtures/sibling-destination/refsite/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
9
tests/fixtures/sibling-destination/refsite/css/fontawesome.min.css
vendored
Normal file
9
tests/fixtures/sibling-destination/refsite/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
tests/fixtures/sibling-destination/refsite/css/solid.min.css
vendored
Normal file
6
tests/fixtures/sibling-destination/refsite/css/solid.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
6
tests/fixtures/sibling-destination/refsite/css/v4-font-face.min.css
vendored
Normal file
6
tests/fixtures/sibling-destination/refsite/css/v4-font-face.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2023 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
132
tests/fixtures/sibling-destination/refsite/finished/polished/index.html.cropped
vendored
Normal file
132
tests/fixtures/sibling-destination/refsite/finished/polished/index.html.cropped
vendored
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<title>Internals - Enable extraction from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="../..">Enable extraction from included files</a>
|
||||||
|
<!-- Expander button -->
|
||||||
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
<!-- Main navigation -->
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="../.." class="nav-link">Want to extract to a sibling directory</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle active" aria-current="page" role="button" data-bs-toggle="dropdown" aria-expanded="false">Finished</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="./" class="dropdown-item active" aria-current="page">Internals</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="prev" href="../.." class="nav-link">
|
||||||
|
<i class="fa fa-arrow-left"></i> Previous
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="next" class="nav-link disabled">
|
||||||
|
Next <i class="fa fa-arrow-right"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
|
<span class="fa fa-angle-down"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
|
<li class="nav-item" data-bs-level="1"><a href="#internals" class="nav-link">Internals</a>
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div></div>
|
||||||
|
<div class="col-md-9" role="main">
|
||||||
|
|
||||||
|
<h1 id="internals">Internals</h1>
|
||||||
|
<p>But this is <strong>markdown</strong> hidden within.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = "../..",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
135
tests/fixtures/sibling-destination/refsite/index.html.cropped
vendored
Normal file
135
tests/fixtures/sibling-destination/refsite/index.html.cropped
vendored
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<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="description" content="None">
|
||||||
|
|
||||||
|
|
||||||
|
<title>Enable extraction from included files</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="homepage">
|
||||||
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href=".">Enable extraction from included files</a>
|
||||||
|
<!-- Expander button -->
|
||||||
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Expanded navigation -->
|
||||||
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
||||||
|
<!-- Main navigation -->
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="." class="nav-link active" aria-current="page">Want to extract to a sibling directory</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false">Finished</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="finished/polished/" class="dropdown-item">Internals</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="nav navbar-nav ms-md-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="prev" class="nav-link disabled">
|
||||||
|
<i class="fa fa-arrow-left"></i> Previous
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a rel="next" href="finished/polished/" class="nav-link">
|
||||||
|
Next <i class="fa fa-arrow-right"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
||||||
|
<span class="fa fa-angle-down"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
|
||||||
|
<li class="nav-item" data-bs-level="1"><a href="#want-to-extract-to-a-sibling-directory" class="nav-link">Want to extract to a sibling directory</a>
|
||||||
|
<ul class="nav flex-column">
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div></div>
|
||||||
|
<div class="col-md-9" role="main">
|
||||||
|
|
||||||
|
<h1 id="want-to-extract-to-a-sibling-directory">Want to extract to a sibling directory</h1>
|
||||||
|
<p>The <a href="finished/polished/">extracted markdown</a>.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
||||||
|
</footer>
|
||||||
|
var base_url = ".",
|
||||||
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
||||||
|
|
||||||
|
<div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 20%;">Keys</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="help shortcut"><kbd>?</kbd></td>
|
||||||
|
<td>Open this help</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="next shortcut"><kbd>n</kbd></td>
|
||||||
|
<td>Next page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||||
|
<td>Previous page</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="search shortcut"><kbd>s</kbd></td>
|
||||||
|
<td>Search</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
-->
|
7
tests/fixtures/sibling-destination/unfinished/raw.txt
vendored
Normal file
7
tests/fixtures/sibling-destination/unfinished/raw.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
This is a free-form file, used as an example
|
||||||
|
---
|
||||||
|
# Internals
|
||||||
|
|
||||||
|
But this is __markdown__ hidden within.
|
||||||
|
---
|
||||||
|
There can of course be stuff after it.
|
3
tests/fixtures/theme-mod-location/README.md
vendored
Normal file
3
tests/fixtures/theme-mod-location/README.md
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Test of syspath extraction
|
||||||
|
|
||||||
|
Hopefully Kilroy magically visited above.
|
4
tests/fixtures/theme-mod-location/etc/doc_theme/.base.generator
vendored
Normal file
4
tests/fixtures/theme-mod-location/etc/doc_theme/.base.generator
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{! "\syspath mkdocs/themes/readthedocs/base.html"
|
||||||
|
extract:
|
||||||
|
replace: [ ['([<]body.*$)', '\1\n<p>Kilroy was here.</p>\n'] ]
|
||||||
|
!}
|
15
tests/fixtures/theme-mod-location/etc/mkdocs.yml
vendored
Normal file
15
tests/fixtures/theme-mod-location/etc/mkdocs.yml
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
site_name: syspath inclusion
|
||||||
|
docs_dir: ../refsite # dummy
|
||||||
|
site_dir: ../site
|
||||||
|
theme:
|
||||||
|
name: readthedocs
|
||||||
|
custom_dir: doc_theme/
|
||||||
|
plugins:
|
||||||
|
- semiliterate:
|
||||||
|
ignore: [refsite]
|
||||||
|
merge_docs_dir: false
|
||||||
|
include: []
|
||||||
|
semiliterate:
|
||||||
|
- pattern: '[.](base).generator$' # Amend readthedocs theme
|
||||||
|
destination: '\1.html'
|
||||||
|
ensurelines: false
|
89
tests/fixtures/theme-mod-location/refsite/404.html.cropped
vendored
Normal file
89
tests/fixtures/theme-mod-location/refsite/404.html.cropped
vendored
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="writer-html5" 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" />
|
||||||
|
<title>syspath inclusion</title>
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav" role="document">
|
||||||
|
<p>Kilroy was here.</p>
|
||||||
|
|
||||||
|
<div class="wy-grid-for-nav">
|
||||||
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
||||||
|
<div class="wy-side-scroll">
|
||||||
|
<div class="wy-side-nav-search">
|
||||||
|
<a href="/." class="icon icon-home"> syspath inclusion
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="/.">Test of syspath extraction</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||||
|
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
|
||||||
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||||
|
<a href="/.">syspath inclusion</a>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
<div class="wy-nav-content">
|
||||||
|
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
<li><a href="/." class="icon icon-home" aria-label="Docs"></a></li>
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
</div>
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div class="section" itemprop="articleBody">
|
||||||
|
|
||||||
|
|
||||||
|
<h1 id="404-page-not-found">404</h1>
|
||||||
|
|
||||||
|
<p><strong>Page not found</strong></p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><footer>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div role="contentinfo">
|
||||||
|
<!-- Copyright etc -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="rst-versions" role="note" aria-label="Versions">
|
||||||
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
jQuery(function () {
|
||||||
|
SphinxRtdTheme.Navigation.enable(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
13
tests/fixtures/theme-mod-location/refsite/css/theme.css
vendored
Normal file
13
tests/fixtures/theme-mod-location/refsite/css/theme.css
vendored
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user