# Программа txt2htm -- генератор веб-сайта из текста.

Программа генерирует полноценный сайт для браузера с возможностью поставить его в интернет. Главным источником является текстовый файл, то есть она конвертирует исходный текст файла типа txt в файл типа htm. Вся работа выполняется автоматически, за один клик. Текстовый файл должен быть напечатан по определенным правилам. В том числе он должен содержать короткие команды форматирования. Фактически, команды форматирования текста -- это новый и очень простой язык разметки документа, намного проще, чем набор система команд языков html, css, js. Они записываются очень компактно и ориентированы на объекты, а не на элементы. Для создания сайта с помощью программы достаточно выучить простые команды и можно совсем не знать языки разметки html и css, а также язык программирования javascript, так как все это знает сама программа.

Программа написана давно, около 10 лет назад, но потихоньку продолжает развиваться. Первая версия была написана 10 сентября 2014 года, точнее это дата первого варианта данной статьи. Следующий вариант был написан 13 августа 2020 года, а последний вариант 1 января 2024 года. В настоящее время программа существует в нескольких видах. Прежде всего есть онлайн программа, которой можно пользоваться через браузер непосредственно из интернета. Есть также ее аналог для скачивания и работы в оффлайн режиме с использованием браузера. Она написана на языке javascript.

Сейчас программа может одинаково хорошо работать как при закачке на сервер, так и на локальном компьютере. Для работы совсем без интернета необходимо скачать все файлы, которые она использует и поменять ссылки. Однако работу без интернета уже нельзя считать полноценной, просто есть проблемы использования некоторых серверных файлов на домашнем компьютере. Другой вариант программы написан на языке ACL и является одной из многих готовых программ на этом языке. Интерпретатор языка ACL имеет собственную страницу в интернете. Онлайн программа работает сразу, интерпретатор ACL надо скачать на компьютер. Сейчас есть три варианта интерпретатора. Старая программа vkAC, а также новые программы ACLm и ACLp.

Программа ACLp наиболее удобна для использования готовых программ. В ней стоят самые последние версии ACL программ, которые имеют универсальный интерфейс. Данная программа там имеет номер 44. А всего программ на момент написания статьи 52. И все интересные. Следует сразу сказать, что в обоих версиях программы обработка и исправление ошибок не предусмотрена, то есть компиляция происходит всегда, а малейшее отклонение от правил написания команд форматирования в исходном тексте может привести к испорченному коду веб-страницы, и это сразу будет видно при показе или совсем ничего не будет видно. Пользователю следует внимательно проверять весь написанный текст и все команды на предмет ошибок и исправлять ошибки в символах форматирования. При правильном написании все работает и все протестировано. А ошибки и их место легко заметить по неправильному виду сайта, который сгенерировала программа.

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

Итак, перейдем к описанию команд форматирования.

## Шаблоны вэб-страниц

Вся страница в целом будет выполнена по шаблону, номер которого должен быть указан первым числом в первой строке исходного txt файла, например, 1. Первая строка исходного текста на сайт не войдет, она является элементом форматирования и может содержать несколько чисел. Число шаблонов будет увеличиваться по мере возможности автора это сделать. Что конкретно они показывают легко убедиться простым тестированием. Пока есть шаблоны с номерами 1, 2 и 3.

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

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

## Простой текст

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

## Простые ссылки

Если необходимо адрес интернета или адрес файлов на компьютере сделать кликабельной ссылкой, то нужно перед таким адресом набить три символа "#lb", а после него -- три символа "#le". Смысл этих символов такой: command link begin (команда начала ссылки) и command link end (команда конца ссылки). При этом сам адрес будет заменен на ссылку в виде картинки с маленькой кнопкой. Картинка находится в интернете в моем облаке Дропбокс. Соответственно вэб-страница будет правильно работать только при подключении к интернету. Зато это удобно для тех вэб-страниц, которые будут сами размещены в интернете. Около ссылки в тексте должны быть комментарии, объясняющие что она делает и куда ведет. Если нужна вэб страница для работы без интернета, то необходимо скачать файл картинки себе и использовать локальную версию программы. Это относится и к многим другим файлам, которые используются в данной программе. Вообще говоря, работать с ней, не имея доступа в интернет не очень разумно, ведь она делает сайты для интернета. Но иногда полезно иметь сайты, которые одинаково работают как в интернете, так и без него.

