KLDP(drupal)에 글 쓸 때, 프로그램 소스 붙이기.

12040
points
points
아직까지 drupal 자체 문제인지, BB code를 쓸 때, [code] 안이 제대로 처리되지 않습니다. 특히 "<stdio.h>"와 같은 부분이 tag로 인식되어 화면에 보이지 않는 경우가 있습니다. 또 코드의 syntax highlight 기능도 없는 것 같아서.. (빠른 시일내에 이런 기능이 추가되기 희망합니다.) 나름대로 현재 쓸 수 있는 방법을 정리해 보았습니다.
- 대괄호 [, ]는 각각 "[", "]"로 입력할 수 있습니다. 사실, 웬만한 기호 문자는 "&#xHHHH;" 꼴로 입력할 수 있습니다. 이 때 HHHH는 unicode 16진 문자이며, ASCII도 바로 입력할 수 있습니다. ASCII 표를 보려면 "man ascii"를 실행하기 바랍니다.
- "<", ">", "&", "©"등은 각각 "<", ">", "&", "©"로 입력할 수 있습니다.
문법에 맞게 하이라이트(syntax highligh)하는 방법은 현재 존재하지 않는 것 같습니다. 그래서 vim의 2html.vim script를 써서 다음과 같은 "htmlize" script를 만들었습니다. htmlize를 쓰기 위해, 입력 형식은 "Full HTML"을 써야 합니다. 만약 여러분이 hello.c를 붙여 넣고 싶다면 다음과 같이 실행한 후, 그 결과를 붙여 넣으면 됩니다:
$ cat hello.c | htmlize c
만약 바로 입력하면서 그 결과를 붙여 넣고 싶다면 그냥 실행하면 됩니다. 그리고 다 입력 후 ^D (control + D)를 누르고, 출력 내용을 붙여 넣으면 됩니다:
$ htmlize lisp (defun foo () (+ 1 2 3 4) ; sum all numbers ) ^D
눈치챘겠지만, htmlize의 첫번째 인자는 언어 확장자입니다. 즉 c, cc, lisp, sh, php 등 여러가지를 쓸 수 있습니다. 아래는 이 htmlize 소스이며, 이 소스도 htmlize로 만들어 낸 것입니다:
#!/bin/sh
#
# htmlize: htmlize given input with syntax highlighting.
# Copyright (c) 2006 Seong-Kook Shin <cinsky @ gmail dot com>
#
# htmlize comes with ABSOLUTELY NO WARRANTY;
# This is free software, and you are welcome to redistribute it
# under certain conditions; Ask Google about GPL for more.
#
VIM=/usr/bin/vim
TMP=/tmp
CSCHEME=default
BGCOLOR="#000000"
FGCOLOR="#ffffff"
if test $# -eq 0; then
echo "usage: $0 LANGUAGE" 1>&2
exit 1
fi
srclang=$1
srcfile=$TMP/htmlize$$.$srclang
outfile=$srcfile.html
trap "rm -f $srcfile $outfile" 1 2 3 6 9 14 15cat > $srcfile
$VIM -e -s $srcfile <<EOF
syn on
colorscheme $CSCHEME
set background=dark
run! syntax/2html.vim
w
qall
EOF
echo "<div class=\"codeblock\" style=\"background-color: $BGCOLOR; color: $FGCOLOR\">"
cat $outfile | awk '/<pre>/,/<\/pre>/ { print $0 } END { print "</div>" }'
rm -f $srcfile $outfile
trap "" 1 2 3 6 9 14 15
»
- cinsk의 블로그
- Login or register to post comments
- 4031번 읽힘

points
[code]로 하지 마시고
[code]로 하지 마시고 <code > 로 사용해 보세요. codefilter라는 입력 모듈을 가져다 붙였으므로 < 나 > 등이 문제없이 사용 가능합니다. 그리고 syntax highlight도 사용할 수 있는데 실제로 적용할지 여부는 생각 중입니다. 조금만 기다려 주세요....
points
테스트
#include <stdio.h>int main()
{
printf("hello\n");
return 0;
}
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
htmlize 소스 너무
htmlize 소스 너무 눈이 아파요 !!!<<<<<<<<<<<>>>>>>>>>>>>>>>>points
...
올리신건 검은 바탕에 어울릴것 같군요.
points
vim의 백그라운드
vim의 백그라운드 색지정 기능이 drupal에도 있을까요?
points
test
#include <stdio.h>int main()
{
printf("hello\n");
return 0;
}
points
Drupal에도 GeSHi filter를
Drupal에도 GeSHi filter를 붙일 수 있긴 합니다.
http://drupal.org/project/geshifilter
대신 부하가 좀 걸리겠죠~
points
just test
#include <stdio.h>int main(int argc, char** argv)
{
printf("Linux just for fun\n");
}