DEVONthink + markdown syntax 사용하기
Motivation
요즘 문서 정리 툴로 DEVONthink 를 사용하고 있는데, 내장 편집기로 RTF와 Plain text 편집기가 내장되어 있다. 헌데 이 RTF 편집기가, 윈도우의 워드패드 수준 정도 되어서 사용하기에 여간 불편하기도 하고, 만들어진 문서가 구조화 된 문서도 아니라서 여간 찜찜한게 아니었다. 내가 필요로 했던 기능은 다음과 같다.
- 재빠른 작성
- 구조화된 문서 ( 제목, 문단 등의 서식 )
- 추후 편집 가능
Plain text 편집기를 사용하여 markdown syntax를 사용할 수는 있지만, 그닥 예쁘게 나오는 것이 아니다. DEVONthink에서는 Applescript를 지원하는데, script 디렉토리에 들어있는 script들을 메뉴에서 액세스 하여 실행할 수 있다. markdown과 함께 하는 원활한 생활을 위해 두 스크립트를 작성하였다.
- 현재 선택된 markdown 문서 브라우저에서 보기
- 현재 선택된 markdown 문서 vim으로 편집
Method
- Markdown 홈페이지에서 Markdown_1.0.1.zip을 다운로드 하여 실행 가능한 path에 넣는다. (~/bin 이라던가 등등... )
- 다음 코드를 Script Editor로 적당한 Devonthink script path에 넣으면 끝!
set this_file to ""
tell application "DEVONthink Pro"
set these_items to the selection
set this_item to first item of these_items
if type of this_item as text is not equal to "text" then
display dialog "Please select markdown text file." buttons {"OK"} default button 1
else
set mkd_file to (path of this_item as text)
tell application "Terminal"
do script "TMP_FILE=$(tempfile --suffix=.html); Markdown.pl \"" & mkd_file & "\">$TMP_FILE && open $TMP_FILE"
set running_tab to result
delay 2
if selected tab of first window is equal to running_tab then
close first window
end if
end tell
end if
end tell
Ideas
삽질 하면서 든 생각 몇 가지
- 호출한 타겟 애플리케이션으로 콜백을 받는 방법? 브라우저에서 본 markdown문서를 사용자가 닫고 나면 생성한 tempfile은 더 이상 필요가 없어진다. 삭제해 주면 좋겠는데, 콜백을 받을 수가 없으니 영 답답...
- 2번스크립트는 사실 Open with.. 메뉴로 대체할 수 있는데, 어떻게 외부 프로그램을 지정하는 지 모르겠다. DEVONthink에 아직 덜 익숙해서 그런 듯...
- 브라우저가 자꾸 생성된 문서를 UTF-8로 안 보여 준다. 왜 그럴까...
- devonthink에 리비전 컨트롤도 있으면 좋겠다.
Todos
- setup instruction 개선하기