## Картинки

В текст можно также вставлять адрес картинки, которая будет видна на сайте именно как картинка. Она может быть размещена как в интернете, так и на компьютере. В последнем случае адрес должен быть относительным, то есть отсчитываться от папки самого текстового файла. Для того, чтобы картинка появилась на сайте, перед адресом картинки надо набить три символа "#il" или "#ir" или "#it" или "#ib". А после адреса картинки надо набить три символа "#ie". Смысл такой же как и выше. Это команды image left, image right, image top, image bottom и image end. В каждом из четырех случаев адрес картинки на сайте будет заменен на реальную картинку. В первом из четырех указанных случаев картинка будет помещена слева в начале параграфа, и текст будет ее обтекать справа. Во втором случае она будет справа, а текст будет ее обтекать слева. В третьем случае картинка будет поставлена в строку текста так, что верх картинки будет совпадать с верхом текста. В четвертом случае точно так же, только низ картинки будет совпадать с низом текстовой строки. Высота строки в третьем и четвертом случаях обычно равна высоте картинки.

## Картинки со ссылкой

Можно заказать более сложный случай, когда сама картинка является ссылкой. В этом случае надо сначала набить три символа "#lb", затем адрес ссылки, после него три символа "#li", после них адрес картинки, а за ним три символа "#lc". Тут используются команды link begin, link image, link close. При этом картинка всегда будет слева, а текст будет обтекать ее справа.

## Текст со ссылкой

Аналогично вместо картинки можно сделать кусок текста ссылкой. В этом случае первой командой снова должна быть "#lb", после нее печатается адрес ссылки, затем надо напечатать команду "#lt", после которой идет текст, который будет ссылкой, и в конце должна быть команда "#lo". Вторая и третья команды называются link text и link over.

## Заголовок статьи

На сайт можно поместить заголовок статьи. Заголовок следует набирать так. Перед заголовком на отдельной строке надо набить три символа "#tb", а после заголовка снова на отдельной строке надо набить три символа "#te". Сам заголовок может содержать несколько строк и простое форматирование. Однако пустые строки ставить нельзя, надо набрать хотя бы один пробел. Важно еще, чтобы до строки, указывающей на начало заголовка и после строки, указывающей на его конец, строки тоже были не пустые. Если все же нужна пустая строка, то надо набить один пробел. Важно также сразу отметить, что все команды, которые печатаются на отдельной строке, не могут стоять в соседних строках, между ними надо набрать строку, состоящую хотя бы из одного пробела.

## Заголовки разделов

Кроме главного заголовка можно набирать заголовки разделов (глав). Они набираются точно так же, то есть снова на отдельной строке, только команды имеют вид "#sb" и "#se". Для удобства запоминания скажу, что "t" означает title, а "s" означает section. Заголовок статьи набирается по центру и синим цветом, а заголовки разделов набираются слева и темносиним цветом.

## Область для записи кода программ и числовых таблиц

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

Чтобы показать такой текст, нужно перед ним на отдельной строке напечатать три символа "#a1" или "#a2" и так до "#a9", а после него тоже на отдельной строке напечатать три символа "#ae". Буква "a" означает area (область), а числа от 1 до 9 указывают сколько строк будет в этой области. Ширина области определяется автоматически по ширине области сайта, а число строк зависит от показываемой информации. Важно знать, что если строк в реальном тексте будет меньше, то остальные строки будут пустыми. А если их будет больше, то автоматически появится вертикальная линейка прокрутки и весь текст можно будет просмотреть двигая ползунок на линейке вверх или вниз. Если нужно больше строк, то напишите 9, а потом число можно исправить в готовом htm файле вэб-страницы. Для этого надо уметь читать код, но познакомиться с основами языка html очень просто, сложнее его применять практически. Как раз программа и помогает это делать.

