blob: 9d8f5527c3a2754aa1ba97c0fa896fa544f08167 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
var _ = require('lodash');
var kramed = require('kramed');
var textRenderer = require('kramed-text-renderer');
function extractFirstNode(nodes, nType) {
return _.chain(nodes)
.filter(function(node) {
return node.type == nType;
})
.pluck("text")
.first()
.value();
}
function parseReadme(src) {
var nodes, title, description;
var renderer = textRenderer();
// Parse content
nodes = kramed.lexer(src);
title = extractFirstNode(nodes, "heading") || '';
description = extractFirstNode(nodes, "paragraph") || '';
var convert = _.compose(
function(text) {
return _.unescape(text.replace(/(\r\n|\n|\r)/gm, ""));
},
function(text) {
return kramed.parse(text, _.extend({}, kramed.defaults, {
renderer: renderer
}));
}
);
return {
title: convert(title),
description: convert(description)
};
}
// Exports
module.exports = parseReadme;
|