Render embedded plain footnotes

This commit is contained in:
2026-07-05 22:16:40 -05:00
parent 457600b93d
commit 0139240073
6 changed files with 299 additions and 20 deletions
+14 -5
View File
@@ -273,15 +273,24 @@ proc annotationKind(marker: string): string =
if marker.strip.allCharsInSet({'0'..'9'}): "note"
else: "crossReference"
proc cleanTargetText(targetText: string): string =
var parts = targetText.splitWhitespace
if parts.len >= 3 and parts[0].allCharsInSet({'0'..'9'}):
parts.delete(0)
parts.delete(0)
return parts.join(" ")
targetText
proc annotationNode(marker, href, targetText: string, offset: int): JsonNode =
let kind = annotationKind(marker)
let cleanedTargetText = cleanTargetText(targetText)
result = %*{
"kind": annotationKind(marker),
"marker": marker,
"href": href,
"kind": kind,
"offset": offset
}
if targetText.len > 0:
result["targetText"] = newJString(targetText)
if cleanedTargetText.len > 0:
result["targetText"] = newJString(cleanedTargetText)
proc segmentMetadata(state: ParseState): JsonNode =
result = newJObject()