我正试着让GeSHi和减价一起工作。
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']));我在正确的轨道上吗?
是我的Regex对吗?,它在http://gskinner.com/RegExr/上工作
谢谢你的帮助
发布于 2010-11-18 17:34:02
这是裁判官:
而不是
/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/gism 使用(移除全局标志)
/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/ism 但是,如果您使用的是标记,您必须记住补偿那些独立的code块,因此您只需要替换那些以<pre><code>...MyCode</code></pre>格式的块,并且省略Hello <code>MyCode</code>,因此您需要以下内容
'/<pre.*?><code.*?>(.*?[<pre.*?><code.*?>.*<\/code><\/pre>]*)<\/code><\/pre>/ism',发布于 2011-04-03 14:51:45
对于将来的参考,您可能需要查看我的插件:
它基于常规的标记插件添加了一个标记为shebang的块来突出显示代码,如下所示:
#!php
<?php print('This is PHP code'); ?>效果很好,我经常在自己的博客上使用它。
发布于 2013-12-05 06:01:27
我知道您希望扩展Markdown,增加对GeSHi语法突出显示的支持。美化会做这个和更多的事情。例如,它可以在点中呈现图形。
美化GeSHi代码块的方法与格什的不同之处在于使用了“栅栏”。例如:
~~~ php
<?php print('This is PHP code'); ?>
~~~我不确定Beautify在这个问题活跃的时候是否在后面,但它似乎值得在一个答案中提及。
https://stackoverflow.com/questions/4217581
复制相似问题