Added direct print of metadata.
This commit is contained in:
parent
7de248bcdc
commit
91bbbfc2b7
2 changed files with 16 additions and 2 deletions
3
test.md
3
test.md
|
@ -1,6 +1,7 @@
|
||||||
---
|
---
|
||||||
title: 'Wooooo a title'
|
title: 'Wooooo a title'
|
||||||
subtitle: 'A subtitle'
|
subtitle: 'A subtitle'
|
||||||
|
are_we_there_yet: False
|
||||||
---
|
---
|
||||||
[#test-import.md]{}
|
[#test-import.md]{}
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ def bruh(no):
|
||||||
This should only be shown to cats the second time
|
This should only be shown to cats the second time
|
||||||
::::
|
::::
|
||||||
|
|
||||||
|
# [$are_we_there_yet]{}
|
||||||
|
|
||||||
![This is a figure, go figure...](/this/image/does/not/exist.jpg)
|
![This is a figure, go figure...](/this/image/does/not/exist.jpg)
|
||||||
|
|
||||||
|
|
15
transform.py
15
transform.py
|
@ -75,7 +75,7 @@ def transform(e: Element, c: Context) -> Element: # Returns next sibling element
|
||||||
## Shorthands
|
## Shorthands
|
||||||
if isinstance(e, Span) and len(e.content) == 1 and isinstance(e.content[0], Str):
|
if isinstance(e, Span) and len(e.content) == 1 and isinstance(e.content[0], Str):
|
||||||
## Handle special command shorthand [!commandname]{}
|
## Handle special command shorthand [!commandname]{}
|
||||||
if re.match(r"^![\w.]+$", e.content[0].text):
|
if re.match(r"^![\w]+$", e.content[0].text):
|
||||||
e = InlineCommand(identifier=e.identifier, classes=e.classes, attributes={**e.attributes, "c": e.content[0].text[1:]})
|
e = InlineCommand(identifier=e.identifier, classes=e.classes, attributes={**e.attributes, "c": e.content[0].text[1:]})
|
||||||
|
|
||||||
## Handle import [#path/file.md]{}
|
## Handle import [#path/file.md]{}
|
||||||
|
@ -86,6 +86,19 @@ def transform(e: Element, c: Context) -> Element: # Returns next sibling element
|
||||||
importedDoc.walk(transform, c)
|
importedDoc.walk(transform, c)
|
||||||
return nullify(e)
|
return nullify(e)
|
||||||
|
|
||||||
|
## Handle metadata print [$something.something]{}
|
||||||
|
elif re.match(r"^\$[\w.]+$", e.content[0].text):
|
||||||
|
val = c.get_metadata(e.content[0].text[1:], False)
|
||||||
|
if isinstance(val, MetaInlines):
|
||||||
|
e = Span(*val.content)
|
||||||
|
e = e.walk(transform, c)
|
||||||
|
elif isinstance(val, MetaString):
|
||||||
|
e = Span(Str(val.string))
|
||||||
|
elif isinstance(val, MetaBool):
|
||||||
|
e = Span(Str(str(val.boolean)))
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Cannot print value of metadatum {e.content[0].text[1:]}")
|
||||||
|
|
||||||
## Execute commands
|
## Execute commands
|
||||||
# panflute's walk transforms the children first, then the root element, so
|
# panflute's walk transforms the children first, then the root element, so
|
||||||
# the content of the element the command receives is already transformed.
|
# the content of the element the command receives is already transformed.
|
||||||
|
|
Loading…
Reference in a new issue