Максим Мошков. Формат представления текстов в моей библиотеке
К сведению заинтересованных лиц
(например web-дизайнеров, Netrata в частности)
Общая внутренняя структура хранения проста:
Каталоги, в них лежат текстовые TXT файлы, НЕ формата
html. В каждом каталоге хранится DIR-файл-оглавление - каждому
файлу подписан комментарий-название.
Идеология схемы реализована в середине-конце 1980-хх годов
в текстовых редакторах "Микромир" и "Рк", когда никакого WWW еще
не было.
Текстовый файл должен иметь расширение .txt
В тексте могут быть выделены заголовки глав
^TЗаголовок выделяется символами Ctrl-T Ctrl-U^U
^Tи Заголовок должен иметь отступ 8 символов^U
Если в заголовке (в первой строке) файла присутствует подстрока <hidden>
- файл является скрытым и он не показывается в открытом доступе.
^T * ЗАГОЛОВОК СТАРШЕГО УРОВНЯ выделяется "Ctrl-T *" и "* Ctrl-U" * ^U
^Tи тоже должен иметь отступ 8 символов^U
Заголовок в первой строке считается названием всего документа.
Итак примерная структура текстового файла:
===============================================================
^TИмя Фамилия. Название документа^U
---------------------------------------------------------------
Author Name "Original Title"
© Copyright Имя Отчество Фамилия
© Copyright Переводчик, перевод с ...ского
Email: adres@mail.ru
WWW: http://host.ru/awtor/
Date: 27 Dec 1999
Изд: "Прогресс", М., 1975
OCR: Иван Сидоров
Spellcheck: Сидор Иванов, 1 Jan 2000
---------------------------------------------------------------
Произвольный текст
В тексте могут присутствовать html-таги. Они
воспринимаются "as is"
курсив, жирность, подчеркивание, [верхние индексы]
а так же любые другие!
^TЗаглавие главы^U
Произвольный текст. Абзацный отсуп - 5 пробелов слева,
Произвольный текст, отформатированный по правому краю по
76-й позиции.
Произвольный текст. Абзацный отсуп - 5 пробелов слева,
Произвольный текст, отформатированный по правому краю по
76-й позиции.
...
^TЗаглавие главы^U
Произвольный текст
Произвольный текст...
....
===============================================================
В каждом каталоге лежит файл .dir с оглавлением, все файлы
подписаны примерно так:
---------------------------------------------------------------
В первой строке название каталога
^TС 8-й позиции выделяется заголовок подраздела^U
Произвольный текст
В тексте могут присутствовать html-таги. Они
воспринимаются "as is"
Название текста лежащего в файле ()| filename.txt
Название нижележащей директории ()| dirname/
Указатель на ftp-линк | ftp://host/location
Указатель на www-линк | http://host/location.html
. . .
"|" - указатель на линк - ASCII-символ 0241 восьмиричное.
И так далее. Чтоб добавить в библиотеку новый документ
достаточно положить в подходящий каталог файл, и вставить в
.dir-оглавление строчку вида
Название нового текста ()| newfilename.txt
В строках .dir-файла может присутствовать подстрока (hid)такие строчки считаются "скрытыми", и не показываются посетителям.
обычно они содержат ссылки на скрытые файлы.
---------------------------------------------------------------
Все работает через CGI-скрипт
Любой документ в библиотеке запрашивается сквозь
cgi-скрипт "html-KOI" Он перекодирует файл в соответствующую
кодировку русских букв и переводит чисто-текстовые файлы в
html-ные - на лету.
http://www.lib-server.ru/cgi-bin/html-KOI/otnositelnoe/imya/documenta.txt
Все остальные преобразования документа, весь
дополнительный сервис и html-изация выполняется скриптом
При выдаче текстового файла заголовки глав автоматически
раскручиваются в html-таги h3 - /h3
При запросе имени директории скрипт берет лежащий в ней
.dir-файл и генерирует из него оглавление в формате index.html
В начале помещается стандартный заголовок со служебными
линками "Encoding", "What-s-new", "Mirrors"
В конце - стандартный хвостовик "Home", "Mail", "Hosted-by"
Строчки, в которых встречается символ "|" (ASCII 201)
(Вида: Название нового текста | newfilename.txt)
разворачиваются в "A HREF" линки. В зависимости от расширения
имени файла подставляется иконка.
Если в оглавлении имя файла указано символами "()|"
(Вида: название текста ()| newfilename.txt ) то справа
проставляется еще размер и разноцветное время модификации
файла.
Для текстового файла иконка перед именем указывает на
служебный линк "Contents" - оглавление автоматически собирается
из имеющихся в тексте заголовков "________^T ... ^U"
Разметка файлов и оглавлений в библиотеке элементарно
проста. Все файлы выдаются сквозь cgi-скрипт. Изменением
cgi-скрипта можно вносить любые изменения во внешний вид ВСЕЙ
библиотеки.
Основные об'екты, которые опознает cgi-скрипт
1. .dir-файл оглавления каталога
Название раздела
Стандартный служебный head-овик
^T Название подраздела ^U
Имя файла или каталога или URL
Стандартный хвостовик
2. .txt-файл с документом
Table of contest (Вынесена на отдельный URL)
Фамилия Автора. Название документа
Стандартный служебный head-вик (сейчас не используется)
^T * ПОДЗАГОЛОВОК СТАРШЕГО УРОВНЯ * ^U
^TПодзаголовок младшего уровня^U
Стандартный служебный tail-вик (сейчас в нем "Last update")
И последнее - объемы хранения (Масштабы предприятия)
На февраль 2000-го в библиотеке лежит:
20,000 файлов
700 разделов/каталогов
1350 Mb суммарный размер
20,000 посетителей в день
80,000 хитов в день
100 Gb общий траффик в месяц
Last-modified: Thu, 11 Aug 2005 07:09:57 GMT