GeSHi

Прикрутил к друпалу подсветку синтаксиса.

Для использования ваш код надо окружить тэгом blockcode, который может принимать два атрибута:

"type" - язык кода, "start" - номер первой строки (не обязателен).

Поддерживаемые языки:

actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, caddcl, cadlisp, cfdg, cfm, cpp, cpp-qt, csharp, css, c_mac, d, delphi, diff, div, dos, eiffel, fortran, freebasic, gml, groovy, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lua, matlab, mirc, mpasm, mysql, nsis, objc, ocaml, ocaml-brief, oobas, oracle8, pascal, perl, php, php-brief, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80.

Ниже пример того что должно получиться.

Кусок кода на php с параметрами type="php" start="10"/** * Implementation of hook_filter_tips() */function geshifilter_filter_tips($delta, $format, $long = false) { $default_type = variable_get('geshifilter_default_type_'.$format, 0); $types = variable_get('geshifilter_types_'.$format, array()); $start_param = variable_get('geshifilter_start_param', FALSE); $line_numbers = variable_get('geshifilter_line_numbers', GESHI_NO_LINE_NUMBERS); $inline_code=variable_get('geshifilter_inline_code_'.$format, FALSE); if ($long) { $text=t('

Code:

'); //some language are allowed, type param is supported if (!$types[0]) { $text .= t('

To post highlighted code, surround it code with <blockcode &;type="language"&;>...</blockcode&gt tags.

E.g. actionscript block code:&lt;blockcode type=&quot;<em>actionscript</em>&quot;&gt;<br />...<br />&lt;/blockcode&gt;

'); if ($inline_code) { $text .= t('

You may also post highlighted inline code surrounding it with &lt;code &;type=&quot;language&quot;&;&gt;...&lt;/code&gt tags.

E.g. highlight actionscript inline code:&lt;code type=&quot;<em>actionscript</em>&quot;&gt;...&lt;/code&gt;

'); }

Кусок кода на php только с параметром type="php"/** * Implementation of hook_filter_tips() */function geshifilter_filter_tips($delta, $format, $long = false) { $default_type = variable_get('geshifilter_default_type_'.$format, 0); $types = variable_get('geshifilter_types_'.$format, array()); $start_param = variable_get('geshifilter_start_param', FALSE); $line_numbers = variable_get('geshifilter_line_numbers', GESHI_NO_LINE_NUMBERS); $inline_code=variable_get('geshifilter_inline_code_'.$format, FALSE); if ($long) { $text=t('

Code:

'); //some language are allowed, type param is supported if (!$types[0]) { $text .= t('

To post highlighted code, surround it code with &lt;blockcode &;type=&quot;language&quot;&;&gt;...&lt;/blockcode&gt tags.

E.g. actionscript block code:&lt;blockcode type=&quot;<em>actionscript</em>&quot;&gt;<br />...<br />&lt;/blockcode&gt;

'); if ($inline_code) { $text .= t('

You may also post highlighted inline code surrounding it with &lt;code &;type=&quot;language&quot;&;&gt;...&lt;/code&gt tags.

E.g. highlight actionscript inline code:&lt;code type=&quot;<em>actionscript</em>&quot;&gt;...&lt;/code&gt;

'); }

Последняя правка: сб, 02/06/2007 - 14:22
Submitted by Victor on

Комментарии

Боюсь разочаровать, но xml-тэги по-прежнему вырезаются подчистую, только значения остаются. :(
Submitted by BlackCat on
Тэст ( BlitzBasic ): Function NameChild_To_Entity(entity,child_name$) If FindChild ( entity,child_name$ )0 child_entity=FindChild ( entity,child_name$ ) Return child_entity EndIf End Function
2 Siarzhuk Piatrouski: Атрибут в тэге blockcode необходимо указывать не [type=blitzbasic] а type="blitzbasic". Прямоугольные скобки в примере, значат что атрибут не обязателен. Ниже исправленный вариант. Function NameChild_To_Entity(entity,child_name$) If FindChild ( entity,child_name$ )0 child_entity=FindChild ( entity,child_name$ ) Return child_entity EndIf End Function BlackCat: С xml замут серьезный - придеться повозиться. Остальные языки должны работать.
Submitted by Victor on
Настроил xml, теперь должен работать, проверяйте.
Submitted by Victor on
CPP#ifndef _A12
  1. define _A12
  • endif
  • // работа с инструкциями

    typedef class c__VM{ DWORD* stack; void* memory_field; void* var_offset; void* instruction_offset; lpm_ByteCodeHeader header; lpm_Var var; lpm_Instr instr;

    m_Proc Processor;

    int* GetOperand(lpm_Instr& instr, DWORD type);public: void vmFillVM( void* data ); lpm_Proc vmGetProcState( lpm_Proc in_processor ); void vmStep( void ); void vmRun( void );public: c__VM(); ~c__VM();

    }m_VM,*lpm_VM;

    ... Какой-либо текст ...

    <blockcode type="cpp" start=28>void c__VM::vmRun( void ){ while(Processor.RIP < header->dw_instruction_count){ vmStep(); }}lpm_Proc c__VM::vmGetProcState(lpm_Proc in_processor){ memcpy(in_processor,&Processor,sizeof(m_Proc)); return in_processor;}cVM::cVM(){ stack = new DWORD[STACK_SIZE];

    }

    cVM::~cVM(){ delete [] stack;

    }

    Submitted by Relyer on

    Все - теперь должно работать.

    Submitted by Victor on

    GameDev.by