schreiben/src/lib/getTitle.js
Cat /dev/Nulo 73381b0dd7
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
mostrar titulo de mundo en index (fixes #3)
2023-04-18 12:08:46 -03:00

27 lines
697 B
JavaScript

import { yDocToProsemirrorJSON } from "y-prosemirror";
import { Node } from "prosemirror-model";
import { schema } from "../editor/schema";
/**
* @param {import("yjs").Doc} ydoc
* @param {string} name
* @returns {string=}
*/
export function getTitle(ydoc, name) {
const json = yDocToProsemirrorJSON(ydoc, name);
const node = Node.fromJSON(schema, json);
/** @type {any} */
let titleNode = null;
node.descendants((node) => {
if (titleNode) return false;
if (node.type.name === "heading" && node.attrs.level === 1) {
titleNode = node;
return false;
}
});
if (titleNode) {
// prettier-ignore
return /** @type {Node} */(titleNode).textContent;
}
}