如何将我的R项目更好地展示在Hexo博客上?

Blogdown

  • 现实情况:Hexo blog已经搭建很久,不想再新建一个博客了;
  • 需求:
    • 只是想在某些post里体现R代码和结果,所以并不想所有的post都在R Studio里完成。Sublime Text+markdown还是首选;
    • 想让post显示在Hexo主页;
    • 想在博客搜索栏(右上角)里可以搜到R project相关的内容,因此hexo-pdf插件就不是很适用;
    • 排版尽量美观(knit生成的html十分朴素);
  • 困难:blogdown似乎不适用我的情况。如果有人知道可以用blogdown解决的方案,可以邮件给我或者在下方留言。十分欢迎~

Workflow 1 Rmd->md->Hexo

在你的Rmd文件YAML head里加入以下代码:

1
2
3
4
5
---
output:
md_document:
variant: markdown_github
---

就可以使用Knit直接生成.md文件。然后复制到Hexo的source/_post文件夹里。但是生成的.md文件并不是特别理想,还是需要再寄手动修改,比如加入YAML head,修改title和subtitle等等。可参考以下文章:

Workflow 2 Rmd->html->layout: false

直接用knit本身默认的功能生成html文件,然后复制html文件到source文件下。但是仍然需要修改该html,在文件开始加入

1
2
3
---
layout: false
---

这样Hexo就不会渲染该html文件。但是缺点是在Hexo博客的首页无法显示这个文件,需要在输入栏里输入URL才能够显示这个网页。URL为http://<your blog>/<name of html>.html

可参考以下文章:

Workflow 3 Rmd->html->raw code

直接用knit本身默认的功能生成html文件,打开该文件,复制html代码到你新建post的.md文件里,只是在html代码前后需要加入几行代码,如下:

1
2
3
{% raw %}
your html code
{% endraw %}

但是亲测,效果并不是特别理想。整个排版并不美观。

可参考以下文章:

Workflow 4 Rmd->html->iframe

这是目前为止,我见过的最佳方案,既能够让你的post显示在主页,又能够在博客的搜索栏里搜到你的R project的内容。

依然直接用knit本身默认的功能生成html文件,然后复制html文件到source文件下。修改该html,在文件开始加入

1
2
3
---
layout: false
---

在你新建post的.md文件里插入

1
<iframe src="http://<your blog>/<name of html>.html" width="700" height="800"></iframe>

然后效果如下:

感觉挺不错~希望可以对有同样现实情况、需求和困难的朋友一点帮助。

可参考以下文章:

R->html

另外R Studio里是可以直接将.R文件里的souce code转成html或者pdf的,不用再新建Rmd文件。代码如下:

1
2
library('rmarkdown')
rmarkdown::render('<your file>.R', "pdf_document")

这样的话,R->html->Hexo的工作流就很easy啦!

-------------End of postThanks for your time-------------
BaoDuGe_飽蠹閣 wechat
Enjoy it? Subscribe to my blog by scanning my public wechat account