Возможен ли синтаксический анализатор SGML для Markdown? - PullRequest
0 голосов
/ 03 января 2019

SGML имеет множество дополнительных функций, позволяющих минимизировать разметку, таких как необязательные или подразумеваемые начальные и конечные теги и SHORTREF для более простых псевдонимов тегов. Таким образом, возможно ли написать DTD, который идеальная реализация SGML, которая всегда была редкостью или вообще отсутствовала, могла бы использовать для успешного анализа произвольных документов уценки?

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

1 Ответ

0 голосов
/ 04 января 2019

Хотя многие конструкции уценки могут быть проанализированы в HTML с использованием кратких ссылок SGML, встроенные и ссылочные ссылки уценки не могут.

Встроенные ссылки, такие как [link text](link URL), проблематичны, поскольку атрибут href созданного элемента a должен заполняться URL-адресом ссылки в качестве значения, что совсем не работает с короткими ссылками SGML. Ссылочные ссылки, кроме того, требуют неограниченного просмотра, поскольку они могут быть размещены повсюду в тексте до или после фактического использования.

Другая проблема - авто-экранирование и авто-ссылки на уценку.

Edit: просто для вашей информации, sgmljs.net (мой проект) содержит полную разметку (+ общие расширения) для перевода HTML, встроенную в синтаксический анализатор SGML, но он просто представляет объявления краткой справочной карты разметки «виртуально» через общедоступную идентификатор, который «волшебным образом» включает уценку к переводу HTML при ссылке в прологе документа; фактический перевод и обработка уценки жестко запрограммирован с использованием JavaScript (см. http://sgmljs.net/docs/markdown.html). Проблема с использованием уценки из SGML, не упомянутая в том, что уценка требует "блока разметки" (HTML-блок обобщен, чтобы разрешить любые явные теги элементов или другую разметку) конструкции), отделенные символом новой строки (ей) от предшествующего или последующего текста уценки, который является ограничением, которое не может быть зафиксировано в SGML.

...