Skip to content
This repository has been archived by the owner on Jul 29, 2020. It is now read-only.
/ richtypo.py Public archive

The only web typograph that don't make a mess out of your text

License

Notifications You must be signed in to change notification settings

f213/richtypo.py

Repository files navigation

Richtypo — the only web typograph tool that don't make a mess out of your text

Richtypo assumes that your text already has right dashes and quotes. The main concern is to add non-breaking spaces to the right places.

This project is heavily inspired by Artem Sapegin's richtypo.

PyPI version Build Status codecov

Features

  • Blazing fast, aimed for render-time usage.
  • Native Russian support.
  • HTML, Markdown and Plain-text aware, does not break your markup.
  • Your text stays readable and indexable — richtypo does not produce HTML entities and other messy stuff.
  • Easy integration with Jinja2, Django templates and any other language.
  • Well tested Python3 and Python2 support. For py2 only unicode input is accepted.
  • Easily extendable through smallest possible regular expressions defined in YAML with in-place specifications.

Installation

pip install richtypo

Usage

from richtypo import Richtypo


r = Richtypo(ruleset='ru-lite')

well_done = r.richtypo(text)

Jinja2 filter

from richtypo.filter import filter

env = jinja2.Environment(
    filters={
        'richtypo': filter
    }
)

Template:

{{ text | richtypo('ru-lite') }}

Django filter

# your_app/templatetags/richtypo.py

from django import template
from django.template.defaultfilters import stringfilter
from django.utils.safestring import mark_safe
from richtypo.filter import filter as typograph

register = template.Library()


@register.filter
@stringfilter
def richtypo(value, ruleset='generic'):
    return mark_safe(typograph(value, ruleset))

Template:

{% load richtypo %}

{{ object.text | richtypo:"ru-lite"}}

License

MIT

About

The only web typograph that don't make a mess out of your text

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages