Онлайн-типограф JSTypography |
BufferOverflow | Offline Дата: Вторник, 27.12.2019, 15:48 | Сообщение # 1 |
|
Группа: Banned
Сообщений: 1624
|
| JSTypography — мощный онлайн-типограф со множеством возможностей. Написан на языке JavaScript, является продолжением типографа от UnderShot’а. Описание его возможностей доступно на странице-примере. Основное его отличие от конкурентов — JSTypography создан для встройки в сайты. Большинство типографов представлены на сайтах их авторов, и представлены в виде страницы с полем ввода и кнопкой. Они доступны только на офсайтах, и, в редких случаях, имеют так же программы для отправки текста на сайт и возвращения в обработанном виде. Так же, эти типографы преимущественно заточены под онлайн-вёрстку. JSTypography — скрипт, который вы можете скачать, установить на свой сайт и привязать к любой форме ввода. К примеру, к форме ввода сообщений на форумах, добавления новостей, статей, рассказов и т. п. Так же, вы можете скачать страницу типографа и обрабатывать тексты без подключения к интернету. Размер входного текста не ограничен, что немаловажно для книг. Имеет два режима работы — вывод нормального текста и вывод текста с HTML-разметкой. Так же типограф поддерживает английские правила типографики. JSTypography имеет большой набор правил обработки, который совершенствовался в течение не одного года. Он значительно превосходит по возможностям большинство типографов, включая типограф от Лебедева, и схож по возможностям с типографом от Eugene Spearance. Не буду тратить место на описание возможностей — увидеть и испробовать их можно на странице-примере. JSTypography предлагается в 2-х видах. jstypography.js — полноценный скрипт для редактирования. jstypography_minified.js — сжатый скрипт для установки. Не отличается по функционалу, но имеет меньший размер. Инструкция по установке: 1) Загрузите один из скриптов (к примеру, jstypography_minified.js) на сайт. 2) Теперь необходимо привязать типограф к форме ввода и установить его вызов при нажатии какой-нибудь кнопки. Необязательно кнопки, и необязательно при нажатии. Обычно это кнопка добавления сообщения (типограф не «перебьёт» родную функцию кнопки), но я предпочитаю иметь отдельную кнопку, чтобы знать, что я буду иметь на выходе. Для этого, откройте код целевой страницы, и в теге <head> добавьте загрузку скрипта: ---------------------------------------------------------------------------------- <script type="text/javascript" src="http://path/jstypography_minified.js"></script> ---------------------------------------------------------------------------------- где path — адрес до скрипта. Можете указать адрес <a class="link" href="/scripts/jstypography.js" rel="nofollow" target="_blank">http: //www.starwars-galaxy.ru/scripts/jstypography.js</a>, и в таком случае скрипт будет грузиться с нашего сайта. Теперь, необходимо привязать скрипт. После кнопки добавьте строку с установкой типографа:
---------------------------------------------------------------------------------- <script type="text/javascript"> jstypograph ({параметры}) </script> ---------------------------------------------------------------------------------- Теперь подробнее о параметрах. Параметры указываются через запятую, в формате "параметр":"значение" (с кавычками). В случае, если значений несколько, к примеру, скрипт привязан к нескольким кнопкам, список значений указывается в квадратных скобках: "параметр":["значение1",...,"значениеN"]. Доступные параметры: "obj": кнопка (или несколько), на которой будет «висеть» типограф. Указывается либо строка с ID элемента-кнопки, либо сам элемент. В случае, если указывается напрямую элемент, его необходимо поместить в массив. Пример: ---------------------------------------------------------------------------------- //Привязывает скрипт к кнопке с id="typograph" {obj:"typograph",... //Аналогично {obj:["typograph"],... //Аналогично {obj:[getElementById("typograph")],... //Привязывает скрипт к кнопкам с id="typograph" и id="typograph2" {obj:["typograph", "typograph2"],... //Неправильно! Элементы должны указываться только внутри массива {obj:getElementById("typograph"),... ---------------------------------------------------------------------------------- "nbspobj": кнопка, при нажатию которой будет производиться замена символов неразрывного пробела на строку . На некоторых форумах (в т.ч. Ucoz) неразрывные пробелы при отправке преобразуются в обычные, в то время как строка преобразуется в неразрывной пробел. Поэтому для корректной работы неразрывных пробелов и отступов необходимо привязать автозамену на на кнопку «Добавить сообщение». Необязательно. "bind": событие, по которому будет запускаться типограф. Пример: ---------------------------------------------------------------------------------- ...,bind:"click",... ---------------------------------------------------------------------------------- "language": язык. "rus" или "eng", третьего не дано. Необязательно. "type": режим вывода. "norm", что значит обычный режим или "html". Обычно выбирают "norm". "txts": обрабатываемая(ые) textarea. Указывается аналогично obj. "off": список отключаемых функций типографа, опять-таки в квадратных скобках. Отключаемые функции: "spaces" (простановка и удаление пробелов), "tabs" (разметка параграфов), "dashs" (тире и дефис), "chars" (символы), "quotes" (кавычки), "functions" (псевдофункции), "nbsp" (неразрывные пробелы), "br" (расстановка тегов <br>), "href" (выделение ссылок, доступно лишь в html), "h1" (выделение заголовков, доступно лишь в html). Необязательно. Пример (полная обработка текста для людей): ---------------------------------------------------------------------------------- jstypograph ({obj:"buttonID", bind:"click", language:"rus", type:"norm", txts: ["textareaID"], off: ["br"]}); ---------------------------------------------------------------------------------- Пример установки на форум Ucoz: 1) Зайдите в Панель Управления → Редактор страниц → Управление дизайном модуля → Форум → Форма добавления сообщения. 2) В начале кода добавьте строчку: ---------------------------------------------------------------------------------- <script type="text/javascript" src="http://your_site/jstypography.js"></script> ---------------------------------------------------------------------------------- Получить адрес скрипта можно в файловом менеджере. 3) Найдите текст: ---------------------------------------------------------------------------------- <input style="width:110px;" id="frF17" class="postReset" type="reset" value="Отменить" /> ---------------------------------------------------------------------------------- Сразу после него добавьте пробел и текст кнопки: ---------------------------------------------------------------------------------- <input style="width:110px;" type="button" id="typograf" value="Типографировать"/> ---------------------------------------------------------------------------------- 4) В конце всего кода добавьте строчку: ---------------------------------------------------------------------------------- <script type="text/javascript">jstypograph ({obj:"typograf", nbspobj:"frF16", bind:"click", type:"norm", txts:"message", off:"br"}) </script> ---------------------------------------------------------------------------------- Пример установки на forum2x2 (phpBB2): 1) Зайдите в Панель Управления → Модуль → HTML & JAVASCRIPT → Управление кодами Javascript → Создать новый Javascript 2) Скопируйте в открывшееся окно содержимое jstypography.js. Выберите расположение «На всех страницах». 3) Зайдите в Панель Управления → Оформление → Шаблоны → Запостить & Личные сообщения → posting_body. В конец кода добавьте: ---------------------------------------------------------------------------------- <script type="text/javascript">$('input[name=post]').after(' <input class="mainoption" type="button" id="typograph" name="typograph" value="Типограф" tabindex="9" accesskey="t" />'); $(window).bind("load",function(){ jstypograph ({obj:"typograph", bind:"click", type:"norm", txts:[$(".sceditor-container textarea").get(0)], off:"br"}); });</script> ---------------------------------------------------------------------------------- 4) Повторите ту же операцию для Панель Управления → Оформление → Шаблоны → Общие настройки → viewtopic_body.
Ссылка на скачивание (github): Github. FileTypography (для файлов).
По всем вопросам, пожеланиям, найденным ошибкам пишите в эту тему, или ICQ 436149026, либо на [email protected]
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Вторник, 10.01.2019, 23:21 | Сообщение # 2 |
|
Группа: Banned
Сообщений: 1624
|
| Почитал «порку онлайн-типографов», и на основе статьи добавил в типограф множество улучшений. Очень большое множество. Итак, новинки: 1) Доделан режим html. Теперь он не только заменяет текст, но и расставляет теги <p></p> (функция так же называется «отступы»), а так же может расставлять теги <br \> (отключаема через "br") Кроме того, я сделал так, что можно типографить в режиме хтмл и нормальном по очереди, и текст не испортится. Так же защищены от обработки скрипты и каскадные таблицы стилей 2) Добавлена замена дробей на символы 3) Расстановка неразрывных пробелов (отключаема через "nbsp", не все форумы этот символ любят). 4) Типограф научился расставлять кое-где пунктуацию и дефисы. Не везде, конечно, но в самых частых случаях — да. 5) «Расстановка „правильных двойных и даже ‚тройных‘ кавычек“» 6) Поддержка всех конверсий конца строки. 7) Добавлена функция ГРЕЧ(), полезна для математиков — где же вы ещё Ω возьмёте? Подробнее в странице-примере. Вот краткий список нововведений. Так же были исправлены баги, и т. д.
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Вторник, 17.01.2019, 21:21 | Сообщение # 3 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.1.1. Исправлены баги: — Вложенные теги <untypo>. — Удалена простановка дефиса, если следующее слово начинается с «ка». — В некоторых случаях цитаты экранировались неполностью. — Исправлена неполная простановка пробелов после знаков препинания
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Пятница, 29.06.2019, 00:28 | Сообщение # 4 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.1.2 Исправлены баги: — Типографился весь текст, если выделен первый символ. Так же немного улучшен механизм выделения. — Вложенные теги <untypo> теперь действительно удаляются. — Неправильная замена дефиса на минус
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Суббота, 30.06.2019, 17:41 | Сообщение # 5 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.1.3 Исправлены баги: — Механизм замены отступов в понятный для браузера вид теперь работает с указанными в настройках полями ввода, а не со стандартным для Юкоза.
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Пятница, 13.07.2019, 17:25 | Сообщение # 6 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.1.4 — Экранируются аргументы тегов. — Теперь типограф автоматом возвращает полосу прокрутки на исходное положение.
Так же, в страницу-пример и в кнопки бб-кодов для форума добавлена кнопка для вставки тегов untypo.
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Суббота, 14.07.2019, 16:10 | Сообщение # 7 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.1.5 — Добавлен механизм выявления ссылок и email’ов в тексте. Теперь, во-первых, экранируются ссылки, которые прописаны простым текстом без бб-кодов или тегов, а во-вторых, в режиме html они обрамляются тегом <a>. — Привязка союзов и предлогов. — Проведена оптимизация. — Исправлены баги
Подлый ГМ в ролевой
|
|
|
|
|
Galileo | Offline Дата: Суббота, 14.07.2019, 22:57 | Сообщение # 8 |
|
Группа: Джедаи
Сообщений: 342
|
| Еще бы орфографию проверял ухх...
Рико Сенн в ролевой.
|
|
|
|
|
BufferOverflow | Offline Дата: Воскресенье, 15.07.2019, 00:00 | Сообщение # 9 |
|
Группа: Banned
Сообщений: 1624
|
| Galileo, эта фича и в браузеры встроена
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Вторник, 17.07.2019, 14:55 | Сообщение # 10 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.2. — Окончательно исправлены вложенные теги untypo. — Исправлены баги с экранированием ссылок. — Исправлены другие мелкие баги. — Добавлена простановка тире в диапазонах дат. — Добавлено много правил для простановки дефисов, пробелов и привязки предлогов. — Переписан механизм простановки кавычек. Вместо нагромождения регулярных выражений теперь старый добрых вложенный цикл. Теперь корректно обрабатываются лаконичные записи вроде «ОАО «ОблПроблПродукт». — Много чего ещё поправил. Не помню уже всего, но много.
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Пятница, 03.08.2019, 16:42 | Сообщение # 11 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.2.1. — Исправлены баги (вечно забываю, что для поиска точек в нужно писать \.).
Подлый ГМ в ролевой
|
|
|
|
|
animator | Offline Дата: Воскресенье, 13.01.2019, 17:04 | Сообщение # 12 |
|
Группа: Джедаи
Сообщений: 5
|
| Отличная вещь, спасибо.
Было бы вообще замечательно, если бы ещё заголовки выделялись. Чтобы не в <p> обрамлялись, а, например, в h2, ведь по сути они всегда достаточно короткие и не заканчиваются точкой)
|
|
|
|
|
BufferOverflow | Offline Дата: Четверг, 17.01.2019, 20:55 | Сообщение # 13 |
|
Группа: Banned
Сообщений: 1624
|
| animator, посмотрю. Обработка книг тоже предполагается
Подлый ГМ в ролевой
|
|
|
|
|
BufferOverflow | Offline Дата: Пятница, 18.01.2019, 23:14 | Сообщение # 14 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.2.3. — Исправлены баги с простановкой ссылок, тегами <p>. — Добавлена простановка тегов (отключается через "h1", доступна лишь в режиме html). — Простановка ссылок отключается через параметр "href" (доступна лишь в режиме html).
Подлый ГМ в ролевой
|
|
|
|
|
animator | Offline Дата: Пятница, 18.01.2019, 23:42 | Сообщение # 15 |
|
Группа: Джедаи
Сообщений: 5
|
| Здорово! Заголовки выделяются, спасибо!
|
|
|
|
|
BufferOverflow | Offline Дата: Суббота, 19.01.2019, 16:31 | Сообщение # 16 |
|
Группа: Banned
Сообщений: 1624
|
| animator, пожалуйста. Кстати, распознавание заголовков реализовано намного сложнее и точнее. Вышла версия 2.2.3.1 (микрофикс). — Исправлены заголовки: теперь они могут начинаться и заканчиваться на цифру, и кончаться на ).
Подлый ГМ в ролевой
|
|
|
|
|
animator | Offline Дата: Воскресенье, 20.01.2019, 11:35 | Сообщение # 17 |
|
Группа: Джедаи
Сообщений: 5
|
| Списки планируешь обрабатывать?
|
|
|
|
|
BufferOverflow | Offline Дата: Воскресенье, 20.01.2019, 13:41 | Сообщение # 18 |
|
Группа: Banned
Сообщений: 1624
|
| animator, нумерованные/маркированные? Возможно
Подлый ГМ в ролевой
|
|
|
|
|
animator | Offline Дата: Воскресенье, 20.01.2019, 13:43 | Сообщение # 19 |
|
Группа: Джедаи
Сообщений: 5
|
| лучше всего, конечно, оба варианта)
|
|
|
|
|
BufferOverflow | Offline Дата: Понедельник, 28.01.2019, 20:47 | Сообщение # 20 |
|
Группа: Banned
Сообщений: 1624
|
| Вышла версия 2.2.4. — Функция возведения в степень исправлена. Добавлены псевдофункции НИЖН и ВЕРХ, дающие нижний и верхний регистр. Функция простановки списка оказалась слишком жирной, и реализована не будет. Впрочем, закомментированный недоделанный код я оставил.
Подлый ГМ в ролевой
|
|
|
|