Форматы: Textile

12.11.2024

Textileopen in new window — облегченный язык разметки используемый в некоторых CMSopen in new window. Формат, прежде всего, направлен на преобразования текста в HTML, поэтому большинство элементов разметки соответствуют элементам HTML и есть возможность переопределить класс и идентификатор элемента HTML.

Блоки

Документ в разметке Textile разделен на блоки. Блоки разделяются пустыми строками. Блоки примерно равны абзацам текста. Блоки могут быть разных типов и тип блока определяется первыми символами. Например,

p. обычный абзац

h1. заголовок первого уровня

bc. блок кода

Первые символы — идентификатор блока. Идентификатор блока завершается точкой. Если идентификатор блока не указан, то тип блока по умолчанию — обычный абзац.

Расширенный блок может включать в себя пустые строки. У расширенного блока в конце идентификатора две точки. Например, таким блоком может быть цитата из нескольких абзацев.

bq.. Первый абзац цитаты

Второй абзац цитаты.

Расширенный блок завершается новой строкой с идентификатором типа блока или окончанием документа.

Абзацы

Две строки, не разделенные пустой строкой, трактуются как один абзац, с принудительным переводом строки.

A paragraph.

And a paragraph with
a line break.

Результат в HTML:

<p>A paragraph.</p>

<p>And a paragraph with<br>
a line break.</p>

Списки

Уровень маркированных и нумерованных списков задаётся количеством символов списков.

* Маркированный список, первый уровень
** Элемент второго уровня
** Следующий элемент второго уровня

# Нумерованный список, первый уровень
## Элемент второго уровня
## Следующий элемент второго уровня

Список определений

В Textile присутствует отдельный элемент для списка определений, аналогично HTML.

- Термин1 := Определение термина

- Термин2 := Определение из двух строк
поэтому определение заканчивается специальным символом =:

Сноски

Сноски могут быть двух видов: нумерованные и с текстовым идентификатором.

Предложение с нумерованной сноской.[1]

fn1. Текст сноски
Предложение [#first] со сносками в виде текстового идентификатора.[#second]

note#first. Первая сноска.

note#second. Вторая сноска.

Ссылки и изображения

Синтаксис ссылок:

"Wikipedia":https://en.wikipedia.org/

Синтаксис изображений:

The original Textpattern carver: !/carver.png!

Таблицы

Синтаксис таблиц минималистичный.

| A | simple | table | row |
| And | another | table | row |
| With an | | empty | cell |

Есть возможности задавать заголовок таблицы, объединять ячейки в колонках и столбцах таблицы, однако, эти элементыopen in new window выглядят уже сложнее.

Выравнивание и отступы

В блоках можно задавать способ выравниванияopen in new window и отступыopen in new window. Выглядит разметка следующим образом:

p<. Выравнивание по левому краю.

p>. Выравнивание по правому краю.

p=. Выравнивание по центру.

p<>. Выравнивание по ширине.

Отступы задаются с помощью скобок:

p(. Left indent 1em.

p((. Left indent 2em.

p(((. Left indent 3em.

p)>. right indent 1em

p))>. right indent 2em

p)))>. right indent 3em

Классы и идентификаторы

Перед точкой в идентификаторе типа блока можно задать класс и идентификатор элемента в формате (class#id).

p(myclass#myid). This paragraph has both a @class@ and an @id@.

Язык

Так же можно задать язык (атрибут элемента HTML lang) с помощью квадратных скобок.

p[fr]. Partir, c'est toujours mourir un peu.

Специальные символы

Несколько особых символов Unicode можно задать через специальные последовательностиopen in new window внутри круглых скобок.

Trademark(tm)
Registered(R)
Copyright (C) 2008
One quarter (1/4) symbol
One half (1/2) symbol
Three quarters (3/4) symbol
Degree (o) symbol
Plus/minus (+/-) symbol

Заключение

Формат Textile тесно связан с HTML, это преимущество для генерации веб-страниц, но недостаток если нужен экспорт в разные форматы. Для разных форматов больше подходит логическая разметка, в меньшей степени ориентированная на визуальное представление.

Удобно выглядит способ задания типов блоков через идентификаторы и использование синтаксиса идентификаторов для добавления в блок класса, идентификатора элемента и даже CSS.

Последниее изменение: