diff options
Diffstat (limited to 'repo/www/generate-index.py')
| -rwxr-xr-x | repo/www/generate-index.py | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/repo/www/generate-index.py b/repo/www/generate-index.py index c51bf98..7eed97a 100755 --- a/repo/www/generate-index.py +++ b/repo/www/generate-index.py @@ -5,10 +5,11 @@ from itertools import chain import json from pathlib import Path from subprocess import run +from tempfile import NamedTemporaryFile from git import Repo -from helpers import deserialize_directories +from helpers import deserialize_directories, pandoc def parse_arguments(): @@ -78,6 +79,8 @@ def list_pages(files): return pages, readme +# TODO: use pandoc's --include-after-body, so that this works with +# non-markdown READMEs. def format_index(target, directories, files): pages, readme = list_pages(files) @@ -99,22 +102,16 @@ def format_index(target, directories, files): return format_readme_index(intro, title, items) -def convert_page(content, output, site_title, template): - pandoc = ( - 'pandoc', '-s', '--lua-filter', 'convert-internal-links.lua', - '--template', template, '-o', output - ) - if site_title is not None: - pandoc += ('-T', site_title) - - run(pandoc, input=content, check=True, text=True) +def main(arguments): + target = arguments.target + folders, files = list_files(arguments.site_tree, target) + with NamedTemporaryFile(suffix='.md', mode='w+') as page: + page.write(format_index(target, folders, files)) + page.flush() -def main(arguments): - folders, files = list_files(arguments.site_tree, arguments.target) - index_page = format_index(arguments.target, folders, files) - convert_page(index_page, arguments.output, arguments.site_title, - arguments.template) + pandoc(page.name, arguments.output, arguments.template, + site_title=arguments.site_title) if __name__ == '__main__': |
