12345678910111213141516171819202122232425262728293031 |
- 'use strict'
-
- var markdownSpace = require('../character/markdown-space.js')
-
- function spaceFactory(effects, ok, type, max) {
- var limit = max ? max - 1 : Infinity
- var size = 0
-
- return start
-
- function start(code) {
- if (markdownSpace(code)) {
- effects.enter(type)
- return prefix(code)
- }
-
- return ok(code)
- }
-
- function prefix(code) {
- if (markdownSpace(code) && size++ < limit) {
- effects.consume(code)
- return prefix
- }
-
- effects.exit(type)
- return ok(code)
- }
- }
-
- module.exports = spaceFactory
|