2008/11/07 16:15

Trac-Hacks: 각주(Footnote) 매크로 - FootNoteMacro

위키피디아 형식의 기술 문서를 작성하는데 있어서 각주(FootNote) 기능은 매우 유용하게 사용될 수 있습니다. Trac-Hacks.org 의 FootNoteMacro 를 설치하면 위키 페이지 작성 시 각주(FootNote)를 쉽게 추가 또는 편집할 수 있습니다.

1. FootNotMacro 설치

easy_install http://trac-hacks.org/svn/footnotemacro/0.11/
D:\pubs>easy_install http://trac-hacks.org/svn/footnotemacro/0.11/
Downloading http://trac-hacks.org/svn/footnotemacro/0.11/
Doing subversion checkout from http://trac-hacks.org/svn/footnotemacro/0.11/ to c:\docume~1\admini~1\locals~1\temp\1\easy_install-9gywmg\0.11
Processing 0.11
Running setup.py -q bdist_egg --dist-dir c:\docume~1\admini~1\locals~1\temp\1\ea
sy_install-9gywmg\0.11\egg-dist-tmp-map54w
zip_safe flag not set; analyzing archive contents...
Adding tracfootnotemacro 1.0 to easy-install.pth file

Installed c:\python25\lib\site-packages\tracfootnotemacro-1.0-py2.5.egg
Processing dependencies for tracfootnotemacro==1.0
Finished processing dependencies for tracfootnotemacro==1.0

D:\pubs>

"trac.ini"

[components]
footnotemacro.* = enabled

Trac 서버를 새로 시작한 후에 FootNotMacro 를 사용할 수 있습니다.

2. FootNoteMacro 사용

FootNoteMacro 의 사용법은 매우 직관적이기 때문에 한번 만 사용해 보면 쉽게 적용할 수 있습니다.

= Trac =

Trac은 파이썬 언어로 작성되어 있다. 2005년 중반까지는 GNU 일반 공중 사용 허가서 하에 라이선스 되었으나, 0.9 버전부터는 수정 BSD 라이선스 하에 라이선스되고 있다. 이 라이선스들은 자유 소프트웨어 라이선스들이다.



위의 예제 위키에 Trac 에 관한 각주와 수정 BSD 라이선스에 관한 각주를 추가하고 싶은 경우에 다음과 같이 대상 위치에 [[FootNote()]] 매크로를 사용하여 각각의 각주 내용을 입력합니다. 마지막으로 내용이 없는 빈 [[FootNote]] 를 추가해 주면 해당 위치에 각주가 생성 됩니다.

= Trac =

