TGViewer
DocOps DocOps @docops · 4.27K subscribers
Post #405 2.07K

Forwarded from Arina Ballerina

Привет! TLDR

Пару месяцев назад я решала проблему — чем генерить документацию в PDF, если у тебя доку собирает MkDocs, который из коробки этого не умеет. Просила тут помощи и обещала здесь же отписаться, что пробовала, к какому решению пришла. Я начинающий автоматизатор, могу написать простенький скрипт на баше или питоне, не больше. В сторону генерации из HTML я сразу не пошла, так как там не одностраничный документ и CSS для меня это слишком сложно. Поэтому я смотрела конвертеры из Markdown в PDF.

Что я пробовала:

1. Конвертер https://hub.docker.com/r/fiware/md2pdf/. Мне с разбега даже hello world не дался, нужно разбираться в настройках. Если бы не помог @glu0n, я бы может и не справилась. Результат очень не очень внешне + не работает с кириллицей из коробки. Зато не нужно собирать всё в один файл, он это делает за вас, ему можно скормить тот же конфиг что уже есть в MkDocs.

2. Typora https://typora.io/. Самое простое и быстрое решение. Делает все через Pandoc, очень хорошо настроен шаблон, PDF получается эстетичный, правильно подсвечивает код. Можно скачать десктопное приложение. Cобственно я так и сделала, когда мне нужно было сделать PDF быстро. Минусы: все равно кое-чего не хватает например, в готовом PDF нет номеров страниц, нужно как-то собирать все md-файлы в один, ну и герерить придется руками (зато GUI).

3. Foliant https://github.com/foliant-docs. Самый серьезный инструмент, делает всё, что нужно. Тоже генерит через Pandoc. Тоже не нужно собирать ему один файл. Разобраться самостоятельно можно, есть документация, хотя мне все-таки потребовалась помощь создателей, но они слава богу отвечают в чате. Из коробки PDF у меня получился достаточно приличного качества. Но стало понятно, что если я хочу что-то поправить, то нужно будет самой настраивать шаблон, плюс Foliant по-моему нет смысла использовать только для сборки PDF, он не использует ваш конфиг MkDocs, использует свой конфиг с содержанием (foliant.yml). По-хорошему нужно делать сборку всех форматов доки Фолиантом.

4. Pandoc. Полный контроль над процессом, но настройка, самое сложное — LaTeX-шаблон. Ну и собирать все md-файлы в один тоже придется. Килограммы документации, и она неплохая.

Как я генерирую PDF в итоге:

Стало понятно что все равно придется настраивать LaTeX-шаблон. И надо склеить md-файлы в один. Так как я контрол-фрик, да и сборка html-документации в MkDocs у меня уже настроена, я не стала склеивать файлы сторонней тулзой. Я написала короткий Python-скрипт, который парсит YAML-конфиг MkDocs и собирает один md-файл. Этот один я скармливаю Pandoc. Использую --pdf-engine=xelatex. Обложку с названием документа дизайнер сделал в PDF и я ее приклеиваю в конце с помощью pdfunite. Осталось разобраться в туче параметров tex-шаблонов.
More from @docops
  1. Nov 12, 2024Чему я научился: софт-скиллы, пост 2/N. Прошел первый модуль курса по софт-скиллам и у мен…
  2. Nov 5, 2024Встретил замечательную фразу. Человек спрашивает, можно ли использовать OneDrive в качеств…
  3. Sep 26, 2024Чему я научился: софт-скиллы, пост 1/N. Есть такое довольно универсальное правило: чтобы ч…
  4. Sep 26, 2024Чему я научился в этом году Год выдался очень насыщенным: я делал совершенно новые для мен…
  5. Aug 19, 2024Как я выгорел У меня долгое время было ощущение, что надо сжать булки, ещё немного поработ…
  6. Jun 26, 2024Ну и где бездушная машина неправа?
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →