blogger.com 에 포스팅한 내용에 Syntax Highlight 된 루비 코드를 보기 위해서 한나절이 걸렸다.
deepblue 님의 블로그를 보니까 코드 내용을 이쁘게 보여주는 SyntaxHighlighter 라는 Javascript 를 사용하고 있는걸 발견하고, 그걸 도입해 보기로 했다. 하지만 css, javascript 를 연결을 해줘야 하는데, blogger.com 에 추가 파일을 올리는 방법을 찾을 수 없었다. 그럼 일단 이건 포기...
그렇다면 ruby 를 syntax highlight 된 html 로 변환해 주는 변환 모듈을 찾아봤는데, rubyforge 에서 Syntax 라는 gem module 를 발견했다. 그리고 Howto format ruby code for blogs 를 참고해서 ruby2html 을 만들었다. 그런데 ruby2html 로 만들어낸 html 이 indent 문제가 있었다. indent 처리를 잘 못하는 것이다.
#!/usr/bin/env ruby
require 'rubygems'
require 'syntax/convertors/html'
if ARGV.size > 0
@ruby_file = ARGV[0]
code = File.read(@ruby_file)
else
puts 'Usage: ruby ruby2html [file]'
exit(0)
end
convertor = Syntax::Convertors::HTML.for_syntax('ruby')
html = convertor.convert(code)
@html_file = File.split(@ruby_file)[1] + ".html"
open(@html_file, 'w') do |f|
begin
f.puts(html)
ensure
f.close
end
end
다시 SyntaxHighlighter 에 도전해 보기로 했다. 일단 css, javascript 를 개인 웹 서버에 올려놓고 blogger.com 에서 링크를 거는 방법으로 처리하기로 했다(그냥 설치형 블로그를 쓸가 잠시 고민했음). 이 방법을 잘 될것 같았는데, 이번에는 blogger.com 의 xml 템플릿이 말썽을 일으키는 것이다. blogger.com 이 '\n' 을 자동으로 바꾸면서 코드를 제대로 표시 못하는 것이다. 하지만 투자한 시간이 아까워서 해결 방법을 좀 더 찾아보기로 했다.