The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

24.12.2014 17:07

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

Парсер написан на JavaScript и распространяется под лицензией MIT. Поддерживается работа как в браузере, так и в Node.js. Несмотря на язык программирования и заложенную гибкость, markdown-it имеет очень высокую скорость, уступая только скомпилированным вариантам на С (у которых нет подобной расширяемости). Другой приятной особенностью парсера является следование спецификации CommonMark.

  1. Главная ссылка к новости (https://github.com/markdown-it...)
  2. OpenNews: Увидел свет текстовый редактор ReText 3.0, поддерживающий разметку Markdown и ReStructuredText
  3. OpenNews: В рамках проекта Fontello подготовлен генератор иконочных шрифтов для Web
Автор новости: _Vitaly_
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41336-markdown
Ключевые слова: markdown
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 19:30, 24/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Сейчас начнется вой "где-то слышавших" про тормоза JavaScript, но...

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

     
     
  • 2.2, th3m3 (ok), 19:42, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что но? Практически любой сайт на вашем js люто бешенно тормозит. Взять тот же Facebook.
    А яваскриптеры при любом случае пытаются заявлять, что javascript сравним по скорости с C/C++. Так про любой ЯП можно говорить. Ведь в каких-то тестах или моментах, практически любой ЯП может походить по скорости на C/C++.

    А многие свято верят, что если писать на javascript, то скорость будет как у C/C++. Ну-ну =)

     
     
  • 3.4, Аноним (-), 20:06, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что там тормозит? JavaScript? Или DOM-представление документа? Так это не JavaScript, а отдельная сущность, имеющая API для доступа из JS. Код на C++ не менее тормозной когда обращается к внешним API, тем же базам данных. Но никто же не делает таких же тупых заявлений про него?

    > А многие свято верят, что если писать на javascript, то скорость будет как у C/C++. Ну-ну =)

    Будет. По-твоему разница в производительности между JS и C++ в синтаксисе и именно синтаксис тормозит? Разница в интерпретаторе/компиляторе. Из JS можно хоть в машинный код скомпилировать и зафиксировать его в виде исполняемого бинарника в файловой системе. И JS, и С++-код - суть синтаксический сахар для ассемблерных команд, который сам является синтаксическим сахаром для машинных команд.

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

     
     
  • 4.5, Аноним (-), 20:48, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сферический конь настолько сферичен, что  развивает скорость света в вакууме.


    Но на земле  эта умрающая кляча  делает 10 км/ч,  все из за  телеги с навозом  и неумелого деда с хлыстом.

     
  • 4.6, th3m3 (ok), 20:57, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и ахинею ты несёшь. Компилировать много других ЯП, тоже можно. Но все и всё поголовно не компилируют же.

    Давай возьмём реальный пример. Яваскриптеры кипятком писают от Brackets, типо редактор на js. Он тормозит более чем полностью. А теперь возьмём Sublime Text, который написан на C(или C++) и он быстр и бодр. И в каком это месте у нас тут js сравним с C/C++? Да ни в каком. Т.к. это байки для слоупоков. Как я уже говорил, любой ЯП можно сравнить с C/C++, т.к. на некоторых тестах этого можно добиться, с некоторыми ухищрениями и т.д. Но ведь это не будет являться постоянной величиной.

    Вы яваскриптеры фанатики, свято верите во всю эту чушь.

     
     
  • 5.7, Аноним (-), 21:11, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А почему ты снова не учитываешь манипуляции с DOM приводя в пример Brackets? Почему сравниваешь юзер-энд, а не сопоставимые по внутренней работе вещи? Взялся сравнивать подсветку синтаксиса там и там - будь добр учитывать толстые браузерные прослойки до функций рендеринга системы, необходимость оборачивать в <span>, назначать ему style мне цветом и делать reflow ВСЕГО документа при отображении итогового текста (по-другому браузер не умеют).

    Другой пример тебе. Там, где DOM-манипуляции не используются. Сервер WebSockets на NodeJS, держит миллионы соединений на одном сервере без каких-либо тормозов. Попробуй докажи что чистый JS - тормоз.

     
     
  • 6.18, th3m3 (ok), 00:16, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Уже пошла вода опять.

    Давай так: голый javascript по скорости ЭТО НЕ C/C++.
    Всякие там компиляции, asm.js и т.д. это уже дополнительные костыли, которых в других языках тоже навалом. Питон может превзойти по скорости С, но я не говорю теперь на каждом шагу, что Python быстрее C/C++.

     
     
  • 7.21, Аноним (-), 00:33, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и я не говорю на каждом шагу что JS быстрее C/C++. Я развеиваю популярное заблуждение основанное на крайне поверхностной оценке скорости работы фейсбука или мэйла в каком-нибудь ишаке. JS сейчас стало модно ругать, только почти все кто этим занимается даже не представляют в чем собственно проблема тормозов.

    В QML из Qt, который тоже ругают всякие крикуны, тормоза исключены - в нем API взаимодействия с графическими объектами заточен под задачу. Собственно это и доказывает плавность работы на слабеньких смартфонах. Кто видел тот знает. Ан нет, все равно кричат.

    С другой стороны, в браузерах сколько не придумывай новые языки, тормоза будут. Даже если Фейсбук перепишут на Dart, они останутся. Да, математические вычисления будут чуть быстрее выполняться, но за изменениями DOM-модели это все будет теряться и в целом со стороны пользователя никак не ощущаться.

     
     
  • 8.22, th3m3 (ok), 00:55, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ок Я понял твою позицию, ты мою тоже Да, я согласен с тобой Просто часто стал... текст свёрнут, показать
     
     
  • 9.33, Аноним (-), 20:15, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Для языка с динамической нестрогой типизацией и автоматическим управлением памят... текст свёрнут, показать
     
  • 4.14, Аноним (-), 22:41, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Будет.

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

    А если попытаться что-то с этим сделать, получается вообще жесть. Jit лопает память гигазами и прочая.

    > именно синтаксис тормозит?

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

    > машинный код скомпилировать и зафиксировать его в виде исполняемого бинарника в
    > файловой системе.

    Вот только из-за динамической типизации не получится делать операции с базовыми типами столь же эффективно как в каком-нибудь си. В си работа с переменной в лучшем случае операция регистр-регистр, что очень быстро. А JS придется сто раз проверить что из числа не сделали что-нибудь еще. И вот так везде.

    > ассемблерных команд, который сам является синтаксическим сахаром для машинных команд.

    Вот только в JS некоторые фичи сахара не позволяют хорошо оптимизировать поток ассемблерных команд под конкретную ситуацию.

    > работе интерпретаторов/компиляторов не разбираются.

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

     
     
  • 5.16, Аноним (-), 22:49, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Бла-бла-бла динамическая типизация бла-бла-бла

    man asm.js

     
     
  • 6.28, arisu (ok), 07:00, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Бла-бла-бла динамическая типизация бла-бла-бла
    > man asm.js

    вот только это уже не javascript, а весьма кривое и костыльное подмножество. но тебе же без разницы, правда? лишь бы буквы «js» были, а там пофигу.

     
  • 4.20, vn971 (ok), 00:31, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ещё тут выше забыли упомянуть gc, а это тоже влияет..
     
  • 4.27, arisu (ok), 06:59, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вообще, ты даже не представляешь как глупо выглядят суждения о тормозах JS
    > от людей которые не то что с JS никогда дела не
    > имели и судят о нем по фейсбукам, но и банально в
    > работе интерпретаторов/компиляторов не разбираются.

    рассуждения о скорости тоже.

     
  • 2.11, Аноним (-), 22:33, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Сейчас начнется вой "где-то слышавших" про тормоза JavaScript, но...

    Я только сегодня видел как сpaный мылру жрал 60% CPU яваскриптом. Больше чем видеоплеер игравший видео!!!

     
     
  • 3.13, Аноним (-), 22:39, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У них и софт на сях столько же жрет...
     
     
  • 4.15, Аноним (-), 22:42, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У них и софт на сях столько же жрет...

    А какой у них софт на сях? И что он делает? JS настолько клал проц при обычном рефреше коментов. Поставил несчастным хомякам YesScript и побустал особо зарывавшиеся куски.

     
     
  • 5.17, Аноним (-), 22:53, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А какой у них софт на сях? И что он делает?

    Всякие перделки вроде Спутника.

    > JS настолько клал проц при обычном рефреше коментов.

    И снова приходим к тому что были манипуляции с DOM. Они еще поди шаблоны комментариев компилировали в памяти.

     
     
  • 6.34, odd.mean (ok), 04:10, 26/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Коллега, если у "Спутника" есть кусок кода "на сях", это ещё не значит, что С/C++ это зло:) Ребята из Алькаиды, между прочим, наверняка пользуются унитазом - стану-ка я гадить с балкона!
     
     
  • 7.35, Аноним (-), 09:41, 26/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я подобного не утверждал.
    Просто гoвнoкодить контора умеет и 60% загрузки браузером не показатель низкой работоспособности JS.
     
  • 2.32, qwert (??), 20:05, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    программа написанная на С/С++ работает быстрее С/С++? ну ну
     

  • 1.3, _Vitaly_ (ok), 19:46, 24/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На самом деле там трудно сравнить полностью корректно, потому что во всех парсерах логика приколочена гвоздями, а здесь довольно серьезная система плагинов.

    Но яваскриптовые он при этом заруливает со свистом. Скомпилированному cmark уступает раз в пять, но... не забываем про плагины. Если их выпилить, скорость наверное можно было бы раза в 2-3 поднять, хотя клясться не буду.

     
     
  • 2.19, th3m3 (ok), 00:23, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Если это ответ мне, то я не про сам пост говорил. Про ваш софт я ничего плохого не говорю. И ВЕРЮ, что оно быстрое. Просто некоторые люди, говорят, что голый js тоже самое, что и C/C++. А когда начинаешь докапываться, почему так, они сразу начинают рассказывать про компиляцию, про asm.js... А сам то js без всего этого не может походить на С/C++. Я только этим возмущён.
     
     
  • 3.23, _Vitaly_ (ok), 01:52, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это был комментарий для первого анонимуса, просто не туда заслал. Ну а так на галерке с матчастью полная пичалька. Бейджик асмджээс полностью заменяет людям знания про мономорфный код, инлайновые кеши, и вообще избавляет мозг от необходимости думать.

    Весь JS делать быстрым не реально. Писать все в сишном стиле, не имея соответствующих инструментов - это полный бред. Но можно выбирать узкие места, и делать быстрыми именно их, чем я и занимаюсь. На zlib получилась разница меньше полутора раз. Сам офигел. С маркдауном пожиже, т.к. промежуточные данные сильно кучерявые, и нет желание устраивать там ради скорости совсем ад. Но по большому счету скорость всем пофик :) . Это просто мое развлечение, так проекты делать иногда.

     
     
  • 4.29, Аноним (-), 14:37, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Бейджик асмджээс полностью заменяет людям знания про мономорфный код, инлайновые кеши, и вообще избавляет мозг от необходимости думать.

    Специально для тебя: http://www.opennet.me/openforum/vsluhforumID3/101003.html#21

     

  • 1.9, ZloySergant (ok), 21:55, 24/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Йоперный теятр.
    Как человек, в основном использующий redcloth (textile), могу таки сказать: лучше бы в него правки внесли, а то наматюгалсы ужо на парсер, собственные мозги (20-25 bash/sed-костылей на один проект)...

    З.Ы. Таки да, марк-даун мне не понравился.

     
  • 1.10, Аноним (-), 22:01, 24/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ведро помоев написанное на JS для JS,

    Ждем нормальную реинкарнацию на Dart и ECMAScript.

     
     
  • 2.12, Аноним (-), 22:33, 24/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Ждем нормальную реинкарнацию на С++ или накрайняк Go //fixed
     

  • 1.24, Организация Объединённых Тюленей (?), 04:32, 25/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это бывший remarkable, я так понимаю?
     
     
  • 2.25, _Vitaly_ (ok), 04:42, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Это бывший remarkable, я так понимаю?

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

    Ну а по факту там уже устаревающий код, написанный мной же и еще одним человеком, а все апдейты льются на новое место.

     
  • 2.26, Аноним (-), 05:03, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да.
     

  • 1.30, Lavir the Whiolet (?), 15:03, 25/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    При этом документации по написанию плагинов к нему даже меньше, чем у https://github.com/LavirtheWhiolet/self-bootstrap .
     
     
  • 2.31, анонисимус (?), 15:23, 25/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    поддерживаю автор известный лалище, хотели как-то с пацанами переехать на ndoc [1], так там куча ошибок, это всё без доков, хоть и заявляется что вдохновлено с pdoc [2], но до пдок ещё далеко-далеко.

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

    а кому нужно по __настоящему__ нормальный расширяемый почти маркдоун для написания чего-то, тот использует асцидоктор [3], для поклонников браузера он может исполнятся и там, вместе с опал [4], и это всё без напряжений. То есть плюсы - плагины, хорошоая документация и браузер уже переваливают эту поделку.


    1 - [ndoc](https://github.com/nodeca/ndoc)
    2 - [pdoc](http://pdoc.org/)
    3 - [asciidoctor](http://asciidoctor.org/docs/what-is-asciidoc/)
    4 - [opal](http://opalrb.org/)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру