From 1e097367df3e531ec9c4d85a9561fabf5db54677 Mon Sep 17 00:00:00 2001
From: thepurpleblob
Date: Mon, 11 Apr 2005 13:49:38 +0000
Subject: [PATCH] Wiki-like format removed. Rendering class no longer required.
---
lib/wiki.php | 866 ---------------------------------------------------
1 file changed, 866 deletions(-)
delete mode 100644 lib/wiki.php
diff --git a/lib/wiki.php b/lib/wiki.php
deleted file mode 100644
index 33c8d2311db..00000000000
--- a/lib/wiki.php
+++ /dev/null
@@ -1,866 +0,0 @@
-list_state != LIST_NONE) {
-
- $lclose = $this->do_list( " ",true );
-
- }
-
-
-
- $sclose = "";
-
- switch ($state) {
-
- case STATE_PARAGRAPH:
-
- $sclose = "
\n";
-
- break;
-
- case STATE_BLOCKQUOTE:
-
- $sclose = "\n";
-
- break;
-
- case STATE_PREFORM:
-
- $sclose = "\n";
-
- break;
-
- case STATE_NOTIKI:
-
- $sclose = "\n";
-
- break;
-
- }
-
-
-
- return $lclose . $sclose;
-
- }
-
-
-
-
-
- function do_replace( $line, $mark, $tag ) {
-
- // do the regex thingy for things like bold, italic etc
-
- // $mark is the magic character, and $tag the HTML tag to insert
-
-
-
- // BODGE: replace inline $mark characters in places where we want them ignored
-
- // they will be put back after main substitutue, stops problems with eg, and/or
-
- $bodge = chr(1);
-
- $line = eregi_replace( '([[:alnum:]])'.$mark.'([[:alnum:]])', '\\1'.$bodge.'\\2',$line );
-
-
-
- $regex = '(^| |[(.,])'.$mark.'([^'.$mark.']*)'.$mark.'([^[:alnum:]]|$)';
-
- $replace = '\\1<'.$tag.'>\\2'.$tag.'>\\3';
-
- $line = eregi_replace( $regex, $replace, $line );
-
-
-
- // BODGE: back we go
-
- $line = eregi_replace( $bodge, $mark, $line );
-
-
-
- return $line;
-
- }
-
-
-
- function do_replace_sub( $line, $mark, $tag ) {
-
- // do regex for subscript and superscript (slightly different)
-
- // $mark is the magic character and $tag the HTML tag to insert
-
-
-
- $regex = $mark.'([^'.$mark.']*)'.$mark;
-
- $replace = '<'.$tag.'>\\1'.$tag.'>';
-
- return eregi_replace( $regex, $replace, $line );
-
- }
-
-
-
- function do_list( $line, $blank=false ) {
-
- // handle line with list character on it
-
- // if blank line implies drop to level 0
-
-
-
- // get magic character and then delete it from the line if not blank
-
- if ($blank) {
-
- $listchar="";
-
- $count = 0;
-
- }
-
- else {
-
- $listchar = $line{0};
-
- $count = strspn( $line, $listchar );
-
- $line = eregi_replace( "^[".$listchar."]+ ", "", $line );
-
- }
-
-
-
- // find what sort of list this character represents
-
- $list_tag = "";
-
- $item_tag = "";
-
- $list_style = LIST_NONE;
-
- switch ($listchar) {
-
- case '*':
-
- $list_tag = "ul";
-
- $item_tag = "li";
-
- $list_style = LIST_UNORDERED;
-
- break;
-
- case '#':
-
- $list_tag = "ol";
-
- $item_tag = "li";
-
- $list_style = LIST_ORDERED;
-
- break;
-
- case ';':
-
- $list_tag = "dl";
-
- $item_tag = "dd";
-
- $list_style = LIST_DEFINITION;
-
- break;
-
- case ':':
-
- $list_tag = "dl";
-
- $item_tag = "dt";
-
- $list_style = LIST_DEFINITION;
-
- break;
-
- }
-
-
-
- // tag opening/closing regime now - fun bit :-)
-
- $tags = "";
-
-
-
- // if depth has reduced do number of closes to restore level
-
- for ($i=$this->list_depth; $i>$count; $i-- ) {
-
- $close_tag = array_pop( $this->list_backtrack );
-
- $tags = $tags . $close_tag;
-
- }
-
-
-
- // if depth has increased do number of opens to balance
-
- for ($i=$this->list_depth; $i<$count; $i++ ) {
-
- array_push( $this->list_backtrack, "$list_tag>" );
-
- $tags = $tags . "<$list_tag>";
-
- }
-
-
-
- // ok, so list state is now same as style and depth same as count
-
- $this->list_state = $list_style;
-
- $this->list_depth = $count;
-
-
-
- // apply formatting to remainder of line
-
- $line = $this->line_replace( $line );
-
-
-
- if ($blank) {
-
- $newline = $tags;
-
- }
-
- else {
-
- $newline = $tags . "<$item_tag>" . $line . "$item_tag>";
-
- }
-
-
-
- return $newline;
-
- }
-
-
-
- function line_replace( $line ) {
-
- // return line after various formatting replacements
-
- // have been made - order is vital to stop them interfering with each other
-
-
-
- if (IN_MOODLE==1) {
-
- global $CFG;
-
- }
-
-
-
- // convert < and > (kills HTML)
-
- $line = str_replace( ">", ">", $line );
-
- $line = str_replace( "<", "<", $line );
-
-
-
- // ---- (at least) means a
-
- $line = eregi_replace( "^-{4}.*", "
", $line );
-
-
-
- // is this a list line (starts with * # ; :)
-
- if (eregi( "^([*]+|[#]+|[;]+|[:]+) ", $line )) {
-
- $line = $this->do_list( $line );
-
- }
-
-
-
- // typographic conventions
-
- $line = str_replace( "--", "—", $line );
-
- $line = str_replace( " - ", " – ", $line );
-
- $line = str_replace( "...", " … ", $line );
-
- $line = str_replace( "(R)", "®", $line );
-
- $line = str_replace( "(r)", "®", $line );
-
- $line = str_replace( "(TM)", "™", $line );
-
- $line = str_replace( "(tm)", "™", $line );
-
- $line = str_replace( "(C)", "©", $line );
-
- // $line = str_replace( "(c)", "©", $line );
-
- $line = str_replace( "1/4", "¼", $line );
-
- $line = str_replace( "1/2", "½", $line );
-
- $line = str_replace( "3/4", "¾", $line );
-
-
-
- $line = eregi_replace( "([[:digit:]]+[[:space:]]*)x([[:space:]]*[[:digit:]]+)", "\\1×\\2", $line ); // (digits) x (digits) - multiply
-
-
-
- // do formatting tags
-
- // NOTE: The / replacement *has* to be first, or it will screw the
-
- // HTML tags that are added by the other ones
-
- $line = $this->do_replace( $line, "/", "em" );
-
- $line = $this->do_replace( $line, "\*", "strong" );
-
- $line = $this->do_replace( $line, "\+", "ins" );
-
- $line = $this->do_replace( $line, "-", "del" );
-
- $line = $this->do_replace_sub( $line, "~", "sub" );
-
- $line = $this->do_replace_sub( $line, "\^", "sup" );
-
- // $line = $this->do_replace( $line, "\"", "q" );
-
- // $line = $this->do_replace( $line, "'", "q" );
-
- $line = $this->do_replace( $line, "%", "code" );
-
- $line = $this->do_replace( $line, "@", "cite" );
-
-
-
- // replace quotes
-
- $regex = '(^| |[(.,])\"([^\"]*)\"([^[:alnum:]]|$)';
-
- $replace = '\\1“\\2”\\3';
-
- $line = eregi_replace( $regex, $replace, $line );
-
-
-
- // convert urls into proper link with optional link text URL(text)
-
- $line = eregi_replace("([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\(([^)]+)\)",
-
- "\\1\\5", $line);
-
- $line = eregi_replace("([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])\(([^)]+)\)",
-
- "\\1\\5", $line);
-
-
-
- // make urls (with and without httpd) into proper links
-
- $line = eregi_replace("([[:space:]]|^)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])",
-
- "\\1\\2://\\3\\4", $line);
-
- $line = eregi_replace("([[:space:]])www\.([^[:space:]]*)([[:alnum:]#?/&=])",
-
- "\\1www.\\2\\3", $line);
-
-
-
- // make email addresses into mailtos....
-
- $line = eregi_replace("([[:space:]]|^)([[:alnum:]._-]+@[[:alnum:]._-]+)\(([^)]+)\)",
-
- "\\1\\3", $line);
-
-
-
- // !# at the beginning of any lines means a heading
-
- $line = eregi_replace( "^!([1-6]) (.*)$", "\\2", $line );
-
-
-
- // acronym handing, example HTML(Hypertext Markyp Language)
-
- $line = ereg_replace( "([A-Z]+)\(([^)]+)\)", "\\1", $line );
-
-
-
- // *Moodle Specific*
-
- if (IN_MOODLE==1) {
-
- // Replace resource link >>##(Description Text)
-
- $line = eregi_replace( " ([a-zA-Z]+):([0-9]+)\(([^)]+)\)",
-
- " wwwroot."/mod/\\1/view.php?id=\\2\">\\3 ", $line );
-
-
-
- // Replace picture resource link
-
- // global $course; // This is a bit risky - it won't work everywhere
-
-
-
- if ($CFG->slasharguments) {
-
- $line = eregi_replace( "/([a-zA-Z0-9./_-]+)(png|gif|jpg)\(([^)]+)\)",
-
- "
wwwroot/file.php/$this->courseid/\\1\\2\" alt=\"\\3\" />", $line );
-
- } else {
-
- $line = eregi_replace( "/([a-zA-Z0-9./_-]+)(png|gif|jpg)\(([^)]+)\)",
-
- "
wwwroot/file.php\?file=$this->courseid/\\1\\2\" alt=\"\\3\" />", $line );
-
- }
-
-
-
- // Replace everything else resource link
-
- if ($CFG->slasharguments) {
-
- $line = eregi_replace( "file:/([[:alnum:]/._-]+)\(([^)]+)\)",
-
- "wwwroot/file.php/$this->courseid/\\1\" >\\2", $line );
-
- } else {
-
- $line = eregi_replace( "file:/([[:alnum:]/._-]+)\(([^)]+)\)",
-
- "wwwroot/file.php\?file=$this->courseid/\\1\" >\\2", $line );
-
- }
-
-
-
- replace_smilies( $line );
-
-
-
- }
-
-
-
- return $line;
-
- }
-
-
-
-
-
- function spellcheck( $line,$pspell_link ) {
-
-
-
- // split line into words
-
- $words = preg_split( "/[\s,-.]/ ", $line );
-
-
-
- // run through words
-
- $newline = "";
-
- foreach($words as $word) {
-
- $check_word = eregi_replace( "[,;:./&()* ?\"]", "", $word );
-
- $check_word = eregi_replace( "^'|'$","",$check_word );
-
-
-
- // words not to check
-
- $docheck = true;
-
- if (eregi("[0-9]",$check_word)) { $docheck=false; }
-
-
-
- if ( $docheck && (!pspell_check( $pspell_link, $check_word)) ) {
-
- $suggests = pspell_suggest( $pspell_link,$check_word );
-
- $suggest_line = "";
-
- foreach($suggests as $suggest) {
-
- $suggest_line = $suggest_line . " " . $suggest;
-
- }
-
- $word = "$word";
-
- }
-
- $newline = $newline . " " . $word;
-
- }
-
-
-
- return $newline;
-
- }
-
-
-
-
-
- function format( $content, $courseid ) {
-
- // main entry point for processing TikiText
-
- // $content is string containing text with Tiki formatting
-
- // return: string containing XHTML formatting
-
-
-
- // initialisation stuff
-
- $this->output = "";
-
- $this->block_state = STATE_NONE;
-
- $this->list_state = LIST_NONE;
-
- $this->list_depth = 0;
-
- $this->list_backtrack = array();
-
- $this->spelling_on = false;
-
- $this->courseid = $courseid;
-
-
-
- // split content into array of single lines
-
- $lines = explode( "\n",$content );
-
- $buffer = "";
-
-
-
- // add a wiki div tag for CSS
-
- $buffer = $buffer . "\n";
-
-
-
- // run through lines
-
- foreach( $lines as $line ) {
-
-
-
- // is this a blank line?
-
- $blank_line = eregi( "^[[:blank:]\r]*$", $line );
-
- if ($blank_line) {
-
- // first end current block according to state
-
- $buffer = $buffer . $this->close_block( $this->block_state );
-
- $this->block_state = STATE_NONE;
-
- continue;
-
- }
-
-
-
- // is this a spelling line
-
- $spell_parms = array();
-
- $spelling = eregi( "^!SPELL:([a-z]+):?(american|british|canadian)?(\r| |$)", $line,$spell_parms );
-
- if ($spelling) {
-
- $this->spelling_on = true;
-
- $pspell_link = pspell_new( $spell_parms[1], $spell_parms[2] );
-
- $line = "";
-
- }
-
-
-
- // spellcheck
-
- if ($this->spelling_on) {
-
- $line = $this->spellcheck( $line, $pspell_link );
-
- }
-
-
-
- // act now depending on current block state
-
- if ($this->block_state == STATE_NONE) {
-
- // first character of line defines block type
-
- if (eregi( "^> ",$line )) {
-
- // blockquote
-
- $buffer = $buffer . "
\n";
-
- $buffer = $buffer . $this->line_replace( eregi_replace( "^>","",$line) ). "\n";
-
- $this->block_state = STATE_BLOCKQUOTE;
-
- }
-
- else
-
- if (eregi( "^ ",$line) ) {
-
- // preformatted text
-
- $buffer = $buffer . "\n";
-
- $buffer = $buffer . $this->line_replace($line) . "\n";
-
- $this->block_state = STATE_PREFORM;
-
- }
-
- else
-
- if (eregi("^\% ",$line) ) {
-
- // preformatted text - no processing
-
- $buffer = $buffer . "\n";
-
- $buffer = $buffer . eregi_replace( "^\%","",$line) . "\n";
-
- $this->block_state = STATE_NOTIKI;
-
- }
-
- else {
-
- // ordinary paragraph
-
- $buffer = $buffer . "\n";
-
- $buffer = $buffer . $this->line_replace($line) . "\n";
-
- $this->block_state = STATE_PARAGRAPH;
-
- }
-
- continue;
-
- }
-
-
-
- if (($this->block_state == STATE_PARAGRAPH) |
-
- ($this->block_state == STATE_BLOCKQUOTE) |
-
- ($this->block_state == STATE_PREFORM) ) {
-
- $buffer = $buffer . $this->line_replace($line) . "\n";
-
- continue;
-
- }
-
- elseif ($this->block_state == STATE_NOTIKI) {
-
- $buffer = $buffer . $line . "\n";
-
- }
-
- }
-
-
-
- // close off any block level tags
-
- $buffer = $buffer . $this->close_block( $this->block_state );
-
-
-
- // close off wiki div
-
- $buffer = $buffer . "
\n";
-
-
-
- //return $buffer;
-
- return $buffer;
-
- }
-
-
-
-}
-
-
-
-?>
-