mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 09:46:22 +00:00
no more line anchors
This commit is contained in:
@@ -141,11 +141,11 @@ export default class MarkdownPreview extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
scrollTo (targetRow) {
|
scrollTo (targetRow) {
|
||||||
let lineAnchors = this.getWindow().document.querySelectorAll('a.lineAnchor')
|
let lineAnchors = this.getWindow().document.querySelectorAll('[data-line]')
|
||||||
|
|
||||||
for (let index = 0; index < lineAnchors.length; index++) {
|
for (let index = 0; index < lineAnchors.length; index++) {
|
||||||
let lineAnchor = lineAnchors[index]
|
let lineAnchor = lineAnchors[index]
|
||||||
let row = parseInt(lineAnchor.getAttribute('data-key'))
|
let row = parseInt(lineAnchor.getAttribute('data-line'))
|
||||||
if (row > targetRow) {
|
if (row > targetRow) {
|
||||||
let targetAnchor = lineAnchors[index - 1]
|
let targetAnchor = lineAnchors[index - 1]
|
||||||
targetAnchor != null && this.getWindow().scrollTo(0, targetAnchor.offsetTop)
|
targetAnchor != null && this.getWindow().scrollTo(0, targetAnchor.offsetTop)
|
||||||
|
|||||||
@@ -102,13 +102,6 @@ a
|
|||||||
background-color alpha(#FFC95C, 0.3)
|
background-color alpha(#FFC95C, 0.3)
|
||||||
&:visited
|
&:visited
|
||||||
color brandColor
|
color brandColor
|
||||||
&.lineAnchor
|
|
||||||
padding 0
|
|
||||||
margin 0
|
|
||||||
display inline-block
|
|
||||||
font-size 0
|
|
||||||
height 0
|
|
||||||
width 0
|
|
||||||
hr
|
hr
|
||||||
border-top none
|
border-top none
|
||||||
border-bottom solid 1px borderColor
|
border-bottom solid 1px borderColor
|
||||||
@@ -148,9 +141,6 @@ h6
|
|||||||
line-height 1.4em
|
line-height 1.4em
|
||||||
margin 1em 0 1em
|
margin 1em 0 1em
|
||||||
color #777
|
color #777
|
||||||
|
|
||||||
*:not(a.lineAnchor) + p, *:not(a.lineAnchor) + blockquote, *:not(a.lineAnchor) + ul, *:not(a.lineAnchor) + ol, *:not(a.lineAnchor) + pre
|
|
||||||
margin-top 1em
|
|
||||||
p
|
p
|
||||||
line-height 1.6em
|
line-height 1.6em
|
||||||
margin 0 0 1em
|
margin 0 0 1em
|
||||||
@@ -196,8 +186,6 @@ code
|
|||||||
font-size 0.85em
|
font-size 0.85em
|
||||||
text-decoration none
|
text-decoration none
|
||||||
margin-right 2px
|
margin-right 2px
|
||||||
*:not(a.lineAnchor) + code
|
|
||||||
margin-left 2px
|
|
||||||
pre
|
pre
|
||||||
padding 0.5em !important
|
padding 0.5em !important
|
||||||
border solid 1px alpha(borderColor, 0.5)
|
border solid 1px alpha(borderColor, 0.5)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import markdownit from 'markdown-it'
|
|||||||
import emoji from 'markdown-it-emoji'
|
import emoji from 'markdown-it-emoji'
|
||||||
import math from '@rokt33r/markdown-it-math'
|
import math from '@rokt33r/markdown-it-math'
|
||||||
import hljs from 'highlight.js'
|
import hljs from 'highlight.js'
|
||||||
|
import _ from 'lodash'
|
||||||
|
|
||||||
const katex = window.katex
|
const katex = window.katex
|
||||||
|
|
||||||
@@ -61,16 +62,24 @@ md.use(math, {
|
|||||||
})
|
})
|
||||||
md.use(require('markdown-it-footnote'))
|
md.use(require('markdown-it-footnote'))
|
||||||
|
|
||||||
|
let originalRender = md.renderer.render
|
||||||
|
md.renderer.render = function render (tokens, options, env) {
|
||||||
|
tokens.forEach((token) => {
|
||||||
|
switch (token.type) {
|
||||||
|
case 'heading_open':
|
||||||
|
case 'paragraph_open':
|
||||||
|
case 'blockquote_open':
|
||||||
|
case 'table_open':
|
||||||
|
token.attrPush(['data-line', token.map[0]])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
let result = originalRender.call(md.renderer, tokens, options, env)
|
||||||
|
return result
|
||||||
|
}
|
||||||
window.md = md
|
window.md = md
|
||||||
|
|
||||||
export default function markdown (content) {
|
export default function markdown (content) {
|
||||||
if (content == null) content = ''
|
if (!_.isString(content)) content = ''
|
||||||
content = content.toString()
|
|
||||||
.split('\n')
|
|
||||||
.map((line, index) => {
|
|
||||||
if (line.trim().length === 0) return ''
|
|
||||||
return line + '<a class=\'lineAnchor\' data-key=\'' + (index + 1) + '\'></a>'
|
|
||||||
})
|
|
||||||
.join('\n')
|
|
||||||
return md.render(content)
|
return md.render(content)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user