From 32165dccbbcfae3d9a883bfe935bfc733ac17382 Mon Sep 17 00:00:00 2001 From: Harvie Date: Sun, 20 Jun 2010 04:43:10 +0200 Subject: [PATCH] started moving svg embeding to function --- syntax.php | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/syntax.php b/syntax.php index c5bd599..17224c6 100755 --- a/syntax.php +++ b/syntax.php @@ -48,12 +48,9 @@ class syntax_plugin_svgedit extends DokuWiki_Syntax_Plugin { return array($type, $match); } - function render($format, &$renderer, $data) { - if ($format!='xhtml') return; + function format_svg_embed($svglink, $alt) { global $ID; - $svg_wiki_page = trim(substr($data[1], 6, -2)); //name of wiki page containing SVG image - //detect image size for stupid browsers (like firefox) - ugly (fails if svg does not contain information about it's size) $svg_dimensions = ''; preg_match('/width="[0-9]+" height="[0-9]+"/', $data[1].rawWiki($svg_wiki_page), $_); @@ -62,25 +59,38 @@ class syntax_plugin_svgedit extends DokuWiki_Syntax_Plugin { //use object tag for stupid browsers (like firefox) - ugly (relies on browser identification) $is_webkit= preg_match('/webkit/', strtolower($_SERVER['HTTP_USER_AGENT'])); if ($is_webkit) - $svgtag='<'.$svgtag.'="'.$svglink.'" alt="'.$alt.'" type="image/svg+xml" />'."
"; + } + + function render($format, &$renderer, $data) { + if ($format!='xhtml') return; + global $ID; + + $svg_wiki_page = trim(substr($data[1], 6, -2)); //name of wiki page containing SVG image + + if($data[0]===''.$svgtag.$svgenc.'" alt="svg-image@'.$ID.'" />'."
"; + $svglink = 'data:image/svg+xml;base64,'.base64_encode($data[1]).'" type="image/svg+xml'; + $renderer->doc .= $this->format_svg_embed($svglink, 'svg-image@'.$ID); return true; } if($data[0]==='{{sv') { - $svgenc = exportlink($svg_wiki_page,'svg'); - $renderer->doc .= ''.$svgtag.$svgenc.'" alt="image:'.htmlspecialchars($svg_wiki_page).'" type="image/svg+xml"/>
'; + $svglink = exportlink($svg_wiki_page,'svg'); + $renderer->doc .= $this->format_svg_embed($svglink, 'image:'.htmlspecialchars($svg_wiki_page)); + //$renderer->doc .= ''.$svgtag.$svglink.'" alt="image:'.htmlspecialchars($svg_wiki_page).'" type="image/svg+xml"/>
'; $renderer->doc .= html_wikilink($svg_wiki_page,'svg@'.$svg_wiki_page); return true; } if($data[0]==='{{SV') { - $svgenc = 'data:image/svg+xml;base64,'.base64_encode(rawWiki($svg_wiki_page)).'" type="image/svg+xml'; - $renderer->doc .= ''.$svgtag.$svgenc.'" alt="image:'.htmlspecialchars($svg_wiki_page).'" />
'; + $svglink = 'data:image/svg+xml;base64,'.base64_encode(rawWiki($svg_wiki_page)).'" type="image/svg+xml'; + $renderer->doc .= $this->format_svg_embed($svglink, 'image:'.htmlspecialchars($svg_wiki_page)); + //$renderer->doc .= ''.$svgtag.$svglink.'" alt="image:'.htmlspecialchars($svg_wiki_page).'" />
'; $renderer->doc .= html_wikilink($svg_wiki_page,'SVG@'.$svg_wiki_page); return true; } -- 2.30.2