summaryrefslogtreecommitdiff
path: root/repo/www/generate-index.py
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2020-08-28 19:06:45 +0200
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2020-08-28 22:25:00 +0200
commit63a248e3dd9fc6857098c75ffbd49f72cf362c13 (patch)
tree40f67826a7d4f955136e8f8bc01121513139d8a5 /repo/www/generate-index.py
parentd0d869e06b30a1f8b7b539978caa0ed6123f9864 (diff)
downloadmemory-leaks-63a248e3dd9fc6857098c75ffbd49f72cf362c13.tar.xz
Make sure titles are not redundant with breadcrumbs
The logic for the various titles on any given page is: ∃README ∃title block <title> ⇒ title block <header> <h1> ⇒ title block TOC <h1> ⇒ "Index for {target}" ∄title block <title> ⇒ "{target}" or "README" <header> <h1> ⇒ ∅ TOC <h1> ⇒ "Index for {target}" ∄README <title> ⇒ "Index for {target}" <header> <h1> ⇒ "Index" TOC <h1> ⇒ ∅
Diffstat (limited to 'repo/www/generate-index.py')
-rwxr-xr-xrepo/www/generate-index.py39
1 files changed, 22 insertions, 17 deletions
diff --git a/repo/www/generate-index.py b/repo/www/generate-index.py
index a993c41..3bce69d 100755
--- a/repo/www/generate-index.py
+++ b/repo/www/generate-index.py
@@ -92,17 +92,14 @@ def main(arguments):
folders, files = list_files(arguments.site_tree, target)
pages, readme = list_pages(files)
+ toc_title = f'Index for {target}' if target else 'Index'
html_toc = format_toc(folders, pages)
- if target:
- index_title = f'Index for {target}'
- path_to_top = path.relpath('.', target)
- else:
- index_title = 'Index'
- path_to_top = '.'
-
+ path_to_top = path.relpath('.', start=target)
stylesheets = (path.join(path_to_top, s) for s in arguments.css)
+
variables = {'crumbs': generate_crumbs(Path(target)/'index')}
+ metadata = {}
if readme is not None:
repo_top = Repo(search_parent_directories=True).working_dir
@@ -110,17 +107,20 @@ def main(arguments):
# If the README doesn't have a title, give a default to pandoc
# out-of-band.
- page_title = None if has_title(readme_path) else 'README'
+ if not has_title(readme_path):
+ metadata['pagetitle'] = target or 'README'
with NamedTemporaryFile(mode='w+') as toc:
- toc.write('<h1>{title}</h1>\n'.format(title=index_title))
+ toc.write(f'<h1>{toc_title}</h1>\n')
toc.write(html_toc)
toc.flush()
- pandoc(readme_path, arguments.output, arguments.template,
- arguments.filters, stylesheets, title=page_title,
- site_title=arguments.site_title, include_after=(toc.name,),
- variables=variables)
+ pandoc(
+ readme_path, arguments.output,
+ arguments.template, arguments.filters, stylesheets,
+ site_title=arguments.site_title, include_after=(toc.name,),
+ variables=variables, metadata=metadata
+ )
return
with NamedTemporaryFile(suffix='.md') as dummy_readme, \
@@ -128,10 +128,15 @@ def main(arguments):
toc.write(html_toc)
toc.flush()
- pandoc(dummy_readme.name, arguments.output, arguments.template,
- arguments.filters, stylesheets, title=index_title,
- site_title=arguments.site_title, include_after=(toc.name,),
- variables=variables)
+ metadata['pagetitle'] = toc_title
+ metadata['title'] = 'Index'
+
+ pandoc(
+ dummy_readme.name, arguments.output,
+ arguments.template, arguments.filters, stylesheets,
+ site_title=arguments.site_title, include_after=(toc.name,),
+ variables=variables, metadata=metadata
+ )
if __name__ == '__main__':