좀 살펴봤더니 {{{를 처리할 때 뉴라인이 죽네요. ^^; CommonMarkup 함수에서
{{{#!vim perl
###############
### added by gypark
### {{{ }}} 처리
s/(^|\n)\{\{\{[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*\n/$1 . &StoreRaw("") . &StoreCodeRaw($2) . &StoreRaw("\n<\/pre>") . "\n"/igem;
### {{{lang|n|t }}} 처리
s/(^|\n)\{\{\{([a-zA-Z0-9+]+)(\|(n|\d*|n\d+|\d+n))?[ \t\r\f]*\n((.|\n)*?)\n\}\}\}[ \t\r\f]*\n/$1 . &StoreRaw("") . &StoreSyntaxHighlight($2, $4, $5) . &StoreRaw("<\/pre>") . "\n"/igem;
###############
}}}
이렇게 $1을 추가해서 뉴라인을 살려주면 될 것 같습니다. 기왕 찾았으니 버그로... 치죠? -_-a
: 그런데 이렇게 고치면... {{{ }}} 단락을 들여쓰기 할 수가 없게 되겠죠. 앞줄의 콜론이 더 이상 적용되지 않을테니... 기억이 가물가물합니다만, 앞에 (^|\n) 을 괄호로 만들어 둔 이유가 위의 [[조프]]님이 적으신 것처럼 하려던 흔적이었을 겁니다. 그런데 지금의 코드처럼 두면 : 을 한 줄 위에 적어서 들여쓸 수 있어서 '잘 됐네 뭐' 하면서 놔둔 거겠죠. -_-; 차라리, 정규표현식에서 앞에 있는 "(^|\n)" 을 다 빼 버리는 수도 있을 겁니다. 그러면 뉴라인도 날려먹지 않고, 들여쓰는 것은 한 줄에 "::: {{{" 이런 식으로 적으면 되니까 차라리 나을 수도 있겠습니다만.. 뭣 때문인지는 도저히 기억나지 않는데, (아.. 이러니 기록이 중요해..) 그러면 또 다른 곳에서 문제가 많았거든요.
: 지금까지의 얘기는 다 "{{{ }}} 단락도 indent 가 되는게 좋다"라는 것을 전제로 한 것입니다만... 암튼, 앞의 뉴라인을 날려먹는 것은 의도적이었던 게 맞습니다. pre 를 만들기 위한 태그의 용법 자체가 "뉴라인+{{{+뉴라인" 이도록 한 거죠. 이게 pre 로 치환되는 과정에서 사라지는 거죠. 원래 코드를 보면 뉴라인을 하나가 아니라 두 개를 날려먹고 있죠. 왜 반드시 앞뒤에 뉴라인이 있어야만 했는지가 기억나지 않는 것이 괴롭군요.. ㅠ,.ㅠ
:: 앗, 잠자고 일어나는 순간 생각이 났는데... ^_^; 뉴라인을 앞뒤에 넣게 강제했던 것은, 아마도 지금 이 문장처럼 문장 중간에 {{{ 를 표기한 경우, 우연하게 페이지 뒤쪽에서 }}} 와 절묘하게 만나서 통채로 pre 처리를 해 버리는 경우를 몇 번 당했기 때문일 겁니다. :-) 저 혼자서라면 조심해서 쓰면 되지만, 처음에 [[Danny]]가 {{{{ }}} 의 초기구현을 만든 직후에 게시판 등에서 그런 경우가 자꾸 생겨서 말이죠.
: 으음... 말이 난 김에 {{{ }}} 를 위한 코드수정을 [[UseModWiki소스수정]]에 정리해 넣으려고 시도했는데, 한두군데를 바꾼 것도 아니고 주석을 따로 달아두지 않은채로 고친 부분도 워낙 많아서 이제 와서 정리하는 것 자체가 너무 힘들군요. -_-a 그냥 여기서 얘기를 해야겠습니다.
::사용하는데 크게 지장있는건 아니죠?
::: 글쎄요, 이게 '지장'이라고 봐야 되는 건지 아닌지에 따라 다르겠죠. :-) 현재 발견된 문제점은 {{{ 바로 윗 줄에 콜론을 이용한 indent 가 있을 때 {{{ 단락마저도 indent 가 된다는 것. 그 외에도 뭐 바로 윗 줄과 구분이 안 되니 다른 문제가 있을 지도 모르겠네요.
북마크링크를 누르니까 RecentChanges 페이지로 이동하네요.
: 예, 제 경우는 RCName 이 RecentChanges 로 되어 있어서 그렇습니다.
----
[[주인장분류]]