diff options
Diffstat (limited to '')
-rw-r--r-- | tests/test_port/test_references.py | 53 | ||||
-rw-r--r-- | tests/test_port/test_references/test_inline_definitions.yml | 94 | ||||
-rw-r--r-- | tests/test_port/test_references/test_store_labels.yml | 159 | ||||
-rw-r--r-- | tests/test_port/test_references/test_use_existing_env.yml | 84 |
4 files changed, 390 insertions, 0 deletions
diff --git a/tests/test_port/test_references.py b/tests/test_port/test_references.py new file mode 100644 index 0000000..32e389d --- /dev/null +++ b/tests/test_port/test_references.py @@ -0,0 +1,53 @@ +from markdown_it import MarkdownIt + + +def test_ref_definitions(): + + md = MarkdownIt() + src = "[a]: abc\n\n[b]: xyz\n\n[b]: ijk" + env = {} + tokens = md.parse(src, env) + assert tokens == [] + assert env == { + "references": { + "A": {"title": "", "href": "abc", "map": [0, 1]}, + "B": {"title": "", "href": "xyz", "map": [2, 3]}, + }, + "duplicate_refs": [{"href": "ijk", "label": "B", "map": [4, 5], "title": ""}], + } + + +def test_use_existing_env(data_regression): + md = MarkdownIt() + src = "[a]\n\n[c]: ijk" + env = { + "references": { + "A": {"title": "", "href": "abc", "map": [0, 1]}, + "B": {"title": "", "href": "xyz", "map": [2, 3]}, + } + } + tokens = md.parse(src, env) + data_regression.check([token.as_dict() for token in tokens]) + assert env == { + "references": { + "A": {"title": "", "href": "abc", "map": [0, 1]}, + "B": {"title": "", "href": "xyz", "map": [2, 3]}, + "C": {"title": "", "href": "ijk", "map": [2, 3]}, + } + } + + +def test_store_labels(data_regression): + md = MarkdownIt() + md.options["store_labels"] = True + src = "[a]\n\n![a]\n\n[a]: ijk" + tokens = md.parse(src) + data_regression.check([token.as_dict() for token in tokens]) + + +def test_inline_definitions(data_regression): + md = MarkdownIt() + md.options["inline_definitions"] = True + src = '[a]: url "title"\n- [a]: url "title"' + tokens = md.parse(src) + data_regression.check([token.as_dict() for token in tokens]) diff --git a/tests/test_port/test_references/test_inline_definitions.yml b/tests/test_port/test_references/test_inline_definitions.yml new file mode 100644 index 0000000..5ec210b --- /dev/null +++ b/tests/test_port/test_references/test_inline_definitions.yml @@ -0,0 +1,94 @@ +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 0 + - 1 + markup: '' + meta: + id: A + label: a + title: title + url: url + nesting: 0 + tag: '' + type: definition +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 1 + - 2 + markup: '-' + meta: {} + nesting: 1 + tag: ul + type: bullet_list_open +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 1 + map: + - 1 + - 2 + markup: '-' + meta: {} + nesting: 1 + tag: li + type: list_item_open +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 2 + map: + - 1 + - 2 + markup: '' + meta: + id: A + label: a + title: title + url: url + nesting: 0 + tag: '' + type: definition +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 1 + map: null + markup: '-' + meta: {} + nesting: -1 + tag: li + type: list_item_close +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '-' + meta: {} + nesting: -1 + tag: ul + type: bullet_list_close diff --git a/tests/test_port/test_references/test_store_labels.yml b/tests/test_port/test_references/test_store_labels.yml new file mode 100644 index 0000000..79f6f74 --- /dev/null +++ b/tests/test_port/test_references/test_store_labels.yml @@ -0,0 +1,159 @@ +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 1 + tag: p + type: paragraph_open +- attrs: null + block: true + children: + - attrs: + - - href + - ijk + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: + label: A + nesting: 1 + tag: a + type: link_open + - attrs: null + block: false + children: null + content: a + hidden: false + info: '' + level: 1 + map: null + markup: '' + meta: {} + nesting: 0 + tag: '' + type: text + - attrs: null + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: a + type: link_close + content: '[a]' + hidden: false + info: '' + level: 1 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 0 + tag: '' + type: inline +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: p + type: paragraph_close +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 2 + - 3 + markup: '' + meta: {} + nesting: 1 + tag: p + type: paragraph_open +- attrs: null + block: true + children: + - attrs: + - - src + - ijk + - - alt + - '' + block: false + children: + - attrs: null + block: false + children: null + content: a + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: 0 + tag: '' + type: text + content: a + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: + label: A + nesting: 0 + tag: img + type: image + content: '![a]' + hidden: false + info: '' + level: 1 + map: + - 2 + - 3 + markup: '' + meta: {} + nesting: 0 + tag: '' + type: inline +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: p + type: paragraph_close diff --git a/tests/test_port/test_references/test_use_existing_env.yml b/tests/test_port/test_references/test_use_existing_env.yml new file mode 100644 index 0000000..1a72337 --- /dev/null +++ b/tests/test_port/test_references/test_use_existing_env.yml @@ -0,0 +1,84 @@ +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 1 + tag: p + type: paragraph_open +- attrs: null + block: true + children: + - attrs: + - - href + - abc + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: 1 + tag: a + type: link_open + - attrs: null + block: false + children: null + content: a + hidden: false + info: '' + level: 1 + map: null + markup: '' + meta: {} + nesting: 0 + tag: '' + type: text + - attrs: null + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: a + type: link_close + content: '[a]' + hidden: false + info: '' + level: 1 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 0 + tag: '' + type: inline +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: p + type: paragraph_close |