Важно также выполнять правило, чтобы строки до и после маркеров области были не пустые, то есть в них был бы хотя бы один пробел. Это правило полностью аналогично заголовкам. И еще одно серьезное ограничение. Сам неформатированный текст не должен содержать концов строк, он должен весь быть набран одной строкой, а концы строк должны быть заменены на символ ` (аски 96). Его клавтша находится левее клавиши с символом [1]. На сайте этот символ снова будет заменен на конец строки. Проще всего написать такой текст, как надо, в отдельном текстовом редакторе, затем сделать замену признака конца строки (аски 10) на символ ` (аски 96) и скопировать текстовую строку в основной текст. Такую операцию, в частности, выполняет мой редактор [1].

## Моноширинный текст

Неформатированный текст в области отличается тем, что он печатается моноширинным шрифтом, у которого все символы имеют одинаковую ширину, включая пробел. Такой текст удобен при составлении текстовых таблиц в виде колонок. Но обычный текст статьи печатается другим шрифтом, более плотным, у которого разные буквы имеют разную ширину в зависимости от их внешнего вида. И у них также узкий пробел между символами. Чтобы принудительно установить моноширинный текст внутри текста статьи можно использовать следующие команды "#mb" и "#me" перед началом и после конца такого текста.

Все, что находится между этими командами в пределах одного параграфа, будет набрано моноширинным текстом и чуть подкрашено в бордовый цвет. В данном случае можно спокойно ломать текст на строки и составлять таблицы прямо внутри исходного текста. Также можно использовать указанные ниже теги b,i,u,q.

## Строки невидимки

В тексте могут быть строки, в которых набит один символ "%". Такие строки игнорируются, и их можно использовать для наглядности записи текста.

## Теги html

Очевидно, что названия всех команд форматирования нельзя показать на сайте как простой текст, потому что они все будут заменены на соответствующие коды html. Если все же нужно показать команды на сайте, то символ # надо временно заменить на какой-либо другой символ, а после компиляции htm файла сделать обратную замену. Для тех, кто знает язык разметки html, важно также знать, что в тексте можно помещать теги html обычным образом. Ведь указанные выше команды тоже заменяются на теги html, просто они более компактные, и их проще напечатать, чем реальные теги. Так как теги используют символы "<" и ">", то, чтобы набрать такие символы в тексте на сайте и избежать конфликтов, надо в исходном тексте набирать "#<" и "#>". Только в этом случае эти символы появятся в тексте.

Для справок укажу самые простые и массовые теги. Так текст между <b> и </b> будет жирным, между <i> и </i> будет наклонным, а между <u> и </u> будет подчеркнутым. Это удобно для выделения текста. Текст между <q> и </q> будет в кавычках и темнозеленым цветом. Более подробную информацию о тегах html можно получить на многих сайтах, см., например, [2] и [3].

## Вставки текста и кода

Есть более общая и абстрактная возможность. Часто бывает так, что на многие сайты надо ставить стандартные куски кода html, например, счетчик посещений или рекламные баннеры. Такие куски можно определить дополнительно в файле вставок, о котором написано ниже, а в тексте достаточно поставить символы "#01" для первой вставки, "#02" для второй вставки и так далее. Всего можно записать на сайт 99 вставок. Вставки должны быть напечатаны предварительно в файле "pro/txthtmt.txt" программы на основе интерпретатора ACL. Каждая вставка должна быть напечатана на отдельной строке. Если же надо сделать так, чтобы текст вставки был напечатан на сайте в несколько строк, то вместо символа конца строки надо напечатать тег <br>. Для редактирования указанного файла в программе есть соответствующая кнопка меню.

## Вставка готовых вэб-страниц на данный сайт

Есть очень полезная возможность поставить на сайт в виде отдельного объекта содержимое другого сайта, записанного в файл в интернете или на компьютере. Очевидно, что для успешной работы этот другой сайт должен быть специально приготовлен. Но никаких ограничений нет. Для реализации такой вставки надо сначала набить команду "#fw", после нее число, указывающее ширину области вставки в пикселах. Число можно набирать с одним пробелом, но лучше без пробела.

