feat: Add extract_standard_markdown and report_docs_build parameters
Some checks reported errors
continuous-integration/drone/push Build was killed

Also includes the bootstrap manifest, which was inadvertently '.gitignore'd.

  Resolves #5.
This commit is contained in:
Glen Whitney 2021-01-09 10:17:34 -08:00
parent 981384c6f7
commit ec0854d8b9
5 changed files with 54 additions and 10 deletions

1
.gitignore vendored
View File

@ -33,7 +33,6 @@ MANIFEST
# PyInstaller # PyInstaller
# Usually these files are written by a python script from a template # Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it. # before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec *.spec
# Installer logs # Installer logs

View File

@ -10,9 +10,10 @@ plugins:
merge_docs_dir: false merge_docs_dir: false
ignore_folders: [build, dist, tests] ignore_folders: [build, dist, tests]
include_extensions: [LICENSE] include_extensions: [LICENSE]
semiliterate: report_docs_build: true
- pattern: '(\.md)$' extract_standard_markdown:
replace: [['^(.*)<!-- repo: -->.*<!-- site:(.*?) -->(.*\s*)$', '\1\2\3']] replace: [['^(.*)<!-- repo: -->.*<!-- site:(.*?) -->(.*\s*)$', '\1\2\3']]
semiliterate:
- pattern: '(\.py)$' - pattern: '(\.py)$'
start: '"""\smd' start: '"""\smd'
stop: '"""' stop: '"""'

View File

@ -127,28 +127,54 @@ default values in parentheses at the beginning of each entry.
start: '[*]SimplePlugin.config_scheme' start: '[*]SimplePlugin.config_scheme'
terminate: '^\s*\)' terminate: '^\s*\)'
replace: replace:
- ['\(.(.*)., config_options.Type\(.*, default=(.*)\)\)', '\1\n: (\2)'] - ["\\('(.*)',\\s*$", '\1\n']
- ['config_options.Type.*?default=([^\)]*)', ': (\1)']
- '^\s*#(.*\s*)$' - '^\s*#(.*\s*)$'
!} !}
extract_standard_markdown
: (true) To be implemented and documented
""" """
config_scheme = ( config_scheme = (
# Note documentation of each new parameter **follows** the parameter.
*SimplePlugin.config_scheme, *SimplePlugin.config_scheme,
('copy_standard_markdown', config_options.Type(bool, default=False)) ('copy_standard_markdown',
config_options.Type(bool, default=False)),
# Whether to add MkDocs' list of standard Markdown extensions to the # Whether to add MkDocs' list of standard Markdown extensions to the
# `include_extensions` parameter so that Markdown files will be # `include_extensions` 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 `extract_standard_markdown` default. # because of the following `extract_standard_markdown` parameter.
('extract_standard_markdown',
config_options.Type(dict, default={})),
# If the `enable` key of this dict parameter is true
# (which it defaults to),
# it adds a semiliterate block causing extraction (and hence
# include-directive processing) from all standard Markdown files
# (as defined by MkDocs). The remaining keys of this parameter are
# included as parameters of that semiliterate block. Thus, the
# default value of the parameter arranges for Markdown file to be
# copied "as-is", except possibly for embedded inclusions.
# On the other hand, setting it to `{enable: false}` will prevent
# automatic extraction from standard Markdown files.
('report_docs_build',
config_options.Type(bool, default=False))
# If true, the name of the temporary directory to which generated docs
# files are copied/extracted will be written to standard output
# (even if the `-v` verbose option to mkdocs is not specified).
) )
def build_docs(self): def build_docs(self):
if self.config['report_docs_build']:
utils.log.info(
f"semiliterate: generating docs in {self.build_docs_dir}")
if not self.config['copy_standard_markdown']: if not self.config['copy_standard_markdown']:
self.include_extensions = self.config['include_extensions'] self.include_extensions = self.config['include_extensions']
if self.config['extract_standard_markdown'].get('enable', True):
ext_pat = '|'.join(re.escape(s) for s in utils.markdown_extensions)
self.semiliterate.append(dict(
pattern=re.compile(f"^(.*(?:{ext_pat}))$"),
destination=r'\1',
**self.config['extract_standard_markdown']))
return super().build_docs() return super().build_docs()
# FIXME: This method is copied from simple, just to insert a control # FIXME: This method is copied from simple, just to insert a control

View File

@ -1,6 +1,6 @@
[metadata] [metadata]
name = mkdocs-semiliterate name = mkdocs-semiliterate
version = 0.0.7 version = 0.0.8
[options] [options]
packages = mkdocs_semiliterate packages = mkdocs_semiliterate

18
tests/bootstrap.manifest Normal file
View File

@ -0,0 +1,18 @@
site
site/404.html
site/css
site/css/theme.css
site/css/theme_extra.css
site/drone_develop
site/drone_develop/index.html
site/drone_install
site/drone_install/index.html
site/index.html
site/LICENSE
site/mkdocs_semiliterate
site/mkdocs_semiliterate/plugin
site/mkdocs_semiliterate/plugin/index.html
site/search
site/search.html
site/sitemap.xml
site/sitemap.xml.gz