Separate 'mkdocs_include_markdown_plugin' from project (#475)
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@ title: Home
|
|||||||
---
|
---
|
||||||
|
|
||||||
{%
|
{%
|
||||||
includemarkdown "../README.md"
|
include-markdown "../README.md"
|
||||||
start="<!--intro-start-->"
|
start="<!--intro-start-->"
|
||||||
end="<!--intro-end-->"
|
end="<!--intro-end-->"
|
||||||
%}
|
%}
|
||||||
|
|||||||
@@ -1,84 +0,0 @@
|
|||||||
import cgi
|
|
||||||
import re
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
import mkdocs
|
|
||||||
|
|
||||||
INCLUDE_TAG_REGEX = re.compile(
|
|
||||||
r'''
|
|
||||||
{% # opening tag
|
|
||||||
\s*
|
|
||||||
include # directive name
|
|
||||||
\s+
|
|
||||||
"(?P<filename>[^"]+)" # "filename"
|
|
||||||
\s*
|
|
||||||
%} # closing tag
|
|
||||||
''',
|
|
||||||
flags=re.VERBOSE,
|
|
||||||
)
|
|
||||||
|
|
||||||
INCLUDEMARKDOWN_TAG_REGEX = re.compile(
|
|
||||||
r'''
|
|
||||||
{% # opening tag
|
|
||||||
\s*
|
|
||||||
includemarkdown # directive name
|
|
||||||
\s+
|
|
||||||
"(?P<filename>[^"]+)" # "filename"
|
|
||||||
(?:\s+start="(?P<start>[^"]+)")? # optional start expression
|
|
||||||
(?:\s+end="(?P<end>[^"]+)")? # optional end expression
|
|
||||||
\s*
|
|
||||||
%} # closing tag
|
|
||||||
''',
|
|
||||||
flags=re.VERBOSE,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin):
|
|
||||||
def on_page_markdown(self, markdown, page, **kwargs):
|
|
||||||
page_src_path = page.file.abs_src_path
|
|
||||||
|
|
||||||
def found_include_tag(match):
|
|
||||||
filename = match.group('filename')
|
|
||||||
|
|
||||||
file_path_abs = Path(page_src_path).parent / filename
|
|
||||||
|
|
||||||
if not file_path_abs.exists():
|
|
||||||
raise ValueError('file not found', filename)
|
|
||||||
|
|
||||||
text_to_include = file_path_abs.read_text(encoding='utf8')
|
|
||||||
|
|
||||||
# Allow good practice of having a final newline in the file
|
|
||||||
if text_to_include.endswith('\n'):
|
|
||||||
text_to_include = text_to_include[:-1]
|
|
||||||
|
|
||||||
return text_to_include
|
|
||||||
|
|
||||||
def found_includemarkdown_tag(match):
|
|
||||||
filename = match.group('filename')
|
|
||||||
start = match.group('start')
|
|
||||||
end = match.group('end')
|
|
||||||
|
|
||||||
file_path_abs = Path(page_src_path).parent / filename
|
|
||||||
|
|
||||||
if not file_path_abs.exists():
|
|
||||||
raise ValueError('file not found', filename)
|
|
||||||
|
|
||||||
text_to_include = file_path_abs.read_text(encoding='utf8')
|
|
||||||
|
|
||||||
if start:
|
|
||||||
_, _, text_to_include = text_to_include.partition(start)
|
|
||||||
|
|
||||||
if end:
|
|
||||||
text_to_include, _, _ = text_to_include.partition(end)
|
|
||||||
|
|
||||||
return (
|
|
||||||
'<!-- BEGIN INCLUDE %s %s %s -->\n' % (
|
|
||||||
filename, cgi.escape(start or ''), cgi.escape(end or '')
|
|
||||||
)
|
|
||||||
+ text_to_include
|
|
||||||
+ '\n<!-- END INCLUDE -->'
|
|
||||||
)
|
|
||||||
|
|
||||||
markdown = re.sub(INCLUDE_TAG_REGEX, found_include_tag, markdown)
|
|
||||||
markdown = re.sub(INCLUDEMARKDOWN_TAG_REGEX, found_includemarkdown_tag, markdown)
|
|
||||||
return markdown
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name='mkdocs_include_markdown_plugin',
|
|
||||||
version='1.0',
|
|
||||||
author='Joe Rickerby',
|
|
||||||
license='Apache 2',
|
|
||||||
packages=['mkdocs_include_markdown_plugin'],
|
|
||||||
entry_points={
|
|
||||||
'mkdocs.plugins': [
|
|
||||||
'importmarkdown = mkdocs_include_markdown_plugin.plugin:ImportMarkdownPlugin',
|
|
||||||
]
|
|
||||||
},
|
|
||||||
zip_safe=False
|
|
||||||
)
|
|
||||||
+1
-1
@@ -32,4 +32,4 @@ markdown_extensions:
|
|||||||
repo_url_shortener: True
|
repo_url_shortener: True
|
||||||
|
|
||||||
plugins:
|
plugins:
|
||||||
- importmarkdown
|
- include-markdown
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-e .
|
-e .
|
||||||
-e ./docs/mkdocs_include_markdown_plugin
|
|
||||||
pytest
|
pytest
|
||||||
mkdocs==1.0.4
|
mkdocs==1.0.4
|
||||||
|
mkdocs-include-markdown-plugin==1.0.0
|
||||||
pymdown-extensions
|
pymdown-extensions
|
||||||
pip-tools
|
pip-tools
|
||||||
requests
|
requests
|
||||||
|
|||||||
Reference in New Issue
Block a user