Затем надо набрать команду "#fh", после которой указать высоту области вставки в такой же манере как и ширину. Затем надо поставить команду "#fl" и после нее записать ссылку (адрес) на файл. Ссылка должна быть полной для файла в интернете и относительной для файла на компьютере. Наконец, после ссылки надо набрать команду "#fe". Лучше всего всю информацию набирать без пробелов.

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

## Установка переводчика от Google

При наличии интернета существует возможность автоматического перевода русского текста сайта на иностранные языки. Для этого следует подключить сервис от фирмы Google. На сайте самой фирмы есть инструкция как установить стандартную кнопку перевода, которая сопровождается рекламой. Конвертор позволяет поставить на сайт кнопку выбора языков на английском языке и без рекламы. Это делается одной командой #gt , которую можно поставить в любом месте на сайте, но лучше всего ее ставить в самом начале, то есть наверху. Так она будет лучше заметна. Итак, если вы хотите предложить перевод вашего сайта на 58 языков, то в начале третьей строки txt файла надо поставить указанную команду. При этом ничего не надо знать и ничего не надо учить. Все делается автоматически.

## Объекты

Для более продвинутых пользователей есть возможность вставлять в любом месте на сайте объекты с более сложным форматированием, которое реализуется с помощью языка программирования джаваскрипт. Число таких объектов, в принципе, не ограничено, но конечно, все зависит от способности и фантазии автора программы, то есть меня. Пока реализованы 9 объектов, со временем их может быть еще больше. Для всех объектов характерно то, что им требуются дополнительные параметры, которых нет в текстовом файле. Эта информация содержится в файле pro/txthtmo.txt программы на основе интерпретатора ACL, причем для каждого объекта в отдельной строке.

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

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

## Первый объект -- живые ссылки

Первый объект представляет собой "живые ссылки". Это окно, в котором через определенное время показываются разные картинки с фасонным переходом от одной к другой. Под каждой новой картинкой также автоматически меняется текст подписи. Клик на любой картинке открывает новое окно, в котором показывается новая интернет страница.

Данный объект имеет достаточно много параметров в виде адресов картинок, адресов ссылок и подписей. Если число таких картинок равно N, то надо 3*N текстовых параметров. Кроме того, необходимо задать размер картинок, время паузы и параметры переходов.

Пример входных данных для этого объекта в программе имеется. В этом примере можно менять тексты в кавычках. На каждой строке напечатано три текста. Сначала идет адрес картинки, потом адрес ссылки и потом текст комментария. Можно переписать текстовые параметры или даже добавить новые, но необходимо соблюдать аккуратность и не делать ошибок. Нельзя стирать апострофы, запятые и служебные слова. Малейшая ошибка и компьютер вас не поймет.

В предпоследней строке есть пять чисел. Это ширина и высота окна в пикселах, которые в идеале должны совпадать с размерами картинок, время паузы в секундах, время одного шага перехода в миллисекундах и число шагов перехода. Последний параметр задает цвет текста комментария.

Для того, чтобы установить данный объект на странице сайта надо в любом месте набить три символа "#o1". Объект встанет как раз в этом месте в центре колонки.

## Второй объект -- календарь

Второй объект встанет на место трех символов "#o2", которые тоже можно поместить где угодно. Он представляет собой календарь и имеет три параметра: sf, ws, hs. Первый параметр sf -- это масштабирующий множитель, его нормальное значение 1, но если он будет больше или меньше, то календарь будет либо более крупным, либо меньшего размера. Параметры ws и hs это горизонтальный и вертикальный размеры области, в которую будет вписан календарь.

Они нужны по двум причинам. Во-первых, все объекты помещаются на сайт по вертикали сразу за предыдущими объектами, то есть реализуют плотную упаковку по вертикали, заполняя всю колонку. Но чтобы это работало, объекты должны иметь вертикальные размеры. Кроме того, данный объект внутри себя имеет белый фон независимо от фона страницы в целом. Для него нужно задать и ширину. Эти параметры можно редактировать в разделе меню для редактирования объектов, см. ниже.

