О проекте | Версии UNIDICT | Библиотека | Изготовление книг | Форум
 
О проекте
Новости
UNIDICT Reader
  Windows
Mac OS X
Linux
Symbian
Windows Mobile
Библиотека
  Энциклопедии (5)
Словари (148)
Разговорники (25)
Справочники (21)
Старинная литература (1)
Религия и Философия (2)
Юмор (1)
Домоводство, Хобби (1)
Изготовление книг
  Язык разметки UDML
Компилятор UNIDICT
Авторам и издателям
Форум
Мобильная версия сайта

Язык разметки UDML

Версия 1.2-ru
Последняя редакция: 12 февраля 2009 г.

Содержание

Преамбула
Общие сведения об языке UDML
Структура файла UDML
Синтаксис UDML

Преамбула

UDML является основанным на HTML языком разметки исходных текстов электронных книг (в т.ч. словарей, энциклопедий и справочников) для семейства программ UNIDICT. Исходные тексты на этом языке пишутся в кодировке Unicode (а именно, UTF-8) и сохраняются в файлах с расширением udml.

Для того, чтобы книги, написанные на языке UDML были доступны для чтения в программе UNIDICT Reader, необходимо предварительно скомпилировать их в сжатые индексированные ud-файлы с помощью программы UNIDICT Compiler.

↑ Содержание

Общие сведения об языке UDML

Язык разметки UDML предназначен для создания исходных текстов любых электронных книг (в особенности гипертекстовых) и специально адаптирован для создания электронных документов типа словарей, энциклопедий и справочников с большим количеством статей, число которых может исчисляться миллионами.

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

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

