Skip to content

Commit 3e0aa1b

Browse files
committed
Move files
1 parent 3c50dda commit 3e0aa1b

File tree

6 files changed

+88
-91
lines changed

6 files changed

+88
-91
lines changed

from-markdown.js

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,40 @@
1-
module.exports = require('./lib/from-markdown')
1+
module.exports = createFromMarkdown
2+
3+
var matters = require('micromark-extension-frontmatter/lib/matters')
4+
5+
function createFromMarkdown(options) {
6+
var settings = matters(options)
7+
var length = settings.length
8+
var index = -1
9+
var enter = {}
10+
var exit = {}
11+
var matter
12+
13+
while (++index < length) {
14+
matter = settings[index]
15+
enter[matter.type] = opener(matter)
16+
exit[matter.type] = close
17+
exit[matter.type + 'Value'] = value
18+
}
19+
20+
return {enter: enter, exit: exit}
21+
}
22+
23+
function opener(matter) {
24+
return open
25+
function open(token) {
26+
this.enter({type: matter.type, value: ''}, token)
27+
this.buffer()
28+
}
29+
}
30+
31+
function close(token) {
32+
var data = this.resume()
33+
// Remove the initial and final eol.
34+
this.exit(token).value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '')
35+
}
36+
37+
function value(token) {
38+
this.config.enter.data.call(this, token)
39+
this.config.exit.data.call(this, token)
40+
}

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
exports.fromMarkdown = require('./lib/from-markdown')
2-
exports.toMarkdown = require('./lib/to-markdown')
1+
exports.fromMarkdown = require('./from-markdown')
2+
exports.toMarkdown = require('./to-markdown')

lib/from-markdown.js

Lines changed: 0 additions & 40 deletions
This file was deleted.

lib/to-markdown.js

Lines changed: 0 additions & 46 deletions
This file was deleted.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
"Titus Wormer <[email protected]> (https://wooorm.com)"
2828
],
2929
"files": [
30-
"lib/",
3130
"from-markdown.js",
3231
"index.js",
3332
"to-markdown.js"

to-markdown.js

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,46 @@
1-
module.exports = require('./lib/to-markdown')
1+
module.exports = createToMarkdown
2+
3+
var matters = require('micromark-extension-frontmatter/lib/matters')
4+
5+
function createToMarkdown(options) {
6+
var unsafe = []
7+
var handlers = {}
8+
var settings = matters(options)
9+
var length = settings.length
10+
var index = -1
11+
var matter
12+
13+
while (++index < length) {
14+
matter = settings[index]
15+
handlers[matter.type] = handler(matter)
16+
unsafe.push({atBreak: true, character: fence(matter, 'open').charAt(0)})
17+
}
18+
19+
return {unsafe: unsafe, handlers: handlers}
20+
}
21+
22+
function handler(matter) {
23+
var open = fence(matter, 'open')
24+
var close = fence(matter, 'close')
25+
26+
return handle
27+
28+
function handle(node) {
29+
return open + (node.value ? '\n' + node.value : '') + '\n' + close
30+
}
31+
}
32+
33+
function fence(matter, prop) {
34+
var marker
35+
36+
if (matter.marker) {
37+
marker = pick(matter.marker, prop)
38+
return marker + marker + marker
39+
}
40+
41+
return pick(matter.fence, prop)
42+
}
43+
44+
function pick(schema, prop) {
45+
return typeof schema === 'string' ? schema : schema[prop]
46+
}

0 commit comments

Comments
 (0)