remark-slate
Advanced tools
Comparing version 0.2.0 to 0.3.0-beta.1
73
index.js
@@ -1,2 +0,2 @@ | ||
var transform = require('./transform'); | ||
var extend = require('xtend'); | ||
@@ -10,1 +10,72 @@ module.exports = plugin; | ||
} | ||
module.exports.transform = transform; | ||
function transform(node) { | ||
var children = [{ text: '' }]; | ||
if (Array.isArray(node.children) && node.children.length > 0) { | ||
children = node.children.map(function (c) { | ||
return transform(extend(c, { ordered: node.ordered || false })); | ||
}); | ||
} | ||
switch (node.type) { | ||
case 'heading': | ||
return { | ||
type: depthToHeading[node.depth], | ||
children: children, | ||
}; | ||
case 'list': | ||
return { | ||
type: node.ordered ? 'numbered-list' : 'bulleted-list', | ||
children: children, | ||
}; | ||
case 'listItem': | ||
return { | ||
type: 'list-item', | ||
children: children, | ||
}; | ||
case 'emphasis': | ||
return extend(forceLeafNode(children), { italic: true }); | ||
case 'strong': | ||
return extend(forceLeafNode(children), { bold: true }); | ||
case 'delete': | ||
return extend(forceLeafNode(children), { strikeThrough: true }); | ||
case 'paragraph': | ||
return { | ||
type: node.type, | ||
children: children, | ||
}; | ||
case 'link': | ||
return { | ||
type: node.type, | ||
link: node.url, | ||
children: children, | ||
}; | ||
case 'blockquote': | ||
return { | ||
type: 'block-quote', | ||
children: children, | ||
}; | ||
case 'text': | ||
default: | ||
return { | ||
text: node.value || '', | ||
}; | ||
} | ||
} | ||
function forceLeafNode(children) { | ||
return { text: children[0].text }; | ||
} | ||
var depthToHeading = { | ||
1: 'heading-one', | ||
2: 'heading-two', | ||
3: 'heading-three', | ||
4: 'heading-four', | ||
5: 'heading-five', | ||
6: 'heading-six', | ||
}; |
{ | ||
"name": "remark-slate", | ||
"version": "0.2.0", | ||
"version": "0.3.0-beta.1", | ||
"description": "remark plugin to compile Markdown to a slate compatible object", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
8317
71
0