meson: docs: introduce meson-html-gen.py helper

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
Pavel Hrdina 2020-07-23 18:16:49 +02:00
parent 75ddfa96c1
commit 5c695838fb
3 changed files with 42 additions and 26 deletions

View File

@ -320,32 +320,6 @@ news.html.in: $(top_srcdir)/NEWS.rst
$(AM_V_GEN)$(MKDIR_P) `dirname $@` && \ $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
$(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; } $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
$(acl_generated)
$(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
src="$$genhtmlin"; \
test -f "$$genhtmlin" && src="$$rst"; \
dir=`dirname $@` ; \
if test "$$dir" = "."; \
then \
style=site.xsl; \
else \
$(MKDIR_P) $$dir; \
style=subsite.xsl; \
fi; \
$(XSLTPROC) --stringparam pagename $$name \
--stringparam pagesrc $$src \
--stringparam builddir '$(abs_top_builddir)' \
--stringparam timestamp $(timestamp) --nonet \
$(top_srcdir)/docs/$$style $< > $@ \
|| { rm $@ && exit 1; }
%.html: %.html.tmp
$(AM_V_GEN)$(XMLLINT) --nonet --format $< > $@ \
|| { rm $@ && exit 1; }
$(apihtml_generated): html/index.html $(apihtml_generated): html/index.html
$(apiadminhtml_generated): html/index-admin.html $(apiadminhtml_generated): html/index-admin.html
$(apiqemuhtml_generated): html/index-qemu.html $(apiqemuhtml_generated): html/index-qemu.html

41
scripts/meson-html-gen.py Executable file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env python3
import argparse
import os
import subprocess
parser = argparse.ArgumentParser()
parser.add_argument("xsltproc", type=str, help="path to xsltproc bin")
parser.add_argument("xmllint", type=str, help="path to xmllint bin")
parser.add_argument("builddir", type=str, help="build root dir path")
parser.add_argument("timestamp", type=str, help="docs timestamp")
parser.add_argument("style", type=str, help="XSL stile file")
parser.add_argument("infile", type=str, help="path to source HTML file")
parser.add_argument("htmlfile", type=str, help="path to generated HTML file")
parser.add_argument("pagesrc", type=str, help="path to source file used for edit this page")
args = parser.parse_args()
name = os.path.basename(args.htmlfile).replace('.html', '')
html_tmp = subprocess.run(
[
args.xsltproc,
'--stringparam', 'pagename', name,
'--stringparam', 'pagesrc', args.pagesrc,
'--stringparam', 'builddir', args.builddir,
'--stringparam', 'timestamp', args.timestamp,
'--nonet', args.style, args.infile,
],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
html = subprocess.run(
[args.xmllint, '--nonet', '--format', '-'],
input=html_tmp.stdout,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
with open(args.htmlfile, 'wb') as outfile:
outfile.write(html.stdout)

View File

@ -20,6 +20,7 @@ scripts = [
'hyperv_wmi_generator.py', 'hyperv_wmi_generator.py',
'meson-gen-def.py', 'meson-gen-def.py',
'meson-gen-sym.py', 'meson-gen-sym.py',
'meson-html-gen.py',
'meson-install-dirs.py', 'meson-install-dirs.py',
'meson-install-symlink.py', 'meson-install-symlink.py',
'meson-python.sh', 'meson-python.sh',