Mercurial > hg > tema
comparison misc/manual-ru-old/index.html @ 2:6c41a0b43e58 release_0_3
Tema 0.3 (imported from CVS).
author | Mikhail Kryshen <mikhail@kryshen.net> |
---|---|
date | Tue, 19 Feb 2008 20:32:17 +0300 (2008-02-19) |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1:548a93c24e55 | 2:6c41a0b43e58 |
---|---|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
2 "DTD/xhtml1-transitional.dtd"> | |
3 | |
4 <html> | |
5 | |
6 <head> | |
7 <title>МакропроцеÑÑор TEMA</title> | |
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
9 </head> | |
10 | |
11 <body> | |
12 <h1>МакропроцеÑÑор TEMA</h1> | |
13 | |
14 <p>МакропроцеÑÑор TEMA обрабатывает заданные шаблоны текÑтовых файлов и | |
15 заменÑет найденные в них инÑтрукции на результаты их выполнениÑ. | |
16 </p><p> | |
17 ОÑобенноÑти: | |
18 </p> | |
19 <ul> | |
20 <li>РаÑширÑемоÑть: возможно динамичеÑки подключать новые функии, | |
21 реализованные в виде клаÑÑов на Java.</li> | |
22 <li>Работа Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ данных: иÑпользование SQL-запроÑов Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ | |
23 данных.</li> | |
24 <li>ÐŸÐ¾Ñ‚Ð¾Ñ‡Ð½Ð°Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° данных: инÑтрукции обрабатываютÑÑ Ð¿Ð¾ мере | |
25 Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑта без необходимоÑти загрузки файла в оперативную памÑть | |
26 и Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ ÑинтакÑичеÑкого разбора.</li> | |
27 </ul> | |
28 | |
29 <p><b>Формат инÑтрукций</b></p> | |
30 | |
31 <blockquote> | |
32 <code><%<i>ÑпиÑок_функций</i>{:|\|`}<i>данные</i>%></code> | |
33 </blockquote> | |
34 <p> | |
35 где<br /> | |
36 | |
37 <code><i>ÑпиÑок_функций</i></code> - ÑпиÑок имен функций, разделенных | |
38 пробелами. Может быть пуÑтым.<br /> | |
39 <code><i>данные</i></code> - данные, передаваемые функции. | |
40 </p> | |
41 | |
42 <p><b>Формат данных</b></p> | |
43 | |
44 <blockquote> | |
45 <code> | |
46 [<i>ÑпиÑок_аргументов</i>][<i>текÑÑ‚</i>] | |
47 </code> | |
48 </blockquote> | |
49 <p> | |
50 где<br /> | |
51 | |
52 <code><i>ÑпиÑок_аргументов</i></code> - ÑпиÑок аргументов функции, разделенных пробелами. | |
53 Может быть пуÑтым.<br /> | |
54 <code><i>текÑÑ‚</i></code> - текÑÑ‚, передаваемый функции без Ñ€Ð°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð½Ð° аргументы. | |
55 Может быть пуÑтым. КоличеÑтво аргументов, поÑле которого Ñледует | |
56 текÑÑ‚, завиÑит от функции. | |
57 </p><p> | |
58 Разделитель между ÑпиÑком функций и данными определÑет, как должны | |
59 обрабатыватьÑÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ функции: | |
60 </p><p> | |
61 <code>:</code> - рекурÑÐ¸Ð²Ð½Ð°Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ°,<br /> | |
62 <code>\</code> или <code>`</code> - передать без обработки. | |
63 </p><p> | |
64 ЕÑли в ÑпиÑке функций задано две и более функции, они выполнÑÑŽÑ‚ÑÑ, | |
65 Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð¿Ð¾Ñледней, так что ÐºÐ°Ð¶Ð´Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ в качеÑтве данных | |
66 результат Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñледующей функции. | |
67 </p><p> | |
68 ÐšÐ°Ð¶Ð´Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ код возврата - целое чиÑло. Код возврата | |
69 инÑтрукции - код возврата первой в ÑпиÑке функции. Код возврата, | |
70 получаемый при обработке текÑта - Ñумма кодов возврата обработанных | |
71 инÑтрукций (как правило, ÑмыÑл Ñтого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ - количеÑтво инÑтрукций, | |
72 замененных на непуÑтой текÑÑ‚). | |
73 </p><p> | |
74 Кроме Ñкобок '<', '>', можно иÑпользовать Ñкобки '[', ']'. | |
75 </p> | |
76 | |
77 | |
78 <h2>Функции</h2> | |
79 | |
80 <p><code><b>set</b></code></p> | |
81 | |
82 <table> | |
83 <tr><td>Ðргументы:</td> | |
84 <td><i>имÑ</i></td></tr> | |
85 | |
86 <tr><td>ТекÑÑ‚:</td> | |
87 <td><i>значение</i></td></tr> | |
88 | |
89 <tr><td>ДейÑтвие:</td> | |
90 <td>УÑтанавливает значение переменной <i>имÑ</i>.</td></tr> | |
91 | |
92 <tr><td>Результат:</td> | |
93 <td><i>имÑ</i></td></tr> | |
94 | |
95 <tr><td>Код возврата:</td> | |
96 <td>1</td></tr> | |
97 </table> | |
98 | |
99 <p><code><b>define</b></code></p> | |
100 | |
101 <table> | |
102 <tr><td>Ðргументы:</td> | |
103 <td><i>имÑ</i></td></tr> | |
104 | |
105 <tr><td>ТекÑÑ‚:</td> | |
106 <td><i>шаблон</i></td></tr> | |
107 | |
108 <tr><td>ДейÑтвие:</td><td>ОпределÑет новую функцию <i>имÑ</i>, при | |
109 вызове которой обрабатываетÑÑ <i>шаблон</i>. При обработке доÑтупны | |
110 функции <code>nextarg</code> Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð½Ð¾Ð³Ð¾ аргумента | |
111 вызываемой функции и <code>data</code> Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑта.</td></tr> | |
112 | |
113 <tr><td>Результат:</td> | |
114 <td><i>имÑ</i></td></tr> | |
115 | |
116 <tr><td>Код возврата:</td> | |
117 <td>1</td></tr> | |
118 </table> | |
119 | |
120 <p><code><b>load</b></code></p> | |
121 | |
122 <table> | |
123 <tr><td>Ðргументы:</td> | |
124 <td><i>имÑ</i> <i>имÑ_клаÑÑа</i></td></tr> | |
125 | |
126 <tr><td>ДейÑтвие:</td> | |
127 | |
128 <td>ОпределÑет новую функцию <i>имÑ</i>. Ð ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ определена | |
129 Java-клаÑÑом <i>имÑ_клаÑÑа</i>, наÑледующим клаÑÑ | |
130 <code>kryshen.tema.Function</code>.</td></tr> | |
131 | |
132 <tr><td>Результат:</td> | |
133 <td><i>имÑ</i></td></tr> | |
134 | |
135 <tr><td>Код возврата:</td> | |
136 <td>1</td></tr> | |
137 </table> | |
138 | |
139 <p><code><b>prepare</b></code></p> | |
140 | |
141 <table> | |
142 <tr><td>Ðргументы:</td> | |
143 <td><i>имÑ</i></td></tr> | |
144 | |
145 <tr><td>ТекÑÑ‚:</td> | |
146 <td><i>запроÑ</i></td></tr> | |
147 | |
148 <tr><td>ДейÑтвие:</td> | |
149 <td>Подготавливает SQL-Ð·Ð°Ð¿Ñ€Ð¾Ñ <i>запроÑ</i> Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, запиÑывает | |
150 подготовленный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² переменную <i>имÑ</i>.</td></tr> | |
151 | |
152 <tr><td>Результат:</td> | |
153 <td><i>имÑ</i></td></tr> | |
154 | |
155 <tr><td>Код возврата:</td> | |
156 <td>1</td></tr> | |
157 </table> | |
158 | |
159 <p><code><b>query</b></code></p> | |
160 | |
161 <table> | |
162 <tr><td>Ðргументы:</td> | |
163 <td><i>имÑ_запроÑа</i> <i>шаблон</i> <i>парам1</i> ... <i>парамN</i></td></tr> | |
164 | |
165 <tr><td>ДейÑтвие:</td> | |
166 <td>ВыполнÑет Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸, подготовленный Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции | |
167 prepare. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² подÑтавлÑÑŽÑ‚ÑÑ Ð² Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð²Ð¼ÐµÑто Ñимвола | |
168 '?'. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ¹ ответа доÑтупны Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции <code>db</code>, | |
169 как переменные шаблона <i>шаблон</i>. При обработки шаблона также | |
170 определÑетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ <code>number</code>, ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ñ‰Ð°Ñ Ð½Ð¾Ð¼ÐµÑ€ текущей | |
171 Ñтроки ответа.</td></tr> | |
172 | |
173 <tr><td>Результат:</td> | |
174 <td>результат обработки шаблона <i>шаблон</i> Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñтроки | |
175 ответа.</td></tr> | |
176 | |
177 <tr><td>Код возврата:</td> | |
178 <td>КоличеÑтво полученных Ñтрок ответа.</td></tr> | |
179 </table> | |
180 | |
181 <p><code><b>optional</b></code></p> | |
182 | |
183 <table> | |
184 <tr><td>ТекÑÑ‚:</td> | |
185 <td><i>данные</i></td></tr> | |
186 | |
187 <tr><td>Результат:</td><td><i>данные</i>, еÑли при обработке данных | |
188 был получен код возврата отличный от 0, иначе - пуÑÑ‚Ð°Ñ | |
189 Ñтрока.</td></tr> | |
190 | |
191 <tr><td>Код возврата:</td> | |
192 <td>1, еÑли результат - пуÑÑ‚Ð°Ñ Ñтрока, 0 - иначе.</td></tr> | |
193 </table> | |
194 | |
195 <p><code><b>image</b></code></p> | |
196 | |
197 <table> | |
198 <tr><td>Ðргументы:</td> | |
199 <td><i>иÑÑ…_файл</i> <i>кон_файл</i> <i>формат</i> [<i>макÑ_ширина</i> | |
200 [<i>макÑ_выÑота</i>]]</td></tr> | |
201 | |
202 <tr><td>ДейÑтвие:</td> | |
203 <td>Загружает изображение из файла <i>иÑÑ…_файл</i> (путь определÑетÑÑ | |
204 отноÑительно конфигурационного параметра "resource_base") и | |
205 преобразует его в указанный формат, ÑохранÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚ в | |
206 <i>кон_файл</i>. ЕÑли заданы макÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹Ñота и ширина, большие | |
207 Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ уменьшены.</td></tr> | |
208 | |
209 <tr><td>Результат:</td> | |
210 <td><i>кон_файл</i> при уÑпешном выполнении, пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> | |
211 | |
212 <tr><td>Код возврата:</td> | |
213 <td>1 при уÑпешном выполнении, 0 - иначе.</td></tr> | |
214 </table> | |
215 | |
216 | |
217 <p><code><b>copy</b></code></p> | |
218 | |
219 <table> | |
220 <tr><td>Ðргументы:</td><td><i>иÑÑ…_файл</i> <i>кон_файл</i></td></tr> | |
221 | |
222 <tr><td>ДейÑтвие:</td><td>Копирует файл <i>иÑÑ…_файл</i> в файл | |
223 <i>кон_файл</i> (путь <i>иÑÑ…_файл</i> определÑетÑÑ Ð¾Ñ‚Ð½Ð¾Ñительно | |
224 конфигурационного параметра "resource_base").</td></tr> | |
225 | |
226 <tr><td>Результат:</td><td><i>кон_файл</i> при уÑпешном выполнении, | |
227 пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> | |
228 | |
229 <tr><td>Код возврата:</td><td>1 при уÑпешном выполнении, 0 - | |
230 иначе.</td></tr> | |
231 </table> | |
232 | |
233 <p><code><b>write</b></code></p> | |
234 | |
235 <table> | |
236 <tr><td>Ðргументы:</td><td><i>имÑ_файла</i></td></tr> | |
237 | |
238 <tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> | |
239 | |
240 <tr><td>ДейÑтвие:</td><td>ЗапиÑывает <i>данные</i> в файл | |
241 <i>иÑÑ…_файл</i>.</td></tr> | |
242 | |
243 <tr><td>Результат:</td><td><i>кон_файл</i> при уÑпешном выполнении, | |
244 пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> | |
245 | |
246 <tr><td>Код возврата:</td><td>1 при уÑпешном выполнении, 0 - | |
247 иначе.</td></tr> | |
248 </table> | |
249 | |
250 <p><code><b>read</b></code></p> | |
251 | |
252 <table> | |
253 <tr><td>ТекÑÑ‚:</td><td><i>имÑ_файла</i></td></tr> | |
254 <tr><td>ДейÑтвие:</td><td>Читает файл <i>имÑ_файла</i>.</td></tr> | |
255 <tr><td>Результат:</td><td>прочитанные данные при уÑпешном выполнении, | |
256 пуÑÑ‚Ð°Ñ Ñтрока - иначе.</td></tr> | |
257 <tr><td>Код возврата:</td><td>1 при уÑпешном выполнении, 0 - | |
258 иначе.</td></tr> | |
259 </table> | |
260 | |
261 <p><code><b>include</b></code></p> | |
262 | |
263 <table> | |
264 <tr><td>ТекÑÑ‚:</td><td><i>имÑ_файла</i></td></tr> | |
265 <tr><td>ДейÑтвие:</td><td>включает шаблон из файла | |
266 <i>имÑ_файла</i>.</td></tr> | |
267 <tr><td>Результат:</td><td>результат обработки шаблона.</td></tr> | |
268 <tr><td>Код возврата:</td><td>код возврата, полученный при обработке | |
269 шаблона.</td></tr> | |
270 </table> | |
271 | |
272 <p><code><b>!</b></code></p> | |
273 | |
274 <table> | |
275 <tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> | |
276 | |
277 <tr><td>ДейÑтвие:</td><td>нет.</td></tr> | |
278 | |
279 <tr><td>Результат:</td><td>нет.</td></tr> | |
280 | |
281 <tr><td>Код возврата:</td><td>код возврата, полученный при обработке | |
282 текÑта данных.</td></tr> | |
283 </table> | |
284 | |
285 <p><code><b>replace</b></code></p> | |
286 | |
287 <table> | |
288 <tr><td>Ðргументы:</td><td><i>Ñтр1</i> <i>Ñтр2</i></td></tr> | |
289 | |
290 <tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> | |
291 | |
292 <tr><td>Результат:</td><td>данные, Ñ Ð·Ð°Ð¼ÐµÐ½ÐµÐ½Ð½Ñ‹Ð¼Ð¸ вхождениÑми подÑтроки | |
293 <i>Ñтр1</i> на <i>Ñтр2</i>.</td></tr> | |
294 | |
295 <tr><td>Код возврата:</td><td> код возврата, полученный при обработке | |
296 текÑта данных.</td></tr> | |
297 </table> | |
298 | |
299 <p><code><b>xml_escape</b></code></p> | |
300 | |
301 <table> | |
302 <tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> | |
303 <tr><td>Результат:</td><td>текÑÑ‚ <i>данные</i>, в котором Ñимволы | |
304 '&', '<', '>', '`', '\' заменены на ÑоответÑтвующие ÑущноÑти | |
305 XML.</td></tr> | |
306 | |
307 <tr><td>Код возврата:</td><td> код возврата, полученный при обработке | |
308 текÑта данных.</td></tr> | |
309 </table> | |
310 | |
311 <p><code><b>xml_cdata</b></code></p> | |
312 | |
313 <table> | |
314 <tr><td>ТекÑÑ‚:</td><td><i>данные</i></td></tr> | |
315 | |
316 <tr><td>Результат:</td><td>данные в виде блока XML CDATA.</td></tr> | |
317 | |
318 <tr><td>Код возврата:</td><td> код возврата, полученный при обработке | |
319 текÑта данных. </td></tr> | |
320 </table> | |
321 | |
322 <p> | |
323 МакропроцеÑÑор TEMA раÑширÑем: возможно добавление в ÑиÑтему новых | |
324 функций, реализованных в виде клаÑÑов на Ñзыке Java. | |
325 </p> | |
326 | |
327 <h2>ЗапуÑк</h2> | |
328 | |
329 <p>java -jar tema.jar [<i>опции</i>] | |
330 </p><p> | |
331 Опции: | |
332 </p> | |
333 <table> | |
334 <tr><td>-d[emo]</td><td>ДемонÑтрационный режим</td></tr> | |
335 <tr><td>-v[ersion]</td><td>Вывод верÑии</td></tr> | |
336 <tr><td>-h[help] -u[sage]</td><td>Вывод Ñправки</td></tr> | |
337 </table> | |
338 | |
339 <p> | |
340 При запуÑке читаетÑÑ Ñ„Ð°Ð¹Ð» "tema.properties" из текущего каталога.<br /> | |
341 Пример файла "tema.properties": | |
342 </p> | |
343 | |
344 <pre> | |
345 # ÐаÑтройка иÑточника данных | |
346 # resource : jdbc:odbc:database | |
347 # driver : sun.jdbc.odbc.JdbcOdbcDriver | |
348 | |
349 # Базовый каталог реÑурÑов | |
350 # resource_base : . | |
351 | |
352 # Шаблон, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ начинаетÑÑ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° | |
353 main_template : main.template | |
354 | |
355 # Кодировки файлов | |
356 # input_encoding : UTF-8 | |
357 # output_encoding : UTF-8 | |
358 | |
359 # КÑширование шаблонов | |
360 # cache_read : true | |
361 | |
362 # Вывод результата разбора шаблона main.template в stderr | |
363 # output : stderr | |
364 | |
365 # Вывод Ñообщений об ошибках в файл | |
366 # log : dbreader.log | |
367 </pre> | |
368 | |
369 </body> | |
370 </html> |