반응형
- 마크다운변환 : 20190905
저는 제가 개발했던 자료들을 개인적인 xe 홈페이지를 이용해서 비밀내용까지 모두 올려놓습니다. (개인적인 개발 노트로 활용하고있습니다.) 그중 xe wiki 는 아주 간단한 위키의 기능을 제공합니다. (강력하지는 않지만 아주 유용하게 잘쓰고있습니다.)
문제발생
헌데 사용하다가 문제가 발생했습니다.
소스코드를 잘 올리다보니... 소스코드의 내용중 배열의 내용이 제대로 보이지 않더군요.
이유는 기본적으로 xe wiki 는 [글내용]
이런식으로 문서를 만들게 됩니다. 때문에 배열이 새로운 글내용 링크로 표시되어 제대로 소스코드를 보기 힘들게 됐습니다.
위키문법 바꾸기
그래서 [[글내용]]
형식으로 바꾸는 팁을 알려드릴께요.
/xe/modules/wiki/wiki.view.php
경로에 가면.. function _renderWikiContent()
의 내용을 아래처럼 바꾸면 됩니다.
/**
* @brief 위키 문법에 따라 쓰여진 컨텐츠의 링크를 렌더링 (private)
*/
function _renderWikiContent($org_content)
{
$content = preg_replace_callback("!\[\[([^\]\]]+)\]\]!is", array(&$this, 'callback_check_exists' ), $org_content );
$entries = array_keys($this->document_exists);
$oDB = &DB::getInstance();
if(count($entries))
{
$args->entries = $entries;
$args->module_srl = $this->module_info->module_srl;
$output = executeQueryArray("wiki.getDocumentsWithEntries", $args);
if($output->data)
{
foreach($output->data as $alias)
{
$this->document_exists[$alias->alias_title] = 1;
}
}
}
$content = preg_replace_callback("!\[\[([^\]]+)\]\]!is", array(&$this, 'callback_wikilink' ), $content );
$content = preg_replace('@<([^>]*)(src|href)="((?!https?://)[^"]*)"([^>]*)>@i','<$1$2="'.Context::getRequestUri().'$3"$4>', $content);
return $content;
}
빨간색으로 하이라트 된 부분이 [[글내용]] 이라고 적용된 부분입니다. 잘 보시면 알겠지만 정규식으로 표현되어있습니다.
위의 하이라트된 부분을 고치시면.. wiki를 원하는 문법으로 고치실수 있습니다.
반응형