【问题标题】:Markdown mode codemirror creatingMarkdown 模式代码镜像创建
【发布时间】:2015-06-11 06:57:19
【问题描述】:

谁能帮我为codemirror创建新模式?

我需要将{>1<}![title](site) 的这部分{>1<} 不可见(进入特定类的跨度)

我该怎么做?

我尝试过类似的方法:

CodeMirror.defineSimpleMode("imageID", {
    start: [
       {regex: /(?:\{\>([^<]*)\<\})/gmi, token: "imageID"}
    ]
});

但它不起作用...任何想法为什么?

【问题讨论】:

  • CodeMirror 模式不能使文本不可见。为此,您必须使用 markText 方法。

标签: javascript regex browser mode codemirror


【解决方案1】:

解决方案:

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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多