User:Paxed/src geshi test

From NetHackWiki
Jump to navigation Jump to search

This is a test of tiny highlight-extension modification:

Done:

  • Added lineid to the <syntaxhighlight>.
  • Edited geshi.php to output the id without the dash before the number. (So line number hrefs are #line1234, to keep compatible with current ones)
  • Fixed a geshi bug where line ids did not obey line numbering.
  • Added <mixedsyntaxhighlight>-tag, see User:Paxed/src geshi test2. It accepts the same parameters as <syntaxhighlight>, but uses syntax highlighting for each line that match " <span id="line1234">1234. blahblah</span>". (Note the space at the beginning of that line)
  • Added magic word __MIXEDSYNTAXHIGHLIGHT__; See User:Paxed/MixedSyntaxHighlight. This allows for no configuration (at least not yet), but does work.

TODO:

  • <mixedsyntaxhighlight> seems to prevent editing page sections?
  • GeshiThe extension should not strip out empty lines at the end of the highlighting block.
  • Better style for the code blocks.
  • nethack function url links? (need to add the nethack functions and a lookup url ($geshi->add_keyword(), $geshi->add_keyword_group()))
  • Des-file format? (tricky if we want to color both the syntax and the MAP characters)
    • Could be solved by colorizing MAPs separate from other parts, or by using Geshi devel version.

/* Called in several places - may produce output */
/* eg ship_object() and dropy() -> sellobj() both produce output */
void
dropx(obj)
register struct obj *obj;
{
#ifndef GOLDOBJ
        if (obj->oclass != COIN_CLASS || obj == invent) freeinv(obj);
#else
        /* Ensure update when we drop gold objects */
        if (obj->oclass == COIN_CLASS) flags.botl = 1;
        freeinv(obj);
#endif
        if (!u.uswallow) {
            if (ship_object(obj, u.ux, u.uy, FALSE)) return;
            if (IS_ALTAR(levl[u.ux][u.uy].typ))
                doaltarobj(obj); /* set bknown */
        }
        dropy(obj);
}