## Третий объект -- часы

Третий объект, аналогично, встанет на место трех символов "#o3". Он представляет собой круглые часы. Этот объект имеет только один параметр -- высоту области. Так как часы круглые, то ширина области равна высоте области. Этот единственный параметр задается в разделе редактирования объектов (см. ниже).

## Четвертый объект -- мультиколоночный кусок сайта

Четвертый объект фактически является шаблоном форматирования, он сам ничего не показывает и является контейнером, а содержимое должно быть задано в исходном файле. Этот объект имеет как параметры, так и команды. Фактически, его принадлежность к объектам определяется только тем, что для него надо задать параметры как для объекта номер 4 в режиме определения параметров объектов.

Параметрами являются числа. Первые два числа задают число колонок и высоту колонок в пикселах. Далее, в зависимости от числа колонок надо задать для каждой колонки смещение вправо от левого края и ширину колонки. Так для трех колонок надо задать 8 чисел, например, 3 300 0 220 220 220 440 220 , для 4-х колонок на два числа больше и так далее. Чтобы все было правильно, необходимо соблюдать правила. Так полная сумма ширин всех колонок не должна превышать ширину сайта, а смещения должны быть заданы таким образом, чтобы колонки не перекрывались. Но если нужны спец-эффекты, то эти правила можно нарушать.

Этот объект, как и все объекты на сайте, может быть только один. Размножать объекты можно с помощью внешних файлов. Начинается объект с команды "#c1", после которой надо записать содержимое первой колонки, затем надо поставить команду "#c2", а после нее написать содержимое второй колонки и так далее. После текста последней колонки надо набрать команду "#ce". Максимальное число колонок, которые можно сделать, равно 9.

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

## Пятый объект -- внутренние ссылки гармошкой

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

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

Чтобы поставить такой элемент на вэб страницу, необходимо перед текстом ссылки напечатать символы "#t01", после текста ссылки напечатать символы "#l01", затем надо напечатать интернет адрес файла, который будет показан, и в конце три символа "#tl", но эти символы должны обязательно быть последними в строке, а после этой строки не должно быть пустой строки. Все очень похоже на обычную текстовую ссылку, но важно, что данная текстовая ссылка имеет номер 01.

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

Вертикальные размеры всех областей, которые в данный момент присутствуют на странице являются параметрами данного объекта. Их надо задать при редактировании параметров 5-го объекта. Они могут быть различными в зависимости от содержимого тех файлов, которые они показывают.

## Шестой объект -- две колонки, меню в левой колонке, область в правой колонке.

Этот объект также представляет собой контейнер, который показывает содержимое готовых файлов с вэб страницами. Он занимает определенную область, имеющую ширину и высоту, внутри которой помещаются две колонки. В левой колонке могут быть кнопки с названиями. Клик на каждой кнопке меняет содержимое правой колонки. Так как кнопки не заполняют всю левую колонку, то под ними также можно поместить информацию из файла.

Для постановки такого объекта достаточно набрать команду "#о6" в том месте, где необходимо поставить объект. Дополнительно надо отредактировать параметры этого объекта. Параметры, как и для первого объекта задаются кодом языка джаваскрипт, в котором можно менять имена названий кнопок и адреса файлов. Эти тексты идут парами и таких пар может быть не более 16. Если нужно больше, то придется чуть переделать джаваскрипт программу. Так для 6 кнопок надо набрать 12 текстов. И после них еще один с названием htm файла, который будет показан под кнопками в левой колонке.

Кроме текстовых параметров есть еще числовые параметры. Они имеют следующий смысл: ширина и высота всей области, ширина левой колонки и высота области файла под кнопками, ширина и высота кнопки, высота текста на кнопке, смещение кнопки влево, вертикальное расстояние между кнопками, и высота правой области файла. Последние два параметра задают цвет текста и цвет фона на кнопке в 16-тиричной rgb системе. Если не знаете что это такое, то лучше ничего не менять или посмотреть в Википедии.

