Remove extra brackets in {{monospaced}} (#21)
diff --git a/migration/src/jira_util.py b/migration/src/jira_util.py
index 157803f..d6db7e1 100644
--- a/migration/src/jira_util.py
+++ b/migration/src/jira_util.py
@@ -6,10 +6,10 @@
import jira2markdown
from jira2markdown.elements import MarkupElements
from jira2markdown.markup.lists import UnorderedList, OrderedList
-from jira2markdown.markup.text_effects import BlockQuote, Quote
+from jira2markdown.markup.text_effects import BlockQuote, Quote, Monospaced
from markup.lists import UnorderedTweakedList, OrderedTweakedList
-from markup.text_effects import TweakedBlockQuote, TweakedQuote
+from markup.text_effects import TweakedBlockQuote, TweakedQuote, TweakedMonospaced
@dataclass
class Attachment(object):
@@ -207,6 +207,7 @@
elements.replace(OrderedList, OrderedTweakedList)
elements.replace(BlockQuote, TweakedBlockQuote)
elements.replace(Quote, TweakedQuote)
+ elements.replace(Monospaced, TweakedMonospaced)
text = jira2markdown.convert(text, elements=elements)
# markup @ mentions with ``
diff --git a/migration/src/markup/text_effects.py b/migration/src/markup/text_effects.py
index 61f541d..f180370 100644
--- a/migration/src/markup/text_effects.py
+++ b/migration/src/markup/text_effects.py
@@ -4,16 +4,11 @@
ParserElement,
ParseResults,
QuotedString,
- StringEnd,
StringStart,
SkipTo,
Literal,
LineEnd,
- Optional,
Combine,
- White,
- OneOrMore,
- nums,
replaceWith,
)
@@ -49,3 +44,16 @@
Literal("bq. ").setParseAction(replaceWith("> "))
+ SkipTo(LineEnd()) + LineEnd().setParseAction(replaceWith("\n\n")) # needs additional line feed at the end of quotation to preserve indentation
)
+
+
+class TweakedMonospaced(AbstractMarkup):
+ def action(self, tokens: ParseResults) -> str:
+ # remove extra brackets in {{monospaced}}
+ # e.g. {{{}BooleanScorer{}}}
+ token = re.sub(r"^[{}]+", "", tokens[0])
+ token = re.sub(r"[{}]+$", "", token)
+ return f"`{token}`"
+
+ @property
+ def expr(self) -> ParserElement:
+ return QuotedString("{{", endQuoteChar="}}").setParseAction(self.action)