Показать полную графическую версию : Как прикрутить тег [autoit] к форуму?
Belfigor
24-08-2009, 11:33
Никто не подскажет что надо прикрутить к форуму, чтобы можно постить код без Au3Post а просто заключив его в теги ?
Это не сюда :) Это в раздел Javascript.
Вопрос интересны, я бы и сам не против был узнать на него ответ.
По идее это можно спросить у Jon'а, как он это сделал на оф. форуме.
P.S
А заголовок темы неудачный.
Belfigor
24-08-2009, 18:29
А кто имеет контакт с Джоном? Я даже вопрос то так на английском сформулировать не смогу чтобы он меня понял :(
Просто если мне не изменяет память когда я начинал пользоваться AutoIt там то ли на главной странице то ли на самом форуме светилось нечто типа "Для веб разработчиков" и там вроде бы вобъяснялось как это сделать и был вроде какой-то файлик, или же кусок кода для форумов.
Belfigor, посмотрите GeSHi (http://qbnz.com/highlighter/)
Belfigor
25-08-2009, 23:55
Огромное спасибо :)
посмотрите GeSHi »
Интересно. Вот теперь бы ещё узнать как это прикручивать http://files.myopera.com/Creat0R/Opera_AC/Icons/whistle.gif ...
Оказывается прикрутиь GeSHi проще простого...
Метод для SMF (2.0):
Качаем архив geshi (GeSHi-1.0.8.4.zip (http://sourceforge.net/projects/geshi/files/geshi/GeSHi%201.0.8.4/GeSHi-1.0.8.4.zip/download)).
Распаковываем его куда нибудь.
И заливаем следующие файлы/папки, желательно в подпапку, не в корень:
\My_Tags\....
geshi [Папка]
geshi.php
Далее в файл «Sources/Subs.php» добавляем перед (ну или просто в начало файла)
// Update some basic statistics...
инклуд «geshi.php»:
include_once('тут\путь\до\geshi.php');
И добавляем тег в массивы тегов чуть ниже (в том же файле - ищем "$codes = array(...."):
array(
'tag' => 'autoit',
'type' => 'unparsed_content',
'content' => '<div class="codeheader">AutoIt: <a href="javascript:void(0);" onclick="return smfSelectText(this);" class="codeoperation">' . $txt['code_select'] . '</a></div><blockquote style="background-color: #ffffff;font-size: 11px;">$1</blockquote>',
'validate' => isset($disabled['autoit']) ? null : create_function('&$tag, &$data, $disabled', '
$lang = \'autoit\';
$path = \'\';
$data = str_replace("<", "<", $data);
$data = str_replace(">", ">", $data);
$data = str_replace(""", "\"", $data);
$data = str_replace(" ", " ", $data);
$data = str_replace("<br />", "\r\n", $data);
//$code = geshi_highlight($data, $lang, $path, true);
//$data = $code;
$geshi = new GeSHi($data, $lang);
$data = $geshi->parse_code();
'),
'block_level' => true,
),
Всё, теперь при использовании тега [autoit] код внутри будет подсвечиваться синтаксисом AutoIt'а. Хотя следует заметить, что autoit.php (файл отвечающий за подсветку), немного(?) устарел, и замечаются некоторы глюки... если есть умельцы и знатоки в php/geshi, прошу подсказать как исправить некоторые из этих глюков, если что, напишу конкретно какие.
P.S
Теперь таким же способом можно подсвечивать синтаксис не только autoit тега, но и почти любого языка (список поддерживаемых языков есть на главной страничке GeSHi (http://qbnz.com/highlighter/)) - достаточно только поменять в коде выше (в переменной $lang) \'autoit\' на имя нужного языка.
P.P.S
Как всё это прикручивается я узнал прочитав документацию к GeSHi (http://qbnz.com/highlighter/geshi-doc.html), что ещё раз свидетельствует о том, что подобные документации пишутся не зря, и не нужно лениться читать их, иногда оно даётся не просто, но без этого обычно никак.
прошу подсказать как исправить некоторые из этих глюков, если что, напишу конкретно какие. »
Напишите, может смогу помочь.
Напишите, может смогу помочь »
Проблема первая - в AutoIt как известно есть #include, после которого идёт имя файл либо в кавычках (как обычная строка), либо в треугольных скобках, вот так:
#include <GUIConstants.au3>
Так вот в последнем случае, скобки подсвечиваются отдельно, а должно быть как обычная строка:
#include <GUIConstants.au3>
Проблема вторая - Цифры подсвечиваются не всегда, например вот тут:
$sVar = 12345
Sleep(10)
Из за вызова функции (даже если перед ней есть переменная), 12345 не подсвечивается как должно быть (как цифры в Sleep к примеру).
Если нужна среда тестирования, могу дать в ПМ логин и пароль тестового юзера у меня на форуме.
Ещё баги:
Макросы не всегда подсвечиваются: Поправил.
ConsoleWrite(@HOUR & ":" &@MIN & ":" & @SEC)
ConsoleWrite(@HOUR& ":" & @MIN& ":" & @SEC)
Строки в полукруглых скобках:
Send("{!}")
Должно быть так:
Send("{!}")
Комментарии неправильно подсвечиваются если нет парных обозначении в том же регистре букв: Поправил.
#cs Тут комент должен начинаться
#CE А тут он должен заканчиваться
Но по необъяснимому стечению обстоятельств этого не происходит
А те что совпадают в регистре букв, тоже имеют багу:
#cs тут
#ce все работает нормально
За исключением того момента что вся строка #ce должна быть зеленой
DedAlex, Вы ещё заинтересованы помочь? http://files.myopera.com/Creat0R/Opera_AC/Icons/Kolobki/blush2.gif
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.