Mercurial > hg > tema
diff doc/manual/index.html @ 1:548a93c24e55 release_0_1jk
Tema 0.1jk - Javakonkurs edition (imported from CVS).
author | Mikhail Kryshen <mikhail@kryshen.net> |
---|---|
date | Thu, 14 Dec 2006 23:22:05 +0300 (2006-12-14) |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/manual/index.html Thu Dec 14 23:22:05 2006 +0300 @@ -0,0 +1,358 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "DTD/xhtml1-transitional.dtd"> + +<html> + +<head> + <title>МакропроцеÑÑор TEMA</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +</head> + +<body> +<h1>МакропроцеÑÑор TEMA</h1> + +МакропроцеÑÑор TEMA обрабатывает заданные шаблоны текÑтовых файлов и +заменÑет найденные в них инÑтрукции на результаты их выполнениÑ. + +<p><b>Формат инÑтрукций</b></p> + +<blockquote> + <code><%<i>ÑпиÑок_функций</i>{:|\|`}<i>данные</i>%></code> +</blockquote> +<p> +где<br /> + +<code><i>ÑпиÑок_функций</i></code> - ÑпиÑок имен функций, разделенных + пробелами. Может быть пуÑтым.<br /> +<code><i>данные</i></code> - данные, передаваемые функции. +</p> + +<p><b>Формат данных</b></p> + +<blockquote> + <code> + [<i>ÑпиÑок_аргументов</i>][<i>текÑÑ‚</i>] + </code> +</blockquote> +<p> +где<br /> + +<code><i>ÑпиÑок_аргументов</i></code> - ÑпиÑок аргументов функции, разделенных пробелами. + Может быть пуÑтым.<br /> +<code><i>текÑÑ‚</i></code> - текÑÑ‚, передаваемый функции без Ñ€Ð°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð½Ð° аргументы. + Может быть пуÑтым. КоличеÑтво аргументов, поÑле которого Ñледует + текÑÑ‚, завиÑит от функции. +</p><p> +Разделитель между ÑпиÑком функций и данными определÑет, как должны +обрабатыватьÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ функции: +</p><p> +<code>:</code> - рекурÑÐ¸Ð²Ð½Ð°Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ°,<br /> +<code>\</code> или <code>`</code> - передать без обработки. +</p><p> +ЕÑли в ÑпиÑке функций задано две и более функции, они выполнÑÑŽÑ‚ÑÑ, +Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð¿Ð¾Ñледней, так что ÐºÐ°Ð¶Ð´Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ в качеÑтве данных +результат Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñледующей функции. +</p><p> +ÐšÐ°Ð¶Ð´Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ код возврата - целое чиÑло. Код возврата +инÑтрукции - код возврата первой в ÑпиÑке функции. Код возврата, +получаемый при обработке текÑта - Ñумма кодов возврата обработанных +инÑтрукций (как правило, ÑмыÑл Ñтого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ - количеÑтво инÑтрукций, +замененных на непуÑтой текÑÑ‚). +</p><p> +Кроме Ñкобок '<', '>', можно иÑпользовать Ñкобки '[', ']'. +</p> + + +<h2>Функции</h2> + +<p><code><b>set</b></code></p> + +<table> +<tr><td>Ðргументы:</td> +<td><i>имÑ</i></td></tr> + +<tr><td>ТекÑÑ‚:</td> +<td><i>значение</i></td></tr> + +<tr><td>ДейÑтвие:</td> +<td>УÑтанавливает значение переменной <i>имÑ</i>.</td></tr> + +<tr><td>Результат:</td> +<td><i>имÑ</i></td></tr> + +<tr><td>Код возврата:</td> +<td>1</td></tr> +</table> + +<p><code><b>define</b></code></p> + +<table> +<tr><td>Ðргументы:</td> +<td><i>имÑ</i></td></tr> + +<tr><td>ТекÑÑ‚:</td> +<td><i>шаблон</i></td></tr> + +<tr><td>ДейÑтвие:</td><td>ОпределÑет новую функцию <i>имÑ</i>, при +вызове которой обрабатываетÑÑ <i>шаблон</i>. При обработке доÑтупны +функции <code>nextarg</code> Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð½Ð¾Ð³Ð¾ аргумента +вызываемой функции и <code>data</code> Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑта.</td></tr> + +<tr><td>Результат:</td> +<td><i>имÑ</i></td></tr> + +<tr><td>Код возврата:</td> +<td>1</td></tr> +</table> + +<p><code><b>load</b></code></p> + +<table> +<tr><td>Ðргументы:</td> +<td><i>имÑ</i> <i>имÑ_клаÑÑа</i></td></tr> + +<tr><td>ДейÑтвие:</td> + +<td>ОпределÑет новую функцию <i>имÑ</i>. Ð ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ определена +Java-клаÑÑом <i>имÑ_клаÑÑа</i>, наÑледующим клаÑÑ +<code>kryshen.tema.Function</code>.</td></tr> + +<tr><td>Результат:</td> +<td><i>имÑ</i></td></tr> + +<tr><td>Код возврата:</td> +<td>1</td></tr> +</table> + +<p><code><b>prepare</b></code></p> + +<table> +<tr><td>Ðргументы:</td> +<td><i>имÑ</i></td></tr> + +<tr><td>ТекÑÑ‚:</td> +<td><i>запроÑ</i></td></tr> + +<tr><td>ДейÑтвие:</td> +<td>Подготавливает SQL-Ð·Ð°Ð¿Ñ€Ð¾Ñ <i>запроÑ</i> Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, запиÑывает +подготовленный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² переменную <i>имÑ</i>.</td></tr> + +<tr><td>Результат:</td> +<td><i>имÑ</i></td></tr> + +<tr><td>Код возврата:</td> +<td>1</td></tr> +</table> + +<p><code><b>query</b></code></p> + +<table> +<tr><td>Ðргументы:</td> +<td><i>имÑ_запроÑа</i> <i>шаблон</i> <i>парам1</i> ... <i>парамN</i></td></tr> + +<tr><td>ДейÑтвие:</td> +<td>ВыполнÑет Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸, подготовленный Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции +prepare. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² подÑтавлÑÑŽÑ‚ÑÑ Ð² Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð²Ð¼ÐµÑто Ñимвола +'?'. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹ ответа доÑтупны Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции <code>db</code>, +как переменные шаблона <i>шаблон</i>. При обработки шаблона также +определÑетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ <code>number</code>, ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‰Ð°Ñ Ð½Ð¾Ð¼ÐµÑ€ текущей +Ñтроки ответа.</td></tr> + +<tr><td>Результат:</td> +<td>результат обработки шаблона <i>шаблон</i> Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñтроки +ответа.</td></tr> + +<tr><td>Код возврата:</td> +<td>КоличеÑтво полученных Ñтрок ответа.</td></tr> +</table> + +<p><code><b>optional</b></code></p> + +<table> +<tr><td>ТекÑÑ‚:</td> +<td><i>данные</i></td></tr> + +<tr><td>Результат:</td><td><i>данные</i>, еÑли при обработке данных +был получен код возврата отличный от 0, иначе - пуÑÑ‚Ð°Ñ +Ñтрока.</td></tr> + +<tr><td>Код возврата:</td> +<td>1, еÑли результат - пуÑÑ‚Ð°Ñ Ñтрока, 0 - иначе.</td></tr> +</table> + +<p><code><b>image</b></code></p> + +<table> +<tr><td>Ðргументы:</td> +<td><i>иÑÑ…_файл</i> <i>кон_файл</i> <i>формат</i> [<i>макÑ_ширина</i> +[<i>макÑ_выÑота</i>]]</td></tr> + +<tr><td>ДейÑтвие:</td> +<td>Загружает изображение из файла <i>иÑÑ…_файл</i> (путь определÑетÑÑ +отноÑительно конфигурационного параметра "resource_base") и +преобразует его в указанный формат, ÑохранÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚ в +<i>кон_файл</i>. ЕÑли заданы макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹Ñота и ширина, большие +Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ уменьшены.</td></tr> + +<tr><td>Результат:</td> +<td><i>кон_файл</i> при уÑпешном выполнении, пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> + +<tr><td>Код возврата:</td> +<td>1 при уÑпешном выполнении, 0 - иначе.</td></tr> +</table> + + +<p><code><b>copy</b></code></p> + +<table> +<tr><td>Ðргументы:</td><td><i>иÑÑ…_файл</i> <i>кон_файл</i></td></tr> + +<tr><td>ДейÑтвие:</td><td>Копирует файл <i>иÑÑ…_файл</i> в файл +<i>кон_файл</i> (путь <i>иÑÑ…_файл</i> определÑетÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно +конфигурационного параметра "resource_base").</td></tr> + +<tr><td>Результат:</td><td><i>кон_файл</i> при уÑпешном выполнении, +пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> + +<tr><td>Код возврата:</td><td>1 при уÑпешном выполнении, 0 - +иначе.</td></tr> +</table> + +<p><code><b>write</b></code></p> + +<table> +<tr><td>Ðргументы:</td><td><i>имÑ_файла</i></td></tr> + +<tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> + +<tr><td>ДейÑтвие:</td><td>ЗапиÑывает <i>данные</i> в файл +<i>иÑÑ…_файл</i>.</td></tr> + +<tr><td>Результат:</td><td><i>кон_файл</i> при уÑпешном выполнении, +пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> + +<tr><td>Код возврата:</td><td>1 при уÑпешном выполнении, 0 - +иначе.</td></tr> +</table> + +<p><code><b>read</b></code></p> + +<table> +<tr><td>ТекÑÑ‚:</td><td><i>имÑ_файла</i></td></tr> +<tr><td>ДейÑтвие:</td><td>Читает файл <i>имÑ_файла</i>.</td></tr> +<tr><td>Результат:</td><td>прочитанные данные при уÑпешном выполнении, + пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> +<tr><td>Код возврата:</td><td>1 при уÑпешном выполнении, 0 - +иначе.</td></tr> +</table> + +<p><code><b>include</b></code></p> + +<table> +<tr><td>ТекÑÑ‚:</td><td><i>имÑ_файла</i></td></tr> +<tr><td>ДейÑтвие:</td><td>включает шаблон из файла +<i>имÑ_файла</i>.</td></tr> +<tr><td>Результат:</td><td>результат обработки шаблона.</td></tr> +<tr><td>Код возврата:</td><td>код возврата, полученный при обработке +шаблона.</td></tr> +</table> + +<p><code><b>!</b></code></p> + +<table> +<tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> + +<tr><td>ДейÑтвие:</td><td>нет.</td></tr> + +<tr><td>Результат:</td><td>нет.</td></tr> + +<tr><td>Код возврата:</td><td>код возврата, полученный при обработке +текÑта данных.</td></tr> +</table> + +<p><code><b>replace</b></code></p> + +<table> +<tr><td>Ðргументы:</td><td><i>Ñтр1</i> <i>Ñтр2</i></td></tr> + +<tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> + +<tr><td>Результат:</td><td>данные, Ñ Ð·Ð°Ð¼ÐµÐ½ÐµÐ½Ð½Ñ‹Ð¼Ð¸ вхождениÑми подÑтроки +<i>Ñтр1</i> на <i>Ñтр2</i>.</td></tr> + +<tr><td>Код возврата:</td><td> код возврата, полученный при обработке +текÑта данных.</td></tr> +</table> + +<p><code><b>xml_escape</b></code></p> + +<table> +<tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> +<tr><td>Результат:</td><td>текÑÑ‚ <i>данные</i>, в котором Ñимволы +'&', '<', '>', '`', '\' заменены на ÑоответÑтвующие ÑущноÑти +XML.</td></tr> + +<tr><td>Код возврата:</td><td> код возврата, полученный при обработке +текÑта данных.</td></tr> +</table> + +<p><code><b>xml_cdata</b></code></p> + +<table> +<tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> + +<tr><td>Результат:</td><td>данные в виде блока XML CDATA.</td></tr> + +<tr><td>Код возврата:</td><td> код возврата, полученный при обработке +текÑта данных. </td></tr> +</table> + +<p> +МакропроцеÑÑор TEMA раÑширÑем: возможно добавление в ÑиÑтему новых +функций, реализованных в виде клаÑÑов на Ñзыке Java. +</p> + +<h2>ЗапуÑк</h2> + +<p>java -jar tema.jar [<i>опции</i>] +</p><p> +Опции: +</p> +<table> +<tr><td>-d[emo]</td><td>ДемонÑтрационный режим</td></tr> +<tr><td>-v[ersion]</td><td>Вывод верÑии</td></tr> +<tr><td>-h[help] -u[sage]</td><td>Вывод Ñправки</td></tr> +</table> + +<p> +При запуÑке читаетÑÑ Ñ„Ð°Ð¹Ð» "tema.properties" из текущего каталога.<br /> +Пример файла "tema.properties": +</p> + +<pre> +# ÐаÑтройка иÑточника данных +# resource : jdbc:odbc:database +# driver : sun.jdbc.odbc.JdbcOdbcDriver + +# Базовый каталог реÑурÑов +# resource_base : . + +# Шаблон, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ начинаетÑÑ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° +main_template : main.template + +# Кодировки файлов +# input_encoding : UTF-8 +# output_encoding : UTF-8 + +# КÑширование шаблонов +# cache_read : true + +# Вывод результата разбора шаблона main.template в stderr +# output : stderr + +# Вывод Ñообщений об ошибках в файл +# log : dbreader.log +</pre> + +</body> +</html>