Fixed favro_markdown
This commit is contained in:
parent
7d435e04d8
commit
139fb9b63d
|
@ -159,6 +159,8 @@ class FavroClient:
|
||||||
card,
|
card,
|
||||||
detailed_description=card_contents.description,
|
detailed_description=card_contents.description,
|
||||||
name=card_contents.name,
|
name=card_contents.name,
|
||||||
|
tags=[], # TODO?
|
||||||
|
assignments=[],
|
||||||
)
|
)
|
||||||
self.cache.add_card(card)
|
self.cache.add_card(card)
|
||||||
return card
|
return card
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import dataclasses
|
import dataclasses
|
||||||
|
|
||||||
|
import re
|
||||||
import frontmatter
|
import frontmatter
|
||||||
import marko
|
import marko
|
||||||
import marko.md_renderer
|
import marko.md_renderer
|
||||||
|
@ -30,13 +31,11 @@ class CardFileFormatter:
|
||||||
frontmatter_data['aliases'] = [card.name]
|
frontmatter_data['aliases'] = [card.name]
|
||||||
if card.tags:
|
if card.tags:
|
||||||
frontmatter_data['tags'] = card.tags
|
frontmatter_data['tags'] = card.tags
|
||||||
if self.obsidian_mode:
|
|
||||||
frontmatter_data['tags'] = ['#' + t for t in frontmatter_data['tags']]
|
|
||||||
if card.assignments:
|
if card.assignments:
|
||||||
frontmatter_data['assignments'] = card.assignments
|
frontmatter_data['assignments'] = card.assignments
|
||||||
if self.obsidian_mode:
|
if self.obsidian_mode:
|
||||||
frontmatter_data['assignments'] = [
|
frontmatter_data['assignments'] = [
|
||||||
f'[[{name}]]' for name in frontmatter_data['assignments']
|
f'"[[{name}]]"' for name in frontmatter_data['assignments']
|
||||||
]
|
]
|
||||||
|
|
||||||
# Frontmatter
|
# Frontmatter
|
||||||
|
@ -79,10 +78,15 @@ class CardFileFormatter:
|
||||||
document.children.remove(elem)
|
document.children.remove(elem)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
assignments: list[str] = fm.metadata.get('assignments', [])
|
||||||
|
for idx in range(0, len(assignments)):
|
||||||
|
if m := re.match(r'^\[\[(.*)\]\]$', assignments[idx]):
|
||||||
|
assignments[idx] = m.group(1)
|
||||||
|
|
||||||
description = self.renderer.render_children(document).strip()
|
description = self.renderer.render_children(document).strip()
|
||||||
return CardContents(
|
return CardContents(
|
||||||
name,
|
name,
|
||||||
description,
|
description,
|
||||||
tags=[],
|
tags=fm.metadata.get('tags', []),
|
||||||
assignments=[],
|
assignments=assignments,
|
||||||
)
|
)
|
||||||
|
|
|
@ -17,8 +17,24 @@ Test description
|
||||||
3. Derp
|
3. Derp
|
||||||
""".strip()
|
""".strip()
|
||||||
|
|
||||||
FORMATTER = CardFileFormatter()
|
EXAMPLE_TEXT_2 = """
|
||||||
|
---
|
||||||
|
aliases:
|
||||||
|
- Name of Card
|
||||||
|
tags:
|
||||||
|
- tag1
|
||||||
|
- tag2
|
||||||
|
assignments:
|
||||||
|
- "[[Gunnar Gunnarson]]"
|
||||||
|
- "[[Alice Alicedottor]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Name of Card
|
||||||
|
|
||||||
|
Great news everyone! My weird program actually works!
|
||||||
|
""".strip()
|
||||||
|
|
||||||
|
FORMATTER = CardFileFormatter()
|
||||||
|
|
||||||
def test_parse_and_render():
|
def test_parse_and_render():
|
||||||
card_contents = FORMATTER.parse_card_contents(EXAMPLE_TEXT_1)
|
card_contents = FORMATTER.parse_card_contents(EXAMPLE_TEXT_1)
|
||||||
|
@ -26,3 +42,11 @@ def test_parse_and_render():
|
||||||
assert card_contents.name == 'Hello World'
|
assert card_contents.name == 'Hello World'
|
||||||
assert '---' not in card_contents.description
|
assert '---' not in card_contents.description
|
||||||
assert FORMATTER.format_card_contents(card_contents) == EXAMPLE_TEXT_1
|
assert FORMATTER.format_card_contents(card_contents) == EXAMPLE_TEXT_1
|
||||||
|
|
||||||
|
def test_parse_and_render_2():
|
||||||
|
card_contents = FORMATTER.parse_card_contents(EXAMPLE_TEXT_2)
|
||||||
|
print(card_contents)
|
||||||
|
|
||||||
|
assert card_contents.name == 'Respond to Carstens comments, and perform any relevant fixing'
|
||||||
|
assert '---' not in card_contents.description
|
||||||
|
assert FORMATTER.format_card_contents(card_contents) == EXAMPLE_TEXT_2
|
||||||
|
|
Loading…
Reference in New Issue
Block a user