ПРОЕКТ Рабочее название: beautiful. Дата начала работы: 10.02.2003. Дата внесения последних изменений: 06.09.2008. A. Цель проекта: 1. Разработать формат файла и общие рекомендации дл исходных файлов Лексикона для ДОС, конвертируемых в другие форматы. 2. Разработать «единый стиль» и общие рекомендации по его применению для проектов технического писателя Юрия А. Денисова. 3. Написать эффективный конвертер файлов ЛЕКСИКОН для ДОС версий 8.0 – 1.4 в форматы HTML. B. Используемые инструменты: 1. Программа Lexicon For DOS v. 1.4. – текстовый процессор для подготовки исходного текста нужного формата. 2. Программа Lexicon For DOS v. 8.8 – текстовый процессор для подготовки исходного текста нужного формата. 3. Программа ruscod.com – для преобразования кодировок. 4. Программа Multi Edit v. 7.0. текстовый редактор с макросами для конверсии форматов. 5. Программа Lex2Rtf – для прямой конверсии файлов Lexicon For DOS в Rich Text Format напрямую. 6. Программа Multi-Edit v. 8.0f – текстовый редактор под Windows 32-бит. 7. Программа Brief Editor Rus – простой текстовый редактор- конвертер файлов. 8. Программа AkelPad – текстовый редактор – конвертер файлов (используется в Total Commander). 9. Файловый менеджер: Total Commander. 10. Файловый менеджер: FriGate Lite. 11. Графический процессор The Gimp. 12. Графический растровый редактор ZSoft Photo Finish. 13. Графический просмотрщик IrfanView 4.10. 14. Графический просмотрщик XnView. 15. Векторный графический редактор Xara X. 16. Программа рисования блок-схем Flow Chat PDQ Lite. 17. HTML редактор Macromedia HomeSite. 18. HTML редактор Chami HTML-Kit. 19. Офисный пакет Sun Microsystems Open Office. 20. Редактор CSS стилей Bradbury TopStyle Light 2.1. 21. Язык программирования ActiveState Perl 5.8.0. C. Общие сведения. В процессе разработки проекта станет возможным конверсия файлов Лексикон для ДОС в формат HTML с минимальным изменением оформления текста. Данный проект распространяется на файлы с текстом на русском и английском языках. Тестирование для текстов на других языках не входит в задачи проекта. В процессе конверсии текстового файла формата Лексикон для ДОС в формат HTML используется «смешанный» стандарт HTML (3.2 + 4.0). Доведение же HTML-текста до точного соответствия одному из форматов осуществляется с помощью редактора Chami HTML-Kit, Macromedia HomeSite и Bradbury Top Style 2.1. Конвертируемые файлы Лексикона для ДОС должны представлять собой сплошной текст, без переносов и выравнивания, не содержащий таблиц и рисунков, но включающий заголовки таблиц и подрисуночные подписи, заголовки и гиперссылки. Выделение текста возможно начертанием и подчёркиванием символов, но никак не гарнитурой или размером (кеглем) шрифта. Изменение шрифтового и абзацного оформления текста возможно только с его логическими частями (например, в заголовках). Конвертированный HTML файл содержит в себе: * заголовки различных уровней. При этом гарнитурой и размером, возможно, выделяются заголовки H1-H3, остальные заголовки имеют стандартное шрифтовое оформление; * собственно текст. Каждый абзац текста имеет отбивки 6 пунктов и абзацный отступ 0,8 см. По-умолчанию задаётся также гарнитура – Times New Roman, нормальное начертание, кегль 12 пунктов, интервал 14 пунктов (один интервал), центрирование по левому краю или по ширине. Кроме того, логически существуют следующие виды текста; * «квадратный» текст. Его оформление соответствует оформлению обычного абзаца с текстом, но при этом отсутствует абзацный отступ; * «примечание». Примечание печатается шрифтом с кеглем 80% от обычного, у него может отсутствовать абзацный отступ; В тестовом абзаце любого типа возможно выделение начертанием и подчёркиванием символов (как физическое, так и логическое), а также внешние и внутренние гиперссылки. * маркированные и немаркированные списки; * заголовки таблицы; * подрисуночные подписи. D. Формат файлов Лексикона. D.1. Недокументированные в руководстве Лексикон для ДОС сведения о формате файлов. Файлы Лексикона для ДОС представляют собой обычные текстовые файлы в кодировке OEM, в которых также содержится служебная информация о выделении, записанная служебными символами. Наиболее важным служебным символом, указывающий, как маяк кораблю, на присутствие символа форматирования, является символ ASCII 255 (Hex FF). Этот символ можно ввести с помощью клавиатуры, нажав клавишу Alt и набрав на дополнительной клавиатуре число 255. Далее в тексте этот символ будет обозначаться как . Примечание: многие текстовые редакторы, в том числе таких известных фирм, как American Cybernetic, Microsoft, Borland и т.п. неправильно обрабатывают этот символ. Поэтому автор настоятельно советует использовать для подготовки и конверсии файлов в данном проекте только рекомендованные им программы. Служебный символ, расположенный вслед за символом , означает: * 1 – курсивное начертание; * 2 – полужирное начертание; * 3 – полужирное курсивное начертание; * 4 – нижний индекс; * 5 – верхний индекс; * 7 – греческие и математические символы; * 0 – возврат к основному, нормальному начертанию; * _ – подчёркивание следующих символов; * . – отмена подчёркивания символов; Также следует заметить, что в конце строки символы 0 и . не ставятся, просто новая строка всегда начинается с основного шрифта. Если это не так, устанавливается нужный служебный символ форматирования в начале строки. D.2. Рекомендуемый автором стиль оформления файлов Лексикона для ДОС, используемый им для дальнейшей конверсии его в формат HTML. Автор рекомендует использовать следующие настройки оболочки Лексикона для ДОС: Абзац. * Режим: документ. * Перенос: Нет. * Выравнивание: Нет. * Границы: * Левая: 1 символ. * Правая: 60 символов. * Отступ: 5. * Страницы: * Шаг: 1.0 * Высота: 60. Далее набирать текст с этими параметрами. Заголовки необходимо начинать с заглавной латинской буквы, за которой будет следовать (через точки) номер раздела. Например: * B. Заголовок 1. * B.1. Заголовок 1. * B.1.1. Заголовок 2. * B.1.1.2. Заголовок 3. * B.2.3.2.1. Заголовок 4, и т.д. Чем длиннее номер, тем более вложенный заголовок, и тем меньшим будет его выделение в HTML-файле. Заголовки начинаются с позиции 1 и ничем не выделяются в тексте, кроме своего положения. Перед заголовком необходима пустая строка. Для набора текста с параметром «квадратный» необходимо вставить перед ним пустую строку, и набрать абзац без отступа. Например: Квадратный абзац. Маркированные и немаркированные списки набираются так же, как и «квадратные» абзацы, однако у них впереди ставятся: * для маркированных списков – цифра и точка; * для немаркированных списков – звёздочка или тире. Подрисуночные подписи и заголовки таблиц оформляются аналогично «квадратным» абзацам, однако в них могут быть использованы символы форматирования. Важно, чтобы стиль их оформления не менялся для всего раздела сайта. Например: * Рис. B.1. Просто иллюстрация. * Таблица B.II. Замечания. D.3. Формат оформления ссылок. Текст ЛЕКСИКОНа для ДОС не является гипертекстовым, а значит – не поддерживает создание ссылок своими собственными средствами. Поэтому при создании файлов Лексикона, предназначенных для их конверсии в гипертекстовые документы, автор придумал свой формат оформления ссылок. При его создании автор руководствовался следующими предположениями: 1. Ссылка указывается только на один объект (файл, место в текущем или другом файле). 2. Ссылка в гипертекстовых документах обычно выделяется подчёркиванием. 3. Место в сайте, на которое может ссылаться другой документ (он называется якорем), обычно не подчёркивается и не переадресует ссылку. В связи с этом автор разработал следующий способ задания якорей и гиперссылок в тексте Лексикона. 1. И ссылка, и якорь выделяются в тексте подчёркиванием (символами _ и .). 2. Служебная информация о ссылке или якоре (имя якоря, ссылка на файл и/или место в файле) расположены сразу за символами _ и заканчиваются символами #! (видимыми в текстовом процессоре ЛЕКСИКОН!). Эта комбинация символов почти не встречается в нормальных текстах (в том числе в текстовых файлах на любом языке, файлах с текстами программы, HTML- и XML- разметке, заготовках к HELP- файлам и файлах словаря Lingvo). 3. Между этими символами расположена служебная информация для гипертекстового документа: * _NAM=<имя ссылки>…. – для якоря; * _HREF=<имя файла>…. – для ссылки на другой файл; * _HREF=#<имя ссылки>…. – для ссылки на другое место в файле (якорь) с именем <имя ссылки>; * _HREF=<имя файла>#<имя ссылки>…. – для ссылки на якорь в другом файле. 4. Если при описании гиперссылки происходит «двойное» определение подчёркивания (к сожалению, это любит делать сам текстовый процессор ЛЕКСИКОН), то на этапе обработки гиперссылки убирается «сдвоенное» расположение символов конца и начале выделения (._, и т.д.) Пример описания гиперссылки в тексте ЛЕКСИКОНа: _HREF=a.htm#nam1#!Это ссылка на якорь. – ссылка на якорь с именем #nam1 в файле a.htm, при этом в конечном гипертекстовом документе будет отображаться подчёркнутый поясняющий текст ссылки: Это ссылка на якорь. Пример описания якоря в тексте ЛЕКСИКОНа: _NAM=nam1#!Это якорь. – определение якоря с именем nam1 на строку «Это якорь». E. Формат файла HTML: будет описан ниже. Формат HTML-файла, сформированного из файла «ЛЕКСИКОН», следующий: {
} <Заголовок 1-го уровня> <Текст> {<Заголовок> <Текст> } <Ссылки> Это значит, что при своей работе конвертер генерирует: 1. Заголовок первого (или другого верхнего) уровня, в котором располагается объяснение содержания файла. 2. Текст файла, собственно выражающий авторский замысел. 3. Ссылки на предыдущие или следующие файлы проекта. К необязательным элементам относятся: 4. Последующие заголовки более низкого уровня. 5. Заголовок HTML-файла для регистрации его в поисковых системах, etc. E.1. Выделение заголовков. Заголовки 1-го – 3-го уровня выделяются гарнитурой (Arial), расположением (центрированием), начертанием (жирным для всех заголовков, жирным курсивом – для заголовков 2-го уровня). Размер шрифта определяется браузером по-умолчанию. Например: *

