(latex) add latex implementation for markdown

This commit is contained in:
Julien Calixte
2023-07-16 10:55:02 +02:00
parent 751efc58ac
commit 57c9808412
5 changed files with 30 additions and 0 deletions

View File

@@ -23,6 +23,7 @@
"markdown-it-block-embed": "^0.0.3", "markdown-it-block-embed": "^0.0.3",
"markdown-it-checkbox": "^1.1.0", "markdown-it-checkbox": "^1.1.0",
"markdown-it-footnote": "^3.0.3", "markdown-it-footnote": "^3.0.3",
"markdown-it-latex": "^0.2.0",
"markdown-it-svg-code-copy": "^1.0.0", "markdown-it-svg-code-copy": "^1.0.0",
"nanoid": "^4.0.2", "nanoid": "^4.0.2",
"notyf": "^3.10.0", "notyf": "^3.10.0",

25
pnpm-lock.yaml generated
View File

@@ -41,6 +41,9 @@ dependencies:
markdown-it-footnote: markdown-it-footnote:
specifier: ^3.0.3 specifier: ^3.0.3
version: 3.0.3 version: 3.0.3
markdown-it-latex:
specifier: ^0.2.0
version: 0.2.0
markdown-it-svg-code-copy: markdown-it-svg-code-copy:
specifier: ^1.0.0 specifier: ^1.0.0
version: 1.0.0 version: 1.0.0
@@ -2718,6 +2721,10 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dev: true dev: true
/asciimath-to-latex@0.3.2:
resolution: {integrity: sha512-+80CDzm6nXdtsYwUdxBOLo7FA6ZO5CfRyYHgqLpUZgavPYqodXHamOQuLZJksV+4CUteJs1h7cBaF63d2qa97Q==}
dev: false
/assertion-error@1.1.0: /assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true dev: true
@@ -4115,6 +4122,13 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true dev: true
/katex@0.9.0:
resolution: {integrity: sha512-lp3x90LT1tDZBW2tjLheJ98wmRMRjUHwk4QpaswT9bhqoQZ+XA4cPcjcQBxgOQNwaOSt6ZeL/a6GKQ1of3LFxQ==}
hasBin: true
dependencies:
match-at: 0.1.1
dev: false
/leven@3.1.0: /leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'} engines: {node: '>=6'}
@@ -4208,6 +4222,13 @@ packages:
resolution: {integrity: sha512-YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==} resolution: {integrity: sha512-YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==}
dev: false dev: false
/markdown-it-latex@0.2.0:
resolution: {integrity: sha512-vCaS6Dws9faA8lZel7Slfa1IYEnbYOjHzian/tDBulONBS+f9vRkFfQ4S0eFnTGtDTTXqE7zAnoezkv18b9IIA==}
dependencies:
asciimath-to-latex: 0.3.2
katex: 0.9.0
dev: false
/markdown-it-svg-code-copy@1.0.0: /markdown-it-svg-code-copy@1.0.0:
resolution: {integrity: sha512-lrYKVi2k0txtnecCWzddeJ+mJWbhy6AkrXN0Fe5kL+N2Ergx9XMurJSb8JNoqdssdfNPx0koLG+hVFzL2On2wg==} resolution: {integrity: sha512-lrYKVi2k0txtnecCWzddeJ+mJWbhy6AkrXN0Fe5kL+N2Ergx9XMurJSb8JNoqdssdfNPx0koLG+hVFzL2On2wg==}
dependencies: dependencies:
@@ -4225,6 +4246,10 @@ packages:
uc.micro: 1.0.6 uc.micro: 1.0.6
dev: false dev: false
/match-at@0.1.1:
resolution: {integrity: sha512-h4Yd392z9mST+dzc+yjuybOGFNOZjmXIPKWjxBd1Bb23r4SmDOsk2NYCU2BMUBGbSpZqwVsZYNq26QS3xfaT3Q==}
dev: false
/md5-hex@3.0.1: /md5-hex@3.0.1:
resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==}
engines: {node: '>=8'} engines: {node: '>=8'}

View File

@@ -6,6 +6,7 @@ import MarkdownIt from 'markdown-it'
import blockEmbedPlugin from 'markdown-it-block-embed' import blockEmbedPlugin from 'markdown-it-block-embed'
import markdownItCheckbox from 'markdown-it-checkbox' import markdownItCheckbox from 'markdown-it-checkbox'
import markdownItFootnote from 'markdown-it-footnote' import markdownItFootnote from 'markdown-it-footnote'
import markdownItLatex from 'markdown-it-latex'
import markdownItSvgCodeCopy from 'markdown-it-svg-code-copy' import markdownItSvgCodeCopy from 'markdown-it-svg-code-copy'
const md = new MarkdownIt({ const md = new MarkdownIt({
@@ -38,6 +39,7 @@ const md = new MarkdownIt({
buttonClass: 'button is-light' buttonClass: 'button is-light'
}) })
.use(markdownItFootnote) .use(markdownItFootnote)
.use(markdownItLatex)
export const useMarkdown = (defaultPrefix?: string) => { export const useMarkdown = (defaultPrefix?: string) => {
return { return {

View File

@@ -1,5 +1,6 @@
import { messages } from '@/locales/message' import { messages } from '@/locales/message'
import { router } from '@/router/router' import { router } from '@/router/router'
import 'markdown-it-latex/dist/index.css'
import 'notyf/notyf.min.css' import 'notyf/notyf.min.css'
import { createPinia } from 'pinia' import { createPinia } from 'pinia'
import { createApp } from 'vue' import { createApp } from 'vue'

1
src/shims-vue.d.ts vendored
View File

@@ -9,3 +9,4 @@ declare module 'markdown-it-block-embed'
declare module 'markdown-it-checkbox' declare module 'markdown-it-checkbox'
declare module 'markdown-it-footnote' declare module 'markdown-it-footnote'
declare module 'markdown-it-regexp' declare module 'markdown-it-regexp'
declare module 'markdown-it-latex'