Datasheet bugfixes (#128)

* Fix white page when funding was not specified

This was caused by creating a page before first checking whether there was any content for that page beforehand, so it would result in a rogue white page with no content.

* Fix missing analog pin tables

* Tweak pandoc settings

Switching from `gfm` to `markdown` should enable more formatting options. The extensions have been configured to be similar to `gfm` but provide some additional things, like `line_blocks` and `lists_without_preceding_blankline`s.
This commit is contained in:
htfab
2025-10-30 17:25:35 +01:00
committed by GitHub
2 changed files with 36 additions and 13 deletions
+21 -1
View File
@@ -118,12 +118,28 @@ class DocsHelper:
""" """
Run pandoc to convert a given file to typst Run pandoc to convert a given file to typst
""" """
# enable/disable certain extensions
# see all with `pandoc --list-extensions=markdown`
# documentation at https://pandoc.org/MANUAL.html
# in general, these extensions should offer some additional formatting options whilst still
# remaining similar to github flavoured markdown
pandoc_extensions = [
"-auto_identifiers",
"+autolink_bare_uris",
"-citations",
"-definition_lists",
"+emoji",
"-example_lists",
"-fancy_lists",
"+lists_without_preceding_blankline",
"-fenced_divs",
]
pandoc_command = [ pandoc_command = [
"pandoc", "pandoc",
path, path,
"--shift-heading-level-by=-1", "--shift-heading-level-by=-1",
"-f", "-f",
"gfm-gfm_auto_identifiers", f"markdown{''.join(pandoc_extensions)}",
"-t", "-t",
"typst-citations", "typst-citations",
"--wrap=preserve", "--wrap=preserve",
@@ -305,6 +321,10 @@ class DocsHelper:
content["is_wokwi"] = True content["is_wokwi"] = True
content["project_wokwi_id"] = info["wokwi_id"] content["project_wokwi_id"] = info["wokwi_id"]
if info["is_analog"]:
content["is_analog"] = True
content["analog_pins"] = DocsHelper.format_analog_pins(info["analog_pins"])
return content return content
@staticmethod @staticmethod
+6 -3
View File
@@ -494,20 +494,23 @@
}) })
// add funding/sponsor page // add funding/sponsor page
page(context { context {
// check if funding has been provided, otherwise we risk adding an empty page instead
if _funding_content.final() != [] {
page({
let funding_content = _funding_content.final() let funding_content = _funding_content.final()
let alt_title = _funding_alt_title.final() let alt_title = _funding_alt_title.final()
if funding_content != [] {
if alt_title != none { if alt_title != none {
heading(level: 1, alt_title) heading(level: 1, alt_title)
} else { } else {
heading(level: 1, "Funding") heading(level: 1, "Funding")
} }
}
funding_content funding_content
}) })
}
}
page(include "../chapters/team.typ") page(include "../chapters/team.typ")
page(include "../chapters/using-this-datasheet.typ") page(include "../chapters/using-this-datasheet.typ")