首页 > 解决方案 > 使用 NodeJs 将 Json 文件转换为 Markdown

问题描述

我有个问题。我有一个 JSON 文件,我需要使用 NodeJs 将此文件转换为 Markdown 格式,我如何实现这一点?

第一块标题第二块代码。

我只需要code块:

{
    "code": "## Chapter 21 - Dichotomous Predicted Variable",
    "language": "Markdown",
    "index": 0,
    "output": {
        "image/png": "aaaaaaa",
        "text/plain": [
            "<IPython.core.display.Image object>"
        ]
    },
    "created": "2018-8-28 12:03:33",
    "evaluated": true,
    "hiddenCode": false
},
{
    "code": "- [21.1 - Multiple Metric Predictors](#21.1---Multiple-Metric-Predictors)\n- [21.3 - Robust Logistic Regression](#21.3---Robust-Logistic-Regression)\n- [21.4 - Nominal Predictors](#21.4---Nominal-Predictors)",
    "language": "Python",
    "index": 0,
    "output": {
        "image/png": "bbbbb",
        "text/plain": [
            "<IPython.core.display.Image object>"
        ]
    },
    "created": "2018-8-28 12:03:33",
    "evaluated": true,
    "hiddenCode": false
},

我想说我会把它们都打印成纯文本,最后我会得到 .md 输出。我会做出来的;

if language == Markdown

[21.1 - Multiple Metric Predictors](#21.1---Multiple-Metric-Predictors)\n- [21.3 - Robust Logistic Regression](#21.3---Robust-Logistic-Regression)\n- [21.4 - Nominal Predictors](#21.4---Nominal-Predictors)",


if language === Python

%load std_ipython_import.txt
\nimport pandas as pd\n
import numpy as np\n
import matplotlib.pyplot as plt\n
import seaborn as sns\n
import pymc3 as pm\n
import theano.tensor as tt\n
\nfrom scipy.stats import beta\n
from scipy.special import expit\n
from matplotlib import gridspec\n
from IPython.display import Image\n\n
%matplotlib inline\nplt.style.use('seaborn-white')\n\ncolor = '#87ceeb'\n\nf_dict = {'size':16}",

标签: jsonnode.jsmarkdown

解决方案


您需要一些库来进行转换。例如showdown( http://showdownjs.com )。然后就很简单了,只要map通过数组,转换你所需要的即可。

// index.js
const showdown = require('showdown')

const json = [
  {
    "code": "## Chapter 21 - Dichotomous Predicted Variable",
    ...
  },
  {
    "code": "- [21.1 - Multiple Metric Predictors](#21.1---Multiple-Metric-Predictors)\n- [21.3 - Robust Logistic Regression](#21.3---Robust-Logistic-Regression)\n- [21.4 - Nominal Predictors](#21.4---Nominal-Predictors)",
    ...
  },
]

const converter = new showdown.Converter()
const result = json.map(item => converter.makeHtml(item.code))

console.log(result)

输出:

[ 
  '<h2 id="chapter21dichotomouspredictedvariable">Chapter 21 - Dichotomous Predicted Variable</h2>',
  '<ul>\n<li><a href="#21.1---Multiple-Metric-Predictors">21.1 - Multiple Metric Predictors</a></li>\n<li><a href="#21.3---Robust-Logistic-Regression">21.3 - Robust Logistic Regression</a></li>\n<li><a href="#21.4---Nominal-Predictors">21.4 - Nominal Predictors</a></li>\n</ul>' 
]

推荐阅读