UNPKG

el-beeswarm

Version:

<div style="display: flex; padding: 1rem; flex-direction: column; align-items: center; justify-content: center; height: 100vh; text-align: center; display: flex;

54 lines (42 loc) 1.11 kB
'use strict' var markdownLineEnding = require('../character/markdown-line-ending.js') var markdownSpace = require('../character/markdown-space.js') var factorySpace = require('./factory-space.js') var thematicBreak = { name: 'thematicBreak', tokenize: tokenizeThematicBreak } function tokenizeThematicBreak(effects, ok, nok) { var size = 0 var marker return start function start(code) { effects.enter('thematicBreak') marker = code return atBreak(code) } function atBreak(code) { if (code === marker) { effects.enter('thematicBreakSequence') return sequence(code) } if (markdownSpace(code)) { return factorySpace(effects, atBreak, 'whitespace')(code) } if (size < 3 || (code !== null && !markdownLineEnding(code))) { return nok(code) } effects.exit('thematicBreak') return ok(code) } function sequence(code) { if (code === marker) { effects.consume(code) size++ return sequence } effects.exit('thematicBreakSequence') return atBreak(code) } } module.exports = thematicBreak