From cfa4178430eadd4b5065dac4151b8d31c4319e23 Mon Sep 17 00:00:00 2001 From: Robin Rosenstock Date: Sun, 13 Aug 2017 13:43:27 +0200 Subject: [PATCH 1/6] pandoc-crossref: __References__ included as input (for now...) figref for figures, use: @figref:name or [@figref:name] secref for sections, use: @secref:name or [@secref:name] eqref for equations, use: @eqref:name or [@eqref:name] tblref for tables, use: @tblref:name or [@tblref:name] --- Syntaxes/Markdown Extended.sublime-syntax | 47 +++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/Syntaxes/Markdown Extended.sublime-syntax b/Syntaxes/Markdown Extended.sublime-syntax index 2f2f8f4..e5e0202 100644 --- a/Syntaxes/Markdown Extended.sublime-syntax +++ b/Syntaxes/Markdown Extended.sublime-syntax @@ -811,6 +811,48 @@ contexts: pop: true - match: "--" scope: invalid.illegal.bad-comments-or-CDATA.html + + figref: + - match: '(\[)(-?@fig:)(\S*)(\])|(?<=\s|^)(@fig:)(\S*)(?=\s)' + captures: + 0: fig.ref.pandoc + 1: fig.ref.begin.pandoc + 2: fig.ref.type.pandoc + 3: fig.ref.desc.pandoc + 4: fig.ref.end.pandoc + 5: fig.ref.type.pandoc + 6: fig.ref.desc.pandoc + secref: + - match: '(\[)(-?@sec:)(\S*)(\])|(?<=\s|^)(@sec:)(\S*)(?=\s)' + captures: + 0: sec.ref.pandoc + 1: sec.ref.begin.pandoc + 2: sec.ref.type.pandoc + 3: sec.ref.desc.pandoc + 4: sec.ref.end.pandoc + 5: sec.ref.type.pandoc + 6: sec.ref.desc.pandoc + eqref: + - match: '(\[)(-?@eq:)(\S*)(\])|(?<=\s|^)(@eq:)(\S*)(?=\s)' + captures: + 0: eq.ref.pandoc + 1: eq.ref.begin.pandoc + 2: eq.ref.type.pandoc + 3: eq.ref.desc.pandoc + 4: eq.ref.end.pandoc + 5: eq.ref.type.pandoc + 6: eq.ref.desc.pandoc + tblref: + - match: '(\[)(-?@tbl:)(\S*)(\])|(?<=\s|^)(@tbl:)(\S*)(?=\s)' + captures: + 0: tbl.ref.pandoc + 1: tbl.ref.begin.pandoc + 2: tbl.ref.type.pandoc + 3: tbl.ref.desc.pandoc + 4: tbl.ref.end.pandoc + 5: tbl.ref.type.pandoc + 6: tbl.ref.desc.pandoc + ampersand: - match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)" comment: | @@ -1052,6 +1094,11 @@ contexts: 6: constant.other.reference.link.markdown 7: punctuation.definition.constant.markdown inline: + - include: figref + - include: secref + - include: eqref + - include: tblref + - include: escape - include: ampersand - include: bracket From 8cc961d67f3cec305d84bb28232feaab27f6544a Mon Sep 17 00:00:00 2001 From: Robin Rosenstock Date: Sun, 13 Aug 2017 13:50:58 +0200 Subject: [PATCH 2/6] pandoc's table-captions with optional pandoc-crossref's label --- Syntaxes/Markdown Extended.sublime-syntax | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Syntaxes/Markdown Extended.sublime-syntax b/Syntaxes/Markdown Extended.sublime-syntax index e5e0202..a0069fc 100644 --- a/Syntaxes/Markdown Extended.sublime-syntax +++ b/Syntaxes/Markdown Extended.sublime-syntax @@ -853,6 +853,17 @@ contexts: 5: tbl.ref.type.pandoc 6: tbl.ref.desc.pandoc + pandoc-table-captions: + - match: '(\:)(.*?)(\{)(\#tbl:)(\S+)(\})' + captures: + 0: table.pandoc + 1: punctuation.table.begin.pandoc + 2: string.other.tablelabel.header.pandoc + 3: punctuation.tablelabel.begin.pandoc + 4: string.other.tablelabel.type.pandoc + 5: string.other.tablelabel.name.pandoc + 6: punctuation.tablelabel.end.pandoc + ampersand: - match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)" comment: | @@ -1099,6 +1110,8 @@ contexts: - include: eqref - include: tblref + - include: pandoc-table-captions + - include: escape - include: ampersand - include: bracket From b4e4ee7ef077561ea57a3ef015b9b5d0673df5d9 Mon Sep 17 00:00:00 2001 From: Robin Rosenstock Date: Sun, 13 Aug 2017 14:02:12 +0200 Subject: [PATCH 3/6] pandoc-crossref equation label, only after "\]" (only after Latex equation-blocks..) --- Syntaxes/Markdown Extended.sublime-syntax | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Syntaxes/Markdown Extended.sublime-syntax b/Syntaxes/Markdown Extended.sublime-syntax index a0069fc..c4794c1 100644 --- a/Syntaxes/Markdown Extended.sublime-syntax +++ b/Syntaxes/Markdown Extended.sublime-syntax @@ -864,6 +864,16 @@ contexts: 5: string.other.tablelabel.name.pandoc 6: punctuation.tablelabel.end.pandoc + eqlabel: + - match: '(?<=\\\] )(\{)(\#eq:)(\S+)(\})((?= \w)|(?=\s))' + captures: + 0: eqlabel.pandoc + 1: punctuation.eqlabel.begin.pandoc + 2: string.other.eqlabel.type.pandoc + 3: string.other.eqlabel.name.pandoc + 4: punctuation.eqlabel.end.pandoc + + ampersand: - match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)" comment: | @@ -1111,6 +1121,7 @@ contexts: - include: tblref - include: pandoc-table-captions + - include: eqlabel - include: escape - include: ampersand From 5bb168ffad8f750add879d949838e9626d6d3888 Mon Sep 17 00:00:00 2001 From: Robin Rosenstock Date: Sun, 13 Aug 2017 14:15:32 +0200 Subject: [PATCH 4/6] added pandocs link_attributes for figures and optional pandoc-crossref figure label --- Syntaxes/Markdown Extended.sublime-syntax | 33 ++++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/Syntaxes/Markdown Extended.sublime-syntax b/Syntaxes/Markdown Extended.sublime-syntax index c4794c1..547e87f 100644 --- a/Syntaxes/Markdown Extended.sublime-syntax +++ b/Syntaxes/Markdown Extended.sublime-syntax @@ -1074,7 +1074,7 @@ contexts: - match: |- (?x: \! # Images start with ! - (\[)((?[^\[\]\\]|\\.|\[\g*+\])*+)(\]) + (\[)((?[^\[\]\\]|\\.|\[(\g*+)\])*+)(\]) # Match the link text. ([ ])? # Space not allowed (\() # Opening paren for url @@ -1086,24 +1086,31 @@ contexts: )? # Title is optional \s* # Optional whitespace (\)) - ) + )(?:(\{)((\#fig:)(\S+)(?:(\ )(\S+))?)(\}))? scope: meta.image.inline.markdown captures: 1: punctuation.definition.string.begin.markdown 2: string.other.link.description.markdown - 4: punctuation.definition.string.end.markdown - 5: invalid.illegal.whitespace.markdown - 6: punctuation.definition.metadata.markdown - 7: punctuation.definition.link.markdown - 8: markup.underline.link.image.markdown - 9: punctuation.definition.link.markdown - 10: string.other.link.description.title.markdown - 11: punctuation.definition.string.markdown + 4: ref.link.description.markdown + 5: punctuation.definition.string.end.markdown + 6: invalid.illegal.whitespace.markdown + 7: punctuation.definition.metadata.markdown + 8: punctuation.definition.link.markdown + 9: markup.underline.link.image.markdown + 10: punctuation.definition.link.markdown + 11: string.other.link.description.title.markdown 12: punctuation.definition.string.markdown - 13: string.other.link.description.title.markdown - 14: punctuation.definition.string.markdown + 13: punctuation.definition.string.markdown + 14: string.other.link.description.title.markdown 15: punctuation.definition.string.markdown - 16: punctuation.definition.metadata.markdown + 16: punctuation.definition.string.markdown + 17: punctuation.definition.metadata.markdown + 18: punctuation.figlabel.begin.pandoc + 19: string.other.figlabel.pandoc + 20: string.other.figlabel.type.pandoc + 21: string.other.figlabel.name.pandoc + 23: string.other.figlabel.attributes.pandoc + 24: punctuation.figlabel.end.pandoc image-ref: - match: '\!(\[)((?[^\[\]\\]|\\.|\[\g*+\])*+)(\])[ ]?(\[)(.*?)(\])' scope: meta.image.reference.markdown From 6b7e122378a171dfb07815cdb5fc47fdc9db46a9 Mon Sep 17 00:00:00 2001 From: Robin Rosenstock Date: Sun, 13 Aug 2017 14:32:14 +0200 Subject: [PATCH 5/6] Rename and add section labels --- Syntaxes/Markdown Extended.sublime-syntax | 33 ++++++++++++++--------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/Syntaxes/Markdown Extended.sublime-syntax b/Syntaxes/Markdown Extended.sublime-syntax index 547e87f..9fc0683 100644 --- a/Syntaxes/Markdown Extended.sublime-syntax +++ b/Syntaxes/Markdown Extended.sublime-syntax @@ -812,7 +812,7 @@ contexts: - match: "--" scope: invalid.illegal.bad-comments-or-CDATA.html - figref: + pandoc-figref: - match: '(\[)(-?@fig:)(\S*)(\])|(?<=\s|^)(@fig:)(\S*)(?=\s)' captures: 0: fig.ref.pandoc @@ -822,7 +822,7 @@ contexts: 4: fig.ref.end.pandoc 5: fig.ref.type.pandoc 6: fig.ref.desc.pandoc - secref: + pandoc-secref: - match: '(\[)(-?@sec:)(\S*)(\])|(?<=\s|^)(@sec:)(\S*)(?=\s)' captures: 0: sec.ref.pandoc @@ -832,7 +832,7 @@ contexts: 4: sec.ref.end.pandoc 5: sec.ref.type.pandoc 6: sec.ref.desc.pandoc - eqref: + pandoc-eqref: - match: '(\[)(-?@eq:)(\S*)(\])|(?<=\s|^)(@eq:)(\S*)(?=\s)' captures: 0: eq.ref.pandoc @@ -842,7 +842,7 @@ contexts: 4: eq.ref.end.pandoc 5: eq.ref.type.pandoc 6: eq.ref.desc.pandoc - tblref: + pandoc-tblref: - match: '(\[)(-?@tbl:)(\S*)(\])|(?<=\s|^)(@tbl:)(\S*)(?=\s)' captures: 0: tbl.ref.pandoc @@ -853,7 +853,7 @@ contexts: 5: tbl.ref.type.pandoc 6: tbl.ref.desc.pandoc - pandoc-table-captions: + pandoc-tbllabel: - match: '(\:)(.*?)(\{)(\#tbl:)(\S+)(\})' captures: 0: table.pandoc @@ -1009,6 +1009,15 @@ contexts: escape: - match: '\\[-`*_#+.!(){}\[\]\\>]' scope: constant.character.escape.markdown + + pandoc-seclabel: + - match: '(\{)(#sec:)(.*)(\})' + captures: + 0: seclabel.begin.pandoc + 1: seclabel.seclabel.pandoc + 2: seclabel.name.pandoc + 3: seclabel.end.pandoc + heading: - match: '\G(#{1})(?!#)\s*(?=\S)' captures: @@ -1122,13 +1131,13 @@ contexts: 6: constant.other.reference.link.markdown 7: punctuation.definition.constant.markdown inline: - - include: figref - - include: secref - - include: eqref - - include: tblref - - - include: pandoc-table-captions - - include: eqlabel + - include: pandoc-figref + - include: pandoc-secref + - include: pandoc-eqref + - include: pandoc-tblref + - include: pandoc-tbllabel + - include: pandoc-eqlabel + - include: pandoc-seclabel - include: escape - include: ampersand From 61a90819c59ac98585e1e5c7266231393526e632 Mon Sep 17 00:00:00 2001 From: Robin Rosenstock Date: Sun, 13 Aug 2017 19:02:35 +0200 Subject: [PATCH 6/6] Citation and renaming of capturing scopes (adding standard punctuation and string) --- Syntaxes/Markdown Extended.sublime-syntax | 96 ++++++++++++++--------- 1 file changed, 57 insertions(+), 39 deletions(-) diff --git a/Syntaxes/Markdown Extended.sublime-syntax b/Syntaxes/Markdown Extended.sublime-syntax index 9fc0683..5c65bb8 100644 --- a/Syntaxes/Markdown Extended.sublime-syntax +++ b/Syntaxes/Markdown Extended.sublime-syntax @@ -815,56 +815,56 @@ contexts: pandoc-figref: - match: '(\[)(-?@fig:)(\S*)(\])|(?<=\s|^)(@fig:)(\S*)(?=\s)' captures: - 0: fig.ref.pandoc - 1: fig.ref.begin.pandoc - 2: fig.ref.type.pandoc - 3: fig.ref.desc.pandoc - 4: fig.ref.end.pandoc - 5: fig.ref.type.pandoc - 6: fig.ref.desc.pandoc + 0: figref.pandoc + 1: punctuation.figref.begin.pandoc + 2: punctuation.string.other.figref.type.pandoc + 3: string.other.figref.desc.pandoc + 4: punctuation.figref.end.pandoc + 5: string.other.figref.type.pandoc + 6: string.other.figref.desc.pandoc pandoc-secref: - match: '(\[)(-?@sec:)(\S*)(\])|(?<=\s|^)(@sec:)(\S*)(?=\s)' captures: - 0: sec.ref.pandoc - 1: sec.ref.begin.pandoc - 2: sec.ref.type.pandoc - 3: sec.ref.desc.pandoc - 4: sec.ref.end.pandoc - 5: sec.ref.type.pandoc - 6: sec.ref.desc.pandoc + 0: secref.pandoc + 1: punctuation.secref.begin.pandoc + 2: string.other.secref.type.pandoc + 3: string.other.secref.desc.pandoc + 4: punctuation.secref.end.pandoc + 5: string.other.secref.type.pandoc + 6: string.other.secref.desc.pandoc pandoc-eqref: - match: '(\[)(-?@eq:)(\S*)(\])|(?<=\s|^)(@eq:)(\S*)(?=\s)' captures: - 0: eq.ref.pandoc - 1: eq.ref.begin.pandoc - 2: eq.ref.type.pandoc - 3: eq.ref.desc.pandoc - 4: eq.ref.end.pandoc - 5: eq.ref.type.pandoc - 6: eq.ref.desc.pandoc + 0: eqref.pandoc + 1: punctuation.eqref.begin.pandoc + 2: string.other.eqref.type.pandoc + 3: string.other.eqref.desc.pandoc + 4: punctuation.eqref.end.pandoc + 5: string.other.eqref.type.pandoc + 6: string.other.eqref.desc.pandoc pandoc-tblref: - match: '(\[)(-?@tbl:)(\S*)(\])|(?<=\s|^)(@tbl:)(\S*)(?=\s)' captures: - 0: tbl.ref.pandoc - 1: tbl.ref.begin.pandoc - 2: tbl.ref.type.pandoc - 3: tbl.ref.desc.pandoc - 4: tbl.ref.end.pandoc - 5: tbl.ref.type.pandoc - 6: tbl.ref.desc.pandoc + 0: tblref.pandoc + 1: punctuation.tblref.begin.pandoc + 2: string.other.tblref.type.pandoc + 3: string.other.tblref.desc.pandoc + 4: punctuation.tblref.end.pandoc + 5: string.other.tblref.type.pandoc + 6: string.other.tblref.desc.pandoc pandoc-tbllabel: - - match: '(\:)(.*?)(\{)(\#tbl:)(\S+)(\})' + - match: '(Table:|\:)(.*?)(\{)(\#tbl:)(\S+)(\})' captures: 0: table.pandoc 1: punctuation.table.begin.pandoc - 2: string.other.tablelabel.header.pandoc - 3: punctuation.tablelabel.begin.pandoc - 4: string.other.tablelabel.type.pandoc - 5: string.other.tablelabel.name.pandoc - 6: punctuation.tablelabel.end.pandoc + 2: string.other.tbllabel.header.pandoc + 3: punctuation.tbllabel.begin.pandoc + 4: string.other.tbllabel.type.pandoc + 5: string.other.tbllabel.name.pandoc + 6: punctuation.tbllabel.end.pandoc - eqlabel: + pandoc-eqlabel: - match: '(?<=\\\] )(\{)(\#eq:)(\S+)(\})((?= \w)|(?=\s))' captures: 0: eqlabel.pandoc @@ -873,6 +873,22 @@ contexts: 3: string.other.eqlabel.name.pandoc 4: punctuation.eqlabel.end.pandoc + pandoc-citation: + - match: '(?