A.1. Заголовок первого уровня.

*

A.1.1. заголовок второго уровня.

*

A.1.1.1. Заголовок 3-го уровня.

Заголовки 4-го и последующих уровней отображаются браузером по- умолчанию. E.2. Написание основного текста. Основной текст абзаца оформляется следующим образом: * в браузерах, не поддерживающих CSS (каскадные таблицы стилей) – текст браузера по-умолчанию. * в браузерах, поддерживающих каскадные таблицы стилей, в качестве основного оформления абзацев выбирается следующее: * Гарнитура шрифта – Times New Roman; * Кегль шрифта: 12 пт.; * Начертание: нормальное; * Выравнивание: выключка по ширине или влево; * Отбивки сверху/снизу: 3 пт. или отсутствуют; * Отступ «красная строка»: отсутствует; * Интерлиньяж: 1 интервал (нормальный); * Отступы слева и справа: отсутствуют; * Межсловные и межбуквенные интервалы: нормальные. Кроме этих основных классов, существуют также следующие «семейства» стилей, не вошедшие в основные классы: * .JUSTY – выключка по ширине; * #CENTER – выравнивание по центру. * #SQUARE – отсутствует абзацный отступ. * #APPOSIT – 80% от нормального кегля. * #CpRt – кегль 110% от нормального, цвет символов чёрный, выравнивание по правому краю. В текстах разрешается использовать физическое выделение (полужирное, курсивное начертание, полужирный курсив, пропорциональная гарнитура и т.п.) Использование логического выделения допустимо, но нежелательно (именно из-за нарушения соответствия «того, что отмечено» и «того, как это изображается», что многие принимают за достоинство). Наиболее часто автор использует следующие теги дл выделения текста внутри основного абзаца (абзацев): * Текст – полужирное начертание; * Текст – курсивное начертание; * Текст – полужирный курсив; * Текст – подчёркивание; * Текст – текст набирается моноширинной гарнитурой (телетайп). Вместо него автор часто использует тег . * Текст – то же, что и предыдущий тег. В отличие от предыдущего тега он является тегом логического форматирования. * Текст – отображает текст в виде нижнего индекса. * Текст – отображает текст в виде верхнего индекса. * Текст – отображает текст шрифтом с кеглем немного меньшего (~80% от основного) размера. * Текст – отображает текст шрифтом с кеглем немного большего (~120% от основного) размера. * Текст – отображает текст другим шрифтом, с указанными параметрами. В качестве основных параметров могут быть: * FACE="гарнитура" – явное указание гарнитуры шрифта. Можно указать несколько гарнитур, например: * * COLOR="цвет" – явное указание цвета символов. Может быть выбран один из предопределённых цветов, или можно задать цвета шестнадцатеричными числами в RGB-палитре. Подробнее о цветах смотри в описании языка разметки HTML. * SIZE="номер" – указание относительного размера символов. Размер символов (номер) может изменяться от 1 до 7, причём значение 3 выбрано средним значением (значением кегля основного шрифта абзаца по-умолчанию.) Существуют и другие параметры шрифтов, но автор их на практике не использует. Параметры тега FONT можно объединять. Например, чтобы выделить текст шрифтом с гарнитурой Arial, относительным размером 4 и цветом «красный» необходимо использовать следующую конструкцию: Примечание: Теги FONT автор использует только в заголовках для явного указания форматирования текста. Теперь становится понятным предпочтительное использование автором тегов физического форматирования. Ведь использование тегов логического форматирования может привести к ситуации, когда пользователь принудительно изменяет отображение логических тегов, что будет нарушать авторский замысел при оформлении текста. Напротив, когда автор делает оформление «не для себя», когда оформление несёт больше смысловую, чем художественную нагрузку, автор использует теги логического форматирования. Теперь автор хочет сделать несколько замечаний о наборе тегов внутри текста. Если теги набрать неправильно, то они будут игнорироваться браузером. Это не очень страшно, когда ошибка сделана в открывающемся теге – его значение будет просто проигнорировано. Гораздо хуже, если ошибка обнаружится в закрывающемся теге. В этом случае открывающийся тег будет осуществлять форматирование либо до конца документа, либо до следующего закрывающего тега (который должен нести совсем другой смысл). В любом случае обнаружить эту ошибку сложно. Ещё сложнее обнаружить ошибку при пропуске кавычки у атрибутов открывающегося тега. Как правило, поведение браузера в этом случае непредсказуемо. Вследствие вышесказанного автор советует набирать теги (на примере тега ) следующим образом (по шагам): 1. <> 2. 3. 4. В этом случае Вы сведёте к минимуму возникновение ошибки типа не закрывшейся кавычки/тега. E.3. Оформление рисунков и подрисуночных подписей. Рисунки и подрисуночные подписи в документах автора оформляются единообразным способом. Для вставки изображения в HTML-документ используется тег IMG, который у автора записывается в следующем формате: комментарий где файл (обязательный параметр) – имя файла с рисунком, например, FIGB01.GIF; комментарий (обязательный параметр) – комментарий к рисунку, поясняющий, что на нём изображено; h (необязательный параметр) – высота рисунка в пикселях; w (необязательный параметр) – ширина рисунка в пикселях. По-умолчанию рисунок подгоняется в следующие «рамки»: * высота рисунка – 200 или 300 пикселей (ориентация «ландшафт»); 300 пикселей (ориентация «портрет»); * ширина рисунка – 300 или 400 пикселей (ориентация «ландшафт»); 200 пикселей (ориентация «портрет»); * цветность рисунка: чёрно-белый, 16, 64, 256 градаций серого, 4, 16, 32 разряда цвета RGB-палитры; * прозрачность: присутствует. Прозрачные цвета – белый (80% случаев), чёрный (19,99% случаев). * формат рисунков «рабочий» – TIFF, PCX, PNG, GIF, XCF. * формат готовых рисунков – PNG, (реже) JPEG. * формат рисунков в векторной форме: CorelDraw (*.cdr, *.cmx), Xara (*.xar), Flow Chat PDQ Lite (*.pdq), Windows Meta File (*.wmf). Используются следующие редакторы растровой графики: 1. The GIMP 2.x.x. (основной графический редактор); 2. Zsoft Photo Finish v. 3.0. Используются следующие конвертеры/просмотрщики/оболочки для сканирования растровой графики: 1. IrfanView 4.10. – для просмотра/конверсии форматов/цветокоррекции и т.п. 2. XnView 1.92.0. – для изменения размеров/обрезки изображений/придания специальных эффектов/оболочка сканирования и т.п. С помощью этих инструментов, а также с помощью специальных программ векторной графики решаются все задачи по подготовке иллюстраций к работам автора. Иллюстрации обычно вставляются в основной текст с помощью тегов абзацного форматирования. Обычно формат тегов формирования рисунков и подрисуночной подписи следующий:

