Code Colorizer ¶
MoinMoin 드 러라는 기본로 들다. 그러나 바나 C++ 드 러라는 기본 다. 그래
ParserMarket 가 바 C++ 를 다. 그런데 럴가 드블럭문 되는것다.
{{{~cpp
{{{~cpp
!#java
...
}}}
그런데 MoinMoin:ParserMarket [http://bbs.rhaon.co.kr/mywiki/moin.cgi/ProgrammingTips_2fCStringFormat Example]라 된 곳는 고 는것다...[[BR]]
만 디 떻게 렇게 는 나, 렇게 가! --;;(단 본 능력 부 가능 다다..)[[BR]]
그리 그 방법 구 결과가 문 내다..;;
== 물 ==
* 단 . 다 3개 MoinMoin/parser 디렉리 다.
* [http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/parser_2fbase_2epy parser/base.py] [http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/parser_2fcplusplus_2epy parser/cplusplus.py] [http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/parser_2fjava_2epy parser/java.py]
* 다 2개 MoinMoin/processor 디렉리 다. (본 감 Colorize.py PythonColorize.py 로 바꾸다.)
* CppColorize.py
{{{~cpp
"""
MoinMoin - Processor for Syntax Highlighting
Copyright (c) 2002 by J?gen Hermann <jh@web.de>
All rights reserved, see COPYING for details.
$Id: Colorize.py,v 1.3 2002/04/17 19:24:58 jhermann Exp $
"""
import string, sys, cStringIO
from MoinMoin.parser import cplusplus
def process(request, formatter, lines):
if not formatter.in_pre:
sys.stdout.write(formatter.preformatted(1))
if string.strip(lines[0]) == "#!cplusplus":
del lines[0]
buff = cStringIO.StringIO()
colorizer = cplusplus.Parser(string.join(lines, '\n'), request, out = buff)
colorizer.format(formatter, {})
sys.stdout.write(formatter.rawHTML(buff.getvalue()))
sys.stdout.write(formatter.preformatted(0))
}}}
* JavaColorize.py
{{{~cpp
"""
MoinMoin - Processor for Syntax Highlighting
Copyright (c) 2002 by J?gen Hermann <jh@web.de>
All rights reserved, see COPYING for details.
$Id: Colorize.py,v 1.3 2002/04/17 19:24:58 jhermann Exp $
"""
import string, sys, cStringIO
from MoinMoin.parser import java
def process(request, formatter, lines):
if not formatter.in_pre:
sys.stdout.write(formatter.preformatted(1))
if string.strip(lines[0]) == "#!java":
del lines[0]
buff = cStringIO.StringIO()
colorizer = java.Parser(string.join(lines, '\n'), request, out = buff)
colorizer.format(formatter, {})
sys.stdout.write(formatter.rawHTML(buff.getvalue()))
sys.stdout.write(formatter.preformatted(0))
}}}
== 과 ==
MoinMoin/parser 는 wiki.py 를 보.[[BR]]
다과 같 부 ...
{{{~cpp
if self.in_pre:
if self.in_pre == 2:
# processing mode
endpos = string.find(line, "}} }") # 래는 기
if endpos == -1:
self.colorize_lines.append(line)
continue
self.processor(self.request, self.formatter, self.colorize_lines)
del self.colorize_lines
self.in_pre = 0
# send rest of line through regex machinery
line = line[endpos+3:]
elif string.strip(line)[:2] == "#!" and string.find(line, 'python') > 0:
from MoinMoin.processor.Colorize import process
self.processor = process
self.in_pre = 2
self.colorize_lines = [line]
continue
}}}
렇게 바꾸!
{{{~cpp
if self.in_pre:
if self.in_pre == 2:
# processing mode
endpos = string.find(line, "}} }") # 래는 기
if endpos == -1:
self.colorize_lines.append(line)
continue
self.processor(self.request, self.formatter, self.colorize_lines)
del self.colorize_lines
self.in_pre = 0
# send rest of line through regex machinery
line = line[endpos+3:]
elif string.strip(line)[:2] == "#!" and string.find(line, 'cplusplus') > 0:
from MoinMoin.processor.CppColorize import process
self.processor = process
self.in_pre = 2
self.colorize_lines = [line]
continue
elif string.strip(line)[:2] == "#!" and string.find(line, 'java') > 0:
from MoinMoin.processor.JavaColorize import process
self.processor = process
self.in_pre = 2
self.colorize_lines = [line]
continue
elif string.strip(line)[:2] == "#!" and string.find(line, 'python') > 0:
from MoinMoin.processor.PythonColorize import process
self.processor = process
self.in_pre = 2
self.colorize_lines = [line]
continue
}}}
----
["류"], ["lostship"]








