Форматтеры
Общая информация
Форматтер это такой специальный обработчики текста.
В VQS форматтеры используют преимущественно для подсветки синтаксиса.
Любой форматтер может быть вызван при помощи синтаксиса %%(имяформаттера) текст %%.
Если имя не указано, используется форматтер code.
Существующие форматтеры
Вот они, ВОТ ОНИ! Форматтеры моей мечты!!!
code
Позволяет включить в страницу произвольный код на каком-либо языке программирования с гарантией, что он не будет обработан wakka-форматтером
linktext
Позволяет сделать симпотные выплывающие подсказки (у нас такие в FAQ работают).
Первая строка – вопрос. Всё остальное – ответ.
А если в вызове добавить имя стиля для подсказки (т.е. написать %%(linktext имястиля)), то можно сделать и круче:
icq, icq_l, icq_m
Позволяет оформить в читабельный вид логи IM-мессенджеров: ICQ Pro, ICQ Lite и Miranda+nConvers соответственно
Некто | Привет | 14.05.20 14:52 |
Роман | привет, ага | 14.05.20 14:52 |
Некто | экая хрень | 14.05.20 14:53 |
Некто | тестирую эту ужасную ицкупро кашмар | 28.06.20 2:25 |
Роман | И не говори | 28.06.20 2:25 |
php, phpplus
Выполняет подсветку синтаксиса языка PHP (для первого варианта обязательно наличие <? и ?>)
<?
phpinfo();
$s = "Hello, World!\n";
print "$s";
?>
sql
Выполняет подсветку синтаксиса языка SQL
SELECT * FROM sometable WHERE a = '12' and b = 2 ORDER BY c DESC --Comment
css
Выполняет подсветку синтаксиса языка CSS
body {margin: 0; padding:5px;}
.class {background:url("http://www.ya.ru/")}
html
Выполняет подсветку синтаксиса языка HTML
<html> <a href="http://www.ya.ru" width="8">test</a> </html>
java
Выполняет подсветку синтаксиса языка JAVA
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } }
pascal
Выполняет подсветку синтаксиса языка PASCAL/DELPHI
BEGIN if a = 15 then writeln("test"); END.
ini
Выполняет подсветку синтаксиса языка INI
[Wiki] BestEngine="WackoWiki" Version=4
Выполняет подсветку e-mail писем.
Hi! RI>> Yes, it is. >Are you sure? Of course, yes! Roman.
comments
Всё, что находится внутри этого форматтера не будет отображаться. Даже пример не будем писать – всё равно не увидите;)
Библиотека Text Highlighter
Поскольку мы всё-таки «кул-хацкеры», то решили добавить в систему подсветку других языков. Так, не мудрствуя лукаво, включили библиотеку Text Highlighter.
Все форматтеры из этого раздела нужно вызывать так: %%(hl имяформаттера) текст %%
hl xml
Выполняет подсветку синтаксиса языка XML
<VQS> <idea>Сделать крутую и весёлую Wiki-CMS</idea> <comment /> </VQS>
hl cpp
Выполняет подсветку синтаксиса языка CPP
#include <iostream> // это необходимо для std::cout и std::endl и для оператора << int main() { std::cout << "Hello, world!" << std::endl; return 0; }
hl javascript
Выполняет подсветку синтаксиса языка JAVASCRIPT
alert('Hello, World!');
hl python
Выполняет подсветку синтаксиса языка PYTHON
>>> print ("Здравствуй, %s!" % "Мир") Здравствуй, Мир!
hl perl
Выполняет подсветку синтаксиса языка PERL
hl ruby
Выполняет подсветку синтаксиса языка RUBY
hl vbscript
Выполняет подсветку синтаксиса языка VBSCRIPT
' Объявление переменной: Dim strMessage ' Присваивание переменной значения: strMessage = "VQS - cool CMS" ' Вывод окна с сообщением: MsgBox strMessage
hl dtd
Выполняет подсветку синтаксиса языка DTD
<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
hl sh
Выполняет подсветку синтаксиса языка SH
if then else elif fi case esac for while until do done { }
hl abap
Выполняет подсветку синтаксиса языка ABAP
REPORT zguiver. DATA: BEGIN OF gs_sysnfo. INCLUDE STRUCTURE rfcsi. DATA: END OF gs_sysnfo. CALL FUNCTION 'RFC_SYSTEM_INFO' DESTINATION 'SAPGUI' IMPORTING rfcsi_export = gs_sysnfo. WRITE: / 'SAPGUI version:', gs_sysnfo-rfcsaprl.
Создание нового форматтера
Достаточно создать php-файл, который получает на вход переменную $text, а результат выводит в stdout (то есть при помощи echo/print) и разместить его в папке formatters.
Если вы создадите новый форматтер, присылайте его нам. Заранее спасибо.
С большой долей вероятности, он будет включен в дистрибутив либо выложен на данной странице.