Balíček pro zkrášlení českých textů aplikováním základních typografických pravidel. Nesnaží se o pokrytí veškerých českých pravidel, spíše o aplikaci základních a to hlavně těch, které jsou na webu nejvíce vidět.
Pozor! Aplikování typografických pravidel na delší texty je poměrně výpočetně náročná operace. Zvažte kešování těchto textů.
pip install cstypo
-
cstypo.parser.TxtParserVýchozí třída pro zpracování textu. Použití:
parser = cstypo.parser.TxtParser(text) print(parser.parse()) # zformátovaný text
Je možné využít samostatně jednotlivé metody aplikující určitá pravidla:
cstypo.parser.TxtParser.parse_ellipsiscstypo.parser.TxtParser.parse_en_dashcstypo.parser.TxtParser.parse_em_dashcstypo.parser.TxtParser.parse_datescstypo.parser.TxtParser.parse_arrowscstypo.parser.TxtParser.parse_plusminuscstypo.parser.TxtParser.parse_dimensioncstypo.parser.TxtParser.parse_quotescstypo.parser.TxtParser.parse_prepositionscstypo.parser.TxtParser.parse_last_short_wordcstypo.parser.TxtParser.parse_hyphen
-
cstypo.parser.HtmlParserPotomek třídy
TxtParser, který nejdříve escapuje veškeré HTML tagy, aplikuje typografická pravidla na získaný text a vrátí tagy zpět.
Pro použití ve frameworku Django je připraven filtr typify v souboru cstags.
Nejdříve je potřeba cstypo přidat do INSTALLED_APPS:
INSTALLED_APPS = (
...
'cstypo',
)Poté je možné začít v šablonách používat filtr:
{% load cstags %}
{{ text|typify }} # zpracování obyčejného textu (výchozí)
{{ text|typify:'txt' }} # ...
{{ text|typify:'html' }} # zpracování html
{{ text|typify:'html'|safe }} # pro povolení vypsání je potřeba filter safe
{% filter typify:'html' %} # zpracování bloku
<h1>{{ title }}</h1>
<p>{{ text }}</p>
{% endfilter %}cstypo
Usage:
cstypo [--type (txt|html)] <input>
cstypo -h | --help
cstypo -v | --version
Options:
-h --help show this screen.
-v --version show version.
--type type of parsed file (txt default).
Oproti originální verzi by balíček měl fungovat
v Pythonu 3. Z řetězců a regulárních výrazů je odstraněn prefix u resp. ur.
Testy se spouští pomocí uv.
# Vytvoření virtuálního prostředí a instalace závislostí
uv venv
uv pip install -e . django
# Spuštění testů
uv run python -m unittest discover -s cstypo/tests -t .