当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript prosemirror-model.Node类代码示例

本文整理汇总了TypeScript中prosemirror-model.Node的典型用法代码示例。如果您正苦于以下问题:TypeScript Node类的具体用法?TypeScript Node怎么用?TypeScript Node使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Node类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: selectAroundMark

  selectAroundMark(markType: MarkType, doc: Node, pos: number, dispatchTransaction): Mark {
    let $pos = doc.resolve(pos),
      parent = $pos.parent;

    let start = parent.childAfter($pos.parentOffset);
    if (!start.node || start.node.marks.length === 0) {
      // happens if the cursor is at the end of the line or the end of the node, use nodeAt pos - 1 to find node marks
      start.node = parent.nodeAt($pos.parentOffset - 1);
      if (!start.node) {
        return null;
      }
    }

    let targetMark = start.node.marks.find(mark => mark.type.name === markType.name);
    if (!targetMark) {
      return null;
    }

    let startIndex = $pos.index(),
      startPos = $pos.start() + start.offset;
    while (startIndex > 0 && targetMark.isInSet(parent.child(startIndex - 1).marks)) {
      startPos -= parent.child(--startIndex).nodeSize;
    }
    let endIndex = $pos.indexAfter(),
      endPos = startPos + start.node.nodeSize;
    while (endPos < parent.childCount && targetMark.isInSet(parent.child(endIndex).marks)) {
      endPos += parent.child(endIndex++).nodeSize;
    }

    let selection = Selection.between(doc.resolve(startPos), doc.resolve(endPos));
    dispatchTransaction(this.view.editor.state.tr.setSelection(selection));

    return targetMark;
  }
开发者ID:PRX,项目名称:publish.prx.org,代码行数:34,代码来源:prosemirror.markdown.editor.ts

示例2: createState

export function createState(schema: Schema, nodeOrJson: Node | any, plugins?: Plugin[]) {
    return EditorState.create({
        schema,
        doc: nodeOrJson instanceof Node ? nodeOrJson : Node.fromJSON(schema, nodeOrJson.doc),
        plugins,
    })
}
开发者ID:zodiac-team,项目名称:zodiac-ui,代码行数:7,代码来源:create-state.ts

示例3: getContent

 const getContent = (node: Node) => {
   if (node.type.name === 'text') {
     if (translatedContent.length > 0 && node.textContent.length > 0
       && !node.textContent.match(/^\s+/)
       && !translatedContent.match(/^.+\s$/)) {
       translatedContent += ' ';
     }
     let linkMark: Mark;
     node.marks.forEach(mark => {
       if (markdownSchema.marks.link.isInSet([mark])) {
         linkMark = mark;
       }
     });
     if (linkMark) {
       translatedContent += `[${node.textContent}](${linkMark.attrs.href}`;
       if (node.marks[0].attrs.title) {
         translatedContent += ` "${linkMark.attrs.title}")`;
       } else {
         translatedContent += ')';
       }
     } else {
       translatedContent += node.textContent;
     }
   }
   // traverse the node tree and pull out the textContent and links via markdown input schema
   node.forEach((child, offset, index) => getContent(child));
 };
开发者ID:PRX,项目名称:publish.prx.org,代码行数:27,代码来源:prosemirror.markdown.editor.ts

示例4: getAttrs

domOutputSpec = ['div', ['div', { class: 'foo' }, 0]];

export const nodeSpec: model.NodeSpec = {
    attrs: {
        name: { default: '' }
    },
    parseDOM: [
        {
            tag: 'span[data-name]',
            getAttrs(dom) {
                if (dom instanceof HTMLElement) {
                    return {
                        name: dom.getAttribute('data-name')!
                    };
                }
            }
        }
    ],
    toDOM(node) {
        const { name } = node.attrs;
        const attrs = {
            'data-emoji-name': name
        };
        return ['span', attrs, 0];
    }
};

const node = new model.Node();
node.nodesBetween(0, 1, () => {});
node.descendants(() => {});
开发者ID:anurse,项目名称:DefinitelyTyped,代码行数:30,代码来源:prosemirror-model-tests.ts

示例5: toDOM

                }
            }
        }
    ],
    toDOM(node) {
        const { name } = node.attrs;
        const attrs = {
            'data-emoji-name': name
        };
        return ['span', attrs, 0];
    }
};

// Verify that non-null assertion operator can be used.

const res1_1 = new model.Node();
res1_1.nodesBetween(0, 1, () => {});
res1_1.nodesBetween(0, 1, () => null);
res1_1.nodesBetween(0, 1, () => undefined);
res1_1.nodesBetween(0, 1, () => true);
res1_1.descendants(() => {});
res1_1.descendants(() => null);
res1_1.descendants(() => undefined);
res1_1.descendants(() => true);
const res1_2: model.Node = res1_1.maybeChild(0)!;
const res1_3: model.Node = res1_1.nodeAt(0)!;

const cm1 = new model.ContentMatch();
const cm2: model.ContentMatch = cm1.matchType({} as any)!;
const cm3: model.ContentMatch = cm1.matchFragment({} as any)!;
const cm4: model.Fragment = cm1.fillBefore({} as any)!;
开发者ID:CNBoland,项目名称:DefinitelyTyped,代码行数:31,代码来源:prosemirror-model-tests.ts


注:本文中的prosemirror-model.Node类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。