summaryrefslogtreecommitdiff
path: root/inc/parser
diff options
context:
space:
mode:
authorandi <andi@splitbrain.org>2005-04-10 19:01:15 +0200
committerandi <andi@splitbrain.org>2005-04-10 19:01:15 +0200
commit4de671bc5e749ac76ad85252df59feb45c749eab (patch)
treeb653219d0ec0b296640ba7b3c742ee989639ae78 /inc/parser
parent2f40443a6ca5a5ddca04b94e4ffc4562c76753c3 (diff)
downloadrpg-4de671bc5e749ac76ad85252df59feb45c749eab.tar.gz
rpg-4de671bc5e749ac76ad85252df59feb45c749eab.tar.bz2
new parser - more fixes
darcs-hash:20050410170115-9977f-620a5fccdc80d5af01d0b9aec9f8b1fb8e4c667d.gz
Diffstat (limited to 'inc/parser')
-rw-r--r--inc/parser/action.php17
-rw-r--r--inc/parser/parser.php6
-rw-r--r--inc/parser/xhtml.php40
3 files changed, 35 insertions, 28 deletions
diff --git a/inc/parser/action.php b/inc/parser/action.php
index 18238a2d7..82bebf0ae 100644
--- a/inc/parser/action.php
+++ b/inc/parser/action.php
@@ -7,6 +7,8 @@
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
+require_once(DOKU_INC.'inc/utils.php');
+
function parse_to_instructions($text){
global $conf;
@@ -45,10 +47,10 @@ function parse_to_instructions($text){
$Parser->addMode('quote',new Doku_Parser_Mode_Quote());
// FIXME These need data files...
- #$Parser->addMode('acronym',new Doku_Parser_Mode_Acronym(array_keys(getAcronyms())));
+ $Parser->addMode('smiley',new Doku_Parser_Mode_Smiley(array_keys(getSmileys())));
+ $Parser->addMode('acronym',new Doku_Parser_Mode_Acronym(array_keys(getAcronyms())));
#$Parser->addMode('wordblock',new Doku_Parser_Mode_Wordblock(getBadWords()));
- #$Parser->addMode('smiley',new Doku_Parser_Mode_Smiley(array_keys(getSmileys())));
- #$Parser->addMode('entity',new Doku_Parser_Mode_Entity(array_keys(getEntities())));
+ $Parser->addMode('entity',new Doku_Parser_Mode_Entity(array_keys(getEntities())));
$Parser->addMode('multiplyentity',new Doku_Parser_Mode_MultiplyEntity());
$Parser->addMode('quotes',new Doku_Parser_Mode_Quotes());
@@ -76,10 +78,10 @@ function render_as_xhtml($instructions){
$Renderer = & new Doku_Renderer_XHTML();
//FIXME add data
- #$Renderer->smileys = getSmileys();
- #$Renderer->entities = getEntities();
- #$Renderer->acronyms = getAcronyms();
- #$Renderer->interwiki = getInterwiki();
+ $Renderer->smileys = getSmileys();
+ $Renderer->entities = getEntities();
+ $Renderer->acronyms = getAcronyms();
+ $Renderer->interwiki = getInterwiki();
#$Renderer->badwords = getBadWords();
// Loop through the instructions
@@ -94,6 +96,7 @@ function render_as_xhtml($instructions){
/**
* Returns a full page id
*
+ * @todo move to renderer?
*/
function resolve_pageid(&$page,&$exists){
global $ID;
diff --git a/inc/parser/parser.php b/inc/parser/parser.php
index 2091b2c65..25da10f9b 100644
--- a/inc/parser/parser.php
+++ b/inc/parser/parser.php
@@ -565,7 +565,7 @@ class Doku_Parser_Mode_Wordblock extends Doku_Parser_Mode {
//-------------------------------------------------------------------
/**
-* @TODO Quotes and 640x480 are note supported - just straight replacements here
+* @TODO Quotes and 640x480 are not supported - just straight replacements here
*/
class Doku_Parser_Mode_Entity extends Doku_Parser_Mode {
// A list
@@ -615,10 +615,10 @@ class Doku_Parser_Mode_Quotes extends Doku_Parser_Mode {
'(?<=\s)\'(?=\S)',$mode,'singlequoteopening'
);
$this->Lexer->addSpecialPattern(
- '(?<=\S)\'',$mode,'singlequoteclosing'
+ '(?<=^|\S)\'',$mode,'singlequoteclosing'
);
$this->Lexer->addSpecialPattern(
- '(?<=\s)"(?=\S)',$mode,'doublequoteopening'
+ '(?<=^|\s)"(?=\S)',$mode,'doublequoteopening'
);
$this->Lexer->addSpecialPattern(
'(?<=\S)"',$mode,'doublequoteclosing'
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index 5cb4b3001..63bd9a974 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -232,17 +232,25 @@ class Doku_Renderer_XHTML extends Doku_Renderer {
}
/**
- * @TODO Support optional eval of code depending on conf/dokuwiki.php
*/
function php($text) {
- $this->preformatted($text);
+ global $conf;
+ if($conf['phpok']){
+ eval($text);
+ }else{
+ $this->file($text);
+ }
}
/**
- * @TODO Support optional echo of HTML depending on conf/dokuwiki.php
*/
function html($text) {
- $this->file($text);
+ global $conf;
+ if($conf['htmlok']){
+ echo $text;
+ }else{
+ $this->file($text);
+ }
}
function preformatted($text) {
@@ -268,9 +276,9 @@ class Doku_Renderer_XHTML extends Doku_Renderer {
}
/**
- * @TODO Hook up correctly with Geshi
*/
function code($text, $language = NULL) {
+ global $conf;
if ( is_null($language) ) {
$this->preformatted($text);
@@ -282,9 +290,7 @@ class Doku_Renderer_XHTML extends Doku_Renderer {
$geshi->enable_classes();
$geshi->set_header_type(GESHI_HEADER_PRE);
$geshi->set_overall_class('code');
-
- // Fix this
- $geshi->set_link_target('_blank');
+ $geshi->set_link_target($conf['target']['extern']);
$text = $geshi->parse_code();
echo $text;
@@ -306,13 +312,11 @@ class Doku_Renderer_XHTML extends Doku_Renderer {
}
/**
- * @TODO Remove hard coded link to splitbrain.org
*/
function smiley($smiley) {
-
if ( array_key_exists($smiley, $this->smileys) ) {
$title = $this->__xmlEntities($this->smileys[$smiley]);
- echo '<img src="http://wiki.splitbrain.org/smileys/'.$this->smileys[$smiley].
+ echo '<img src="'.DOKU_BASE.'smileys/'.$this->smileys[$smiley].
'" align="middle" alt="'.
$this->__xmlEntities($smiley).'" />';
} else {
@@ -321,8 +325,7 @@ class Doku_Renderer_XHTML extends Doku_Renderer {
}
/**
- * @TODO localization?
- */
+ * not used
function wordblock($word) {
if ( array_key_exists($word, $this->badwords) ) {
echo '** BLEEP **';
@@ -330,6 +333,7 @@ class Doku_Renderer_XHTML extends Doku_Renderer {
echo $this->__xmlEntities($word);
}
}
+ */
function entity($entity) {
if ( array_key_exists($entity, $this->entities) ) {
@@ -340,23 +344,23 @@ class Doku_Renderer_XHTML extends Doku_Renderer {
}
function multiplyentity($x, $y) {
- echo "$x&#215;$y";
+ echo "$x&times;$y";
}
function singlequoteopening() {
- echo "&#8216;";
+ echo "&lsquo;";
}
function singlequoteclosing() {
- echo "&#8217;";
+ echo "&rsquo;";
}
function doublequoteopening() {
- echo "&#8220;";
+ echo "&ldquo;";
}
function doublequoteclosing() {
- echo "&#8221;";
+ echo "&rdquo;";
}
/**