Как правильно постить тексты в эхоконференции

(формат постинга текстов sergey korowkin).

(x) Copyleft, Marinais, 03.12.2000

Если вы публикуете текст в эхоконференции, какое–то количество читателей может захотеть сохранить его у себя, но не в виде сообщений в почтовой базе, а в виде нормального текстового файла, каким он был до помещения его вами в эхоконференцию.

Когда текст небольшой, сделать это несложно. Но по мере увеличения его размеров, задача обрастает трудностями в геометрической прогрессии. Мало сохранить все секции в файл их надо ещё найти и состыковать в правильной последовательности, поскольку приходят они часто перемешанными. Также нужно удалить из них заголовки, элементы оформления и технические строки. Дело осложняется тем, что у разных людей это оформление совершенно разное, что сильно затрудняет какуюлибо автоматическую обработку. А теперь представьте, что вам нужно так обработать целую книгу на несколько сотен килобайт, пришедшую к вам в виде нескольких сотен же перемешанных секций, каждая из которых снабжена «бородой» из оформления. 8-) Понятно, что приведение её в исходный нормальный вид — задача совсем не тривиальная. Сохранить же секции просто одну за другой в файл — значит получить нелепого уродца, в котором через каждые 3–4 экрана текст будет прерываться неуместной порцией почтовой белиберды. Словом, тот, кто хоть раз не только постил, но и пытался сам извлекать запощенное кем–то другим, до «посинения» подбирая секции и вырезая в редакторе технический мусор из получившегося, уже понял, о чём идёт речь...

Если вы у в а ж а е т е тех, кто будет читать помещаемый вами текст и захочет превратить его в нормальный файл, вы должны п о м о ч ь им в этом, снабдив текст техническими строками в специальном формате. Тогда задачу по извлечению текста из базы сообщений смогут взять на себя п р о г р а м м ы , и она из муки сведётся к нажатию пары кнопок.

Для корректной публикации текстов в эхоконференциях известный программист sergey korowkin разработал в 1998 г. специальный формат, поддерживаемый, вчастности, программами UUE Wizard и FastPost/FastUUE. Эти программы обеспечивают как автоматическое извлечение пришедшего текста, так и постинг его в эхоконференцию. При этом они полностью берут на себя все функции по дроблению/сборке секций и их оформлению.

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

Процедура по корректной подготовке текста к публикации следующая:

1. Подробите текст на части, примерно по 13К — как показывает опыт, такой размер обычно свободно пропускается большинством программного обеспечения сетей. Не забудьте заменить в нём везде заглавную русскую букву "Н" на латинскую "H", иначе она неминуемо будет «съедена» программным обеспечением FTN, а ваш текст повреждён. Это распространённая ошибка, совершаемая многими по невнимательности и нередко приводящая к конфузам. :-)

2. В н а ч а л е каждой секции вставьте строку вида:

textsection X of Y of file FILENAME

где:

X        — номер данной секции;
Y        — общее количество секций;
FILENAME — имя файла данного текста.

Если текст состоит всего из одной секции, то X = Y = 1.

Непосредственно з а н е й поместите ещё строку вида:

textbegin.all     — если это 1–я секция
textbegin.section — если это прочие секции

Эти строки указывают начало блока публикуемого текста. Всё, что находится до них, к тексту не относится, и там вы можете поместить предваряющие комментарии и всё остальное, что вам заблагорассудится. Извлечение секции начнётся только с этих строк.

3. В к о н ц е каждой секции вставьте строку вида:

textend.all     — если это последняя секция
textend.section — если это прочие секции

Эта строка обозначает конец блока публикуемого текста. Всё, что находится за ней, к тексту не относится, и точно так же будет пропущено при извлечении.

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

Собственно, на этом можно и закончить. Следуя 3 пунктам выше, вы можете приступать к постингу текстов, на порядок более ц и в и л и з о в а н н о м у , чем вы делали это раньше.

Дальше, педантичности ради, следует упомянуть лишь ряд незначительных технических деталей.

Стандарт sergey korowkin предусматривает ряд второстепенных строк между textsection и textbegin вида:

textauthor имя автора
textinfo какая–либо информация
textstd версия стандарта (в данном случае 0.1)

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

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

begin
section
textbegin.all
textbegin.section
textend.all
textend.section
textsection
\

их нужно заменить на:

\begin
\section
\textbegin.all
\textbegin.section
\textend.all
\textend.section
\textsection
\\

соответственно.

Впрочем, как вы сами уже догадались, строки эти (за исключением, разве, «begin» и «section» для текста на английском) словами человеческого языка не являются и вероятность встретить их в обычном тексте близка к нулю, так что и с необходимостью думать об этом вы в реальной жизни, скорее всего, не столкнётесь. :-) Исключением явился только сам этот текст.

Помещайте тексты в эхоконференции только в т а к о м виде. Имейте в виду, что простая вставка кусков текста в значительной мере с н и ж а е т ценность того, что вы запостили т.к. «выдрать» его из базы сообщений для того, чтобы сохранить или передать кому–то другому, потом крайне сложно. Потрудившись чуть–чуть сами, вы сэкономите массу времени множеству других людей.

Вот как выглядит реальный пример оформленного таким образом постинга текста, разбитого на 10 секций:

textsection 1 of 10 of file navigator.txt
textauthor Владимир Высоцкий
textinfo пример оформления постинга текста
textstd 0.1
textbegin.all
  Вот послал господь родителям сыночка;
  Люльку в лодку переделать велел:
  Мореплаватель родился — одиночка;
  Сам укачивал себя, сам болел.

textend.section

textsection 2 of 10 of file navigator.txt
textbegin.section
  Не по году он мужал — по денёчку,   И уже из колыбели дерзал;
  К мореплаванью готовясь в одиночку,
  Из пелёнок паруса вырезал.

textend.section

textsection 3 of 10 of file navigator.txt
textbegin.section
  Прямо по носу, глядите:
  То ли бочка, то ли яхта, то ли плот, то ли нет...
  Мореплаватель, простите, одиночка,
  Посылает вам салют и привет.

textend.section

textsection 4 of 10 of file navigator.txt
textbegin.section
  Ой, ребята, не к добру проволочка.
  Сплюньте трижды все, кто на корабле:
  Мореплаватель на море, одиночка,   Вроде чёрного кота на земле.

textend.section

textsection 5 of 10 of file navigator.txt
textbegin.section
  Вы откуда? Отвечайте нам и точка.
  Не могли же вы свалиться с небес.
  Мы слыхали, что какой–то одиночка,
  В треугольнике бермудском исчез.

textend.section

textsection 6 of 10 of file navigator.txt
textbegin.section
  Это утка, это бред — всё до строчки.
  И простите, если резок и груб.
  Мореплаватели знают, одиночки,   Он совсем не треугольник, а куб.

textend.section

textsection 7 of 10 of file navigator.txt
textbegin.section
  Вот добавил он в планктон кипяточку.
  Как орудует — хоть мал, да удал!
  Глядь, и есть деликатес в одиночку.
  А из нас таких никто не едал.

textend.section

textsection 8 of 10 of file navigator.txt
textbegin.section
  Не искусственную ли оболочку
  Вы вокруг себя мой друг возвели?
  Мореплаванью, простите, в одиночку
  Наше общество предпочли.

textend.section

textsection 9 of 10 of file navigator.txt
textbegin.section
  Он ответил: "Вы попали прямо в точку.
  Там, на суше, не пожать мне вам руки:
  В море плавая подолгу, в одиночку,
  Я по людям не скучал, моряки".

textend.section

textsection 10 of 10 of file navigator.txt
textbegin.section
  Так поменьше им забот и отсрочек,
  И задорин на пути, и сучков!
  Жаль, что редко мы встречаем одиночек   Непохожих на других чудаков,
  Жаль, что редко мы встречаем одиночек   Славных малых, озорных чудаков.
textend.all

[!-include(../footer.tpl)]