LINUX.ORG.RU

markdown-it — парсер markdown с расширяемым синтаксисом

 , ,


5

3

Ключевая особенность нового парсера — простота расширения синтаксиса. При использовании маркдауна пользователь рано или поздно упирается в то, что чего-то не хватает и нужно делать HTML-вставки. В markdown-it можно добавлять новые элементы синтаксиса через плагины. В результате сохраняется безопасность сгенерированной HTML-разметки и нет необходимости использовать сложные валидаторы вроде owasp для защиты от XSS.

Парсер написан на javascript, и работает как в браузере, так и на node.js. Несмотря на язык программирования и заложенную гибкость, markdown-it имеет очень высокую скорость, уступая только скомпилированным вариантам на С.

Другой приятной особенностью парсера является следование спецификации CommonMark.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: ymn (всего исправлений: 2)

Ответ на: комментарий от ZuBB

https://github.com/markdown-it/markdown-it/tree/master/benchmark

Только не надо пулреквесты слать. Я эти бенчмарки использую для работы, и добавление пачки имплементаций ничего кроме замедления не даст. Поверь, по части яваскриптовых все уже исследовано вдоль и поперек.

Если сильно хочется - есть смысл делать отдельный реп, чисто под бенчмарки. Мне это не особо интересно, но если будет надо - могу помочь советами.

Vit ★★★★★
() автор топика
Ответ на: комментарий от ZuBB

and to fix found problems

я не нейтив спикер, но имо не звучит

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

Кстати, есть серьезный вопрос. Вроде как все делалось на добровольных началах, с совместными мегапланами и я согласился выкладывать проект в его реп и добавить его в копирайты. Потому как было бы странно, если б у него код лежал с совсем чужими.

Теперь на основании этого он считает, что выпиливание его из копирайтов есть нарушение лицензии. Я же считаю, о копирайте можно говорить только при наличии реальной совместной работы (коммитов), покупке (если бы он мне заплатил хоть доллар), или реально подписанного соглашения, а не «электропочты».

Ну а так как человек реально вообще ничего не сделал (даже тонна звезд набралась не благодаря ему) - то из копирайтов он выпилен абсолютно корректно, и свои претензии может засунуть в одно место.

Кто тут вообще прав? Из EFF пока не ответили.

Vit ★★★★★
() автор топика
Последнее исправление: Vit (всего исправлений: 1)
Ответ на: комментарий от Dron

С какой стати? Человек хочет на халяву попаразитировать. Нормальная реакция - это послать курить писю, а не спасибо говорить.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

THANKS.txt это же просто формальность. Хотя если его участие, в том числе и косвенное было равно null то да.

Dron ★★★★★
()
Ответ на: комментарий от Dron

Он очень ловко умеет раздавать обещания. А реальное участие не просто null, а отрицательное. Он там в какой-то момент обкололся, и некисло наговнялся на гитхабе, а потом еще в почте заявил, что «если я еще раз позволю себе так с ним разговаривать», то он меня выпилит из репа.

Ну а так как нет смысла ждать, пока невменяемого поциента бобманет окончательно, я оттуда свалил, и из копирайтов его выпилил.

А вот линк для нотариальных скрипшотов :) https://github.com/jonschlinkert/remarkable/commit/89c2c9f261a358c388ee32a44a... . Последний коммент, где были WTF и что он у себя будет делать все что хочет, он подправил.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Lincor

В аду ты будешь первую половину вечности набирать бесконечный xml-файл в Блокнотe, а вторую - читать его со сломанным форматированием.

Воланд

anonymous
()
Ответ на: комментарий от faiwer

Даже JSON представляется чем-то поразительно удобным на фоне XML.

JSON-лапша ещё хуже.

Deleted
()
Ответ на: комментарий от Deleted

Дык, в раздел отзывов, к Макскому :)

Vit ★★★★★
() автор топика
Ответ на: комментарий от Lincor

А как я могу знать, как ты страдал, если я не видел твоих документов?

Tactile ★★
()

А почему нельзя просто разрешить любой html, но выкидывать скрипты внутри него?

И никаких проблем не будет. Вон, в той же ЖЖшке очень даже дофигища поддерживается. И никто не умер. И классно. И сообщения выглядят не как говно.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Lincor

я писал XHTML-документ более чем на пятнадцать экранов с обширными вставками MathML

В LaTeX этот документ уместился бы в пять экранов, но дурака работа любит.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 2)
Ответ на: комментарий от Vit

Из EFF пока не ответили.

на календарь посмотрите

ZuBB ★★★★★
()
Ответ на: комментарий от Vit

Удалить все его коммиты надо было. А дальше, это уже твой код, и какие копирайты туда ставить — твое полное право.

iVS ★★★★★
()
Ответ на: комментарий от Vit

на счет копирайта я ничего не могу подсказать.

если я правильно понял, то ты делал не сам а с помощником (еще один человек в этой истории). если он поддерживает тебя, знач вы все правильно сделали

