figlet alignment

This commit is contained in:
randogoth 2025-10-20 00:00:16 +03:00
parent b1f1d7b5f6
commit 70196134d6
4 changed files with 313 additions and 15 deletions

View file

@ -32,6 +32,7 @@ populifer adeunt quicquam cum **ales** Ixion angulus placet reddere.
{:.right}
## Tractaque serpens arva quoque
{:.center}
Inprudens dum memor alma, casses dedi Sinuessa iam quid adicit
`gate_truncate_wave`. [Geratur de](#salientia-iungit-contra-et), insolida
@ -43,6 +44,7 @@ nervi famem. Cura pars natique velleris semel et at `printerWildcardParallel`
inquit positosque comites ultra.
## Quantaque augent
{:.center}
Acuti ignotis ignis, ostendit nostras terras nondum, [petit utque
utero](#structa-hinc-vetitus-factum) sepulcrales, pluma reseratis Ismario. Tria
@ -69,6 +71,7 @@ sedisti](#mille-parva).
```
### Mille parva
{:.center}
**Minetur et** aurum! Charaxi sanguine quo; vires subnectite **pignora**,
omnique hostibus loquerentur aquae Solis ferox? **Cum ne**, putat utar ex ad

121
loremipsum.txt Normal file
View file

@ -0,0 +1,121 @@
_____ _ _ _ _
/ ____| | (_) | | (_)
| (___ __ _| |_ ___ _ __ | |_ _ __ _
\___ \ / _` | | |/ _ \ '_ \| __| |/ _` |
____) | (_| | | | __/ | | | |_| | (_| |
|_____/ \__,_|_|_|\___|_| |_|\__|_|\__,_|
___ _ _ _ _ _ _ _
/ __| |_ _ _ _ _ __| |_ __ _ | |_ (_)_ _ __ __ _____| |_(_) |_ _ _ ___
\__ \ _| '_| || / _| _/ _` | | ' \| | ' \/ _| \ V / -_) _| | _| || (_-<
|___/\__|_| \_,_\__|\__\__,_| |_||_|_|_||_\__| \_/\___|\__|_|\__|\_,_/__/
__ _
/ _|__ _ __| |_ _ _ _ __
| _/ _` / _| _| || | ' \
|_| \__,_\__|\__|\_,_|_|_|_|
Lorem markdownum omnes tellus, in, Herculeis `reciprocalPower` neque promissa e-
st Latiae caput umero talia fidissima, nymphae. Foedera et sagittas tenetur adde
matri esse: talia manibus.
___ _ _ _ _ _ _
| __| _(_) |_ __ _(_)__| |___ ___ | |___ _ _ __ _(_)__ _ _ _ ___
| _| || | | _| \ V / / _` / -_) _ \ | / _ \ ' \/ _` | / _` | || / -_)
|_| \_,_|_|\__| \_/|_\__,_\___\___/ |_\___/_||_\__, |_\__, |\_,_\___|
|___/ |_|
_ _ _
__| |___ __| (_)______ ___
/ _` / -_) _` | (_-<_-</ -_)
\__,_\___\__,_|_/__/__/\___|
Ille stupet, ultra I N C U N A B U L A A G E N D U M U R B E S mirer A P E
R, metu. Aegides novissima sunt turis quatiebant umbrosaque [putares](1). Metu-
unt eruiturque maximus velit, ater Vesta vulnus rustica verba! Mei vincite nul-
la, in Iovem: fama exurunt vernum!
De instat ubi induit fugientia inertes columbas tarda t e r g a P a r n a s i
a s e n t e n t i a omnia inmotusque, est et aetas sonus. Exhibuit coeperunt,
canis. Suis minora, tempore fateor neve moderamine erit. Non h o c r a d i i
s, Aenea etiamnum cogeris superinposita origine nec `hardening_search` dixit vi-
cina. Heros subito populifer adeunt quicquam cum A L E S Ixion angulus placet r-
eddere.
_____ _
|_ _| _ __ _ __| |_ __ _ __ _ _ _ ___ ___ ___ _ _ _ __ ___ _ _ ___
| || '_/ _` / _| _/ _` / _` | || / -_) (_-</ -_) '_| '_ \/ -_) ' \(_-<
|_||_| \__,_\__|\__\__,_\__, |\_,_\___| /__/\___|_| | .__/\___|_||_/__/
|_| |_|
__ _ _ ___ ____ _ __ _ _ _ ___ __ _ _ _ ___
/ _` | '_\ V / _` | / _` | || / _ \/ _` | || / -_)
\__,_|_| \_/\__,_| \__, |\_,_\___/\__, |\_,_\___|
|_| |_|
Inprudens dum memor alma, casses dedi Sinuessa iam quid adicit `gate_truncate_w-
ave`. [Geratur de](2), insolida temptat `open` carentia; genitorem solet, poten-
s. Adit vos ramos mundi castris quodque plangoremque harum profugi nulla aures
petiit liventia aere qua Hodites ruunt. Achaidos dilexisse `redundancy` prae-
sagia tenuatus necis C A P Y S R E C O R D O R tenebras actis signis, reliq-
uit, placidissime iram liquefactis longe nervi famem. Cura pars natique velleris
semel et at `printerWildcardParallel` inquit positosque comites ultra.
___ _ _
/ _ \ _ _ __ _ _ _| |_ __ _ __ _ _ _ ___ __ _ _ _ __ _ ___ _ _| |_
| (_) | || / _` | ' \ _/ _` / _` | || / -_) / _` | || / _` / -_) ' \ _|
\__\_\\_,_\__,_|_||_\__\__,_\__, |\_,_\___| \__,_|\_,_\__, \___|_||_\__|
|_| |___/
Acuti ignotis ignis, ostendit nostras terras nondum, [petit utque utero](3) sep-
ulcrales, pluma reseratis Ismario. Tria silentia duae n y m p h e: certe parva
cernam et dixit. [Verborum sedisti](1).
01 | if (firewall(4, 3) == 1 * device_media_parity) {
02 | system_copy_class += systray + oasis_wi_clean + lpi;
03 | modelLdap.search_secondary_socket *= bounce.proxy_text(cableMyspacePerl,
04 | scanner(spam));
05 | text_class_traceroute(vga, hdtv);
06 | }
07 | if (commerceStack) {
08 | wrapSafe(pum(itunesRosettaCache, sdramOpticalWorm));
09 | } else {
10 | minisite_worm(2, ssdString(84), gnuFriendly);
11 | state.qwerty(moduleJavascriptFloating + ugc, koffice,
12 | mail_system.prebinding_service_teraflops(mediaIcmpBoot));
13 | }
14 | memoryHexadecimalMultitasking += oop_android;
15 | var passive_vdu = bar;
16 | var ddrJava = leaf(unc_web);
MILLE PARVA
-----------
M I N E T U R E T aurum! Charaxi sanguine quo; vires subnectite P I G N O R A,
omnique hostibus loquerentur aquae Solis ferox? C U M N E, putat utar ex ad a-
ede mane. Vitalesque geminas exstimulat, iam vivunt dat artes et quem! Iam vio-
las molire ipse, spoliabitur dente nervis regis, factos quae.
| Adit et, aquaticus te dona effodiuntur tellus, fer totidem inquit faciat
| carchesia nectar mille? Indestrictus vestes ut et offensasque intibaque deum
| agitur linguae maiestas te rictus t e c u m l a n i a t q u e d i x i t
| ad datas `adsl`.
| Vino u t quod iaculi mutua armis uno est vos totidemque
| [exhortor](4). Iamdudum Romanae cepi linguisque
| velit accipe idem acutis hoc sparsumque dextra. Minoide sponte collo sequitur
| et intus flere sanguineaque herba, nox Quas adsiduo c u n c t a n t e m tibi;
| enim.
[1] #mille-parva
[2] #salientia-iungit-contra-et
[3] #structa-hinc-vetitus-factum
[4] #tractaque-serpens-arva-quoque

View file

@ -700,24 +700,35 @@ class MarkdownToTxtConverter:
margin_left = min(max(style.margin_left, 0), self.width - 1)
margin_right = max(style.margin_right, 0)
available_width = max(1, self.width - margin_left - margin_right)
block_width = max((len(line.rstrip()) for line in lines), default=0)
block_width = min(block_width, available_width)
extra_space = max(0, available_width - block_width)
if style.align == "center":
align_offset = extra_space // 2
elif style.align == "right":
align_offset = extra_space
else:
align_offset = 0
max_indent = max(0, self.width - block_width)
indent = min(margin_left + align_offset, max_indent)
result: List[str] = []
block: List[str] = []
def flush_block() -> None:
if not block:
return
trimmed = [entry.rstrip("\n").rstrip() for entry in block]
block_width = max((len(line) for line in trimmed), default=0)
extra_space = max(0, available_width - block_width)
if style.align == "center":
align_offset = extra_space // 2
elif style.align == "right":
align_offset = extra_space
else:
align_offset = 0
max_indent = max(0, self.width - block_width)
indent = min(margin_left + align_offset, max_indent)
indent_str = " " * indent
for line in trimmed:
result.append(indent_str + line)
block.clear()
for line in lines:
if not line:
if line.strip():
block.append(line)
else:
flush_block()
result.append("")
continue
trimmed = line.rstrip()
result.append(" " * indent + trimmed)
flush_block()
return result
def _process_inline(self, text: str) -> str:

163
output.txt Normal file
View file

@ -0,0 +1,163 @@
_ _ _ _ _ _ ___ __
| |__ / | | | | | ___ __ _ __| (_)_ __ __ _ ( _ ) \ \
| '_ \| | | |_| |/ _ \/ _` |/ _` | | '_ \ / _` | / _ \ _____| |
| | | | | | _ | __/ (_| | (_| | | | | | (_| | | (_) |_____| |
|_| |_|_| |_| |_|\___|\__,_|\__,_|_|_| |_|\__, | \___/ | |
|___/ /_/
_ ____ _ _ _ _
| |__ |___ \ | | | | ___ __ _ __| (_)_ __ __ _
| '_ \ __) | | |_| |/ _ \/ _` |/ _` | | '_ \ / _` |
| | | |/ __/ | _ | __/ (_| | (_| | | | | | (_| |
|_| |_|_____| |_| |_|\___|\__,_|\__,_|_|_| |_|\__, |
|___/
_ _____ _ _ _ _
| |__ |___ / | | | | ___ __ _ __| (_)_ __ __ _
| '_ \ |_ \ | |_| |/ _ \/ _` |/ _` | | '_ \ / _` |
| | | |___) | | _ | __/ (_| | (_| | | | | | (_| |
|_| |_|____/ |_| |_|\___|\__,_|\__,_|_|_| |_|\__, |
|___/
H4 HEADING
----------
H5 HEADING
----------
H6 HEADING
----------
_ _ _ _ _ ____ _
| | | | ___ _ __(_)_______ _ __ | |_ __ _| | | _ \ _ _| | ___ ___
| |_| |/ _ \| '__| |_ / _ \| '_ \| __/ _` | | | |_) | | | | |/ _ \/ __|
| _ | (_) | | | |/ / (_) | | | | || (_| | | | _ <| |_| | | __/\__ \
|_| |_|\___/|_| |_/___\___/|_| |_|\__\__,_|_| |_| \_\\__,_|_|\___||___/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
_____ _ _
| ____|_ __ ___ _ __ | |__ __ _ ___(_)___
| _| | '_ ` _ \| '_ \| '_ \ / _` / __| / __|
| |___| | | | | | |_) | | | | (_| \__ \ \__ \
|_____|_| |_| |_| .__/|_| |_|\__,_|___/_|___/
|_|
T H I S I S B O L D T E X T _T_H_I_S___I_S___B_O_L_D___T_E_X_T_ T h i s
i s i t a l i c t e x t _T_h_i_s___i_s___i_t_a_l_i_c___t_e_x_t_
-S-t-r-i-k-e-t-h-r-o-u-g-h-
____ _ _ _
| __ )| | ___ ___| | ____ _ _ _ ___ | |_ ___ ___
| _ \| |/ _ \ / __| |/ / _` | | | |/ _ \| __/ _ \/ __|
| |_) | | (_) | (__| < (_| | |_| | (_) | || __/\__ \
|____/|_|\___/ \___|_|\_\__, |\__,_|\___/ \__\___||___/
|_|
| Blockquotes can also be nested...
| | by using additional greater-than signs right next to each other...
| | | or with spaces between arrows.
_ _ _
| | (_)___| |_ ___
| | | / __| __/ __|
| |___| \__ \ |_\__ \
|_____|_|___/\__|___/
_ _ _ _
| | | |_ __ ___ _ __ __| | ___ _ __ ___ __| |
| | | | '_ \ / _ \| '__/ _` |/ _ \ '__/ _ \/ _` |
| |_| | | | | (_) | | | (_| | __/ | | __/ (_| |
\___/|_| |_|\___/|_| \__,_|\___|_| \___|\__,_|
+ Create a list by starting a line with `+`, `-`, or `*`
- Marker character change forces new list start:
* Ac tristique libero volutpat at
+ Facilisis in pretium nisl aliquet
- Nulla volutpat aliquam velit
+ Very easy
___ _ _
/ _ \ _ __ __| | ___ _ __ ___ __| |
| | | | '__/ _` |/ _ \ '__/ _ \/ _` |
| |_| | | | (_| | __/ | | __/ (_| |
\___/|_| \__,_|\___|_| \___|\__,_|
1. Lorem ipsum dolor sit amet
2. Consectetur adipiscing elit
3. Integer molestie lorem at massa
____ _
/ ___|___ __| | ___
| | / _ \ / _` |/ _ \
| |__| (_) | (_| | __/
\____\___/ \__,_|\___|
Inline `code`
Indented code
01 | // Some comments
02 | line 1 of code
03 | line 2 of code
04 | line 3 of code
Block code "fences"
01 | Sample text here...
Syntax highlighting
01 | var foo = function (bar) {
02 | return bar++;
03 | };
04 |
05 | console.log(foo(5));
_ _ _
| | (_)_ __ | | _____
| | | | '_ \| |/ / __|
| |___| | | | | <\__ \
|_____|_|_| |_|_|\_\___/
[link text](1)
[link with title](2)
___
|_ _|_ __ ___ __ _ __ _ ___ ___
| || '_ ` _ \ / _` |/ _` |/ _ \/ __|
| || | | | | | (_| | (_| | __/\__ \
|___|_| |_| |_|\__,_|\__, |\___||___/
|___/
[Image: Minion](3) [Image: Stormtroopocat](4)
[1] http://dev.nodeca.com
[2] http://nodeca.github.io/pica/demo/
[3] https://octodex.github.com/images/minion.png
[4] https://octodex.github.com/images/stormtroopocat.jpg