История изменений
Исправление 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, :
Есть разные расширения маркдауна.