From c3538928f3394f7ed35ef98e65cbbeaa71352d01 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sat, 7 Mar 2020 01:27:25 +0100 Subject: [PATCH] Remove the support for yaml files and rendering of cards with jinja2 --- Makefile | 124 ++++++++++------------------------ templates/all.html.j2 | 42 ++++++++++++ templates/card.xml.j2 | 5 -- templates/card_header.html.j2 | 1 - templates/style.xsl.j2 | 2 +- test_card.xml | 37 +++++++++- test_card.yaml | 19 ------ 7 files changed, 115 insertions(+), 115 deletions(-) create mode 100644 templates/all.html.j2 delete mode 100644 templates/card.xml.j2 delete mode 100644 test_card.yaml diff --git a/Makefile b/Makefile index 5d33e7d..ed87c10 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,11 @@ - -CARDS_YAML := $(wildcard cards/*.yaml) -CARDS_XML := $(wildcard cards/*.xml) -CARDS := $(CARDS_YAML) $(CARDS_XML) -CARDS_DESTS_YAML := $(patsubst cards/%.yaml,cards/build/%.html,$(CARDS)) -CARDS_DESTS_XML := $(patsubst cards/%.xml,cards/build/%.x.html,$(CARDS)) -CARDS_DESTS := $(CARDS_DESTS_YAML) $(CARDS_DESTS_XML) +CARDS := $(wildcard cards/*.xml) +CARDS_DESTS := $(patsubst cards/%.xml,cards/build/%.html,$(CARDS)) .PHONY: style -style: build/test_card.html build/test_card_rendered.html cards/build/all.html +style: build/test_card.html .PHONY: cards -cards: $(CARDS_DESTS) cards/build/all.html - -.PHONY: style -style: build/style.xsl +cards: cards/build/all.html .PHONY: dev dev: @@ -23,87 +15,35 @@ dev: dev_cards: git ls-files | entr bash -c "make cards" - .PHONY: clean clean: rm -v build/* cards/build/* -build/test_card.html: build/test_card.xml build/style.xsl + +build/test_card.html: test_card.xml build/style.xsl build xsltproc \ -o build/test_card.html \ build/style.xsl \ - build/test_card.xml + test_card.xml -define PYTHON_MAKE_JINJA2_RENDERED_CARD +cards/build/%.html: cards/%.xml build/style.xsl cards/build + xsltproc -o $@ build/style.xsl $< + + +define PYTHON_MAKE_IFRAME_HELL from jinja2 import Environment, FileSystemLoader -from markdown import markdown -import yaml, sys, glob, traceback -import xmltodict -with open("build/style.css") as f: css_data = f.read() -with open(sys.argv[2], "w") as f: - e = Environment(trim_blocks=True, lstrip_blocks=True, loader=FileSystemLoader('')) - f.write(e.get_template("templates/card_header.html.j2").render(is_local=True, css_data=css_data)) - e.filters.update({ - "is_number":lambda x: str(x).isnumeric(), - "is_string":lambda x: isinstance(x, str), - "markdown":markdown, - "any":any, - "all":all, - "split":str.split, - "startswith":str.startswith, - "tail": lambda x: x[1:], - "cull_whitespace":(lambda x: " ".join(x.split())) }) - for n, filename in enumerate([sys.argv[1]] if sys.argv[1] != "ALL" else sorted(glob.glob("cards/*.yaml") + glob.glob("cards/*.xml"))): - with open(filename) as f2: - if filename.endswith("yaml"): - yaml_data = yaml.load(f2.read()) - xml_data = {} - elif filename.endswith("xml"): - xml = xmltodict.parse(f2.read()) - xml_data = xml.get("ability_card", {}) - yaml_data = yaml.load(xml_data.get("yaml_data", "")) - try: - data = e.get_template('style.html.j2').render(yaml=yaml_data, xml=xml_data) - except Exception as ex: - data = f"
{ex}
" - traceback.print_exc() - if sys.argv[1] == "ALL": - f.write(f"\n\n
\n

{filename}

\n\n{data}\n
") - else: - f.write(f"\n
\n{data}\n
") +import sys, os +env = Environment( + trim_blocks = True, + lstrip_blocks = True, + loader = FileSystemLoader('templates')) +with open("cards/build/all.html", "w") as f: + f.write(env.get_template('all.html.j2').render(cards=map(os.path.basename, sys.argv[1:]))) endef - -export PYTHON_MAKE_JINJA2_RENDERED_CARD -build/test_card_rendered.html: build/test_card.xml style.html.j2 build/style.css templates/card_header.html.j2 - python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" "build/test_card.xml" "build/test_card_rendered.html" - -export PYTHON_MAKE_JINJA2_RENDERED_CARD -cards/build/%.html: cards/%.yaml style.html.j2 build/style.css templates/card_header.html.j2 - python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" $< $@ - -export PYTHON_MAKE_JINJA2_RENDERED_CARD -cards/build/%.x.html: cards/%.xml style.html.j2 build/style.css templates/card_header.html.j2 - python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" $< $@ - -export PYTHON_MAKE_JINJA2_RENDERED_CARD -cards/build/all.html: $(CARDS) style.html.j2 build/style.css templates/card_header.html.j2 - python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" ALL $@ - - -define PYTHON_MAKE_CARD_XML -from jinja2 import Environment, FileSystemLoader -with open("test_card.yaml") as f: data = f.read() -with open("test_card.xml") as f: xml_data = f.read() -with open("build/test_card.xml", "w") as f: - f.write(Environment( - loader=FileSystemLoader('templates')) - .get_template('card.xml.j2') - .render(data=data, xml_data=xml_data)) -endef -export PYTHON_MAKE_CARD_XML -build/test_card.xml: test_card.yaml test_card.xml templates/card.xml.j2 - python3 -c "$$PYTHON_MAKE_CARD_XML" +export PYTHON_MAKE_IFRAME_HELL +cards/build/all.html: $(CARDS_DESTS) templates/all.html.j2 + python3 -c "$$PYTHON_MAKE_IFRAME_HELL" $(CARDS_DESTS) define PYTHON_MAKE_STYLE_XSL @@ -112,9 +52,9 @@ with open("build/style.css") as f: css_data = f.read() with open("style.html.j2") as f: jinja_data = f.read() with open("style.js") as f: js_data = f.read() env = Environment( - trim_blocks=True, - lstrip_blocks=True, - loader=FileSystemLoader('templates')) + trim_blocks = True, + lstrip_blocks = True, + loader = FileSystemLoader('templates')) card_header = env.get_template('card_header.html.j2').render() with open("build/style.xsl", "w") as f: f.write( @@ -122,16 +62,24 @@ with open("build/style.xsl", "w") as f: .render( css_data=css_data, jinja_data=jinja_data, js_data=js_data, card_header=card_header)) endef export PYTHON_MAKE_STYLE_XSL -build/style.xsl: build/style.css templates/style.xsl.j2 templates/card_header.html.j2 style.html.j2 style.js +build/style.xsl: build/style.css templates/style.xsl.j2 templates/card_header.html.j2 style.html.j2 style.js build python3 -c "$$PYTHON_MAKE_STYLE_XSL" define PYTHON_MAKE_SASS -import sass +import sass # libsass with open("style.scss") as f: with open("build/style.css", "w") as of: of.write(sass.compile(string=f.read(), output_style="expanded")) endef export PYTHON_MAKE_SASS -build/style.css: style.scss +build/style.css: style.scss build python3 -c "$$PYTHON_MAKE_SASS" + + +build: + mkdir -p build + + +cards/build: + mkdir -p cards/build diff --git a/templates/all.html.j2 b/templates/all.html.j2 new file mode 100644 index 0000000..e79e3bd --- /dev/null +++ b/templates/all.html.j2 @@ -0,0 +1,42 @@ + + +
+{% for cardname in cards %} +
+ +
+{% endfor %} +
diff --git a/templates/card.xml.j2 b/templates/card.xml.j2 deleted file mode 100644 index 47be01a..0000000 --- a/templates/card.xml.j2 +++ /dev/null @@ -1,5 +0,0 @@ - -{{ data.strip() }} - -{{ xml_data }} - diff --git a/templates/card_header.html.j2 b/templates/card_header.html.j2 index c24c2e9..853fe72 100644 --- a/templates/card_header.html.j2 +++ b/templates/card_header.html.j2 @@ -1,6 +1,5 @@ {% set async = "media=\"none\" onload=\"if(media!='all')media='all'\"" -%} - {% if is_local %} {# diff --git a/templates/style.xsl.j2 b/templates/style.xsl.j2 index c8cceac..3dcf55d 100644 --- a/templates/style.xsl.j2 +++ b/templates/style.xsl.j2 @@ -22,7 +22,7 @@ {% endfilter %} - +