我试着去获得称作GeSHi工作与降价。

一个简单使用用于隔世如下:

$geshi = new GeSHi($message, 'c');
print $geshi->parse_code();

上面的代码发生在整个消息的并将其变为突出显示的代码

我也有减价功能

print Markdown($message);

我是想对返回值使用回拨功能preg_match从降价返回<pre>标签和运行geshi->parse_code();功能

下面是我的代码

print preg_replace_callback(
   '/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/gism',
    create_function(
        // single quotes are essential here,
        // or alternative escape all $ as \$
        '$matches',
        '$geshi = new GeSHi($matches[0], \'php\'); return $geshi->parse_code()'
    ),
    Markdown($blog_res['message']));

我是在正确的轨道?

是我的正则表达式吧?它适用于 http://gskinner.com/RegExr/

感谢您的帮助

有帮助吗?

解决方案 2

它是正则表达式:(

,而不是

/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/gism 

使用(删除全局标志)

/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/ism 

但是,如果你使用的是降价,你要记住,以弥补code块是在thier自己因此,你需要更换只在<pre><code>...MyCode</code></pre>的格式,并留下了Hello <code>MyCode</code>因此,您需要满足以下条件的那些

'/<pre.*?><code.*?>(.*?[<pre.*?><code.*?>.*<\/code><\/pre>]*)<\/code><\/pre>/ism',

其他提示

以供将来参考,你可能想看看我的插件这样的:

https://github.com/drm/Markdown_Geshi

它是基于常规的降价插件添加标记有认领到亮点代码块,如下所示:

#!php
<?php print('This is PHP code'); ?>

作品非常好,我经常用它在自己的博客。

我明白你[被]寻求扩展降价,添加了对称作GeSHi语法高亮支持。 美化做到这一点,更。例如,它可以呈现在 DOT 的曲线图。

美化在这“围栏”到称作GeSHi码块不同的方式从 DRM / Markdown_Geshi 的被使用。例如:

~~~ php
<?php print('This is PHP code'); ?>
~~~

我不知道是否美化约为回来时,这个问题是积极的,但在回答中似乎值得一提。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top