mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-26 11:43:59 -05:00
Update dependency markdown-it-deflist to v2.1.0 (#561)
* Update dependency markdown-it-deflist to v2.1.0 * Include end line number into key Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Update src/components/markdown-renderer/utils/html-react-transformer.tsx Co-authored-by: Erik Michelson <github@erik.michelson.eu> Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
This commit is contained in:
parent
8842fff06f
commit
d57f6577a5
3 changed files with 19 additions and 17 deletions
|
@ -61,7 +61,7 @@
|
||||||
"markdown-it-abbr": "1.0.4",
|
"markdown-it-abbr": "1.0.4",
|
||||||
"markdown-it-anchor": "5.3.0",
|
"markdown-it-anchor": "5.3.0",
|
||||||
"markdown-it-container": "3.0.0",
|
"markdown-it-container": "3.0.0",
|
||||||
"markdown-it-deflist": "2.0.3",
|
"markdown-it-deflist": "2.1.0",
|
||||||
"markdown-it-emoji": "1.4.0",
|
"markdown-it-emoji": "1.4.0",
|
||||||
"markdown-it-footnote": "3.0.2",
|
"markdown-it-footnote": "3.0.2",
|
||||||
"markdown-it-front-matter": "0.2.1",
|
"markdown-it-front-matter": "0.2.1",
|
||||||
|
|
|
@ -12,14 +12,14 @@ export interface TextDifferenceResult {
|
||||||
lastUsedLineId: number
|
lastUsedLineId: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export const calculateKeyFromLineMarker = (node: DomElement, lineKeys?: LineKeys[]): number|undefined => {
|
export const calculateKeyFromLineMarker = (node: DomElement, lineKeys?: LineKeys[]): string|undefined => {
|
||||||
if (!node.attribs || lineKeys === undefined) {
|
if (!node.attribs || lineKeys === undefined) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const key = node.attribs['data-key']
|
const key = node.attribs['data-key']
|
||||||
if (key) {
|
if (key) {
|
||||||
return Number(key)
|
return key
|
||||||
}
|
}
|
||||||
|
|
||||||
const lineMarker = node.prev
|
const lineMarker = node.prev
|
||||||
|
@ -27,40 +27,42 @@ export const calculateKeyFromLineMarker = (node: DomElement, lineKeys?: LineKeys
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const lineInMarkdown = lineMarker.attribs['data-start-line']
|
const startLineInMarkdown = lineMarker.attribs['data-start-line']
|
||||||
if (lineInMarkdown === undefined) {
|
const endLineInMarkdown = lineMarker.attribs['data-end-line']
|
||||||
|
if (startLineInMarkdown === undefined || endLineInMarkdown === undefined) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const line = Number(lineInMarkdown)
|
const startLine = Number(startLineInMarkdown)
|
||||||
if (lineKeys[line] === undefined) {
|
const endLine = Number(endLineInMarkdown)
|
||||||
|
if (lineKeys[startLine] === undefined || lineKeys[endLine] === undefined) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
return lineKeys[line].id
|
return `${lineKeys[startLine].id}_${lineKeys[endLine].id}`
|
||||||
}
|
}
|
||||||
|
|
||||||
export const findNodeReplacement = (node: DomElement, index: number, allReplacers: ComponentReplacer[], subNodeTransform: SubNodeTransform): ReactElement|null|undefined => {
|
export const findNodeReplacement = (node: DomElement, key: string, allReplacers: ComponentReplacer[], subNodeTransform: SubNodeTransform): ReactElement|null|undefined => {
|
||||||
return allReplacers
|
return allReplacers
|
||||||
.map((componentReplacer) => componentReplacer.getReplacement(node, subNodeTransform))
|
.map((componentReplacer) => componentReplacer.getReplacement(node, subNodeTransform))
|
||||||
.find((replacement) => replacement !== undefined)
|
.find((replacement) => replacement !== undefined)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const renderNativeNode = (node: DomElement, key: number, transform: Transform): ReactElement => {
|
export const renderNativeNode = (node: DomElement, key: string, transform: Transform): ReactElement => {
|
||||||
if (node.attribs === undefined) {
|
if (node.attribs === undefined) {
|
||||||
node.attribs = {}
|
node.attribs = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete node.attribs['data-key']
|
delete node.attribs['data-key']
|
||||||
return convertNodeToElement(node, key, transform)
|
return convertNodeToElement(node, key as unknown as number, transform)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const buildTransformer = (lineKeys: (LineKeys[] | undefined), allReplacers: ComponentReplacer[]):Transform => {
|
export const buildTransformer = (lineKeys: (LineKeys[] | undefined), allReplacers: ComponentReplacer[]):Transform => {
|
||||||
const transform: Transform = (node, index) => {
|
const transform: Transform = (node, index) => {
|
||||||
const nativeRenderer = (subNode: DomElement, subKey: number) => renderNativeNode(subNode, subKey, transform)
|
const nativeRenderer = (subNode: DomElement, subKey: string) => renderNativeNode(subNode, subKey, transform)
|
||||||
const subNodeTransform:SubNodeTransform = (subNode, subIndex) => transform(subNode, subIndex, transform)
|
const subNodeTransform:SubNodeTransform = (subNode, subIndex) => transform(subNode, subIndex, transform)
|
||||||
|
|
||||||
const key = calculateKeyFromLineMarker(node, lineKeys) ?? -index
|
const key = calculateKeyFromLineMarker(node, lineKeys) ?? (-index).toString()
|
||||||
const tryReplacement = findNodeReplacement(node, key, allReplacers, subNodeTransform)
|
const tryReplacement = findNodeReplacement(node, key, allReplacers, subNodeTransform)
|
||||||
if (tryReplacement === null) {
|
if (tryReplacement === null) {
|
||||||
return null
|
return null
|
||||||
|
|
|
@ -8714,10 +8714,10 @@ markdown-it-container@3.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b"
|
resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b"
|
||||||
integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==
|
integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==
|
||||||
|
|
||||||
markdown-it-deflist@2.0.3:
|
markdown-it-deflist@2.1.0:
|
||||||
version "2.0.3"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/markdown-it-deflist/-/markdown-it-deflist-2.0.3.tgz#5727db04184d3cb2bc6ee4a9641e3a1091d5fd6f"
|
resolved "https://registry.yarnpkg.com/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz#50d7a56b9544cd81252f7623bd785e28a8dcef5c"
|
||||||
integrity sha512-/BNZ8ksW42bflm1qQLnRI09oqU2847Z7MVavrR0MORyKLtiUYOMpwtlAfMSZAQU9UCvaUZMpgVAqoS3vpToJxw==
|
integrity sha512-3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==
|
||||||
|
|
||||||
markdown-it-emoji@1.4.0:
|
markdown-it-emoji@1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
|
|
Loading…
Reference in a new issue