1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 01:36:22 +00:00

improve line anchors placement

This commit is contained in:
Dick Choi
2016-07-26 13:27:59 +09:00
parent 80d16233e7
commit c6eff157de
3 changed files with 12 additions and 15 deletions

View File

@@ -148,7 +148,7 @@ export default class MarkdownPreview extends React.Component {
let row = parseInt(lineAnchor.getAttribute('data-key'))
if (row > targetRow) {
let targetAnchor = lineAnchors[index - 1]
this.getWindow().scrollTo(0, targetAnchor.offsetTop)
targetAnchor != null && this.getWindow().scrollTo(0, targetAnchor.offsetTop)
break
}
}

View File

@@ -105,9 +105,10 @@ a
&.lineAnchor
padding 0
margin 0
display block
display inline-block
font-size 0
height 0
width 0
hr
border-top none
border-bottom solid 1px borderColor

View File

@@ -59,22 +59,18 @@ md.use(math, {
return output
}
})
md.use(require('markdown-it-checkbox'))
md.use(require('markdown-it-footnote'))
let originalRenderToken = md.renderer.renderToken
md.renderer.renderToken = function renderToken (tokens, idx, options) {
let token = tokens[idx]
let result = originalRenderToken.call(md.renderer, tokens, idx, options)
if (token.map != null) {
return result + '<a class=\'lineAnchor\' data-key=\'' + token.map[0] + '\'></a>'
}
return result
}
window.md = md
export default function markdown (content) {
if (content == null) content = ''
return md.render(content.toString())
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)
}