Рис. B.01.Подпись к рисунку B.01.

При этом не обязательно соответствие подрисуночной подписи значения атрибута ALT (комментария к рисунку). Иллюстрация вышеописанного примера: FIGB01.GIF (рисунок B.01) Рис. B.01. Подпись к рисунку B.01. Как Вы видите, название (номер) рисунка в подрисуночной подписи выделяется курсивом, в то время как сама подпись пишется шрифтом по-умолчанию (с нормальным начертанием). При этом и рисунок, и подпись к рисунку центрируется. F. Ссылки на последующие или предыдущие страницы сайта. Для того чтобы достигнуть удовлетворительной навигации по сайту, необходимо указывать хотя бы ссылки на предыдущую (просмотренную) и следующую страницы, а также на оглавление раздела. В связи с этим автор разделил все страницы своих сайтов на две непересекающихся группы: * страницы с коротким содержимым, помещающимся в один или два экрана компьютера; * страницы с большим контентом (содержимым), которое помещается в несколько экранов. Не смотря на условность этого разделения, оно позволяет выделить следующие типы страниц: * короткие, которые читаются целиком, и на которых следует размещать панель навигации внизу; * длинные, которые либо читаются мало, либо читаются не внимательно, «по диагонали», и которые скорее сохраняются на диске для прочтения «в лучшие времена». Для таких страниц желательно поместить панель навигации, как в конце, так и в начале страницы, чтобы пользователь не искал эту панель где-либо в конце и не ждал «докачки» всей страницы. Далее автор разделил все страницы на две группы, по содержанию страниц. Автор сразу отмечает, что данное разбиение – не окончательное, и по мере работы с проектами количество групп может расширяться. Группы эти следующие: * страница с текстом внутри раздела. Как правило, такие страницы имеют мало связей с другими страницами (они не являются оглавлениями), содержат на себе мало ссылок на другие страницы. Эта как бы «рабочая лошадка» сайта, которая ведёт последовательно от одной страницы к другой, потихоньку раскрывая основной смысл раздела. Соответственно, эта страница должна иметь ссылку на следующую страницу (куда двигаться дальше), предыдущую (если что- либо забыто из ранее написанного) и к оглавлению (чтобы сориентироваться и, возможно, пропустить неинтересный материал). Поэтому эта страница содержит три ссылки с примерным содержанием: Назад… К оглавлению раздела Далее… Эти ссылки центрированы и отделены от текста пустой строкой. Поэтому естественно для них необходимо положить стиль «центрированный» и расположение «по центру». Тот или иной механизм включается в зависимости от наличия или отсутствия файла с каскадными страницами стиля (CSS.); * заглавная страница раздела (либо приравненная по значимости или дизайну к ней страница). Как правило, эта страница имеет множество ссылок на «рабочие» страницы раздела, часто имеет пояснение, представляющее собой «резюме» данного раздела. У читателя, столкнувшегося с этой страницей, есть несколько путей: 1. Читать раздел с начала до конца, если ему он интересен. 2. Читать отдельные страницы данного раздела (если он уже кое- что знает об этом предмете). 3. Вернуться к предыдущему разделу, если ему что-либо не понятно. 4. Пропустить текущий раздел и начать читать следующий, если ему вообще не интересен данный раздел. 5. Прочитать оглавление более высокого уровня, если он запутался в навигации или хочет охватить все разделы главы. Для того чтобы помочь разобраться читателю с этим разделом, необходимо в конец (или в начало и конец, если документ большой), вставить следующие ссылки: * ссылку на оглавление предыдущего раздела: * ссылку на оглавление части (главы) сайта; * ссылку на следующий раздел главы сайта; * ссылку на первую страницу текущего раздела. Кроме того, необходима ссылка на каждую из страниц текущего раздела и, возможно, на заглавную страницу сайта. Но эти ссылки автор должен предусмотреть заранее при подготовке текста. Этот шаблон может использоваться для формирования раздела, у которого нет внешних страниц с содержанием (например, все его темы умещаются внутри одной страницы). Конечно же, использование этого шаблона (пускай с дублирующими полями «следующий раздел» и «следующая страница раздела») более привлекательно, чем первого. При формировании этого заголовка вставляются следующие ссылки: Назад… К оглавлению выпуска К оглавлению серии К следующему разделу Далее… Из них ссылка «Назад…» осуществляет переход к предыдущему разделу, «Далее…» – на первую страницу текущего раздела, «К оглавлению выпуска» – на описание всех разделов (частей), «К оглавлению серии» – на оглавление всех выпусков серий. Большим недостатком указанных шаблонов является то, что они не устанавливают автоматически связи между страницами. Так, в поле HREF ссылки «Назад…» указано имя «back.htm», для ссылки «Далее…» – «next.htm» и т.д. Но, по мнению автора, этот недостаток превращается в достоинство, когда нужно оформить несколько страниц в одном стиле, а ссылки на конкретные файлы прописать потом. К тому же, при любом стечении обстоятельств, эти ссылки должны располагаться в конце либо в начале и в конце файла-заготовки. Для облегчения заполнения файлов придерживайтесь правила именования файлов, описанных в следующем разделе. G. Правила именования файлов. Для «облегчения себе жизни» автор советует именовать исходные, промежуточные и конечные файлы по следующим правилам: 1. Имя файла должно совпадать с номером самого первого (верхнего) раздела страницы, опуская пробелы и знаки препинания. Однако первый после буквы главы номер раздела должен иметь длину в две цифры. Например, файл с разделом: C.1.2. Приготовление пирожного «Наполеон» должен именоваться как: c012.*, где * обозначает расширение файла. 2. Расширение конечного файла должно быть *.htm, если не предусмотрено иное. Файлы с этим расширением легко представляются на машинах с установленной MS-DOS. 3. Имена текстовых файлов должны быть набраны в нижнем регистре, а имена графических файлов – в верхнем. Например: «c12.htm», «seria.css», «FIGD01.GIF», «MYCOMP.JPG». По умолчанию MS-DOS создаёт файлы в верхнем регистре, а UNIX-подобные системы – в нижнем. Из-за этого файлы, подготовленные на разных платформах, могут «не читаться» браузером. Поэтому совет автора: все файлы подготавливать в операционных системах фирмы Microsoft, работая только в верхнем регистре, а перед «выкладыванием» файлов на UNIX- сервер набрать в командной строке следующие команды: * >ren *.HTM *.htm – для приведения расширений в нижний регистр; * >ren A*.htm a*.htm * >ren B*.htm b*.htm и т.д. – для приведения файлов, начинающихся на A, B и т.д. в нижний регистр. Из этого следует дополнение к правилам наименования файлов 1.: имена должны состоять из цифр и начинаться с латинской буквы. Именно такие имена корректно распознают все операционные системы. 4. Автор рекомендует для исходных, промежуточных и конечных файлов использовать разные расширения (например, *.txr, *.rtx и *.htm), а файлы на разных этапах обработки сохранять в разных каталогах. Это поможет легко сделать «откат» в случае возникновения ошибки в дизайне страниц. Для упрощения «отладки» текстовой части документа (отдельно от его оформления) автор предлагает использовать SSI вставки (SSI – «Server Side Includes» -- вставки со стороны сервера) для окончательного оформления страниц, а файлы с SSI – тегами и текстом будут иметь расширение: «.shtml». С помощью программы ssi_parser, написанной автором, а также потокового редактора sed (проект GNU Windows), можно заменить SSI теги текстом, переименовать ссылки в файле, и потом – сменить расширение с «.shtml» на «.htm».