LoginSignup
0
2

More than 5 years have passed since last update.

PukiWiki で SyntaxHighlighter

Posted at

前提

PukiWiki と SyntaxHighlighter が導入済みであること。

pukiwiki.ini.php 編集

PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK を 1 から 0 に変更する。

$ cd /var/www/cgi-bin/pukiwiki; pwd
$ sudo cp -iv --preserve=all pukiwiki.ini.php pukiwiki.ini.php.`date +%Y%m%d`
$ ls -l pukiwiki.ini.php pukiwiki.ini.php.`date +%Y%m%d`
$ ls -lZ pukiwiki.ini.php pukiwiki.ini.php.`date +%Y%m%d`
$ sudo vi pukiwiki.ini.php

差分はこんな感じ。

$ diff -u pukiwiki.ini.php.`date +%Y%m%d` pukiwiki.ini.php
--- pukiwiki.ini.php.20170811   2016-02-15 05:19:02.000000000 +0900
+++ pukiwiki.ini.php    2017-08-11 16:28:47.613027007 +0900
@@ -53,7 +53,7 @@
 //   argsN+1
 //   }}
 //   #memo(This makes '#memo(foo)' to this)
-define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
+define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled

 /////////////////////////////////////////////////
 // Language / Encoding settings

プラグイン設置

参考:
Plugin/highlight.inc.php - Sonots' PukiWiki プラグイン
http://pukiwiki.sonots.com/?Plugin%2Fhighlight.inc.php

$ cd plugin; pwd
$ sudo vi highlight.inc.php
$ sudo chown -v apache:apache highlight.inc.php
$ ls -l highlight.inc.php

作成するプラグインはこんな感じ。

$ cat highlight.inc.php
<?php
function plugin_highlight_init()
{
  global $head_tags;
  $head_tags[] = '<script type="text/javascript" src="/dist/syntaxhighlighter.js"></script>';
  $head_tags[] = '<link type="text/css" rel="stylesheet" href="/dist/theme.css">';
}

function plugin_highlight_convert()
{
  global $head_tags;

  $args   = func_get_args();
  $body   = array_pop($args);
  $class  = array_shift($args);

  $ret = '';
  $ret .= '<pre class="brush: ' . htmlspecialchars($class) . '">';
  $ret .= htmlspecialchars($body);
  $ret .= '</pre>';

  return $ret;
}
?>

後は PukiWiki で以下のようなコードを記載して反映されれば OK.

#highlight(sh){{
#!/bin/sh
echo "test"
exit 0
}}

どっとはらい。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2