Trac[[FootNote(Trac(보통 트랙이라고 발음함)은 오픈소스 웹 기반 프로젝트 관리 겸 버그 추적 툴이다. 엣지월 소프트웨어가 개발하였다.)]]은 파이썬 언어로 작성되어 있다. 2005년 중반까지는 GNU 일반 공중 사용 허가서 하에 라이선스 되었으나, 0.9 버전부터는 수정 BSD 라이선스 하에 라이선스되고 있다. [[FootNote([http://trac.edgewall.org/wiki/TracLicense TracLicense - The Trac Project]. Edgewall Trac. 2007년 3월 6일에 확인.)]] 이 라이선스들은 자유 소프트웨어 라이선스들이다.

[[FootNote]]


위키를 계속해서 작성하다 보니 Trac 이란 단어를 계속 사용하게 되었습니다. 매번 Trac 이란 단어가 나올 때 마다 위에서 작성한 Trac 에 관한 1번 각주를 똑같이 적용하고 싶다면  매번 대상 위치에 [[FootNote(1)]] 매크로만 추가해주면 됩니다.

= Trac =

Trac[[FootNote(Trac(보통 트랙이라고 발음함)은 오픈소스 웹 기반 프로젝트 관리 겸 버그 추적 툴이다. 엣지월 소프트웨어가 개발하였다.)]]은 파이썬 언어로 작성되어 있다. 2005년 중반까지는 GNU 일반 공중 사용 허가서 하에 라이선스 되었으나, 0.9 버전부터는 수정 BSD 라이선스 하에 라이선스되고 있다. [[FootNote([http://trac.edgewall.org/wiki/TracLicense TracLicense - The Trac Project]. Edgewall Trac. 2007년 3월 6일에 확인.)]] 이 라이선스들은 자유 소프트웨어 라이선스들이다.

== 역사 ==
Trac[[FootNote(1)]]은 CVSTrac의 영향을 받았다.

== 기능 ==
Trac[[FootNote(1)]]을 사용해서, 버그 데이터베이스, 버전 관리 정보, 위키 콘텐트 간 하이퍼링크를 걸 수 있다. Trac은 서브버전, Git (소프트웨어), 머큐리얼, 바자 (소프트웨어) 등과 연동될 수 있다. 트랙은 이들 버전 콘트롤 시스템에 대한 월드 와이드 웹 인터페이스로서 작동될 수 있다. 현재 버전에서는, Trac의 웹 프론트엔드 프레센테이션 부분은 클리어실버 웹 템플릿 시스템에 기반하고 있다. 0.11 버전 이후로는, 자체 개발한 겐시라는 이름의 템플릿 시스템을 채택할 예정이다. 비록 클리어실버를 사용한 플러그인에 대한 호환성은 향후 몇 개의 버전 동안 유지할 예정이지만 말이다.

[[FootNote]]


하나의 위키 페이지에서 내용이 없는 빈 [[FootNote]] 매크로를 한번 이상 사용하는 것도 가능합니다. 이 경우 빈 [[FootNote]] 매크로의 위치보다 위에서 사용된 각주(들)의 내용이 해당 위치에 표시됩니다. 빈 [[FootNote]] 매크로의 위치보다 아래에서 사용된 각주(들)은 다음 번에 사용되는 빈 [[FootNote]] 매크로의 위치에 각주의 내용이 표시됩니다.

= Trac =

Trac[[FootNote(Trac(보통 트랙이라고 발음함)은 오픈소스 웹 기반 프로젝트 관리 겸 버그 추적 툴이다. 엣지월 소프트웨어가 개발하였다.)]]은 파이썬 언어로 작성되어 있다. 2005년 중반까지는 GNU 일반 공중 사용 허가서 하에 라이선스 되었으나, 0.9 버전부터는 수정 BSD 라이선스 하에 라이선스되고 있다. [[FootNote([http://trac.edgewall.org/wiki/TracLicense TracLicense - The Trac Project]. Edgewall Trac. 2007년 3월 6일에 확인.)]] 이 라이선스들은 자유 소프트웨어 라이선스들이다.

== 역사 ==
Trac[[FootNote(1)]]은 CVSTrac의 영향을 받았다.

== 기능 ==
Trac[[FootNote(1)]]을 사용해서, 버그 데이터베이스, 버전 관리 정보, 위키 콘텐트 간 하이퍼링크를 걸 수 있다. Trac은 서브버전, Git (소프트웨어), 머큐리얼, 바자 (소프트웨어) 등과 연동될 수 있다. 트랙은 이들 버전 콘트롤 시스템에 대한 월드 와이드 웹 인터페이스로서 작동될 수 있다. 현재 버전에서는, Trac의 웹 프론트엔드 프레센테이션 부분은 클리어실버 웹 템플릿 시스템에 기반하고 있다. 0.11 버전 이후로는, 자체 개발한 겐시라는 이름의 템플릿 시스템을 채택할 예정이다. 비록 클리어실버를 사용한 플러그인에 대한 호환성은 향후 몇 개의 버전 동안 유지할 예정이지만 말이다.

[[FootNote]]

= 파이썬 =
파이썬[[FootNote(외래어 표기법에 따르면 Python은 영어를 기준으로 할 때 한글로 '파이선'으로 적어야 하나, 정식으로 채택된 한글 표기는 파이썬이다.)]](Python)은 1991년[[FootNote(「Python History」, Python Foundation)]] 프로그래머인 귀도 반 로섬(Guido van Rossum)[[FootNote( '귀도 반 로섬'은 한국어 파이썬 사용자들 사이에서 사용되는 표기로, 외래어 표기법에 따르면 '하위도 판 로쉼'이 된다. Guido van Rossum은 그의 홈페이지에서 'Guido'를 이탈리아식으로 발음하여도 된다고 언급하고 있으며, 유튜브에 공개된 2006년 7월 21일자 구글 Techtalk에서는 자신을 '귀도 판 로썸'으로 소개하고 있다)]]이 발표한 고급 프로그래밍 언어로, 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 하위도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것이다.

파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델이 있다. 언어의 여러 부분이 이전의 사양과 표준을 따르지만, 전체적인 언어는 앞서 규정되지 않는다. 사실상의 표준은 CPython의 구현이다.

[[FootNote]]



Trac-hacks 의 FootNoteMacro 페이지에는 똑같은 내용의 각주를 한 번 이상 입력하는 경우 같은 내용이 각주가 하나로 합쳐져서 표시 된다고 설명되어 있는데 0.11 버전 용 FootNoteMacro 에서는 이 기능이 누락된 것 같습니다.

 
Trackback 0 Comment 2
2008/11/06 17:13

Trac-Hacks: 캡차(CAPTCHA) 인증 플러그인 (CaptchaAuth)


캡차(Captcha) 란 사용자 응답이 컴퓨터에 의해 자동으로 생성된 응답이 아닌 것을 확인하기 위한 목적으로 컴퓨터 로봇 에이전트가 해결할 수 없는 특정한 도전 문제를 제공하고 그 대답을 비교함으로써 자동으로 생성되는 응답을 걸러낼 수 있는 기법을 말합니다. 사용자 등록 시에 지그 재그 뒤틀린 문자열 또는 점 노이즈에 투영된 문자열 등을 입력하도록 하는 것 등이 대표적인 캡차에 해당합니다.




Trac-hacks 의 SimpleCaptchaPluginSkimpy Gimpy 파이썬 패키지를 이용하여 AccountManagerPlugin 에서 제공하는 사용자 등록 폼에서 캡차를 이용할 수 있게 해주는 기능 확장 플러그인 입니다. 원래 SimpleCaptchPlugin 을 사용하기 위해서는 AccountManagerPlugin 이  IRegistrationConfirmation 확장 인터페이스를 가지도록 RegistrationConfirmationPatch 를 적용해야 합니다. 하지만 AccountManagerPlugin 을 패치하는 것은 아무래도 꺼름직 했기에 패치 없이도 캡차를 사용할 수 있는 CaptchaAuth 를 대신 사용했습니다. SimpleCaptchaPlugin 에서 제공하고 있는 CaptchaAuth 플러그인의 SVN 링크가 변경 되어서 동작하지 않았기 때문에 제작자의 웹사이트를 검색하여 새로운 SVN 링크를 다음과 같이 찾았습니다.

https://svn.openplans.org/svn/trac/CaptchaAuth/

D:\pubs>easy_install https://svn.openplans.org/svn/trac/CaptchaAuth/
Downloading https://svn.openplans.org/svn/trac/CaptchaAuth/
Doing subversion checkout from https://svn.openplans.org/svn/trac/CaptchaAuth/ to c:\docume~1\jaycho~1.hom\locals~1\temp\easy_install-ygvfil\CaptchaAuth
Error validating server certificate for 'https://svn.openplans.org:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: *.openplans.org
 - Valid: from Sat, 01 Mar 2008 04:08:51 GMT until Fri, 01 Mar 2013 04:08:51 GMT

 - Issuer: 07969287, http://certificates.godaddy.com/repository, GoDaddy.com, In
c., Scottsdale, Arizona, US
 - Fingerprint: 20:d0:ff:2c:8f:42:25:ea:82:e3:41:f2:94:ee:66:fa:5e:27:53:27
(R)eject, accept (t)emporarily or accept (p)ermanently? t
Processing CaptchaAuth
Running setup.py -q bdist_egg --dist-dir c:\docume~1\jaycho~1.hom\locals~1\temp\
easy_install-ygvfil\CaptchaAuth\egg-dist-tmp-diqjbn
Adding captchaauth 0.1 to easy-install.pth file

Installed c:\python25\lib\site-packages\captchaauth-0.1-py2.5.egg
Processing dependencies for captchaauth==0.1
Finished processing dependencies for captchaauth==0.1

D:\pubs>

"trac.ini"
[components]
captchaauth.* = enabled

[captchaauth]
dictionary_file = http://java.sun.com/docs/books/tutorial/collections/interfaces/examples/dictionary.txt

사용자 정의 dictionary_file 을 따로 설정하지 않으면 자동으로 'http://java.sun.com/docs/books/tutorial/collections/interfaces/examples/dictionary.txt' 를 사용하게 됩니다.




Captch 에서 사용할 png 이미지 파일을 생성하기 위해서 SourceForge 에서 Skimpy Gimpy 패키지를 다운로드 받습니다.

http://sourceforge.net/project/showfiles.php?group_id=184916

다운로드 받은 Skimpy Gimpy 패키지의 압축을 임시 폴더에 해제한 후 다음과 같이 설치 할 수 있습니다.

C:\Temp\skimpyGimpy_1_3>easy_install .\
Processing
Running setup.py -q bdist_egg --dist-dir C:\Temp\skimpyGimpy_1_3\egg-dist-tmp-cf-vnc
zip_safe flag not set; analyzing archive contents...
Adding skimpygimpy 1.2 to easy-install.pth file
Installing skimpy.py script to C:\Python25\Scripts

Installed c:\python25\lib\site-packages\skimpygimpy-1.2-py2.5.egg
Processing dependencies for skimpygimpy==1.2
Finished processing dependencies for skimpygimpy==1.2

C:\Temp\skimpyGimpy_1_3>

Trac 서버를 새로 시작한 후 Trac 의 사용자 등록(register) 메뉴로 이동 합니다.


이제 캡차의 도전 문제에 옳바르게 대답 해야지만 새로운 사용자 등록을 성공적으로 마칠 수 있게 되었습니다.
Trackback 0 Comment 0
2008/10/31 00:48

Trac-Hacks: 수식 플러그인 - TracMathPlugin

Trac 을 엔지니어링 계열에서 사용하고자 한다면 복잡한 수식 입력의 지원은 큰 장점이 됩니다. TracMathPluginmt-math 의 Trac 용 포팅 버전 입니다. 즉 LaTex 형식을 이용하여 웹 페이지에 수식을 실시간으로 입력할 수 있게 해주는 Movable Type 플러그인을 Trac 용으로 재구성한 버전 입니다.


내부적으로
  1) 편집기 인터페이스를 통해 입력된 LaTex 형식의 파일이
  2) dvi 파일로 변환되고,
  3) dvi-png 변환기를 통하여 dvi 파일이 다시 png 파일로 생성되며
  4) png 파일이 최종적으로 웹페이지에 표시되어 집니다.

따라서 사전에 LaTex 형식을 해석할 latex 컴파일러와 dvi-png 변환기를 설치해야 합니다. 여러가지 LaTex 패키지들이 여러 웹사이트에서 공개되고 있지만 MikTex 패키지가 윈도 환경에서는 특히 TracMathPlugin 을 설치하기 위해서 편리한 것 같습니다. MikTex 패키지에서 자체적으로 dvi-png 변환기의 윈도용 바이너리를 포함하고 있습니다.



MikTex 에서 2.7 기본 버전 (크기 81.81 MB) 을 다운로드 받아서 설치 합니다.

MikTex 패키지를 설치한 후에 TracMathPlugin 을 설치 합니다.

easy_install http://trac-hacks.org/svn/tracmathplugin/



"trac.ini"

[components]
tracmath.* = enabled

[tracmath]
latex_cmd = "C:\Program Files\MiKTeX 2.7\miktex\bin\latex.exe"
dvipng_cmd = "C:\Program Files\MiKTeX 2.7\miktex\bin\dvipng.exe"
cache_dir = D:\pubs\trac\share\tracmath-cache
max_png = 500
use_dollars = true


TracMathPlugin 이 실행되기 전에 cache 폴더, D:\pubs\trac\share\tracmath-cache, 를 반드시 먼저 생성해야 합니다. Trac 서버를 멈춘 후 새로 시작하면 TracMathPlugin 을 사용할 수 있습니다.



TracMathPlugin 을 쉽게 설치할 수 있는 것과 달리 실재로 수식을 입력하기 위해서는 LaTex 형식, 특히 수식에 관련된 형식과 규칙 들을 미리 알아둬야 합니다.

TracMathPlugin 에서는 크게 두 가지 방식의 수식 입력 형식을 지원합니다. 기본 입력 형식에서는 입력된 수식이 본문과 구분되는 별도의 문단에 표시됩니다. 반면에 inline 입력 형식은 본문 중간에 수식이 삽입되는 방식입니다.

1.1. 기본 입력 형식

{{{
#!latex
\begin{math-declaration-keyword}
...
\end{math-declaration-keyword}
}}}

math-declaration-keyword := math | displaymath | tabluar | equation | equation* | eqnarray | eqnarray* | align | align* 


LaTex 에서 지원하는 대부분의 수식 선언 키워드를 지원하지만 Trac의 위키프로세서 방식에 적용하는 과정에서 몇몇 키워드는 LaTex의 수식에서와 아주 약간 다른 의미의 방식으로 적용되는 것 같습니다. (math 키워드는 LaTex 에서는 inline 입력 형식을 의미하는 키워드인데 TracMathPlugin 에서는 {{{ }}} 안에서 사용 되어야 하기 때문에 기본 입력 형식으로 인식될 수 밖에 없습니다.)

한달 간의 짧은 제 경험에 의하면 equationequation* (TracMathPlugin 에서는 math, displaymath 키워드와 동등한 효과), align, align* 이렇게 네 가지 수식 선언 키워드만 기억하면 될 것 같습니다.

equation, equation* 는 하나의 수식을 입력할 때 사용하고 align, align* 는 둘 이상의 수식을 입력할 때 사용합니다. equation, align 과 같이 뒤에 * 가 붙지 않으면 기본적으로 각 수식의 번호를 표시하고 * 가 붙으면 수식 번호를 생략하게 됩니다.

a) math, displaymath, equation*

{{{
#!latex
\begin{math}
E=mc^2
\end{math}
}}}

{{{
#!latex
\begin{displaymath}
E=mc^2
\end{displaymath}
}}}

{{{
#!latex
\begin{equation*}
E=mc^2
\end{equation*}
}}}



b) equation

{{{
#!latex
\begin{equation}
E=mc^2
\end{equation}
}}}



c) align*

{{{
#!latex
\begin{align*}
\nabla \cdot E & = \frac{1}{\epsilon_0} \rho\\
\nabla \cdot B & = 0\\
\nabla \times E & = -\frac{\partial B}{\partial t}\\
\nabla \times B & = \mu_0 J + \mu_0 \epsilon_0 \frac{\partial E}{\partial t}
\end{align*}
}}}


d) align

{{{
#!latex
\begin{align}
\nabla \cdot E & = \frac{1}{\epsilon_0} \rho\\
\nabla \cdot B & = 0\\
\nabla \times E & = -\frac{\partial B}{\partial t}\\
\nabla \times B & = \mu_0 J + \mu_0 \epsilon_0 \frac{\partial E}{\partial t}
\end{align}
}}}



1.2. $$...$$ 를 사용한 기본 입력 형식

$$...$$ 를 이용하여 {{{ }}} 없이 수식을 바로 입력할 수 있습니다. equation*, displaymathmath 키워드와 동등한 방식이라고 생각할 수 있습니다.

Albert Einstein is perhaps the most famous scientist of this century. One of his most well-known accomplishments is the formula $$E=mc^2$$ Despite its familiarity, many people don't really understand what it means. We hope this explanation will help!


2. inline 입력 형식

$...$ 를 이용하여 {{{ }}} 없이 수식을 본문의 문장에 바로 삽입할 수 있습니다.

Albert Einstein is perhaps the most famous scientist of this century. One of his most well-known accomplishments is the formula $E=mc^2$ Despite its familiarity, many people don't really understand what it means. We hope this explanation will help!


$$...$$ 또는 $...$ 수식 입력 형식을 사용하기 위해서는 반드시 'trac.ini' 의 [tracmath] 에서 use_dollars = true 를 설정 해야합니다.

수식을 입력하는 형식은 다음의 문서를 참조합니다.

Getting to Grips with Latex - Mathematics by Andrew Roberts
Getting to Grips with Latex - Mathematics II by Andrew Roberts
The Not So Short Introduction to LaTeX 2e, "lshort.pdf", 2.31 MB

마지막으로 자주 사용하는 수식 기호 목록들을 다음과 같이 TracMathSymbol 등의 이름으로 새 위키페이지로 작성 해두면 편리합니다. LaTeX Style Math 에서 제공한 목록을 따라서 작성 했습니다.

TracMathSymbol 위키 페이지


 

Trackback 0 Comment 0