×
Create a new article
Write your page title here:
We currently have 3,185 articles on s23. Type your article name above or create one of the articles listed here!



    s23
    3,185Articles

    JargonExtension

    About[edit]

    This is a Mediawiki extension that inserts JargonFile definitions on wiki pages.

    Usage[edit]

    The simplest way to do so is to insert <jargon /> in a page, that will use the current page title as lookup term.

    Alternatively you can use <jargon>something</jargon>.

    Pages using it are also automatically included in Category:Jargon.

    ToDo[edit]

    If you find a missing page, simply insert <jargon /> (and nothing else) into the new page and save it.

    Source[edit]

    Install[edit]

    To install copy into ./extensions/JargonExtension.php and then include("extensions/JargonExtension.php"); in LocalSettings.php as usual with Mediawiki extensions.

    The extension uses the Debian package jargon. apt-get install jargon. (Also see vh).

    <HighlightSyntax> <?php

    1. JargonFile terms on Mediawiki pages
    2. On inserting <jargon>something</jargon> in a wiki page,
    3. execute "jargon something" on the shell and return the formatted output
    4. mutante/s23 - 10/2007

    $wgExtensionCredits['other'][] = array(

           'name' => 'JargonFile extension',
           'author' => 'mutante',
           'version' => '10/2007',
           'url' => 'http://s23.org/wiki/JargonExtension',
           'description' => 'displays the JargonFile entry for a term on a wiki page.'
    

    );

    $wgExtensionFunctions[] = "wfJargonExtension";

    function wfJargonExtension() { global $wgParser; $wgParser->setHook( "jargon", "getJargon" ); }

    function getJargon( $input, $args, &$parser ) { global $wgParser; global $wgTitle;

    1. Get the definition of a term from the JargonFile
    1. if no input term is set get the current page title and use that

    if ($input=="") { $mytitle=$wgTitle->mTextform; $term=$mytitle; } else {

    1. if there is input use that

    $term = $input; }

    1. avoid evil stuff from user and at the same time make terms with whitespace work

    $term = escapeshellarg($term);

    1. execute, we dont want the info messages from errout

    $jargon=`jargon 2>/dev/null $term`;

    1. Get next link

    $next=explode("Next: ",$jargon); $next=explode(",",$next[1]); $next=$next[0];

    1. Get previous link

    $prev=explode("Prev: ",$jargon); $prev=explode(",",$prev[1]); $prev=$prev[0];

    1. remove header line

    $jargon=explode("=",$jargon); $jargon=$jargon[2];

    1. add wiki links

    $jargon=str_replace("{","[[",$jargon); $jargon=str_replace("}","]]",$jargon);

    1. remove ` and stuff

    $jargon=str_replace("'","",$jargon); $jargon=str_replace("`","",$jargon);

    1. build output

    $output="

    "; $output.="
    Glider.png"; $output.="This is the Jargon File entry for $term - Next: ".$next.", Prev: ".$prev."
    ".$jargon."
    * (text is auto-included via JargonExtension by mutante using jargon with VERSION 4.0.0, 24 JUL 1996 - JargonFile by Eric S. Raymond is in the public domain)

    \n";


    1. trim,parse and return it

    $output=trim($output); $parsed_output = $parser->recursiveTagParse( $output ); return $parsed_output;

    }

    ?> </HighlightSyntax>

    Cookies help us deliver our services. By using our services, you agree to our use of cookies.