Как написать книгу

Как начать книгу, собрать оглавление из частей и глав, написать каждую главу в Markdown и опубликовать её на сайте или из папки файлов через lt.

Книга — одна работа, которую читают по главе за раз: учебник, монография, конспект лекций, переписанный в сплошной текст. Это руководство собирает книгу на сайте, а затем показывает ту же книгу в виде файлов, опубликованную через lt, клиент LibreTimes для командной строки. Почему книга — это дерево глав и почему её адреса после публикации никогда не меняются, объясняется в статье Как устроена книга.

Начать книгу

  1. Откройте /new (туда ведёт Новая публикация на главной) и выберите Книга.
  2. Выберите язык, на котором написана книга, затем Начать книгу.

Редактор откроется с оглавлением слева и открытой главой рядом. Название книги, описание, категории и соавторы задаются в том же редакторе. Книга остаётся приватным черновиком, пока вы её не опубликуете.

Собрать оглавление

  1. Выберите Добавить главу. В оглавлении появится новый раздел.
  2. Задайте его Тип: глава, часть, том, раздел, предисловие и так далее.
  3. Задайте Номер — число или слово, которое книга печатает для него, например 1, II или Приложение А, — и Заголовок, если он есть.
  4. При желании дайте ему Адрес — короткое имя для цитирования в собственной нумерации книги, например I.1. Он должен быть уникальным в пределах книги.
  5. Чтобы поместить главу внутрь части, выберите главу и Вложить в предыдущий. Вынести на уровень выше, Выше и Ниже меняют дерево.

Часть без собственного текста показывается в оглавлении как заголовок, объединяющий её главы; читатель её не открывает. Дайте ей текст, например введение в часть, и она тоже станет страницей.

Написать главу

  1. Выберите главу в оглавлении и щёлкните по её Тексту, чтобы редактировать.
  2. Напишите главу на LibreTimes Markdown так же, как любую другую работу.

Номер и заголовок главы — это заголовок страницы, поэтому текст их не повторяет, а разделы внутри начинаются с ##. Сноски нумеруются в каждой главе заново. Здесь работает весь диалект, а конструкции, пришедшие из книг, здесь как дома:

Результат

Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему.

— Лев Толстой, Анна Каренина

С утра в доме было тихо.


К вечеру пришло письмо:

Дорогая Анна,

буду на вокзале в девять.

Ваш,
С.

Markdown
:::epigraph
Все счастливые семьи похожи друг на друга, каждая несчастливая семья
несчастлива по-своему.
 
--- Лев Толстой, *Анна Каренина*
:::
 
С утра в доме было тихо.
 
---
 
К вечеру пришло письмо:
 
:::letter
Дорогая Анна,
 
буду на вокзале в девять.
 
Ваш,\
С.
:::

Строка --- сама по себе — разрыв сцены, который книга может показывать астеризмом по центру. О стихах, капители и номерах страниц печатного издания смотрите Стихи, эпиграфы и письма.

Опубликовать книгу

  1. Проверьте, что хотя бы в одной главе есть текст: книгу без текста опубликовать нельзя.
  2. Добавьте категории и теги, по которым читатели её найдут.
  3. Выберите Создать публикацию, указав рядом нужную видимость.

С этого момента адрес каждой главы, …/read/<n>, закреплён. Перемещённая глава сохраняет адрес; новая получает следующий свободный номер; адрес удалённой главы выводится из обращения и не достаётся другой главе. Поэтому ссылки на главы в программе курса или в цитате продолжают работать.

Или напишите её файлами и опубликуйте через lt

Если вы держите книгу в файлах — под системой контроля версий или рядом с исходниками LaTeX, — lt публикует её из папки: по одному файлу Markdown на главу и один манифест со сведениями о книге и её оглавлением по порядку.

  1. Положите текст каждой главы в отдельный файл .md.

  2. Напишите манифест book.md с type: book и деревом оглавления:

    ---
    import_key: ivanov/analysis-book
    type: book
    title: Анализ
    language: ru
    license: cc_by_sa
    contents:
      - file: preface.md
        kind: front_matter
        label: Предисловие
      - label: Часть I
        title: Пределы
        children:
          - file: 01-sequences.md
            label: "1"
            title: Последовательности
            ref: I.1
          - file: 02-series.md
            label: "2"
            title: Ряды
            ref: I.2
    ---
  3. Проверьте, что произойдёт, затем опубликуйте:

    lt work publish my-book/book.md --dry-run
    lt work publish my-book/book.md --yes

Запись с children и без файла — это часть, которая показывается в оглавлении заголовком. ref — это Адрес главы. Дайте его каждой главе: при повторном запуске lt сопоставляет главы с сайтом по нему, так что перестановка в манифесте перемещает главы вместе с текстом. import_key — то, благодаря чему следующий запуск обновит эту книгу, а не создаст вторую. Полный набор ключей — в README lt.

Результат

У опубликованной книги есть оглавление со списком частей и глав, а каждая глава с текстом — отдельная страница со ссылкой на следующую. Её адрес, …/read/<n>, остаётся прежним, пока глава существует.