СоХабр закрыт.
С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.
Приветствую всех Хабражителей!
Сегодня я хочу рассказать вам об одном инструменте, который мне очень, очень понравился. Если вы планируете создавать веб-версии ваших книг, документации и тому подобных вещей — этот инструмент достоин вашего внимания.
.md
-файл, попробовал сконвертировать. В целом вышло аккуратно, но слишком примитивно. Да, можно было бы прикрутить свой CSS, но хотелось чего-нибудь готовенького. В общем, понял: нет, это не оно.Write your books and courses using Markdown, GitBook will convert it to a complete static website.
.md
-файлов! Это именно то, что я искал. Собственно, об этом инструменте и пойдёт речь далее.gitbook
так:$ npm install gitbook -g
npm
автоматически установится вместе с ним. В общем, установил. Далее выполнил ту самую команду:$ npm install gitbook -g
gitbook
был уже у меня.Websites for you and your projects. Hosted directly from your GitHub repository. Just edit, push, and your changes are live.
gh-pages
, что-то в неё положить, закоммитить-запушить — и вот уже нас встречает ваша GitHub-страница. Однако, как выяснилось, делать всё это следует в точности как описано здесь. В общем, сделал — и веб-страница уже тут: denisshevchenko.github.io/ohaskell/index.html. Обращаю ваше внимание: после первого пуша в ветку gh-pages
страница становится доступной не мгновенно, а через несколько минут..md
-файлы. Синтаксис Markdown-формата описывать не стану, ибо раз и два. Обрадовался я и, сломя голову, ринулся в бой: радостно создав .md
-варианты первых четырёх вступительных глав, кинул их в каталог, попробовал собрать — и разумеется, ничего не получилось. Как выяснилось, нельзя скормить утилите gitbook
кучу .md
-файлов. Необходима структура. Поэтому в ветке master
я создал следующее:README.md # Титульный лист книги
SUMMARY.md # Описание структуры книги
intro/
README.md # Введение к вступительной части книги
for-whom.md
what-for.md
who.md
why.md
master
будет лежать Markdown-версия книги, а в ветке gh-pages
— веб-версия. Обращаю ваше внимание: файлы README.md
и SUMMARY.md
необходимы. В первом из них пишем некое общее введение, которое станет титульной веб-страницей книги. А вот в SUMMARY.md
необходимо описать структуру книги. В моём случае это выглядит так:### Summary
* [Лирическое вступление](intro/README.md)
* [Кто](intro/who.md)
* [Почему](intro/why.md)
* [Зачем](intro/what-for.md)
* [Для кого](intro/for-whom.md)
SUMMARY.md
, частью веб-книги не станут.$ gitbook build ./ --github=denisshevchenko/ohaskell --title="О Haskell по-человечески"
Starting build ...
Successfuly built !
--github=denisshevchenko/ohaskell
. Здесь denisshevchenko
— имя моего профиля на GitHub, а ohaskell
— имя репозитория._book
, а в ней — о чудо! — лежал готовый сайтик:_book/
README.html # Титульный лист книги
SUMMARY.md
gitbook/
app.js
fonts/
images/
jsrepl/
index.html # Стартовая страница сайта
intro/ # Сгенерированные страницы первой части книги
README.html
for-whom.html
what-for.html
who.html
why.html
master
.$ git checkout gh-pages
$ git checkout master -- _book
$ git mv _book/* .
gh-pages
. Второй командой забираем из ветки master
тот самый каталог _book
, созданный gitbook
-ом. Третьей командой вытаскиваем содержимое этого каталога в корень ветки gh-pages
. К сожалению, я так и не выяснил, как забрать из другой ветки лишь содержимое каталога, а не весь каталог. Завершаем:$ git add .
$ git commit -a -m "FIrst init for real book."
$ git push origin gh-pages
gitbook
-а и поправить. Нужно будет изучить этот вопрос.
комментарии (23)