istgame/samples 페이지의 pdf 변환.
결과물 ¶
도구 ¶
유틸리티 ¶
- lynx
- pandoc
- multimarkdown
- sed
shell script ¶
#!/bin/sh
## lynx로 페이지를 가져온다
lynx -source http://wiki.ktug.org/wiki/wiki.php/istgame/samples?action=print >output.html
## pandoc으로 markdown 변환
pandoc -f html -t markdown output.html >output.tmpa
## sed의 regex를 이용하여 필요한 치환을 행한다
sed "s/^ //g;s/~~~~/\`\`\`/g;s/{\.wiki}//g;s/\[\(.*\)line\(.*\)\}$//g;s/Retrieved/\n---\n Retrieved/" output.tmpa > output.tmpb
## 첫 번째 예(template)는 컴파일하지 않음
sed "7s/\`\`\`/\`\`\` tex/" output.tmpb >output.tmp
## multimarkdown 파일을 만든다
echo latex input: mmd-istgamesample-header >output.mmd
echo title: istgame/samples >>output.mmd
echo author: ktug wiki >>output.mmd
echo use xelatex: yes >>output.mmd
echo latex input: mmd-istgamesample-begin-doc >>output.mmd
echo --- >>output.mmd
echo >>output.mmd
cat output.tmp >>output.mmd
## multimarkdown과 xelatex의 실행
mmd2tex output.mmd
xelatex -shell-escape output.tex
xelatex output.tex
## 중간 생성물 파일의 삭제
rm -f output.tmpa output.tmpb output.tmp
## lynx로 페이지를 가져온다
lynx -source http://wiki.ktug.org/wiki/wiki.php/istgame/samples?action=print >output.html
## pandoc으로 markdown 변환
pandoc -f html -t markdown output.html >output.tmpa
## sed의 regex를 이용하여 필요한 치환을 행한다
sed "s/^ //g;s/~~~~/\`\`\`/g;s/{\.wiki}//g;s/\[\(.*\)line\(.*\)\}$//g;s/Retrieved/\n---\n Retrieved/" output.tmpa > output.tmpb
## 첫 번째 예(template)는 컴파일하지 않음
sed "7s/\`\`\`/\`\`\` tex/" output.tmpb >output.tmp
## multimarkdown 파일을 만든다
echo latex input: mmd-istgamesample-header >output.mmd
echo title: istgame/samples >>output.mmd
echo author: ktug wiki >>output.mmd
echo use xelatex: yes >>output.mmd
echo latex input: mmd-istgamesample-begin-doc >>output.mmd
echo --- >>output.mmd
echo >>output.mmd
cat output.tmp >>output.mmd
## multimarkdown과 xelatex의 실행
mmd2tex output.mmd
xelatex -shell-escape output.tex
xelatex output.tex
## 중간 생성물 파일의 삭제
rm -f output.tmpa output.tmpb output.tmp