ZuBB ★★★★★
()
Ответ на: комментарий от iVS

гентушники вон тоже лопухнулись когда форкали удав, так что спешить не надо. запад это не росиия. денег не отберут, а репутацию/дурную славу себе можна приобрести.

нужно четко понимать что делать

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

Я не просто «с помошником делал», я делал со знакомым, которому при этом еще и бабла отсыпал. И он меня поддерживает «целиком и полностью».

А этот американский крендель возбухает, что мои слова в электропочте про «согласие выложить код у него под его копирайтами безо всяких условий» означают передачу интеллектуальной собственности.

Из EFF ответили, что помимо очевидных случаев типа контрактной работы, обычно передачу оформляют подписанными документами, хотя в некоторых случаях письмо «может быть признано таковым».

Кстати, при любом раскладе я в копирайтах все равно числюсь.

Vit ★★★★★
() автор топика
Ответ на: комментарий от iVS

Нельзя удалить то, чего не было :)

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Зачем вообще его было делать владельцем хранилища? Что за такие совместные мегапланы? Пусть сам бы он тогда и начал пилить, а потом бы ты присоединился. А так как-то странно очень получилось.

EvilFox ★★
()
Последнее исправление: EvilFox (всего исправлений: 2)
Ответ на: комментарий от EvilFox

Это жизнь. Все ошибаются. Я почему-то думал, что когда разработа опенсорсная и некоммерческая, то люди себя как уроды не ведут. Теперь буду умнее :)

Vit ★★★★★
() автор топика

Как-то я раньше не встречался с расширяемыми плагинами парсерами. Обычно всё гвоздями приколочено. Это оригинальная идея или уже было где-то такое?

Кстати, это, строго говоря, не чистый парсер, а парсер, объединенный с HTML-рендерером. Возможность строить синтаксические деревья для markdown тоже бы не помешала, для рендеринга в PDF, например.

anonymous
()
var NEWLINES_RE  = /\r[\n\u0085]|[\u2424\u2028\u0085]/g;

The Unicode characters U+2424 (SYMBOL FOR NEWLINE, ␤), U+23CE (RETURN SYMBOL, ⏎), U+240D (SYMBOL FOR CARRIAGE RETURN, ␍) and U+240A (SYMBOL FOR LINE FEED, ␊) are intended for presenting a user-visible character to the reader of the document, and are thus most often not recognized themselves as a newline.

anonymous
()
Ответ на: комментарий от anonymous

Не буду звиздеть что изобрел первый, но тут по крайней мере придумал сам. Там просто довольно удачный формат, чтобы подобное провернуть. На произвольной семантике не прокатит.

Синтаксическое дерево построить не проблема - просто другой рендерер привернуть. Просто под те задачи что у меня - реально не надо.

Vit ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Поправим по ходу, если реальные кейзы всплывут. Не помню уже, из каких тикетов я эту муть насобирал.

Vit ★★★★★
() автор топика
Ответ на: комментарий от anonymous

На нее нормальной спеки нет, поэтому сделали как бог на душу положит, чтобы работали только простые случаи и разбираться потом.

Vit ★★★★★
() автор топика

БОЖЕ ЦАРЯ ХРАНИ

чувак, да ты бох

как меня задолбали парсеры маркдауна, которые ничего не умеют, и приладить это к ним никак

stevejobs ★★★★☆
()
Ответ на: комментарий от Vit

так-то нанесенная польза, кодописательство, соавторство и копирайты это четыре самостоятельные штуки. на практике взаимосвязи могут быть весьма причудливыми и поэтому все причуды определяются, как правило, в договорах. но ни как не субъективными оценками происходящего в отдельно взятой голове, в произвольное время.

если ваш замечательный коллега, будучи в здравом уме и трезвой памяти, не отказался явным образом от своих прав, выпиливать его в одностороннем порядке не очень разумно. на будущее - используй нормальную свободную лицензию, без копирастических заморочек (man история, столлман, at&t) если хочется свободы, и внимательнее подбирай компаньонов.

посмотрел исходники. было бы из-за чего сраца. не, ну может зачем-то и нужно, рассказывать байки всему LOR'у, дескать оно такое тормозное из-за гибкости и расширяемости, а не проблем в архитектуре и говнокода. я х.з.

правда, нормальным программистам иногда бывает проще переписать, чем договорится. make it work, make it right, make it fast. все равно нормальный проект получается только с третьего раза. щаз да, и правда, что-то работает. :)

Lucky ★★
()
Ответ на: комментарий от Lucky

Чтобы от чего-то отказаться, надо это сначала получить.

Vit ★★★★★
() автор топика
Ответ на: комментарий от ZuBB

Гы, зацени http://talk.commonmark.org/t/markdown-it-high-speed-pluggable-parser-for-js-w...


Я вспомнил, как дело начиналось. Я ж ему предлагал переписать его «remarked», a не делать отдельный проект. И при услови что он включит в свои пакеты.

