GeSHi Filter

11Feb07

Jag har börjat trötta på min WordPress blogg hos WordPress. Det som fick mig att tröttna på wordpress är dels deras omständiga WYSIWYG-editor, visst är den trevlig i bland (notera i bland). Men vill man publicera kod eller kodexempel är den helt hopplös. Jag hittade en otroligt bra lösning för drupal baserad på GeSHi- Generic Syntax Highlighter. För att få GeSHi att fungera med Drupal behövs GeSHi Filter.

Resultatet:


class CNPC
{
public:
CNPC();
~CNPC();

void OnTick(gmMachine *m);
void setName(string n){npc_name = n;}
string getName() const {return npc_name;}

void setAge(int i){age=i;}
int getAge() const {return age;}

int GM_CDECL gmfSetName(gmThread* a_thread);
int GM_CDECL gmfSetAge(gmThread* a_thread);

private:
void RegisterScriptBindings();
string npc_name;
int age;
};

Man kan även få uppräkning med valfri början.

int GM_CDECL CNPC::gmfSetName(gmThread* a_thread)
{
GM_CHECK_NUM_PARAMS(1);
GM_CHECK_STRING_PARAM(a_string, 0);

if(a_thread->ParamType(0) == GM_STRING){
setName(a_string);
}

return GM_OK;
}

int GM_CDECL CNPC::gmfSetAge(gmThread* a_thread)
{
GM_CHECK_NUM_PARAMS(1);
GM_CHECK_INT_PARAM(ival, 0);

if(a_thread->ParamType(0)==GM_INT){
setAge(ival);
}

return GM_OK;
}

void CNPC::RegisterScriptBindings()
{
static gmFunctionEntry s_npcLib[] =
{
{“SetName”, gmfSetName},
{“SetAge”, gmfSetAge},
};
//machine->RegisterLibrary(npcLib, sizeof(npcLib) / sizeof(npcLib[0]), “NPC”);
}

Jag ska inte gå in på hur GeSHi filtret fungerar, inte i dag.



No Responses Yet to “GeSHi Filter”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: