Added {% include ... %} directive for including examples/travis-ci-minimal.yml in docs/setup.md
This commit is contained in:
@@ -1,6 +1,19 @@
|
|||||||
import mkdocs, re, os, io, cgi
|
import mkdocs, re, os, io, cgi
|
||||||
|
|
||||||
TAG_REGEX_PATTERN = re.compile(
|
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'''
|
r'''
|
||||||
{% # opening tag
|
{% # opening tag
|
||||||
\s*
|
\s*
|
||||||
@@ -9,8 +22,6 @@ TAG_REGEX_PATTERN = re.compile(
|
|||||||
"(?P<filename>[^"]+)" # "filename"
|
"(?P<filename>[^"]+)" # "filename"
|
||||||
(?:\s+start="(?P<start>[^"]+)")? # optional start expression
|
(?:\s+start="(?P<start>[^"]+)")? # optional start expression
|
||||||
(?:\s+end="(?P<end>[^"]+)")? # optional end expression
|
(?:\s+end="(?P<end>[^"]+)")? # optional end expression
|
||||||
(?:\s+before="(?P<before>[^"]+)")? # optional preceding text to add
|
|
||||||
(?:\s+after="(?P<after>[^"]+)")? # optional succeeding text to add
|
|
||||||
\s*
|
\s*
|
||||||
%} # closing tag
|
%} # closing tag
|
||||||
''',
|
''',
|
||||||
@@ -21,12 +32,24 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin):
|
|||||||
def on_page_markdown(self, markdown, page, **kwargs):
|
def on_page_markdown(self, markdown, page, **kwargs):
|
||||||
page_src_path = page.file.abs_src_path
|
page_src_path = page.file.abs_src_path
|
||||||
|
|
||||||
def found_import_markdown_tag(match):
|
def found_include_tag(match):
|
||||||
|
filename = match.group('filename')
|
||||||
|
|
||||||
|
file_path_abs = os.path.join(os.path.dirname(page_src_path), filename)
|
||||||
|
|
||||||
|
if not os.path.exists(file_path_abs):
|
||||||
|
raise ValueError('file not found', filename)
|
||||||
|
|
||||||
|
with io.open(file_path_abs, encoding='utf8') as f:
|
||||||
|
text_to_include = f.read()
|
||||||
|
|
||||||
|
return text_to_include
|
||||||
|
|
||||||
|
|
||||||
|
def found_includemarkdown_tag(match):
|
||||||
filename = match.group('filename')
|
filename = match.group('filename')
|
||||||
start = match.group('start')
|
start = match.group('start')
|
||||||
end = match.group('end')
|
end = match.group('end')
|
||||||
before = match.group('before')
|
|
||||||
after = match.group('after')
|
|
||||||
|
|
||||||
file_path_abs = os.path.join(os.path.dirname(page_src_path), filename)
|
file_path_abs = os.path.join(os.path.dirname(page_src_path), filename)
|
||||||
|
|
||||||
@@ -42,12 +65,6 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin):
|
|||||||
if end:
|
if end:
|
||||||
text_to_include, _, _ = text_to_include.partition(end)
|
text_to_include, _, _ = text_to_include.partition(end)
|
||||||
|
|
||||||
if before:
|
|
||||||
text_to_include = before.replace('\\n', '\n') + text_to_include
|
|
||||||
|
|
||||||
if after:
|
|
||||||
text_to_include = text_to_include + after.replace('\\n', '\n')
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
'<!-- BEGIN INCLUDE %s %s %s -->\n' % (
|
'<!-- BEGIN INCLUDE %s %s %s -->\n' % (
|
||||||
filename, cgi.escape(start or ''), cgi.escape(end or '')
|
filename, cgi.escape(start or ''), cgi.escape(end or '')
|
||||||
@@ -56,6 +73,7 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin):
|
|||||||
+ '\n<!-- END INCLUDE -->'
|
+ '\n<!-- END INCLUDE -->'
|
||||||
)
|
)
|
||||||
|
|
||||||
markdown = re.sub(TAG_REGEX_PATTERN, found_import_markdown_tag, markdown)
|
markdown = re.sub(INCLUDE_TAG_REGEX, found_include_tag, markdown)
|
||||||
|
markdown = re.sub(INCLUDEMARKDOWN_TAG_REGEX, found_includemarkdown_tag, markdown)
|
||||||
return markdown
|
return markdown
|
||||||
|
|
||||||
+3
-5
@@ -52,11 +52,9 @@ Wheels will be stored for you and available through the Pipelines interface. For
|
|||||||
To build Linux, Mac, and Windows wheels on Travis CI, create a `.travis.yml` file in your repo.
|
To build Linux, Mac, and Windows wheels on Travis CI, create a `.travis.yml` file in your repo.
|
||||||
|
|
||||||
> .travis.yml
|
> .travis.yml
|
||||||
{%
|
```yaml
|
||||||
includemarkdown "../examples/travis-ci-deploy-only.yml"
|
{% include "../examples/travis-ci-minimal.yml" %}
|
||||||
before="```yaml\n"
|
```
|
||||||
after="```\n"
|
|
||||||
%}
|
|
||||||
|
|
||||||
Note that building Windows Python 2.7 wheels on Travis is unsupported.
|
Note that building Windows Python 2.7 wheels on Travis is unsupported.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
language: python
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# perform a linux build
|
||||||
|
- services: docker
|
||||||
|
# and a mac build
|
||||||
|
- os: osx
|
||||||
|
language: shell
|
||||||
|
# and a windows build
|
||||||
|
- os: windows
|
||||||
|
language: shell
|
||||||
|
before_install:
|
||||||
|
- choco install python --version 3.8.0
|
||||||
|
- export PATH="/c/Python38:/c/Python38/Scripts:$PATH"
|
||||||
|
|
||||||
|
install:
|
||||||
|
- python -m pip install cibuildwheel==1.1.0
|
||||||
|
|
||||||
|
script:
|
||||||
|
# build the wheels, put them into './wheelhouse'
|
||||||
|
- python -m cibuildwheel --output-dir wheelhouse
|
||||||
Reference in New Issue
Block a user