From 2741fe491ebcd3b59da342959f94086a932e6428 Mon Sep 17 00:00:00 2001 From: "florian.veaux" Date: Wed, 18 Mar 2020 11:01:11 +0100 Subject: [PATCH] Basic setup --- .gitignore | 5 ++++- mkdocs_click/__init__.py | 4 ++++ mkdocs_click/extension.py | 33 +++++++++++++++++++++++++++++++++ setup.py | 27 +++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 mkdocs_click/__init__.py create mode 100644 mkdocs_click/extension.py create mode 100644 setup.py diff --git a/.gitignore b/.gitignore index b6e4761..92c9a36 100644 --- a/.gitignore +++ b/.gitignore @@ -126,4 +126,7 @@ venv.bak/ dmypy.json # Pyre type checker -.pyre/ +.apyre/ + +# PyCharm +.idea/ diff --git a/mkdocs_click/__init__.py b/mkdocs_click/__init__.py new file mode 100644 index 0000000..100d6b8 --- /dev/null +++ b/mkdocs_click/__init__.py @@ -0,0 +1,4 @@ +from .extension import MKClickExtension, makeExtension + +__version__ = '0.0.1' +__all__ = ["MKClickExtension", "makeExtension"] \ No newline at end of file diff --git a/mkdocs_click/extension.py b/mkdocs_click/extension.py new file mode 100644 index 0000000..e404387 --- /dev/null +++ b/mkdocs_click/extension.py @@ -0,0 +1,33 @@ +from markdown import Markdown +from markdown.extensions import Extension +from markdown.preprocessors import Preprocessor + +import xml.etree.ElementTree as etree +import re + +class ClickProcessor(Preprocessor): + + PATTERN = re.compile(r'^:::click module=([:a-zA-Z0-9_.]+):([:a-zA-Z0-9_.]+)::: *$') + + def run(self, lines: [str]) -> [str]: + new_lines = [] + for line in lines: + m = self.PATTERN.search(line) + if m: + path, command = m.groups() + new_lines.append("Found a command:") + new_lines.append(f" - Path={path}") + new_lines.append(f" - Command={command}") + else: + new_lines.append(line) + + return new_lines + +class MKClickExtension(Extension): + def extendMarkdown(self, md: Markdown) -> None: + md.registerExtension(self) + processor = ClickProcessor(md.parser) + md.preprocessors.register(processor, "mk_clik", 141) + +def makeExtension(): + return MKClickExtension() \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..17b4fcd --- /dev/null +++ b/setup.py @@ -0,0 +1,27 @@ +# (C) Datadog, Inc. 2020-present +# All rights reserved +# Licensed under the Apache license (see LICENSE) +from setuptools import setup + +VERSION = '0.0.1' + +REQUIRES = [] + +setup( + name='mkdocs-click', + version=VERSION, + description='An mkdocs extension to document click methods', + keywords='mkdocs datadog click', + url='https://github.com/DataDog/mkdocs-click', + author='Datadog', + author_email='packages@datadoghq.com', + license='Apache', + packages=['mkdocs_click'], + install_requires=REQUIRES, + python_requires='>=3.0', + include_package_data=True, + entry_points={ + 'markdown.extensions': ['mkdocs-click = mkdocs_click.:MKClickExtension'] + } +) +