From 472fa32d9fc1f5867b2a38cae037b5c91a227497 Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Sun, 8 Dec 2019 23:46:20 +0100 Subject: [PATCH] Added {% include ... %} directive for including examples/travis-ci-minimal.yml in docs/setup.md --- .../mkdocs_include_markdown_plugin/plugin.py | 44 +++++++++++++------ docs/setup.md | 8 ++-- examples/travis-ci-minimal.yml | 22 ++++++++++ 3 files changed, 56 insertions(+), 18 deletions(-) create mode 100644 examples/travis-ci-minimal.yml diff --git a/docs/mkdocs_include_markdown_plugin/mkdocs_include_markdown_plugin/plugin.py b/docs/mkdocs_include_markdown_plugin/mkdocs_include_markdown_plugin/plugin.py index b1f05cd8..0060eec5 100644 --- a/docs/mkdocs_include_markdown_plugin/mkdocs_include_markdown_plugin/plugin.py +++ b/docs/mkdocs_include_markdown_plugin/mkdocs_include_markdown_plugin/plugin.py @@ -1,6 +1,19 @@ 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" + \s* + %} # closing tag + ''', + flags=re.VERBOSE, +) + +INCLUDEMARKDOWN_TAG_REGEX = re.compile( r''' {% # opening tag \s* @@ -9,8 +22,6 @@ TAG_REGEX_PATTERN = re.compile( "(?P[^"]+)" # "filename" (?:\s+start="(?P[^"]+)")? # optional start expression (?:\s+end="(?P[^"]+)")? # optional end expression - (?:\s+before="(?P[^"]+)")? # optional preceding text to add - (?:\s+after="(?P[^"]+)")? # optional succeeding text to add \s* %} # closing tag ''', @@ -21,12 +32,24 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin): def on_page_markdown(self, markdown, page, **kwargs): 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') start = match.group('start') 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) @@ -42,12 +65,6 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin): if 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 ( '\n' % ( filename, cgi.escape(start or ''), cgi.escape(end or '') @@ -56,6 +73,7 @@ class ImportMarkdownPlugin(mkdocs.plugins.BasePlugin): + '\n' ) - 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 \ No newline at end of file diff --git a/docs/setup.md b/docs/setup.md index 8af222e3..2c1ed02c 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -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. > .travis.yml -{% - includemarkdown "../examples/travis-ci-deploy-only.yml" - before="```yaml\n" - after="```\n" -%} +```yaml +{% include "../examples/travis-ci-minimal.yml" %} +``` Note that building Windows Python 2.7 wheels on Travis is unsupported. diff --git a/examples/travis-ci-minimal.yml b/examples/travis-ci-minimal.yml new file mode 100644 index 00000000..f1abc204 --- /dev/null +++ b/examples/travis-ci-minimal.yml @@ -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 \ No newline at end of file