Локальний друкар на python — typus β

diff
Я вже презентував свій друкар на хабре. З того моменту він дещо оновився: я додав доки, діфф типографированного результату на сайті і скромненький web api.
Перш за все: що це і навіщо воно треба?
Грубо кажучи, це субъективщина. Але якщо раптом у вас мак, то, швидше за все, ви помітили, що при наборі тексту у вас подвійний дефіс і «прості» лапки підміняються іншими символами. Те ж саме діється в ворді і інших текстових процесорах.
вся справа в тому, що до повального веба оформлялися тексти вручну. Мабуть, авторам шрифтів було дуже нудно і вони вирішили розбавити свої набори купою непотрібних рисок, літер і всякої іншої фігні, яка вже тепер ніяк не поміщається в йцукен, зате дуже красиво виглядає.
Ось, власне, весь аргумент: «приємно читати такий текст». Як правило, більшість зарубіжних інформаційних ресурсів, начебто medium.com, приділяють величезну увагу тому, щоб текст був оформлений за всіма канонами.
Typus
Typus — це локальний друкар на Python. Дуже довгий час я користувався веб-сервісом Лебедєва, однак затримка у відповіді, яка незмінно з'являється в роботі з віддаленим api, просто вбивала. Тому я вирішив написати свій.
Що воно робить
  • замінює лапки на друкарські
  • розставляє апострафы
  • розставляє короткі, довгі тире і знак мінуса
  • замінює всякі
    ©
    на спец-символи
  • пов'язує сполучники і прийменники нерозривним пробілом зі словами, перед якими вони стоять
  • пов'язує числа з одиницями виміру
  • розставляє всякі математичні символи
  • ставить знак рубля в деяких випадках
  • триммит, чистить, загалом, позбавляє текст від зайвого «оформлення»
Звичайно ж, все це конфігурується (локально). Більш-менш повний список з прикладами доступний доках.
Demo
Щоб краще зрозуміти «що відбувається», можна погратися з демкой. «Відреставровані» частини будуть підсвічені (не завжди ідеально).
"I don't feel very much like Pooh today..." said Pooh.
"There there," said Piglet. "i'll bring you tea and honey until you do."
- A. A. Milne, Winnie-the-Pooh

"I don't feel very much like Pooh today..." said Pooh.
"There there," said Piglet. "I'll bring you tea and honey until you do."
— A. A. Milne, Winnie-the-Pooh

diff
Варто відзначити, що результат частково залежить від обраної вами гарнітури. Приміром, у деяких немає короткого нерозривного пробілу, а в моноширинных багато взагалі втрачає сенс.
API
Ну як api. Насправді, не знав як назвати. Але може стати в нагоді:
$ curl --data "text='foo'&lang=ua" https://byashimov.com/typus/api/v1/ 
{
"text": "\u00abfoo\u00bb"
}

Вихідний код всього сайту (і апі в тому числі) доступний на гітхабі.
Доки
Досить докладно розписав що і як працює, до купи багато вкрите доктестами. Поки тільки на ламаною англійською.
Плани і взагалі
  1. Треба б написати plugin для InDesign, Illustrator, які б спілкувалися з API. Ідея в тому, щоб можна було клацанням отримати повністю готовий до друку текст у вибраному текст-боксі. Однак, я давно не працюю з цими пакетами, так що, якщо є бажання, чекаю вашого пулл-реквеста )
  2. Підтримка Markdown і reStructuredText. Останнє, ідеально б, прикрутити прямо у sphinx-doc, тому що красиві доки — це добре і приємно.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.