Вообще говоря, все кнопки устанавливаются в колонку симметрично, поэтому смещение кнопки влево надо задавать как 0. Параметр был введен по недоразумению, и может быть использован для спец-эффектов.

## Седьмой объект -- две строки, меню сверху, область снизу

Этот объект является более простой модификацией шестого объекта. Он реализует меню в виде строки или нескольких строк, которые размещаются над областью, в которой показываются разные htm файлы, в зависимости от выбранной кнопки. Чтобы поставить такой объект достаточно набрать команду "#o7", а также отредактировать его параметры. Параметры точно также задаются вместе с джаваскрипт кодом. Только теперь число текстовых параметров ровно в два раза больше числа кнопок, а числовые параметры означают следующее: ширину и высоту всей области объекта, ширину и высоту кнопки, высоту текста на кнопке, вертикальное расстояние между кнопками и нижней частью, и высоту нижней области под кнопками. Последние два параметра точно такие же, как и для 6-го объекта.

## Восьмой объект -- живые ссылки книгой

Восьмой объект представляет собой второй вариант объекта "живые ссылки", в котором картинки-ссылки переворачиваются как в книге. Это окно, в котором через определенное время показываются две картинки с фасонным переходом от одной пары к другой. Текста под картинками нет, но его можно написать на картинке. Это легко можно сделать с помощью ACL программы или моего текстового редактора vkNotepad.jar, который также входит в пакет программ ACLp. Клик на любой картинке открывает новое окно, в котором показывается новая интернет страница, ссылкой на которую картинка и является .

Данный объект имеет достаточно много параметров в виде адресов картинок и адресов ссылок. Если число таких картинок равно N, то надо 2*N текстовых параметров. Кроме того, необходимо задать размер картинок, время паузы и скорость переходов.

Пример входных данных для этого объекта в программе имеется. В этом примере можно менять тексты в кавычках. На каждой строке напечатано два текста. Сначала идет адрес картинки, потом адрес ссылки. Можно переписать текстовые параметры или даже добавить новые, но необходимо соблюдать аккуратность и не делать ошибок. Нельзя стирать апострофы, запятые и служебные слова. Малейшая ошибка и компьютер вас не поймет.

В предпоследней строке есть пять чисел. Это ширина и высота картинки-ссылки в пикселах, которые в идеале должны совпадать с размерами исходных картинок (если это не так, то картинки масштабируются), время паузы в секундах, угол поворота картинки в градусах за один шаг, и параметр ориентации. Последний параметр может быть равен либо 0 либо 1. Если он равен 0, то две картинки книги располагаются горизонтально, а если 1, то вертикально. Число шагов перехода равно отношению 360 к числу градусов в угле поворота, каждый шаг длится 0.05 секунды. Для того, чтобы установить данный объект на странице сайта надо в любом месте набить три символа "#o8". Объект встанет как раз в этом месте в центре колонки.

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

## Девятый объект -- научный график

Для того, чтобы установить данный объект на странице сайта надо в любом месте набить три символа "#o9". Объект встанет как раз в этом месте в центре колонки. Он представляет собой график нескольких функций на общих осях. В параметрах объекта надо задать два массива чисел и один текст. Первый массив имеет 21 элемент и задается как

p=[xt, yt, xs, ys, xg, yg, x1, x2, u1, u2, nu, y1, y2, v1, v2, nv, xb, xe, nx, ny, sc].

Он задает параметры графика. При этом xt, yt -- полные размеры области графика. Все значения параметров указываются в пикселах экрана. Далее xs, ys -- сдвиг точки пересечения осей из левого нижнего угла области. Далее xg, yg -- размеры (длина) осей по направлениям X и Y соответственно. Далее x1, x2 -- значения на концах оси X, u1, u2, nu -- значение первой длинной риски, шаг до следующей длинной риски и число коротких рисок между длинными для оси X. Далее y1, y2 -- значения на концах оси Y, v1, v2, nv -- значение первой длинной риски, шаг до следующей длинной риски и число коротких рисок между длинными для оси Y. Далее xb, xe -- начальное и конечное значения аргумента, nx, ny -- число точек в одной функции и число таких функций, sc -- коэффициент масштабирования текстов на графике, то есть значений при метках и надписи. Стандартно равен 1.

