(.+?)<\/div><\/li>/';
$replacement = '
$1
';
$tpl = preg_replace($pattern,$replacement,$tpl);
return $tpl;
}
public static function markdown2wiki(string $markdown,$channelType,$contentType): string{
/**
* nissaya
* aaa=bbb\n
* {{nissaya|aaa|bbb}}
*/
if($channelType==='nissaya'){
if($contentType === "json"){
$json = json_decode($markdown);
$nissayaWord = [];
foreach ($json as $word) {
if(count($word->sn) === 1){
//只输出第一层级
$str = "{{nissaya|";
if(isset($word->word->value)){
$str .= $word->word->value;
}
$str .= "|";
if(isset($word->meaning->value)){
$str .= $word->meaning->value;
}
$str .= "}}";
$nissayaWord[] = $str;
}
}
$markdown = implode('',$nissayaWord);
}else{
$pattern = '/(.+?)=(.+?)\n/';
$replacement = '{{nissaya|$1|$2}}';
$markdown = preg_replace($pattern,$replacement,$markdown);
$pattern = '/(.+?)=(.?)\n/';
$replacement = '{{nissaya|$1|$2}}';
$markdown = preg_replace($pattern,$replacement,$markdown);
$pattern = '/(.?)=(.+?)\n/';
$replacement = '{{nissaya|$1|$2}}';
$markdown = preg_replace($pattern,$replacement,$markdown);
}
}
//$markdown = preg_replace("/\n\n/","
",$markdown);
/**
* 替换换行符
* react 无法处理
替换为
代替换行符作用
*/
$markdown = str_replace('
','
',$markdown);
/**
* markdown -> html
*/
$html = Str::markdown($markdown);
#替换术语
$pattern = "/\[\[(.+?)\]\]/";
$replacement = '{{term|$1}}';
$html = preg_replace($pattern,$replacement,$html);
#替换句子模版
$pattern = "/\{\{([0-9].+?)\}\}/";
$replacement = '{{sent|$1}}';
$html = preg_replace($pattern,$replacement,$html);
#替换单行注释
#
bla
#{{note|bla}}
$pattern = '/
(.+?)<\/code>/';
$replacement = '{{note|$1}}';
$html = preg_replace($pattern,$replacement,$html);
#替换多行注释
#bla
#{{note|bla}}
$pattern = '/([\w\W]+?)<\/code><\/pre>/';
$replacement = '{{note|$1}}';
$html = preg_replace($pattern,$replacement,$html);
return $html;
}
/**
*
*/
public static function render($markdown,$channelId,$queryId=null,$mode='read',$channelType='translation',$contentType="markdown"){
return MdRender::render2($markdown,$channelId,$queryId,$mode,$channelType,$contentType);
}
}