Markdown 模式代码镜像创建
Markdown mode codemirror creating
谁能帮我创建新的codemirror模式?
我需要将 {>1<}![title](site)
的 {>1<}
部分隐藏起来(放入特定 class 的范围内)
我该怎么做?
我试过类似的东西:
CodeMirror.defineSimpleMode("imageID", {
start: [
{regex: /(?:\{\>([^<]*)\<\})/gmi, token: "imageID"}
]
});
但它不起作用...知道为什么吗?
解法:
function findNext(lastPos){
var text = /^\!\[([^\]]*)\]\(([^\)]*)\)+/;
for (cursor = editor.getSearchCursor(text); cursor.findNext();)
editor.replaceRange('{>'+(i++)+'<}',cursor.from(),cursor.from())
cursor = editor.getSearchCursor(text, lastPos || editor.getCursor());
if (!cursor.findNext()){
cursor = editor.getSearchCursor(text);
if (!cursor.findNext()) {return;}
}
lastPos = cursor.to();
}
//------------------------------------
function findAloneIdx(lastPos){
var text = /(\{\>([^<]*)\<\}\!?\[?)+/;
for (cursor = editor.getSearchCursor(text); cursor.findNext();)
if(editor.getRange(cursor.from(), cursor.to()).slice(-2) !== '![')
editor.replaceRange('',cursor.from(),cursor.to())
else
editor.markText(cursor.from(), {line: cursor.to().line, ch: cursor.to().ch-2}, {className: "styled-background"});
cursor = editor.getSearchCursor(text, lastPos || editor.getCursor());
if (!cursor.findNext()){
cursor = editor.getSearchCursor(text);
if (!cursor.findNext()) {return;}
}
lastPos = cursor.to();
}
谁能帮我创建新的codemirror模式?
我需要将 {>1<}![title](site)
的 {>1<}
部分隐藏起来(放入特定 class 的范围内)
我该怎么做?
我试过类似的东西:
CodeMirror.defineSimpleMode("imageID", {
start: [
{regex: /(?:\{\>([^<]*)\<\})/gmi, token: "imageID"}
]
});
但它不起作用...知道为什么吗?
解法:
function findNext(lastPos){
var text = /^\!\[([^\]]*)\]\(([^\)]*)\)+/;
for (cursor = editor.getSearchCursor(text); cursor.findNext();)
editor.replaceRange('{>'+(i++)+'<}',cursor.from(),cursor.from())
cursor = editor.getSearchCursor(text, lastPos || editor.getCursor());
if (!cursor.findNext()){
cursor = editor.getSearchCursor(text);
if (!cursor.findNext()) {return;}
}
lastPos = cursor.to();
}
//------------------------------------
function findAloneIdx(lastPos){
var text = /(\{\>([^<]*)\<\}\!?\[?)+/;
for (cursor = editor.getSearchCursor(text); cursor.findNext();)
if(editor.getRange(cursor.from(), cursor.to()).slice(-2) !== '![')
editor.replaceRange('',cursor.from(),cursor.to())
else
editor.markText(cursor.from(), {line: cursor.to().line, ch: cursor.to().ch-2}, {className: "styled-background"});
cursor = editor.getSearchCursor(text, lastPos || editor.getCursor());
if (!cursor.findNext()){
cursor = editor.getSearchCursor(text);
if (!cursor.findNext()) {return;}
}
lastPos = cursor.to();
}