Второй массив f=[,,,] должен содержать значения всех функций, сначала для первой функции, потом для второй и так далее. Текст задается так s="...". Этот текст будет показан над графиком. Ясно, что число значений в массиве f=[ ] должно быть не меньше, чем nx*ny.

## Режим двух колонок

Кроме мультиколоночного режима как объекта, есть возможность вставить на вэб-страницу от 1 до 9 областей с двумя колонками в разных местах по высоте страницы. Для этого используются команды "#dl1", "#dr1" и "de" для первой области. Для второй и так далее областей число 1 надо поменять на 2 и так далее соответственно. Команда "#dl1" открывает двухколоночный режим и режим заполнения левой колонки одновременно. Для нее необходимо задать два числа как ширину и высоту левой колонки. Команда "dr1" открывает режим заполнения правой колонки. У нее будет такая же высота, а ширина будет равна разности ширины вэб-страницы и левой колонки. Команда "de" закрывает двухколоночный режим и переводит текст снова в одноколоночный режим.

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

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

## Меню офлайн (ACLp) программы, и организация ее работы

Самой современной является офлайн версия программы с номером 44 в рамках коллекции программ в проигрывателе (ACLp). Эта программа переделана таким образом, чтобы иметь универсальный интерфейс. В этом интерфейсе программа сначала запускает текстовый файл входных данных, в котором также записаны правила работы с программой. Входные данные этой программы имеют всего два числа. Номер проекта и номер операции. Проектов может быть сколько угодно, операций 5. При этом 5-я операция как раз показывает этот текст в браузере. Остальное записано в том файле и нет смысла тут все повторять. Онлайн версия работает только с одним сайтом (проектом). Все параметры для данного сайта после того, как он сделан, не сохраняются. При переходе к новому сайту они просто переписываются. В каком-то смысле, если сайт уже сделан, то параметры и не нужны. Но часто бывает так, что в будущем что-то хочется переделать, а набирать все параметры заново не хочется. Можно копировать тексты во внешние файлы.

Программа ACLp для создания вэб-сайтов использует папку (pro/sites/). Желательно в ней и работать. В этой папке есть две внутренние папки с названиями "js" и "pic". Они содержат копии всех служебных файлов, которые размещены в интернете, и в локальном режиме именно эти файлы и "работают". При переносе такого файла на север надо перенести на сервер и эти папки внутрь той папки, в которой будет находиться сайт. Если это неудобно, то придется вручную подкорректировать адреса служебных файлов.

Следует отметить еще и такой момент. Программа автоматически устанавливает кодировку русских символов как "windows-1251", соответственно в такой же кодировке и набирается текст в системе Виндовс. При закачке файлов на сервер возможно понадобится поменять кодировку на utf-8, и соответственно, отредактировать вторую строку в файле сайта. Проще всего это делать с моим редактором vkNotepad.jar, который можно скачать по ссылке [1]. Этот же редактор есть и в програме ACLp, его номер 25. Лучше выбирать кодировку с указателем (UTF gen mark).

## Пример файлов для конвертирования и тестирование программы

В папке (pro/sites/) есть пример текстового файла для первого проекта, который содержит все команды программы и использует шаблон 1. Он называются pro01.txt. Примеры других шаблонов тоже появятся в будущем вместе с примерами использования отдельных объектов программы. Результат конвертирования можно получить самостоятельно. Шаблон 1 предназначен для создания главной страницы сайта, то есть самостоятельной, которая не включается в другие страницы. Вид шаблона соответствует моему вкусу.

Сам я работаю в браузере Яндекса и раньше я специально писал об этом после того, как перестал проверять сайты во всех браузерах. Но сейчас я это сообщение не делаю, хотя проблема все равно осталась. Проблема в том, что браузеры в последние годы стали сильно различаться. Какие-то браузеры включают новые технологии раньше, какие-то отстают. Хром, а также Яндекс-браузер, как правило, исполняют все новые технологии и являются самыми передовыми. И я просто реально тестирую сайты именно в них. Как выглядит сайт в других браузерах меня не волнует.

