Transform some structured plain text including Markdown and YAML into JSON, and visa versa. Super useful for archivability and readability. Feature parity with Kirbyโs file structure.
var smarkt = require('smarkt')
var str = smarkt.parse(`
title: Cyber Mysticism
----
tags:
- technopastoral
- ambient
----
text: Art has always been a focusing device, the frame is a focusing device. What Iโm trying to do is eliminate the frame, eliminate all those distractions and put you in direct relationship to the real experience and the real power: your ability to perceive.
`)
var obj = smarkt.stringify({
title: 'Cyber Mysticism',
{ tags: ['technopastoral', 'ambient']},
text: 'Art has always been a focusing device, the frame is a focusing device. What Iโm trying to do is eliminate the frame, eliminate all those distractions and put you in direct relationship to the real experience and the real power: your ability to perceive.'
})
A plain-text file is separated into fields delineated by four dashes.
----
Give the field a name and define itโs value.
title: Cyber Mysticism
The value can also be YAML.
tags:
- technopastoral
- ambient
Plain text input expanded
title: Cyber Mysticism
----
tags:
- technopastoral
- dark-ux
----
design:
desktop:
background: red
navigation: false
mobile:
background: blue
navigation: true
----
text:
Information wants to be free.
JSON output expanded
{
"title": "Cyber Mysticism",
"tags": ["technopastoral", "dark-ux"],
"design": {
"desktop": {
"background": "red",
"navigation": false
},
"mobile": {
"background": "blue",
"navigation": true
}
},
"text": "Information wants to be free."
}
Accepts a single argument which must be type string
. Returns an object
.
Accepts a single argument which must be type object
. Returns a string
.
var stringify = require('smarkt/stringify')
var parse = require('smarkt/parse')
Sometimes itโs handy just to access a single method to reduce bundle size. To do this, simply require the desired method by name.
- Tests
-
.stringify
Remove quotes around YAML array values