LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Есть разные расширения маркдауна, особо глубоко, правда, не копал, но был прецедент встраивания в него формул на ТеХе. И, чтобы два раза не вставать, вот как выглядела моя база знаний в отрендеренном виде:

https://программирование-по-русски.рф/static/sbclt-docs.html

Исходник этого я уже вряд ли найду, хотя вот фрагмент похожего

; -*- system :ПРОЕКТ-ЧИТАТЕЛЯ; coding: utf-8; -*- 

(in-package :ПРОЕКТ-ЧИТАТЕЛЯ)
(named-readtables::in-readtable :buddens-readtable-a)


(СЕКЦИЯ ВСЁ ("" () "")

 (! о-данном-документе "" ()
    """Этот файл генерируется системой :ПРОЕКТ-ЧИТАТЕЛЯ, инструкции см. в asd файле """)

 (! обзор-требований "" ()
 """
- с одной стороны, имитируем лисп, к-рый всё читает и создаёт набор вложенных групп
- с другой, имитируем обычные языки (два этапа - лексический и синтаксический анализ)
- хотим раскрашивать во много слоёв: идентификаторы и их части, ошибочные лексемы, строки и т.п.
- хотим раскрашивать встроенные иные синтаксисы
- восстановление после ошибок на основе отступа (если ошибка, то закрываем всё, когда уменьшается отступ)
- def-symbol-readmacro
- хотим, чтобы простым сторонним просмотровщиком можно было просматривать файл, невзирая на наличие в нём symbol-readmacro-в.
"""
 :СМ-ТАКЖЕ (состав-работы-по-разбору-при-отсутствии-ошибок))


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

Читатель и пост-лексер находятся в процессе слития. А именно, прогресс читателя в одном месте (при разборе символа) ограничен: читатель не может продолжать читать за символ, пока пост-лексер не понял, что данный символ не является читающим словом.
""")

 (! def-symbol-readmacro "" (ПРОТИВОРЕЧИЕ)
    """
Решение описано в оя :: предметно-ориентированные-языки (см. описание языка Яр).
Последствия для процесса чтения: мы должны знать прочитанный символ до того, как прочитали следующую лексему, а КАК-ЕСТЬ мы узнаем его только
на этапе пост-лексера. Выход - мы связали читатель и пост-лексер и теперь читатель не может идти дальше одной буквы от конца символа. 
""")

Поделка оказалась удачной и я завёл штук 5-10 таких баз со временем, завожу их, когда нужно в чём-то разобраться или спроектировать. Особая фишка в том, что прямо в среде разработки можно ставить ссылки на лисповые определения, которые открываются по одной кнопке, ну и навигация по сущностям внутри базы знаний тоже работает.

Исправление den73, :

Есть разные расширения маркдауна, особо глубоко, правда, не копал, но был прецедент встраивания в него формул на ТеХе.

Исходная версия den73, :

Есть разные расширения маркдауна.