<pre> a formátování kódu #37

Closed
opened 1 year ago by jirikalvoda · 1 comments
Owner

Spíš něco na zamyšlení, nemám v tom moc jasno.

Za zobrazování kusů kódy formátítko používá HTML tag <pre>.

To sice vypadá jako věc přesně na to, ale jsem trošku smutný z toho, že pak neumím zařídit, aby výsledný HTML kód vypadal hezky.
Uvnitř pre totiž nemůže být odsazený obsah, protože pak se odsazení propíše do výsledku.

Už výstup z formátítka tedy má části, co mají být odsazené, bez odsazení.

Větší problém ale nastane, když se rozhodnu celý výstup z formátítka ještě o tab či dva odsadit (což dává smysl, protože jeho výstup má být uvnitř <html><body><div id="main">...). Pak se přidané taby zobrazí. :fn:uk

Možná nápad na alternativu: Každy řádek mít jako vlastní <pre>.

A nebo místo pre použít div s monospace fontem a mezery/taby nahradit tak, aby je html neslepilo?

A nebo mi vysvětlit, že si nemám odsazovat kód jednoduchým replacem. :D

Spíš něco na zamyšlení, nemám v tom moc jasno. Za zobrazování kusů kódy formátítko používá HTML tag `<pre>`. To sice vypadá jako věc přesně na to, ale jsem trošku smutný z toho, že pak neumím zařídit, aby výsledný HTML kód vypadal hezky. Uvnitř pre totiž nemůže být odsazený obsah, protože pak se odsazení propíše do výsledku. Už výstup z formátítka tedy má části, co mají být odsazené, bez odsazení. Větší problém ale nastane, když se rozhodnu celý výstup z formátítka ještě o tab či dva odsadit (což dává smysl, protože jeho výstup má být uvnitř `<html><body><div id="main">...`). Pak se přidané taby zobrazí. :fn:uk Možná nápad na alternativu: Každy řádek mít jako vlastní `<pre>`. A nebo místo `pre` použít `div` s monospace fontem a mezery/taby nahradit tak, aby je html neslepilo? A nebo mi vysvětlit, že si nemám odsazovat kód jednoduchým replacem. :D
jan commented 1 year ago

Konstruktor OutputGeneratoru bere parametr initial_indent_level, který ti umožní celý kód indentovat bez toho, aby to rozbilo pre. To, že pre nejsou odsazené jsem si prohlásil jako přijatelnou oběť, vzhledem k tomu, že moc nevěřím spolehlivosti jiného řešení a primárním příjemcem stránky je stejně člověk, který čte vyrenderované HTML a ten kdo čte zdroják až sekundárním, proto bych nerad řešil požitek sekundárního na úkor primárního.

Btw já taky dělám odsazení poněkud dřevorubecky ve vytváření commandů, ale přišlo mi to, že to zatím nic nerozbíjí.

Konstruktor `OutputGenerator`u [bere parametr](https://gitea.ks.matfyz.cz/KSP/formatitko/src/branch/master/src/formatitko/output_generator.py#L28) `initial_indent_level`, který ti umožní celý kód indentovat bez toho, aby to rozbilo `pre`. To, že `pre` nejsou odsazené jsem si prohlásil jako přijatelnou oběť, vzhledem k tomu, že moc nevěřím spolehlivosti jiného řešení a primárním příjemcem stránky je stejně člověk, který čte vyrenderované HTML a ten kdo čte zdroják až sekundárním, proto bych nerad řešil požitek sekundárního na úkor primárního. Btw já taky dělám odsazení [poněkud dřevorubecky ](https://gitea.ks.matfyz.cz/KSP/formatitko/src/branch/master/src/formatitko/command_util.py#L16) ve vytváření commandů, ale přišlo mi to, že to zatím nic nerozbíjí.
jirikalvoda closed this issue 1 year ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.