Javascript Ace编辑器:如何在嵌套块中实现highlighter?

Javascript Ace编辑器:如何在嵌套块中实现highlighter?,javascript,ace-editor,Javascript,Ace Editor,我有定制模式和荧光灯。我想将Markdown highlighter嵌入到基于简单文本highlighter的我的highlighter中。这是我的荧光灯代码: ace.define("ace/mode/brainch_highlight_rules", (acequire, exports, module) => { const oop = acequire("ace/lib/oop"); const BaseTextHighlightRules = acequire("ace

我有定制模式和荧光灯。我想将Markdown highlighter嵌入到基于简单文本highlighter的我的highlighter中。这是我的荧光灯代码:

ace.define("ace/mode/brainch_highlight_rules", (acequire, exports, module) => {
  const oop = acequire("ace/lib/oop");

  const BaseTextHighlightRules = acequire("ace/mode/text_highlight_rules").TextHighlightRules;
  const MarkdownHighlightRules = acequire("ace/mode/markdown_highlight_rules").MarkdownHighlightRules;

  const BrainchMarkdownHighlightRules = function() {
    MarkdownHighlightRules.call(this);

    this.$rules.start.unshift({
      token: "meta.username",
      regex: "@[A-Za-z_]+",
      next: "start"
    });

    this.normalizeRules();
  };
  oop.inherits(BrainchMarkdownHighlightRules, MarkdownHighlightRules);

  const BrainchBlocksHighlightRules = function() {
    BaseTextHighlightRules.call(this);

    this.$rules.start.unshift({
      token: "meta.block.block_task",
      regex: "^\\-",
      next: "brainch-start"
    }, {
      token: "meta.block.block_note",
      regex: "^[^\\-]",
      next: "brainch-start"
    });

    this.embedRules(BrainchMarkdownHighlightRules, "brainch-", [{
      regex: "$", onMatch: function(val, state, stack) {
        this.next = "start";
        return "meta.block";
      }
    }], ["start"]);

    this.normalizeRules();
  }
  oop.inherits(BrainchBlocksHighlightRules, BaseTextHighlightRules);

  exports.BrainchHighlightRules = BrainchBlocksHighlightRules;
});
我想通过两条规则定义块格式:

  • 如果块中的文本以
    -
    开头,则应用CSS
    块任务
    类中的样式
  • 否则将块格式化为
    block\u注释
    class
  • 此外,我还想使用标记和自定义规则设置内部文本的格式


    我该怎么做

    换句话说,我想下一个HTML作为结果:
    -这是@username\u In_uuutext
    解析为
    -这是@username\u In_uuutext
    换句话说,我想下一个HTML作为结果:
    -这是@username\u In_uutext
    解析为
    -这是@username\u In_uin_uutext