mirror of
https://github.com/natelandau/obsidian-metadata.git
synced 2025-11-18 18:03:39 -05:00
fix: allow markdown inline code in metadata values
This commit is contained in:
@@ -153,17 +153,23 @@ foo [key3::value3] bar
|
||||
key4::value4
|
||||
foo (key4::value) bar
|
||||
key5::value5
|
||||
key6:: `value6`
|
||||
`key7::value7`
|
||||
`key8`::`value8`
|
||||
|
||||
"""
|
||||
)
|
||||
note = Note(note_path=note_path)
|
||||
assert sorted(note.metadata, key=lambda x: (x.key, x.value)) == [
|
||||
InlineField(meta_type=MetadataType.INLINE, key="`key7", value="value7`"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="`key8`", value="`value8`"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="key1", value="value1"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="key2", value="2022-12-22"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="key3", value="value3"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="key4", value="value"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="key4", value="value4"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="key5", value="value5"),
|
||||
InlineField(meta_type=MetadataType.INLINE, key="key6", value=" `value6`"),
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -172,6 +172,10 @@ def test_return_inline_metadata_2(string, returned):
|
||||
("_foo_::bar baz", [("_foo_", "bar baz", Wrapping.NONE)]),
|
||||
("**foo**::bar_baz", [("**foo**", "bar_baz", Wrapping.NONE)]),
|
||||
("`foo`::`bar baz`", [("`foo`", "`bar baz`", Wrapping.NONE)]),
|
||||
("`foo`:: `bar baz`", [("`foo`", " `bar baz`", Wrapping.NONE)]),
|
||||
("`foo::bar baz`", [("`foo", "bar baz`", Wrapping.NONE)]),
|
||||
("`foo:: bar baz`", [("`foo", " bar baz`", Wrapping.NONE)]),
|
||||
("**URL**::`https://example.com`", [("**URL**", "`https://example.com`", Wrapping.NONE)]),
|
||||
],
|
||||
)
|
||||
def test_return_inline_metadata_3(string, returned):
|
||||
@@ -347,15 +351,26 @@ key: value
|
||||
assert P.strip_frontmatter(content, data_only=True) == content
|
||||
|
||||
|
||||
def test_strip_inline_code_1():
|
||||
@pytest.mark.parametrize(
|
||||
("content", "expected"),
|
||||
[
|
||||
("Foo `bar` baz `Qux` ```bar\n```", "Foo baz ```bar\n```"),
|
||||
("foo", "foo"),
|
||||
("foo `bar` baz `qux`", "foo baz "),
|
||||
("key:: `value`", "key:: "),
|
||||
("foo\nbar\n`baz`", "foo\nbar\n"),
|
||||
("foo\nbar::baz\n`qux`", "foo\nbar::baz\n"),
|
||||
("`foo::bar`", ""),
|
||||
],
|
||||
)
|
||||
def test_strip_inline_code_1(content, expected):
|
||||
"""Test the strip_inline_code method.
|
||||
|
||||
GIVEN a string with inline code
|
||||
WHEN the strip_inline_code method is called
|
||||
THEN the inline code is removed
|
||||
"""
|
||||
assert P.strip_inline_code("Foo `bar` baz `Qux` ```bar\n```") == "Foo baz ```bar\n```"
|
||||
assert P.strip_inline_code("Foo `bar` baz `Qux` ```bar\n```") == "Foo baz ```bar\n```"
|
||||
assert P.strip_inline_code(content) == expected
|
||||
|
||||
|
||||
def test_validators():
|
||||
|
||||
Reference in New Issue
Block a user