Skip to content

skip-pay/cstypo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cstypo

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ů.

Instalace

pip install cstypo

API

  • cstypo.parser.TxtParser

    Vý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_ellipsis
    • cstypo.parser.TxtParser.parse_en_dash
    • cstypo.parser.TxtParser.parse_em_dash
    • cstypo.parser.TxtParser.parse_dates
    • cstypo.parser.TxtParser.parse_arrows
    • cstypo.parser.TxtParser.parse_plusminus
    • cstypo.parser.TxtParser.parse_dimension
    • cstypo.parser.TxtParser.parse_quotes
    • cstypo.parser.TxtParser.parse_prepositions
    • cstypo.parser.TxtParser.parse_last_short_word
    • cstypo.parser.TxtParser.parse_hyphen
  • cstypo.parser.HtmlParser

    Potomek třídy TxtParser, který nejdříve escapuje veškeré HTML tagy, aplikuje typografická pravidla na získaný text a vrátí tagy zpět.

Django

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 %}

CLI

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).

Python 3

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.

Vývoj

Spuštění testů lokálně

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 .

About

Balíček pro typografii českých textů pomocí Pythonu

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%