{"id":17184158,"url":"https://github.com/leuisken/md2json2html","last_synced_at":"2025-04-13T18:02:01.151Z","repository":{"id":57293401,"uuid":"107966383","full_name":"LeuisKen/md2json2html","owner":"LeuisKen","description":"A npm package that transform markdown data to json and html.","archived":false,"fork":false,"pushed_at":"2017-12-18T04:11:47.000Z","size":25,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-21T20:43:41.448Z","etag":null,"topics":["html","json","markdown","transform"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LeuisKen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-23T10:24:23.000Z","updated_at":"2022-07-13T01:31:48.000Z","dependencies_parsed_at":"2022-09-01T08:41:59.455Z","dependency_job_id":null,"html_url":"https://github.com/LeuisKen/md2json2html","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeuisKen%2Fmd2json2html","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeuisKen%2Fmd2json2html/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeuisKen%2Fmd2json2html/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeuisKen%2Fmd2json2html/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LeuisKen","download_url":"https://codeload.github.com/LeuisKen/md2json2html/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240109566,"owners_count":19749171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["html","json","markdown","transform"],"created_at":"2024-10-15T00:42:33.124Z","updated_at":"2025-02-23T21:31:34.919Z","avatar_url":"https://github.com/LeuisKen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# md2json2html\n\n[![NPM version](https://img.shields.io/npm/v/md2json2html.svg?style=flat-square)](https://www.npmjs.org/package/md2json2html)\n[![License](https://img.shields.io/github/license/LeuisKen/md2json2html.svg?style=flat-square)](https://npmjs.org/package/md2json2html)\n\nA npm package that transform markdown data to json and html.\n\n## Usage:\n\n### Install:\n\n```sh\nnpm i md2json2html\n```\n\n### Example:\n\nSee the [test](./test/index.test.js) file.\n\n```js\nconst fs = require('fs');\n\nconst main = require('md2json2html');\nconst markdown2json = main.markdown2json;\nconst json2html = main.json2html;\n\nconst data = fs.readFileSync(__dirname + '/test.md', 'utf8');\n\nconst jsonRes = markdown2json(data);\nconst htmlRes = json2html(jsonRes.content);\n\nconsole.log(JSON.stringify(jsonRes, null, 4));\n\nconsole.log(htmlRes);\n```\n\n## API:\n\n### markdown2json\n\n```js\n/**\n * markdown to json\n *\n * @param {string} markdownData markdown data string\n * @return {Object} json object that contents yaml format meta and markdown-json node\n */\n```\n\nNote: the markdown-json node is defined as following:\n\n```js\nclass Node {\n    constructor(tagName, attr, children) {\n        this.tagName = tagName;\n        this.attr = attr;\n        this.children = children;\n    }\n}\n// example:\n// Node {\n//     tagName: 'ul',\n//     attr: {\n//         // key-value pairs for ul\n//     },\n//     children: Node or Array of Node\n// }\n```\n\nSee also [test.json](./test/test.json).\n\n### json2html\n\n```js\n/**\n * json to html\n *\n * @param {Object} node markdown-json node\n * @param {Array} converters markdown-json node tramsform functions\n * @return {string} html format string\n */\n```\n\n`converters` is an array of function, the function's arguments as follows:\n\n```js\n/**\n * sample converter\n *\n * @param {Object} node markdown-json node\n * @return {Object} transformed markdown-json node, this will pass to next converter\n */\nfunction sampleConverter(node) {\n    // do something here.\n}\n```\n\nYou can find a sample converter in [test](./test/index.test.js) file. The converter using prismjs highlight the code area of node.\n\nThanks to [mark-twain](https://github.com/benjycui/mark-twain).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleuisken%2Fmd2json2html","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleuisken%2Fmd2json2html","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleuisken%2Fmd2json2html/lists"}