UDML создавался как продолжение и естественное развитие формата исходных текстов SDCT, используемого в семействе программ Sdictionary (Sdict), и разработанного Алексеем Семёновым (http://swaj.net). В настоящее время синтаксис SDCT является подмножеством языка UDML, что даёт возможность использовать файлы формата SDCT в качестве исходных текстов электронных книг для UNIDICT Compiler без предварительной конвертации.

↑ Содержание

Структура файла UDML

Структура языка UDML (одна строка — одна статья) разработана для достижения минимально возможного размера исходных файлов при возможности быстрой обработки текста при компиляции и при выводе.

Исходный текст создаваемой электронной книги должен быть записан в виде простого текстового файла. Текст следует сохранить в кодировке UTF-8, а затем изменить расширение файла на udml.

Любой udml-файл должен начинаться с заголовочной части. Описание заголовочной части состоит из нескольких строк, начинается строкой с открывающимся тегом <header> и заканчивается строкой с закрывающимся тегом </header>. Между этими строками содержатся строки с данными о документе (вида служебное_слово=значение) в любом порядке. Служебные слова заголовочной части и сам тег <header> могут быть в любом регистре, а знак равенства может быть обрамлён не более, чем одним пробелом.

Все строки внутри тега <header>, котрые описаны ниже, являются обязательными.

Первая строка (после строки с <header>) начинается со служебного слова «title», после которого идёт знак равенства «=» и далее название электронной книги. Например:

title = Название книги

Вторая строка начинается со служебного слова «copyright», значением которого является информация об авторских правах на электронную книгу, например:

copyright = 2009 AXMA Soft Ltd

Третья строка начинается со служебного слова «version», значением которого является номер версии электронной книги.

Четвёртая строка начинается со служебного слова «w_lang», значением которого является указание языка списка статей. Язык указавается в виде двухбуквенных кодов согласно стандарту ISO 639-1 (список кодов см. на этой странице). Например, для английского языка эта строка будет выглядеть так:

w_lang = en

А для русского так:

w_lang = ru

Пятая строка начинается со служебного слова «a_lang», значением которого является указание языка текстов статей. Формат значения аналогичен w_lang. Например, для немецкого языка строка будет выглядеть так:

a_lang = de

Как было сказано выше, следующей строкой идёт строка с закрывающимся тегом </header>, после которой начинается тело электронной книги, содержащее строки со списком и текстами статей.

Далее по тексту под статьёй понимается относительно независимая часть электронной книги (глава в литературных текстах, словарная карточка с переводом или толкованием в словарях или справочниках, энциклопедическая статья в энциклопедиях).

Каждая строка после описания заголовка представляет собой отдельную статью в электронном документе (кроме строк, начинающихся со знака # и являющихся комментариями в исходном тексте).

Такая строка начинается с названия статьи, после которого идёт разделитель в виде трёх подряд символов подчёркивания «___». После разделителя идёт собственно текст статьи.

В тексте статьи не допускается использование символов переноса строки (шестнадцатиричные коды #0D и #0A), а также других символов, коды которых менее #20.

В случае, если в строке встречается больше одной последовательности символов подчёркивания длиной три символа или более, разделителем всегда считается первая такая последовательность, остальные последовательности считаются частью текста статьи.

Таким образом, содержимое стандартного udml-файла будет иметь следующий вид:

<header>
title = Название книги
copyright = AXMA Soft Ltd
version = 1.0
w_lang = en
a_lang = ru
</header>
#
#
#
abacus___helmitaulu
abandon___heitteille luopua
#
abandonment___hylkaaminen
abate___heiketa, talttua
#

Пустые строки в исходном тексте не влияют на результат компиляции, однако в случае необходимости визуального отделения строк друг от друга, рекомендуется использовать строки, начинающиеся с символа комментария — #.

Статья с аннотацией

В udml-файле может присутствовать специальная статья под названием !intro (восклицательный знак перед словом intro обязателен), содержащая аннотацию к книге. Такая статья служит введением к содержимому файла и открывается при его первой загрузке.

В зависимости от версии программы, статья с аннотацией может вызываться через отдельный элемент интерфейса (пункт меню, кнопку панели инструментов или сочетание клавиш).

Статья !intro должна находится в числе первых 100 статей файла.

Помимо краткого описания желательно включать в текст этой статьи изображение соответствующей файлу книжной обложки.

↑ Содержание

Синтаксис UDML

Синтаксис языка UDML близок к синтаксису языка HTML и имеет много общих с ним тегов. Поддерживается вывод текста различного цвета и размера, полужирное, наклонное и подчёркнутое начертание шрифта, отступы и горизонтальные линии, а также ссылки и изображения.

Теги UDML располагаются в тексте статьи, но не в её названии, и могут быть набраны в любом регистре.

<!--***--> — Комментарии в исходном тексте. Игнорируются при выводе.

<c>***</c> — Название категории. Используется для логического форматирования текста и в расширенном поиске. Выводится как обычный текст. Рекомендуется заключать в тег <color> с цветом #009966.

<li> — Выводит текст с новой строки и задаёт горизонтальный отступ на один уровень.
<li1> — Тоже, что и <li>.

<li2>, <li3>, <li4>, <li5>, <li6>, <li7>, <li8>, <li9> — Теги, задающие горизонтальный отступ на уровень от 2 до 9.

</li> — Отменяет горизонтальный отступ и начинает вывод с новой строки.

<p>***</p> — Новый абзац с выравниванием по левому краю. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Если ранее был установлен горизонтальный отступ, то его действие не отменяется и абзац начинается с учётом установленного отступа. Закрывающий тег </p> может отсутствовать.

<center>***</center> — Новый абзац с выравниванием по центру. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Если ранее был установлен горизонтальный отступ, то его действие не отменяется и абзац начинается с учётом установленного отступа.

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

<br> — Вывод текста с новой строки. Если ранее был установлен горизонтальный отступ, то его действие не отменяется и новая строка начинается с учётом установленного отступа.

<h1>***</h1> — Заголовок 1-го уровня. Выводится полужирным шрифтом размером х1.8. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Отменяет ранее установленный горизонтальный отступ.
<header>***</header > — То же, что и <h1>

<h2>***</h2> — Заголовок 2-го уровня. Выводится полужирным шрифтом размером х1.6. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Отменяет ранее установленный горизонтальный отступ.

<h3>***</h3> — Заголовок 3-го уровня. Выводится полужирным шрифтом размером х1.4. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Отменяет ранее установленный горизонтальный отступ.

<h4>***</h4> — Заголовок 4-го уровня. Выводится полужирным шрифтом размером х1.2. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Отменяет ранее установленный горизонтальный отступ.

<h5>***</h5> — Заголовок 5-го уровня. Выводится полужирным шрифтом стандартного размера. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Отменяет ранее установленный горизонтальный отступ.

<h6>***</h6> — Заголовок 6-го уровня. Выводится шрифтом стандартного размера нормального начертания. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Отменяет ранее установленный горизонтальный отступ.

<b>***</b> — Вывод текста полужирным шрифтом.
<strong>***</strong> — То же, что и <b>.

<i>***</i> — Вывод текста курсивом (наклонный шрифт).
<em>***</em> — То же, что и <i>.

<u>***</u> — Вывод подчёркнутого текста.

<r>***</r> — Ссылка на статью, находящуюся в текущем файле. Внутри тега должно находится точное название статьи (желательно с учётом регистра), на которую ссылается тег. Не может содержать теги <color> внутри или снаружи себя.

<r>http://site.com</r> — Ссылка на страницу в интернете. Открывается браузером по умолчанию. Не может содержать теги <color> внутри или снаружи себя.

<r>ftp://server.com</r> — Ссылка на ftp сервер. Открывается программой по умолчанию. Не может содержать теги <color> внутри или снаружи себя.

<r>file://path_to_local_file.ext</r> — Ссылка на локальный файл. Путь указывается относительно местоположения текущего словарного файла. Для открытия локального файла вызывается программа по умолчанию. Не может содержать теги <color> внутри или снаружи себя.

<t>***</t> — Транскрипция. Рекомендуется заключать в квадратные скобки: [<t>транскрипция</t>].

<hr> — Горизонтальная линия во всю ширину вывода. Отменяет ранее установленный горизонтальный отступ.

<color=#RRGGBB>***</color> — Устанавливает цвет в формате RGB (указывается в шестнадцатиричном виде). Значение цвета может заключаться в одинарные или двойные кавычки. Теги <color> не могут быть вложены друг в друга.

<cite>***</cite> — Пример или цитата. Используется для логического форматирования текста. Выводится как обычный текст. Рекомендуется заключать в тег <color> с цветом #808080.

<small>***</small > — Вывод текста шрифтом меньшего размера.

<sup>***</sup> — Вывод текста в виде верхнего индекса.

<sub>***</sub> — Вывод текста в виде нижнего индекса.

<img src=path/image.ext> — Вывод изображений форматов png, gif или jpg (jpeg). Путь может заключаться в одинарные или двойные кавычки. Путь к изображению — относительный и не может содержать пробелов. Изображение выводится с новой строки и выравнивается по левой части экрана (игнорируя установленный другими тегами горизонтальный отступ), без вертикальных отступов. После изображения устанавливается горизонтальный отступ, равный немногим больше ширины изображения.

<code>***</code> — Вывод абзаца моноширинным шрифтом. Перед этим элементом и после него всегда добавляется пустая строка (вертикальный отступ). Если ранее был установлен горизонтальный отступ, то его действие не отменяется и абзац начинается с учётом установленного отступа.

<html>***</html> — Контейнер HTML. Синтаксис внутри контейнера аналогичен HTML. Отображается как ссылка на локальную страницу, открывающуюся в браузере по умолчанию. Контейнер не может быть вложен в тег <r>.

↑ Содержание

Windows
Mac OS X
Linux
Symbian
Windows Mobile
© 2007-2010 Компания АКСМА Софт