From be0d907de78c4689708573c03105059e04d2419f Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Mon, 28 Sep 2020 22:10:56 +0200 Subject: Factor some code out To make it easier to add a pre-processing step for Org files. --- repo/www/generate-index.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'repo/www/generate-index.py') diff --git a/repo/www/generate-index.py b/repo/www/generate-index.py index 16d1874..3fe1212 100755 --- a/repo/www/generate-index.py +++ b/repo/www/generate-index.py @@ -10,7 +10,7 @@ from tempfile import NamedTemporaryFile from git import Repo -from helpers import deserialize_directories, generate_crumbs, pandoc +from helpers import deserialize_directories, generate_crumbs, PandocRunner def parse_arguments(): @@ -103,6 +103,11 @@ def main(arguments): if arguments.site_title is not None: metadata['sitetitle'] = arguments.site_title + pandoc = PandocRunner( + arguments.output, arguments.template, arguments.filters, + stylesheets, variables + ) + if readme is not None: repo_top = Repo(search_parent_directories=True).working_dir readme_path = Path(repo_top, target, readme) @@ -117,11 +122,8 @@ def main(arguments): toc.write(html_toc) toc.flush() - pandoc( - readme_path, arguments.output, - arguments.template, arguments.filters, stylesheets, - include_after=(toc.name,), - variables=variables, metadata=metadata + pandoc.run( + readme_path, include_after=(toc.name,), metadata=metadata ) return @@ -133,11 +135,8 @@ def main(arguments): metadata['pagetitle'] = toc_title metadata['title'] = 'Index' - pandoc( - dummy_readme.name, arguments.output, - arguments.template, arguments.filters, stylesheets, - include_after=(toc.name,), - variables=variables, metadata=metadata + pandoc.run( + dummy_readme.name, include_after=(toc.name,), metadata=metadata ) -- cgit v1.2.3 From 2e7ffb635601d35d331ef92d72bf589bd054b6e6 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Mon, 28 Sep 2020 22:19:23 +0200 Subject: Move branches around The no-readme case is more straightforward, thus more digestible as an extra-indented special-case. --- repo/www/generate-index.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'repo/www/generate-index.py') diff --git a/repo/www/generate-index.py b/repo/www/generate-index.py index 3fe1212..ab5b2a4 100755 --- a/repo/www/generate-index.py +++ b/repo/www/generate-index.py @@ -108,35 +108,35 @@ def main(arguments): stylesheets, variables ) - if readme is not None: - repo_top = Repo(search_parent_directories=True).working_dir - readme_path = Path(repo_top, target, readme) - - # If the README doesn't have a title, give a default to pandoc - # out-of-band. - if not has_title(readme_path): - metadata['pagetitle'] = target or 'README' - - with NamedTemporaryFile(mode='w+') as toc: - toc.write(f'

{toc_title}

\n') + if readme is None: + with NamedTemporaryFile(suffix='.md') as dummy_readme, \ + NamedTemporaryFile(mode='w+') as toc: toc.write(html_toc) toc.flush() + metadata['pagetitle'] = toc_title + metadata['title'] = 'Index' + pandoc.run( - readme_path, include_after=(toc.name,), metadata=metadata + dummy_readme.name, include_after=(toc.name,), metadata=metadata ) - return + return - with NamedTemporaryFile(suffix='.md') as dummy_readme, \ - NamedTemporaryFile(mode='w+') as toc: + repo_top = Repo(search_parent_directories=True).working_dir + readme_path = Path(repo_top, target, readme) + + # If the README doesn't have a title, give a default to pandoc + # out-of-band. + if not has_title(readme_path): + metadata['pagetitle'] = target or 'README' + + with NamedTemporaryFile(mode='w+') as toc: + toc.write(f'

{toc_title}

\n') toc.write(html_toc) toc.flush() - metadata['pagetitle'] = toc_title - metadata['title'] = 'Index' - pandoc.run( - dummy_readme.name, include_after=(toc.name,), metadata=metadata + readme_path, include_after=(toc.name,), metadata=metadata ) -- cgit v1.2.3