mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 16:40:13 +01:00
This commit is contained in:
parent
edacb9ae3d
commit
cdb0024664
11 changed files with 43 additions and 10 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,先临时解决一下
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
3
app/src/protyle/render/av/index.ts
Normal file
3
app/src/protyle/render/av/index.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
export const avRender = (element: Element) => {
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue