Skip to content

Documentation build system in various formats (such as .hlf, .html, .md, ...) from the single Markdown-based source

License

Notifications You must be signed in to change notification settings

FarManagerLegacy/HelpDown-scripts

Repository files navigation

HelpDown Makefile scripts

Предлагается система сборки документации в различных форматах (.hlf, .html, и .md для форума) из единого источника на базе Markdown.

Система представляет собой базовый Makefile, и несколько lua-скриптов (“фильтров”), необходимых для тонкой настройки вывода.

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

Требования:

Для чего же нужны фильтры, приведу лишь несколько примеров:

  • Для md, в частности для публикации на Github:

    • При конвертации в Github-flavored Markdown у заголовков пропадают id, указанные посредством attribute syntax, а значит ломаются ссылки. Их можно исправить, используя “автоматические идентификаторы” (Implicit Headers IDs).
    • DefinitionList (Description List) не является стандартной фичей маркдауна, его надо заменить на BulletList.
  • Для hlf:

    • Cформировать индекс справки, и в каждый раздел добавить перекрёстные ссылки на другие (например в верхнем блоке как в справке LuaCheck. Или в нижнем, как в BufferScroll).
    • Выделить внутренние заголовки, добавив их содержимому дополнительный отступ.
  • Для презентации какого-либо скрипта на форуме его документацию стоит специально подготовить, в частности:

    • Исправить форматирование при наличии одиночного *, поскольку стандартный способ экранирования слешем на форуме не работает.
    • Преобразование ссылок:
      • Движок форума не создаёт внутренние ссылки, поэтому их надо убрать (заменить на просто жирный текст).
      • Ссылки на справку фара работают только в hlf. А в html, в md и для форума их надо заменять на что-то более полезное.
      • Аналогично со ссылками на локальные *.chm и пр.
    • Поместить все разделы кроме первого в спойлеры, чтобы сэкономить место в посте.

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

  • Для html полезно Title не оставлять пустой, а продублировать туда первый Header.

Чтобы подключить всё это к своему проекту достаточно Makefile подобного примеру в Makefile.sample.
Всё, теперь при наличии исходного документа в файле с расширением *.text достаточно запустить команду make для создания *.hlf.
Или же явно указать цель: make hlf, make html, make forum.
В качестве цели также может быть указано имя результирующего файла.

About

Documentation build system in various formats (such as .hlf, .html, .md, ...) from the single Markdown-based source

Topics

Resources

License

Stars

Watchers

Forks