Skip to content

Commit

Permalink
added findMarkSeq into rules/util
Browse files Browse the repository at this point in the history
  • Loading branch information
Jinjiang committed Feb 8, 2020
1 parent 752babe commit fd0cc5e
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
19 changes: 3 additions & 16 deletions src/rules/mark-hyper.js
Expand Up @@ -5,26 +5,13 @@ const {
findTokenBefore,
findTokenAfter,
findContentTokenBefore,
findContentTokenAfter
findContentTokenAfter,
findMarkSeq
} = require('./util')

const findMarkSeq = (group, token, seq) => {
const tokenBefore = findTokenBefore(group, token)
const tokenAfter = findTokenAfter(group, token)
if (seq.indexOf(tokenBefore) < 0 && tokenBefore.type === 'mark-hyper') {
seq.unshift(tokenBefore)
findMarkSeq(group, tokenBefore, seq)
}
if (seq.indexOf(tokenAfter) < 0 && tokenAfter.type === 'mark-hyper') {
seq.push(tokenAfter)
findMarkSeq(group, tokenAfter, seq)
}
}

module.exports = (token, index, group, matched, marks) => {
if (token.type === 'mark-hyper') {
const markSeq = [token]
findMarkSeq(group, token, markSeq)
const markSeq = findMarkSeq(group, token)

const hasSpace = markSeq.some(markToken => markToken.spaceAfter) || (findTokenBefore(group, markSeq[0]) || {}).spaceAfter

Expand Down
20 changes: 19 additions & 1 deletion src/rules/util.js
Expand Up @@ -44,10 +44,28 @@ const findContentTokenAfter = (group, token) => {
return findContentTokenBefore(group, group[index + 1])
}
}
const spreadMarkSeq = (group, token, seq) => {
const tokenBefore = findTokenBefore(group, token)
const tokenAfter = findTokenAfter(group, token)
if (seq.indexOf(tokenBefore) < 0 && tokenBefore.type === 'mark-hyper') {
seq.unshift(tokenBefore)
findMarkSeq(group, tokenBefore, seq)
}
if (seq.indexOf(tokenAfter) < 0 && tokenAfter.type === 'mark-hyper') {
seq.push(tokenAfter)
findMarkSeq(group, tokenAfter, seq)
}
}
const findMarkSeq = (group, token) => {
const seq = [token]
spreadMarkSeq(group, token, seq)
return seq
}

module.exports = {
findTokenBefore,
findTokenAfter,
findContentTokenBefore,
findContentTokenAfter
findContentTokenAfter,
findMarkSeq
}

0 comments on commit fd0cc5e

Please sign in to comment.