Vanessa 2023-06-07 11:20:21 +08:00
parent edacb9ae3d
commit cdb0024664
11 changed files with 43 additions and 10 deletions

View file

@ -11,6 +11,7 @@ import {setStorageVal} from "../../protyle/util/compatibility";
import {closePanel} from "./closePanel";
import {showMessage} from "../../dialog/message";
import {getCurrentEditor} from "../editor";
import {avRender} from "../../protyle/render/av";
const forwardStack: IBackStack[] = [];
@ -85,6 +86,7 @@ const focusStack = (backStack: IBackStack) => {
protyle.wysiwyg.element.innerHTML = getResponse.data.content;
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
blockRender(protyle, protyle.wysiwyg.element, backStack.scrollTop);
if (getResponse.data.isSyncing) {
disabledForeverProtyle(protyle);

View file

@ -40,6 +40,7 @@ import {activeBlur} from "../../mobile/util/keyboardToolbar";
import {hideTooltip} from "../../dialog/tooltip";
import {appearanceMenu} from "../toolbar/Font";
import {setPosition} from "../../util/setPosition";
import {avRender} from "../render/av";
export class Gutter {
public element: HTMLElement;
@ -380,6 +381,7 @@ export class Gutter {
blockRender(options.protyle, options.protyle.wysiwyg.element);
processRender(options.protyle.wysiwyg.element);
highlightRender(options.protyle.wysiwyg.element);
avRender(options.protyle.wysiwyg.element);
}
};
}

View file

@ -19,6 +19,7 @@ import {zoomOut} from "../../menus/protyle";
import {hideElements} from "../ui/hideElements";
import {genAssetHTML} from "../../asset/renderAssets";
import {unicode2Emoji} from "../../emoji";
import {avRender} from "../render/av";
export const hintSlash = (key: string, protyle: IProtyle) => {
const allList: IHintData[] = [{
@ -443,6 +444,7 @@ export const hintRenderTemplate = (value: string, protyle: IProtyle, nodeElement
blockRender(protyle, protyle.wysiwyg.element);
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
hideElements(["util"], protyle);
});
};

View file

@ -1,12 +1,13 @@
import { graphvizRender } from "./markdown/graphvizRender";
import { highlightRender } from "./markdown/highlightRender";
import { mathRender } from "./markdown/mathRender";
import { mermaidRender } from "./markdown/mermaidRender";
import { flowchartRender } from "./markdown/flowchartRender";
import { chartRender } from "./markdown/chartRender";
import { abcRender } from "./markdown/abcRender";
import { mindmapRender } from "./markdown/mindmapRender";
import { plantumlRender } from "./markdown/plantumlRender";
import { graphvizRender } from "./render/graphvizRender";
import { highlightRender } from "./render/highlightRender";
import { mathRender } from "./render/mathRender";
import { mermaidRender } from "./render/mermaidRender";
import { flowchartRender } from "./render/flowchartRender";
import { chartRender } from "./render/chartRender";
import { abcRender } from "./render/abcRender";
import { mindmapRender } from "./render/mindmapRender";
import { plantumlRender } from "./render/plantumlRender";
import { avRender } from "./render/av";
import "../assets/scss/export.scss";
class Protyle {
@ -29,6 +30,7 @@ class Protyle {
public static mindmapRender = mindmapRender;
/** UML 渲染 */
public static plantumlRender = plantumlRender;
public static avRender = avRender;
}
// 由于 https://github.com/siyuan-note/siyuan/issues/7800先临时解决一下

View file

@ -17,6 +17,7 @@ import {fetchPost} from "../../util/fetch";
import {processRender} from "../util/processCode";
import {highlightRender} from "../render/highlightRender";
import {speechRender} from "../render/speechRender";
import {avRender} from "../render/av";
export class Preview {
public element: HTMLElement;
@ -163,6 +164,7 @@ export class Preview {
protyle.preview.previewElement.innerHTML = response.data.html;
processRender(protyle.preview.previewElement);
highlightRender(protyle.preview.previewElement);
avRender(protyle.preview.previewElement);
speechRender(protyle.preview.previewElement, protyle.options.lang);
});
}, protyle.options.preview.delay);

View file

@ -0,0 +1,3 @@
export const avRender = (element: Element) => {
}

View file

@ -4,6 +4,7 @@ import {processRender} from "../util/processCode";
import {highlightRender} from "./highlightRender";
import {Constants} from "../../constants";
import {genBreadcrumb} from "../wysiwyg/renderBacklink";
import {avRender} from "./av";
export const blockRender = (protyle: IProtyle, element: Element, top?: number) => {
let blockElements: Element[] = [];
@ -70,6 +71,7 @@ export const blockRender = (protyle: IProtyle, element: Element, top?: number) =
processRender(item);
highlightRender(item);
avRender(item);
if (top) {
// 前进后退定位 https://ld246.com/article/1667652729995
protyle.contentElement.scrollTop = top;

View file

@ -16,6 +16,7 @@ import {removeLoading} from "../ui/initUI";
import {isMobile} from "../../util/functions";
import {foldPassiveType} from "../wysiwyg/renderBacklink";
import {showMessage} from "../../dialog/message";
import {avRender} from "../render/av";
export const onGet = (options: {
data: IWebSocketData,
@ -161,6 +162,7 @@ const setHTML = (options: {
}
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
blockRender(protyle, protyle.wysiwyg.element);
if (options.action.includes(Constants.CB_GET_HISTORY)) {
return;

View file

@ -14,6 +14,7 @@ import {isDynamicRef, isFileAnnotation} from "../../util/functions";
import {insertHTML} from "./insertHTML";
import {scrollCenter} from "../../util/highlightById";
import {hideElements} from "../ui/hideElements";
import {avRender} from "../render/av";
const filterClipboardHint = (protyle: IProtyle, textPlain: string) => {
let needRender = true;
@ -78,6 +79,7 @@ export const pasteText = (protyle: IProtyle, textPlain: string, nodeElement: Ele
blockRender(protyle, protyle.wysiwyg.element);
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
filterClipboardHint(protyle, textPlain);
scrollCenter(protyle, undefined, false, "smooth");
};
@ -198,6 +200,7 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
blockRender(protyle, protyle.wysiwyg.element);
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
} else if (code) {
if (!code.startsWith('<div data-type="NodeCodeBlock" class="code-block" data-node-id="')) {
// 原有代码在行内元素中粘贴会嵌套
@ -247,6 +250,7 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
blockRender(protyle, protyle.wysiwyg.element);
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
filterClipboardHint(protyle, response.data);
scrollCenter(protyle, undefined, false, "smooth");
});
@ -284,6 +288,7 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
blockRender(protyle, protyle.wysiwyg.element);
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
}
scrollCenter(protyle, undefined, false, "smooth");
};

View file

@ -6,6 +6,7 @@ import {processRender} from "../util/processCode";
import {highlightRender} from "../render/highlightRender";
import {blockRender} from "../render/blockRender";
import {disabledForeverProtyle, disabledProtyle} from "../util/onGet";
import {avRender} from "../render/av";
export const renderBacklink = (protyle: IProtyle, backlinkData: {
blockPaths: IBreadcrumb[],
@ -20,6 +21,7 @@ export const renderBacklink = (protyle: IProtyle, backlinkData: {
protyle.wysiwyg.element.innerHTML = html;
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
blockRender(protyle, protyle.wysiwyg.element);
removeLoading(protyle);
if (window.siyuan.config.readonly || window.siyuan.config.editor.readOnly) {
@ -73,7 +75,7 @@ export const loadBreadcrumb = (protyle: IProtyle, element: HTMLElement) => {
}
element.parentElement.insertAdjacentHTML("afterend", setBacklinkFold(getResponse.data.content, true));
processRender(element.parentElement.parentElement);
highlightRender(element.parentElement.parentElement);
avRender(element.parentElement.parentElement);
blockRender(protyle, element.parentElement.parentElement);
if (getResponse.data.isSyncing) {
disabledForeverProtyle(protyle);

View file

@ -17,6 +17,7 @@ import {hideElements} from "../ui/hideElements";
import {reloadProtyle} from "../util/reload";
import {countBlockWord} from "../../layout/status";
import {needSubscribe} from "../../util/needSubscribe";
import {avRender} from "../render/av";
const removeTopElement = (updateElement: Element, protyle: IProtyle) => {
// 移动到其他文档中,该块需移除
@ -120,6 +121,7 @@ const promiseTransaction = () => {
});
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
blockRender(protyle, protyle.wysiwyg.element);
protyle.contentElement.scrollTop = scrollTop;
protyle.scroll.lastScrollTop = scrollTop;
@ -159,6 +161,7 @@ const promiseTransaction = () => {
});
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
blockRender(protyle, protyle.wysiwyg.element);
}
// 当前编辑器中更新嵌入块
@ -268,6 +271,7 @@ const promiseTransaction = () => {
cursorElements.forEach(item => {
processRender(item);
highlightRender(item);
avRender(item);
blockRender(protyle, item);
const wbrElement = item.querySelector("wbr");
if (wbrElement) {
@ -307,6 +311,7 @@ const updateEmbed = (protyle: IProtyle, operation: IOperation) => {
if (updatedEmbed) {
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
}
};
@ -353,6 +358,7 @@ export const onTransaction = (protyle: IProtyle, operation: IOperation, focus: b
if (operation.retData) {
processRender(protyle.wysiwyg.element);
highlightRender(protyle.wysiwyg.element);
avRender(protyle.wysiwyg.element);
blockRender(protyle, protyle.wysiwyg.element);
protyle.contentElement.scrollTop = scrollTop;
protyle.scroll.lastScrollTop = scrollTop;
@ -418,6 +424,7 @@ export const onTransaction = (protyle: IProtyle, operation: IOperation, focus: b
}
processRender(updateElements.length === 1 ? updateElements[0] : protyle.wysiwyg.element);
highlightRender(updateElements.length === 1 ? updateElements[0] : protyle.wysiwyg.element);
avRender(updateElements.length === 1 ? updateElements[0] : protyle.wysiwyg.element);
blockRender(protyle, updateElements.length === 1 ? updateElements[0] : protyle.wysiwyg.element);
}
// 更新 ws 嵌入块
@ -635,6 +642,7 @@ export const onTransaction = (protyle: IProtyle, operation: IOperation, focus: b
cursorElements.forEach(item => {
processRender(item);
highlightRender(item);
avRender(item);
blockRender(protyle, item);
const wbrElement = item.querySelector("wbr");
if (focus) {
@ -860,6 +868,7 @@ export const turnsIntoTransaction = (options: {
transaction(options.protyle, doOperations, undoOperations);
processRender(options.protyle.wysiwyg.element);
highlightRender(options.protyle.wysiwyg.element);
avRender(options.protyle.wysiwyg.element);
blockRender(options.protyle, options.protyle.wysiwyg.element);
if (range) {
focusByWbr(options.protyle.wysiwyg.element, range);