ç¶ã»ã¯ã¦ãªãã¤ã¢ãªã¼ã®æ¸ãæ¹ãã¯ã¦ãã©ï¼ç§ä¸¸ï¼GeSHi
ã¾ãã¾ãããéã«ããã¦â¦â¦はてダラã®ä½¿ãéãè²ã
模索ãã¦ã¿ã¾ããã
æ®æ®µä½¿ã£ã¦ããããã¹ãã¨ãã£ã¿ã¯秀丸ãªã®ã§ãããæè¿ã®秀丸ベータ版ã¯ã¢ã¦ãã©ã¤ã³ãä¸é¨ããã¹ãã®æãããã¿ãªã©ã便å©ã§ç´ æµãªæ©è½ãæä¾ãã¦ããã¦ãã¾ãã
ã¯ã¦ãã©ã使ãã°ãã¯ã¦ãªãã¤ã¢ãªã¼ãç§ä¸¸ã§æ¸ããã®ã§ããããã£ã便å©ãªæ©è½ãæ´»ç¨ããªãæã¯ããã¾ããããã
ã¨ããããã§ãè²ã
è¨å®ãã¦ã¿ãããã®ããã«ãªãã¾ããã
ã¾ãã¯ãã¢ã¦ãã©ã¤ã³ãæ£è¦è¡¨ç¾ã§è§£æã«ã¼ã«ãæå®ã§ããã®ã§ãè¡é ã«1ã¤*ï¼ã¢ã¹ã¿ãªã¹ã¯ï¼ãããè¡ãã¬ãã«1ã2ã¤*ãããè¡ãã¬ãã«2â¦â¦ã¨ãã¦ããã°ãã¡ããã¨ããªã¼ã§è¡¨ç¤ºãã¦ããã¾ãããæ´ç¶ã¨ãã ã¯ã¦ãªè¨æ³ ã®ãããã§ããã
ããã¦ãè¤æ°è¡ã³ã¡ã³ããè²åãæ©è½ã使ãã°ãæä¸ã®è¤æ°è¡ã«ãããã½ã¼ã¹ã³ã¼ããå¼ç¨ãè²åãã§ãã¾ãããããã«vimãEmacsãªã©ã®ããã«ãã½ã¼ã¹ã³ã¼ããè¨èªã«ãã£ã¦è²åãâ¦â¦ã¨ããã®ã¯ã§ãã¾ããã§ããã
ã©ããã ããã¯ã¦ãªè¨æ³ãè²åãããããã«ãã¦ã
ã¨ããã£ã¦ãã£ãããããªæãã«ãªãã¾ãããæ£è¦è¡¨ç¾ã®è¯ãåå¼·ã«ãªãã¾ããããhw.hilightããªã©ã®ååãä»ãã¦ä¿åãã¦ãç§ä¸¸ï¼6.00β20ï¼ã®ãã¡ã¤ã«ã¿ã¤ãå¥è¨å®ç»é¢ã§èªã¿è¾¼ã¿ã¾ããï¼ã¯ã¦ãã©ç¨ã®è¨å®ãä½ã£ã¦ããã¨ããããï¼
347,(?<![\(\)])\(\(.+?\)\)(?![\(\)]) 59,(([abdfir]:)?id|g|question|idea|graph|map|isbn|asin|jan|ean):[a-z0-9:]+ 153,</?[a-z]+.*?> 217,\[\[[^\[\]]+?\]\] 217,\[([^\[\])]+?:[^\[\]]+?|)\] 411,^\|.+\|$ 283,^\++ 157,^\*\*\* 93,^\*\* 29,^\* 91,^=====?$ 283,^:.+?: 283,^-+ /<HilightMulti> /0004,00000002,00,00,00010001,"^>\\|$",00010001,"^\\|<$" /0019,00000002,00,00,00010001,"^>\\|\\|",00010001,"^\\|\\|<$" /0007,00000002,00,00,00010001,"^>>$",00010001,"^<<$" /0003,00000002,00,00,00000000,"<!--",00000000,"-->" /<TreeWord> /0000,0002,0000,00000000,00010511,"(?<=^\\*)[^\\*]+$","" /0001,0002,0000,00000000,00010511,"(?<=^\\*\\*)[^\\*]+$","" /0002,0002,0000,00000000,00010511,"(?<=^\\*\\*\\*)[^\\*]+$",""
èªã¿è¾¼ãã å¾ã¯ã[表示ã¨ã«ã©ã¼]â[è¤æ°è¡ã³ã¡ã³ã] ã§ãã¦ã¼ã¶ã¼å®ç¾©ãã«ãã§ãã¯ãå
¥ãã¦ãã ãããã強調å®ç¾©ã ãã§ãã®ã§ãè²ã®è¨å®ã¯ã好ãã«ã©ããã
ä¸ã®ã¹ã¯ãªã¼ã³ã·ã§ãããè¦ã¦æ°ã¥ããæ¹ãããã£ãããããããã¾ããããæ¬æ¥ã®ã¯ã¦ãªè¨æ³ã¨é£ãéãé¨åãããã¾ããããã¯ãã½ã¼ã¹ã³ã¼ããæ¸ãã®ã«ä½¿ã£ã¦ããã>||ãã||<ãã¨ããè¨æ³ã§ãæ¬æ¥ã¯ã>||ãã ãã®è¡ã§ããã¹ãæãã>||perlãã¨æ¸ãã¦ãã¾ãã
ããã¯ãåãæ¸ããã¯ã¦ãã©ç¨ãã£ã«ã¿ã使ã£ã¦ãã½ã¼ã¹ã³ã¼ããè²åãããçºã®ãã®ã§ããè²åãã¨ã³ã¸ã³ã«GeSHiï¼PHPç¨ã®ã·ã³ã¿ãã¯ã¹ãã¼ã¯ã¢ããã¢ã¸ã¥ã¼ã«ï¼ã使ã£ãã®ã§ããã£ã«ã¿ãPHPã§æ¸ãã¾ãããæ¬å½ã¯Perlã§æ¸ãã¦ã¿ããã£ãã®ã§ãããã¾ã ã¬ãã«ä¸è¶³ã®ããã§ãâ¦â¦ã(-_-;)
ãã£ã«ã¿ã¯ãããªæãã§ãï¼æ±ãã¦ããã¾ããï¼ãå®è¡ã«ã¯PHPï¼ãã¹ã®éã£ããã©ã«ãã«php.exeï¼ï¼GeSHiãå¿
è¦ã§ãã
<?php
// hwcolor.php
// GeSHi ã©ã¤ãã©ãªãã¤ã³ã¯ã«ã¼ãï¼ãã¹ã¯é©åãªãã®ã«è¨å®ãã¦ãã ããï¼
include_once "geshi/geshi.php";
// ãã©ã¡ã¼ã¿ãã§ãã¯
if ($argc != 2) {
echo "Usage: php hwcolor.php <FileName>\n";
echo "Example: php hwcolor.php 2006-04-28.txt\n";
exit();
}
// èªã¿è¾¼ã¿
$text = file_get_contents($argv[1]);
if (!$text) exit();
// GeSHi ãªãã¸ã§ã¯ãä½æï¼ä½¿ãã¾ããã®ã§ã½ã¼ã¹ã»è¨èªæå®ãªãï¼
$geshi =& new GeSHi("", "");
// è¨å®
$geshi->set_header_type(GESHI_HEADER_PRE); // <pre>ã使ã
$geshi->enable_classes(); // ã¹ã¿ã¤ã«ã·ã¼ãã§è²åã
$geshi->set_encoding("UTF-8"); // ã¨ã³ã³ã¼ãã£ã³ã°
$pattern = '/>\|\|([a-zA-Z_-]+)\r\n(.+?)\r\n\|\|</s';
// ç½®æç¨ã³ã¼ã«ããã¯é¢æ°
function color_source_block($matches) {
global $geshi;
$geshi->set_language($matches[1]);
$geshi->set_source($matches[2]);
$geshi->set_overall_class("sourcecode");
return "><code class=\"$matches[1]\">\n"
. $geshi->parse_code()
. "\n</code><";
}
// å¦ç
echo preg_replace_callback($pattern, "color_source_block", $text);
?>
é©å½ã«æ¹é ã»è¨å®ãã¦ãhwcolor.phpããªã©ã§ä¿åãã¦ãããã¯ã¦ãã©ã®è¨å®ãã¡ã¤ã« config.txt ã§ã¢ãããã¼ãã®éã«ãã£ã«ã¿ãéãããã«è¨å®ããã¾ããï¼ä»¥ä¸ã¯ D:\dev\php\hwcolor.php ã¨ãã¦ä¿åããå ´åï¼
filter:php D:\dev\php\hwcolor.php %s
使ãæ¹ã¯ç°¡åã§ãæ¥è¨ã®æä¸ã«æ¸ãã>||ãã®å¾ãã«è¨èªåãä»ããã ãã§ããã®è¨èªã§è²åããã¦ããã¾ããï¼ä¸ã®PHPã¹ã¯ãªããã¯ã>||phpãã§è²åããã¦ã¾ãï¼
対å¿ãã¦ããè¨èªã¯GeSHiã®ãã¼ã¸ãã覧ãã ãããã¡ã¸ã£ã¼ãªè¨èªãã»ã¨ãã©ã«ãã¼ãã¦ã¾ããã(^_^;)