В итоге в тот проект ни фига так и не влили (там сто раз все поменялось, и в итоге вылезло как отдельный проект), и в свои пакеты он 2 месяца ничего не включал. По хочу даже с формальной точки зрения он может курить писю :)

Vit ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Там 2 момента:

1. В начале разработки держать все в одном месте намного удобнее, чем управлять зависимостями. В ближайшее время abbr, footnotes и т.п. уедут в плагины.
2. Linkify / replacements / smartquotes /tables / strike останутся, т.к. нужны очень многим, и нет смысла заставлять всех ставить несколько пакетов.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Lincor

не ребят, это заблуждение и пример плохой. вот хороший пример:

<h1>говнотекст</h1><p>говнопростыня, тупой xml, ололо-трололо</p><p>нет форматирования, это пздц</p><ul><li>тут список, но хрен ты его прочитаешь без боли</li></ul>

в маркдауне, и в том же латехе это будет выглядеть намного читабельнее

заголовок
======

первый абзац

второй абзац

- список
- читается
- нормально
anonymous
()
Ответ на: комментарий от anonymous

а еще закрывающие теги это мегапздц, и каким же идиотом надо было быть, чтобы придумать себе лишние проблемы. каким же идиотом надо быть, чтобы мучиться и оправдывать эту ошибку проектирования

anonymous
()
Ответ на: комментарий от Lincor

часто удобно записать несколько тегов в одну строку

это дебилизм, прости, ничего личного

anonymous
()
Ответ на: комментарий от aktine

В docbook миллионы страниц написано. Никто не жаловался, один ты неосилятор.

anonymous
()
Ответ на: комментарий от Meyer

Научись уже приличным текстовым редактором пользоваться.

anonymous
()
Ответ на: комментарий от Vit

«Дорогие дети, идите в жопу» (с) Раневская

мы бы к вам пришли, но вы там уже все засрали)))

или вы можете внятно объяснить чем markdown-вики разметка хоть на пол дюйма лучше чем mediawiki разметка?

я имею в виду как минимум «выразительные возможности».

Скольrо я не заливал в наши внутренние вики страциц на mediawiki разметке - ни разу мне не пришла в голову мысль что «вот тут надо всобачить html». всего достаточно, все внятно, все понятно, прогноируемо.

А как только я начал писать на макрдауне маны по библиотеке для публикации на гиториусе - извините - захотелось дать пинка тем извращенцам которые придумали (или недоделали) это нефункциональное убожество. То преформатирвонный текст с фрагентами исходного кода в середине текста перестает быть преформатированным, то с таблицами косяк, то ещё что вылазит... убожество. не говоря о том, что набор выразительных средств - убог и напоминает школотскую поделку. Вставки, таблицы, сноски - где это все в нормальном виде?

у вас есть что сказать? ))

Denjs
()
Последнее исправление: Denjs (всего исправлений: 2)

В общем я к чему? Проект призванный расширить возможности убогого инструента конечно нельзя не приветствовать. но!

Имхо, лучше бы народ не занимался костылетворчеством, а сделал standalone, или встраиваемый или на javascript парсер media-wiki разметки. Это было бы куда разумнее. Засунул в него .wiki файл на выходе - html.

Как минимум потому, что введение плагинизации малофункционального инструмента типа маркдауна породит 100500 несовместимых друг с другом диалектов.

Кто этим этим будет заниматься и кто будет координировать?

А mediawiki разметкой -
- во первых уже занимается соответсвующий фонд, и если какие плагины что важного для кого и расширяют - то 99% всех спецификаций и плагинов лежат в одном месте - на сайтах фонда;
- а во вторых плагинизировать уже существующие спецификации mediawiki-разметки вообще не тянет, ибо самой проблемы типа «пользователь рано или поздно упирается в то, что чего-то не хватает и нужно делать HTML-вставки» - её попросту нет. Ибо выразительных способностей у медиа-вики-разметки с головой покрывают 99,9% потребностей связанных с созданием веб-страниц.

Denjs
()
Последнее исправление: Denjs (всего исправлений: 1)
Ответ на: комментарий от Denjs

на гиториусе приходится оформлять маны в маркдауне. так бесит после медия-вики, что хоть от гита вовсе отказывайся.... >_<

Хорошая идея вне зависимости от убожества маркдауна.

tailgunner ★★★★★
()
Ответ на: комментарий от Denjs

у вас есть что сказать? ))

Я уже все сказал, могу только повторить. Это топик про имплементацию и новый уровень реализации парсера. Для желающих обсуждать разметку маршрут следования указан предельно точно.

Vit ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Поздно дорогой, миллионы мух выбрали гит, маркдаун и яваскрипт. Скоро на земле воцарится ад и хаос!

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Поздно дорогой, миллионы мух выбрали гит, маркдаун и яваскрипт.

Да какие мухи зимой... а весной будут новые, выберут еще какое-нибудь популярное говно и всё повторится.

Скоро на земле воцарится ад и хаос!

«Q: What is the attention span of a fly?

A: Five seconds.» (ц)

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.