mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-30 11:42:26 +08:00
fix(highlightjs): integrate with the rest of the application
This commit is contained in:
parent
5205320d44
commit
51f2b9fc81
@ -121,6 +121,5 @@ export default {
|
|||||||
requireCss,
|
requireCss,
|
||||||
requireLibrary,
|
requireLibrary,
|
||||||
loadHighlightingTheme,
|
loadHighlightingTheme,
|
||||||
KATEX,
|
KATEX
|
||||||
HIGHLIGHT_JS
|
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import library_loader from "./library_loader.js";
|
import { highlight, highlightAuto } from "@triliumnext/highlightjs";
|
||||||
import mime_types from "./mime_types.js";
|
import mime_types from "./mime_types.js";
|
||||||
import options from "./options.js";
|
import options from "./options.js";
|
||||||
|
|
||||||
@ -43,17 +43,13 @@ export async function applySingleBlockSyntaxHighlight($codeBlock: JQuery<HTMLEle
|
|||||||
$codeBlock.parent().toggleClass("hljs");
|
$codeBlock.parent().toggleClass("hljs");
|
||||||
const text = $codeBlock.text();
|
const text = $codeBlock.text();
|
||||||
|
|
||||||
if (!window.hljs) {
|
|
||||||
await library_loader.requireLibrary(library_loader.HIGHLIGHT_JS);
|
|
||||||
}
|
|
||||||
|
|
||||||
let highlightedText = null;
|
let highlightedText = null;
|
||||||
if (normalizedMimeType === mime_types.MIME_TYPE_AUTO) {
|
if (normalizedMimeType === mime_types.MIME_TYPE_AUTO) {
|
||||||
highlightedText = hljs.highlightAuto(text);
|
highlightedText = highlightAuto(text);
|
||||||
} else if (normalizedMimeType) {
|
} else if (normalizedMimeType) {
|
||||||
const language = mime_types.getHighlightJsNameForMime(normalizedMimeType);
|
const language = mime_types.getHighlightJsNameForMime(normalizedMimeType);
|
||||||
if (language) {
|
if (language) {
|
||||||
highlightedText = hljs.highlight(text, { language });
|
highlightedText = highlight(text, { language });
|
||||||
} else {
|
} else {
|
||||||
console.warn(`Unknown mime type: ${normalizedMimeType}.`);
|
console.warn(`Unknown mime type: ${normalizedMimeType}.`);
|
||||||
}
|
}
|
||||||
|
7
apps/client/src/types.d.ts
vendored
7
apps/client/src/types.d.ts
vendored
@ -124,13 +124,6 @@ declare global {
|
|||||||
var __non_webpack_require__: RequireMethod | undefined;
|
var __non_webpack_require__: RequireMethod | undefined;
|
||||||
|
|
||||||
// Libraries
|
// Libraries
|
||||||
// TODO: Replace once library loader is replaced with webpack.
|
|
||||||
var hljs: {
|
|
||||||
highlightAuto(text: string);
|
|
||||||
highlight(text: string, {
|
|
||||||
language: string
|
|
||||||
});
|
|
||||||
};
|
|
||||||
var renderMathInElement: (element: HTMLElement, options: {
|
var renderMathInElement: (element: HTMLElement, options: {
|
||||||
trust: boolean;
|
trust: boolean;
|
||||||
}) => void;
|
}) => void;
|
||||||
|
@ -91,7 +91,7 @@ export default class CodeBlockOptions extends OptionsWidget {
|
|||||||
#setupPreview(shouldEnableSyntaxHighlight: boolean) {
|
#setupPreview(shouldEnableSyntaxHighlight: boolean) {
|
||||||
const text = SAMPLE_CODE;
|
const text = SAMPLE_CODE;
|
||||||
if (shouldEnableSyntaxHighlight) {
|
if (shouldEnableSyntaxHighlight) {
|
||||||
library_loader.requireLibrary(library_loader.HIGHLIGHT_JS).then(() => {
|
import("@triliumnext/highlightjs").then((hljs) => {
|
||||||
const highlightedText = hljs.highlight(text, {
|
const highlightedText = hljs.highlight(text, {
|
||||||
language: SAMPLE_LANGUAGE
|
language: SAMPLE_LANGUAGE
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user