From a0c2bebc175bfa7cf0715261d2309975ea18a1fa Mon Sep 17 00:00:00 2001 From: randogoth Date: Mon, 20 Oct 2025 20:35:36 +0300 Subject: [PATCH] ama code fix --- examples/loremipsum.ama | 24 +++++++++++++----------- examples/loremipsum.md | 2 ++ src/md2txt/renderers/ama.py | 8 +++++--- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/examples/loremipsum.ama b/examples/loremipsum.ama index e3808e6..29774bd 100644 --- a/examples/loremipsum.ama +++ b/examples/loremipsum.ama @@ -10,12 +10,16 @@ %h Structa hinc vetitus factum - Lorem markdownum omnes tellus, in, Herculeis `=reciprocalPower`= neque + Lorem markdownum omnes tellus, in, Herculeis %breciprocalPower%t neque promissa est Latiae caput umero talia fidissima, nymphae. Foedera et sagittas tenetur adde matri esse: talia manibus. + markdown () + + + %h Fuit video longique dedisse @@ -29,8 +33,8 @@ De instat ubi induit fugientia inertes columbas tarda %!terga Parnasia %! sententia%t omnia inmotusque, est et aetas sonus. Exhibuit coeperunt, canis. Suis minora, tempore fateor neve moderamine erit. Non %!hoc ra- - %! diis%t, Aenea etiamnum cogeris superinposita origine nec `=hardening_- - search`= dixit vicina. Heros subito populifer adeunt quicquam cum %!A- + %! diis%t, Aenea etiamnum cogeris superinposita origine nec %bhardening_- + %b search%t dixit vicina. Heros subito populifer adeunt quicquam cum %!A- %! LES%t Ixion angulus placet reddere. @@ -54,14 +58,14 @@ ______/ / '------' - Inprudens dum memor alma, casses dedi Sinuessa iam quid adicit `=gate- - _truncate_wave`=. Geratur de (<#salientia-iungit-contra-et>), insolida - temptat `=open`= carentia; genitorem solet, potens. Adit vos ramos mu- + Inprudens dum memor alma, casses dedi Sinuessa iam quid adicit %bgate- + %b _truncate_wave%t. Geratur de (<#salientia-iungit-contra-et>), insolida + temptat %bopen%t carentia; genitorem solet, potens. Adit vos ramos mu- ndi castris quodque plangoremque harum profugi nulla aures petiit liv- - entia aere qua Hodites ruunt. Achaidos dilexisse `=redundancy`= prae- + entia aere qua Hodites ruunt. Achaidos dilexisse %bredundancy%t prae- sagia tenuatus necis %!CAPYS RECORDOR%t tenebras actis signis, reliq- uit, placidissime iram liquefactis longe nervi famem. Cura pars na- - tique velleris semel et at `=printerWildcardParallel`= inquit posi- + tique velleris semel et at %bprinterWildcardParallel%t inquit posi- tosque comites ultra. @@ -76,7 +80,6 @@ - `= if (firewall(4, 3) == 1 * device_media_parity) { system_copy_class += systray + oasis_wi_clean + lpi; modelLdap.search_secondary_socket *= @@ -96,7 +99,6 @@ memoryHexadecimalMultitasking += oop_android; var passive_vdu = bar; var ddrJava = leaf(unc_web); - `= %h Mille parva @@ -115,7 +117,7 @@ carchesia nectar mille? Indestrictus vestes ut et offensasque in- tibaque deum agitur linguae maiestas te rictus %!tecum laniatque dixit%t ad dat- - as `=adsl`=. + as %badsl%t. Vino %!ut%t quod iaculi mutua armis uno est vos totidemque exhortor (<#tractaque-serpens-arva-quoque>). Iamdudum Romanae cepi linguisque diff --git a/examples/loremipsum.md b/examples/loremipsum.md index 8d1c665..603517f 100644 --- a/examples/loremipsum.md +++ b/examples/loremipsum.md @@ -22,6 +22,8 @@ Lorem markdownum omnes tellus, in, Herculeis `reciprocalPower` neque promissa est Latiae caput umero talia fidissima, nymphae. Foedera et sagittas tenetur adde matri esse: talia manibus. +[markdown](markdown.md) + ## Fuit video longique dedisse {:.center} diff --git a/src/md2txt/renderers/ama.py b/src/md2txt/renderers/ama.py index 3003713..7d21032 100644 --- a/src/md2txt/renderers/ama.py +++ b/src/md2txt/renderers/ama.py @@ -70,7 +70,7 @@ class AmaRenderer(TextRenderer): def _render_code_block(self, payload: CodeBlockPayload, style: BlockStyle) -> None: margin_left, _, _ = self._margins(style) base_indent = " " * margin_left + " " - body: List[str] = [base_indent + "`="] + body: List[str] = [] content_width = max(1, self.width - len(base_indent)) for raw_line in payload.lines: line = raw_line.rstrip("\n") @@ -81,7 +81,8 @@ class AmaRenderer(TextRenderer): body.append(base_indent + segments[0]) for segment in segments[1:]: body.append(base_indent + segment) - body.append(base_indent + "`=") + if not body: + body.append(base_indent) self._emit_block(body, stylable=False) def _render_blockquote(self, payload: BlockQuotePayload, style: BlockStyle) -> None: @@ -146,7 +147,8 @@ class AmaRenderer(TextRenderer): text = IMAGE_RE.sub(self._replace_image, text) for idx, code in enumerate(code_segments): - text = text.replace(f"\u0000CODE{idx}\u0000", f"`={code}`=") + formatted = code.replace("%", "%%") + text = text.replace(f"\u0000CODE{idx}\u0000", f"%b{formatted}%t") return text @staticmethod