diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c052994 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +all: bdist + +bdist: + python3 setup.py sdist bdist_wheel diff --git a/flatfilecms/views/pages.py b/flatfilecms/views/pages.py index 1b31280..dcb986b 100644 --- a/flatfilecms/views/pages.py +++ b/flatfilecms/views/pages.py @@ -10,12 +10,16 @@ from pathlib import PurePath from ..resources import (Folder, Document, Markdown, YAML, Jinja2) import yaml import frontmatter +import markdown + +from ..filters import IgnoreExtension class Loader(yaml.Loader): def __init__(self, stream): super(Loader, self).__init__(stream) Loader.add_constructor('!include', Loader.include) + Loader.add_constructor('!markdown', Loader.markdown) def include(self, node): if isinstance(node, yaml.ScalarNode): @@ -35,6 +39,17 @@ class Loader(yaml.Loader): raise yaml.constructor.ConstructorError( "Error:: unrecognised node type in !include statement") + def markdown(self, node): + if not isinstance(node, yaml.ScalarNode): + raise yaml.constructor.ConstructorError( + "Error:: unrecognised node type in !markdown statement") + m = self.construct_scalar(node) + return markdown.markdown( + m, + extensions=[IgnoreExtension(), 'markdown.extensions.extra'], + output_format='html5', + tab_length=2) + def extractFile(self, filename): path = PurePath(self.data_dir) / filename f = AssetResolver().resolve(str(path)).stream()