在R中将Markdown转换为JSON

3
以下是我希望执行的步骤:
  1. 将markdown文件(见下文)读入R中
  2. 将markdown文本转换为JSON格式
  3. 通过API POST调用发送JSON数据
例如,markdown文本文件:
## This is a list

+ one
+ two
+ three

#### Do a thing
```coffee
points <- rnorm(10)
plot(points)
```

#### Do something else

![](someimage)

步骤1和步骤3很容易,但我不理解步骤2。调用rjson::toJSONRJSONIO::toJSON并不能正确地格式化输出JSON。是否有人知道如何解决这个问题?在Github上的此自述文件中提供了一个好像很不错的Markdown转JSON的示例。

我认为你链接的那个 Github 页面并没有真正将 markdown 转换成 JSON,它只是从 markdown 文件顶部获取 YAML 数据。你知道还有其他将 markdown 转换成 JSON 的标准吗? - Marius
你说得对,那个例子很糟糕。不,我不知道有任何的。 - sckott
1
您希望您的JSON文件是什么样子?创建仅包含Markdown文件文本的JSON文件很容易,但我想您可能想要其他内容。如果您希望您的JSON文件包含Markdown文件的结构,则首先将其转换为HTML可能更容易(然后您可以获得文档的树状结构),然后使用xml包解析HTML文档。 - Jan van der Laan
@ScottChamberlain:事实证明,Pandoc可以以保留结构的方式将Markdown转换为JSON。如果您不熟悉Pandoc,那么一定要看看它。 - Marius
@Marius 好主意。我知道并使用Pandoc,但没有想到过这个。不过我确实需要一个完全在R内部的解决方案。 - sckott
@JanvanderLaan 好主意,我会试一试。是的,我想保留 markdown 文件的结构,因为我正在尝试创建一个 Github 要点,但他们不允许文件上传,只允许 JSON。 - sckott
1个回答

2

rCharts有几个实用函数可以轻松完成此操作。我假设您的Rmd文件保存为test.Rmd。您可以在此处查看已发布的gist here

require(rCharts)
payload = create_gist('test.Rmd', description = 'Testing Md to Gist')
post_gist(payload, viewer = 'http://gist.github.com/')

这是你在寻找的吗?

更新:如果你想要更新你创建的Gist,你可以使用update_gist函数,并传递gist id。

update_gist(payload, id, viewer = 'http://gist.github.com/')

如果您不想在R控制台中输入用户名和密码,可以使用options(github.username = ..., github.password = ...)


这是否保留了Markdown文件的结构?即,在Gist中它看起来是否相同? - sckott
我认为是这样的,你有检查已发布的Gist链接吗? - Ramnath
我们正在开发一个R语言的包装器,用于访问Github API。如果您感兴趣,可以查看这个链接:https://github.com/ropensci/gitr - sckott
Carlos Scheidegger和Simon Urbanek也在开发一个相当成熟的包装器 https://github.com/cscheid/rgithub - Ramnath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接