mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-15 08:30:42 +08:00
This commit is contained in:
parent
172b7ed018
commit
df3f444e48
@ -541,18 +541,11 @@ export abstract class Constants {
|
|||||||
public static readonly INLINE_TYPE: string[] = ["block-ref", "kbd", "text", "file-annotation-ref", "a", "strong", "em", "u", "s", "mark", "sup", "sub", "tag", "code", "inline-math", "inline-memo"];
|
public static readonly INLINE_TYPE: string[] = ["block-ref", "kbd", "text", "file-annotation-ref", "a", "strong", "em", "u", "s", "mark", "sup", "sub", "tag", "code", "inline-math", "inline-memo"];
|
||||||
public static readonly BLOCK_HINT_KEYS: string[] = ["((", "[[", "((", "【【"];
|
public static readonly BLOCK_HINT_KEYS: string[] = ["((", "[[", "((", "【【"];
|
||||||
public static readonly BLOCK_HINT_CLOSE_KEYS: IObject = {"((": "))", "[[": "]]", "((": "))", "【【": "】】"};
|
public static readonly BLOCK_HINT_CLOSE_KEYS: IObject = {"((": "))", "[[": "]]", "((": "))", "【【": "】】"};
|
||||||
public static readonly EXTRA_CODE_LANGUAGES: string[] = [
|
// common: "bash", "c", "csharp", "cpp", "css", "diff", "go", "xml", "json", "java", "javascript", "kotlin", "less", "lua", "makefile", "markdown", "objectivec", "php", "php-template", "perl", "plaintext", "python", "python-repl", "r", "ruby", "rust", "scss", "sql", "shell", "swift", "ini", "typescript", "vbnet", "yaml", "properties", "1c", "armasm", "avrasm", "actionscript", "ada", "angelscript", "accesslog", "apache", "applescript", "arcade", "arduino", "asciidoc", "aspectj", "abnf", "autohotkey", "autoit", "awk", "basic", "bnf", "dos", "brainfuck", "cal", "cmake", "csp", "cos", "capnproto", "ceylon", "clean", "clojure", "clojure-repl", "coffeescript", "coq", "crystal", "d", "dns", "dart", "delphi", "dts", "django", "dockerfile", "dust", "erb", "elixir", "elm", "erlang", "erlang-repl", "excel", "ebnf", "fsharp", "fix", "flix", "fortran", "gcode", "gams", "gauss", "glsl", "gml", "gherkin", "golo", "gradle", "groovy", "haml", "hsp", "http", "handlebars", "haskell", "haxe", "hy", "irpf90", "isbl", "inform7", "x86asm", "jboss-cli", "julia", "julia-repl", "ldif", "llvm", "lsl", "latex", "lasso", "leaf", "lisp", "livecodeserver", "livescript", "mel", "mipsasm", "matlab", "maxima", "mercury", "axapta", "routeros", "mizar", "mojolicious", "monkey", "moonscript", "n1ql", "nsis", "nestedtext", "nginx", "nim", "nix", "node-repl", "ocaml", "openscad", "ruleslanguage", "oxygene", "pf", "parser3", "pony", "pgsql", "powershell", "processing", "prolog", "protobuf", "puppet", "purebasic", "profile", "q", "qml", "reasonml", "rib", "rsl", "roboconf", "sas", "sml", "sqf", "step21", "scala", "scheme", "scilab", "smali", "smalltalk", "stan", "stata", "stylus", "subunit", "tp", "taggerscript", "tcl", "tap", "thrift", "twig", "vbscript", "vbscript-html", "vhdl", "vala", "verilog", "vim", "wasm", "mathematica", "wren", "xl", "xquery", "zephir", "crmsh", "dsconfig", "graphql",
|
||||||
// 同名
|
// third: "yul", "solidity", "abap", "hlsl"
|
||||||
|
public static readonly ALIAS_CODE_LANGUAGES: string[] = [
|
||||||
"js", "ts", "html", "toml", "c#", "bat",
|
"js", "ts", "html", "toml", "c#", "bat",
|
||||||
];
|
];
|
||||||
public static readonly CODE_LANGUAGES: string[] = [
|
|
||||||
// 附加
|
|
||||||
...Constants.EXTRA_CODE_LANGUAGES,
|
|
||||||
// common
|
|
||||||
"bash", "c", "csharp", "cpp", "css", "diff", "go", "xml", "json", "java", "javascript", "kotlin", "less", "lua", "makefile", "markdown", "objectivec", "php", "php-template", "perl", "plaintext", "python", "python-repl", "r", "ruby", "rust", "scss", "sql", "shell", "swift", "ini", "typescript", "vbnet", "yaml", "properties", "1c", "armasm", "avrasm", "actionscript", "ada", "angelscript", "accesslog", "apache", "applescript", "arcade", "arduino", "asciidoc", "aspectj", "abnf", "autohotkey", "autoit", "awk", "basic", "bnf", "dos", "brainfuck", "cal", "cmake", "csp", "cos", "capnproto", "ceylon", "clean", "clojure", "clojure-repl", "coffeescript", "coq", "crystal", "d", "dns", "dart", "delphi", "dts", "django", "dockerfile", "dust", "erb", "elixir", "elm", "erlang", "erlang-repl", "excel", "ebnf", "fsharp", "fix", "flix", "fortran", "gcode", "gams", "gauss", "glsl", "gml", "gherkin", "golo", "gradle", "groovy", "haml", "hsp", "http", "handlebars", "haskell", "haxe", "hy", "irpf90", "isbl", "inform7", "x86asm", "jboss-cli", "julia", "julia-repl", "ldif", "llvm", "lsl", "latex", "lasso", "leaf", "lisp", "livecodeserver", "livescript", "mel", "mipsasm", "matlab", "maxima", "mercury", "axapta", "routeros", "mizar", "mojolicious", "monkey", "moonscript", "n1ql", "nsis", "nestedtext", "nginx", "nim", "nix", "node-repl", "ocaml", "openscad", "ruleslanguage", "oxygene", "pf", "parser3", "pony", "pgsql", "powershell", "processing", "prolog", "protobuf", "puppet", "purebasic", "profile", "q", "qml", "reasonml", "rib", "rsl", "roboconf", "sas", "sml", "sqf", "step21", "scala", "scheme", "scilab", "smali", "smalltalk", "stan", "stata", "stylus", "subunit", "tp", "taggerscript", "tcl", "tap", "thrift", "twig", "vbscript", "vbscript-html", "vhdl", "vala", "verilog", "vim", "wasm", "mathematica", "wren", "xl", "xquery", "zephir", "crmsh", "dsconfig", "graphql",
|
|
||||||
// third
|
|
||||||
"yul", "solidity", "abap", "hlsl"
|
|
||||||
];
|
|
||||||
|
|
||||||
// Google Analytics 事件
|
// Google Analytics 事件
|
||||||
public static readonly ANALYTICS_EVT_ON_GET_CONFIG: string = "siyuan.onGetConfig";
|
public static readonly ANALYTICS_EVT_ON_GET_CONFIG: string = "siyuan.onGetConfig";
|
||||||
|
@ -6,7 +6,6 @@ export const previewImage = (src: string) => {
|
|||||||
addScript(`${Constants.PROTYLE_CDN}/js/viewerjs/viewer.js?v=1.10.4`, "protyleViewerScript").then(() => {
|
addScript(`${Constants.PROTYLE_CDN}/js/viewerjs/viewer.js?v=1.10.4`, "protyleViewerScript").then(() => {
|
||||||
const imagesElement = document.createElement("ul");
|
const imagesElement = document.createElement("ul");
|
||||||
imagesElement.innerHTML = `<li><img src="${src}"></li>`;
|
imagesElement.innerHTML = `<li><img src="${src}"></li>`;
|
||||||
// @ts-ignore
|
|
||||||
window.siyuan.viewer = new Viewer(imagesElement, {
|
window.siyuan.viewer = new Viewer(imagesElement, {
|
||||||
title: [1, (image: HTMLImageElement, imageData: IObject) => {
|
title: [1, (image: HTMLImageElement, imageData: IObject) => {
|
||||||
let name = image.alt;
|
let name = image.alt;
|
||||||
@ -57,8 +56,7 @@ export const previewDocImage = (src: string, id: string) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
imagesElement.innerHTML = html;
|
imagesElement.innerHTML = html;
|
||||||
// @ts-ignore
|
window.siyuan.viewer = new Viewer(imagesElement, {
|
||||||
window.siyuan.viewer = new window.Viewer(imagesElement, {
|
|
||||||
title: [1, (image: HTMLImageElement, imageData: IObject) => {
|
title: [1, (image: HTMLImageElement, imageData: IObject) => {
|
||||||
let name = image.alt;
|
let name = image.alt;
|
||||||
if (!name) {
|
if (!name) {
|
||||||
|
@ -28,7 +28,7 @@ export const graphvizRender = (element: Element, cdn = Constants.PROTYLE_CDN) =>
|
|||||||
const url = window.URL || window.webkitURL;
|
const url = window.URL || window.webkitURL;
|
||||||
const blobUrl = url.createObjectURL(blob);
|
const blobUrl = url.createObjectURL(blob);
|
||||||
const worker = new Worker(blobUrl);
|
const worker = new Worker(blobUrl);
|
||||||
new window.Viz({worker})
|
new Viz({worker})
|
||||||
.renderSVGElement(Lute.UnEscapeHTMLStr(e.getAttribute("data-content"))).then((result: HTMLElement) => {
|
.renderSVGElement(Lute.UnEscapeHTMLStr(e.getAttribute("data-content"))).then((result: HTMLElement) => {
|
||||||
renderElement.innerHTML = result.outerHTML;
|
renderElement.innerHTML = result.outerHTML;
|
||||||
renderElement.classList.remove("ft__error");
|
renderElement.classList.remove("ft__error");
|
||||||
|
@ -1146,14 +1146,11 @@ export class Toolbar {
|
|||||||
const id = nodeElement.getAttribute("data-node-id");
|
const id = nodeElement.getAttribute("data-node-id");
|
||||||
let oldHtml = nodeElement.outerHTML;
|
let oldHtml = nodeElement.outerHTML;
|
||||||
|
|
||||||
const languages = Array.from(new Set<string>([
|
let html = `<div class="b3-list-item b3-list-item--focus">${window.siyuan.languages.clear}</div>`;
|
||||||
...Constants.EXTRA_CODE_LANGUAGES,
|
const hljsLanguages = Constants.ALIAS_CODE_LANGUAGES.concat(window.hljs?.listLanguages() ?? []).sort();
|
||||||
...(window.hljs?.listLanguages() ?? []),
|
hljsLanguages.forEach((item) => {
|
||||||
])).sort();
|
html += `<div class="b3-list-item">${item}</div>`;
|
||||||
const html = [
|
});
|
||||||
`<div class="b3-list-item b3-list-item--focus">${window.siyuan.languages.clear}</div>`,
|
|
||||||
...languages.map(item => `<div class="b3-list-item">${item}</div>`),
|
|
||||||
].join("\n");
|
|
||||||
|
|
||||||
this.subElement.style.width = "";
|
this.subElement.style.width = "";
|
||||||
this.subElement.style.padding = "";
|
this.subElement.style.padding = "";
|
||||||
@ -1196,7 +1193,7 @@ export class Toolbar {
|
|||||||
});
|
});
|
||||||
inputElement.addEventListener("input", (event) => {
|
inputElement.addEventListener("input", (event) => {
|
||||||
const lowerCaseValue = inputElement.value.toLowerCase();
|
const lowerCaseValue = inputElement.value.toLowerCase();
|
||||||
const matchLanguages = languages.filter(item => item.includes(lowerCaseValue));
|
const matchLanguages = hljsLanguages.filter(item => item.includes(lowerCaseValue));
|
||||||
let html = "";
|
let html = "";
|
||||||
// sort
|
// sort
|
||||||
let matchInput = false;
|
let matchInput = false;
|
||||||
|
52
app/src/types/index.d.ts
vendored
52
app/src/types/index.d.ts
vendored
@ -81,17 +81,45 @@ type TAVFilterOperator =
|
|||||||
declare module "blueimp-md5"
|
declare module "blueimp-md5"
|
||||||
|
|
||||||
interface Window {
|
interface Window {
|
||||||
ABCJS?: IABCJS
|
echarts: {
|
||||||
Viewer?: Function
|
init(element: HTMLElement, theme?: string, options?: { width: number }): {
|
||||||
Viz?: IViz
|
setOption(option: any): void;
|
||||||
echarts?: IECharts
|
getZr(): any;
|
||||||
hljs?: IHLJS
|
on(name: string, event: (e: any) => void): any;
|
||||||
katex?: IKaTeX
|
containPixel(name: string, position: number[]): any;
|
||||||
mermaid?: IMermaid
|
resize(): void;
|
||||||
plantumlEncoder?: IPlantumlEncoder
|
};
|
||||||
|
dispose(element: Element): void;
|
||||||
|
getInstanceById(id: string): { resize: () => void };
|
||||||
|
}
|
||||||
|
ABCJS: {
|
||||||
|
renderAbc(element: Element, text: string, options: { responsive: string }): void;
|
||||||
|
}
|
||||||
|
hljs: {
|
||||||
|
listLanguages(): string[];
|
||||||
|
highlight(text: string, options: { language?: string, ignoreIllegals: boolean }): { value: string };
|
||||||
|
getLanguage(text: string): { name: string };
|
||||||
|
};
|
||||||
|
katex: {
|
||||||
|
renderToString(math: string, option: {
|
||||||
|
displayMode: boolean;
|
||||||
|
output: string;
|
||||||
|
macros: IObject;
|
||||||
|
trust: boolean;
|
||||||
|
strict: (errorCode: string) => "ignore" | "warn";
|
||||||
|
}): string;
|
||||||
|
}
|
||||||
|
mermaid: {
|
||||||
|
initialize(options: any): void,
|
||||||
|
init(options: any, element: Element): void
|
||||||
|
};
|
||||||
|
plantumlEncoder: {
|
||||||
|
encode(options: string): string,
|
||||||
|
};
|
||||||
pdfjsLib: any
|
pdfjsLib: any
|
||||||
|
|
||||||
dataLayer: any[]
|
dataLayer: any[]
|
||||||
|
|
||||||
siyuan: ISiyuan
|
siyuan: ISiyuan
|
||||||
webkit: any
|
webkit: any
|
||||||
html2canvas: (element: Element, opitons: {
|
html2canvas: (element: Element, opitons: {
|
||||||
@ -353,11 +381,7 @@ interface ISiyuan {
|
|||||||
bookmarkLabel?: string[]
|
bookmarkLabel?: string[]
|
||||||
blockPanels: import("../block/Panel").BlockPanel[],
|
blockPanels: import("../block/Panel").BlockPanel[],
|
||||||
dialogs: import("../dialog").Dialog[],
|
dialogs: import("../dialog").Dialog[],
|
||||||
viewer?: {
|
viewer?: Viewer
|
||||||
destroyed: boolean,
|
|
||||||
show: () => void,
|
|
||||||
destroy: () => void,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IScrollAttr {
|
interface IScrollAttr {
|
||||||
|
88
app/src/types/protyle.d.ts
vendored
88
app/src/types/protyle.d.ts
vendored
@ -1,55 +1,3 @@
|
|||||||
interface IABCJS {
|
|
||||||
renderAbc(element: Element, text: string, options: { responsive: string }): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface IViz {
|
|
||||||
new(worker: { worker: Worker }): IViz;
|
|
||||||
renderSVGElement: (code: string) => Promise<any>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface IEChartsInstance {
|
|
||||||
setOption(option: any): void;
|
|
||||||
|
|
||||||
getZr(): any;
|
|
||||||
|
|
||||||
on(name: string, event: (e: any) => void): any;
|
|
||||||
|
|
||||||
containPixel(name: string, position: number[]): any;
|
|
||||||
|
|
||||||
resize(): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface IECharts {
|
|
||||||
init(element: HTMLElement, theme?: string, options?: { width: number }): IEChartsInstance;
|
|
||||||
dispose(element: Element): void;
|
|
||||||
getInstanceById(id: string): { resize: () => void };
|
|
||||||
}
|
|
||||||
|
|
||||||
interface IHLJS {
|
|
||||||
highlight(text: string, options: { language?: string, ignoreIllegals: boolean }): { value: string };
|
|
||||||
getLanguage(text: string): { name: string };
|
|
||||||
listLanguages(): string[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface IKaTeX {
|
|
||||||
renderToString(math: string, option: {
|
|
||||||
displayMode: boolean;
|
|
||||||
output: string;
|
|
||||||
macros: IObject;
|
|
||||||
trust: boolean;
|
|
||||||
strict: (errorCode: string) => "ignore" | "warn";
|
|
||||||
}): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface IMermaid {
|
|
||||||
initialize(options: any): void;
|
|
||||||
init(options: any, element: Element): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface IPlantumlEncoder {
|
|
||||||
encode(options: string): string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ILuteNode {
|
interface ILuteNode {
|
||||||
TokensStr: () => string;
|
TokensStr: () => string;
|
||||||
__internal_object__: {
|
__internal_object__: {
|
||||||
@ -149,6 +97,42 @@ interface ILuteOptions extends IMarkdownConfig {
|
|||||||
lazyLoadImage?: string;
|
lazyLoadImage?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare class Viz {
|
||||||
|
constructor(worker: { worker: Worker });
|
||||||
|
|
||||||
|
renderSVGElement: (code: string) => Promise<any>;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare class Viewer {
|
||||||
|
public destroyed: boolean;
|
||||||
|
|
||||||
|
constructor(element: Element, options: {
|
||||||
|
title: [number, (image: HTMLImageElement, imageData: IObject) => string],
|
||||||
|
button: boolean,
|
||||||
|
initialViewIndex?: number,
|
||||||
|
transition: boolean,
|
||||||
|
hidden: () => void,
|
||||||
|
toolbar: {
|
||||||
|
zoomIn: boolean,
|
||||||
|
zoomOut: boolean,
|
||||||
|
oneToOne: boolean,
|
||||||
|
reset: boolean,
|
||||||
|
prev: boolean,
|
||||||
|
play: boolean,
|
||||||
|
next: boolean,
|
||||||
|
rotateLeft: boolean,
|
||||||
|
rotateRight: boolean,
|
||||||
|
flipHorizontal: boolean,
|
||||||
|
flipVertical: boolean,
|
||||||
|
close: () => void
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
public destroy(): void
|
||||||
|
|
||||||
|
public show(): void
|
||||||
|
}
|
||||||
|
|
||||||
declare class Lute {
|
declare class Lute {
|
||||||
public static WalkStop: number;
|
public static WalkStop: number;
|
||||||
public static WalkSkipChildren: number;
|
public static WalkSkipChildren: number;
|
||||||
|
Loading…
Reference in New Issue
Block a user