Одно время разработчики стремились делать сайт так, чтобы он одинаково смотрелся во всех браузерах. Я отказался от такого подхода. Так как мои сайты и моя программа некоммерческие, то пользователь обязан смотреть их именно в браузерах Хром или Яндекс. А не хочет, значит, ему не надо. Но со временем остальные браузеры подтягиваются и есть вероятность, что в них тоже все будет работать.

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

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

## Меню онлайн программы txt2htm и пример

Онлайн программа сделана примерно так же, как и офлайн программа с единственным отличием. Она не умеет работать с файлами. Поэтому первоначально в окно программы надо скопировать исходный текст из вашего файла на компьютере с помощью клавиш Ctrl-A, Ctrl-C на компьютере и Ctrl-V в окне программы. Пример исходного текста запускается в окно программы по кнопке [Example]. После того как исходный текст окажется в окне необходимо кликнуть кнопку [Execute]. После этого результат работы программы снова оказывается в ее окне и текст надо скопировать себе в файл таким же образом, то есть с помощью тех же клавиш, только в другую сторону. Одновременно программа показывает сайт в отдельном окне. Редактирование параметров объектов и вставок текста и кодов делается по кнопкам [Objects] и [Inserts], но тут правило такое. После первого клика стандартный текст показывается в окне. Его надо заменить на свой текст и кликнуть ту же кнопку еще раз. Программа принимает текст и использует его в дальнейшей работе. К сожалению программа не умеет запоминать измененную информацию, то есть все изменения работают только на один сеанс работы с программой.

Желаю удачи в работе.
Если будут проблемы или пожелания, то пишите мне по электронной почте kohnvict@yandex.ru
Виктор Кон . http://kohnvict.narod.ru

## Ссылки

[1] https://www.dropbox.com/s/lyejvbz5a4ey5ch/vknp.zip?dl=1
[2] http://kohnvict.ucoz.ru/tein/tein.htm
[3] http://htmlbook.ru/

## Справочник

#lb -- начало ссылки
#le -- конец ссылки
#il -- начало ссылки на картинку, размещение слева
#ir -- начало ссылки на картинку, размещение справа
#it -- начало ссылки на картинку, размещение в строке верхом
#ib -- начало ссылки на картинку, размещение в строке низом
#ie -- конец ссылки на картинку
#li -- указание на ссылку в виде картинки
#lc -- конец ссылки в виде картинки
#lt -- указание на ссылку в виде текста
#lo -- конец ссылки в виде текста
#tb -- начало заголовка статьи
#te -- конец заголовка статьи
#sb -- начало заголовка раздела
#se -- конец заголовка раздела
#a1 -- начало области неформатированного текста с одной строкой, число строк можно менять до 9.
#ae -- конец области неформатированного текста
#mb -- начало текста с моноширинным шрифтом
#me -- конец текста с моноширинным шрифтом
#01 -- указание на вставку стандартного кода html номером 1, номер можно менять
#c1 -- начало первой колонки мультиколоночной области, для второй колонки номер будет 2 и так далее до 9
#ce -- конец мультиколоночной области
#dl1 -- начало области с двумя колонками с номером 1 и заполнения левой колонки
#dr1 -- конец левой колонки и заполнение правой колонки, номер можно менять на 2 и 3
#de -- конец правой колонки и всей области с двумя колонками
#fw -- указатель на ширину области внешнего файла
#fh -- указатель на высоту области внешнего файла
#fl -- указатель на адрес внешнего файла для загрузки в область
#fe -- конец области внешнего файла
#o1 -- указание на место вставки первого джаваскрипт объекта, номер можно поменять на 2,3,6,7
#t01 -- начало ссылки в виде текста с гармошкой, номер можно менять от 01 до 99
#l01 -- конец текста и начало ссылки с гармошкой, номер можно менять от 01 до 99
#tl -- конец ссылки текстом с гармошкой, символы должны быть в конце строки.
#< -- вставка символа <
#> -- вставка символа >
#gt -- установка переводчика от Google