如何在flexdashboard中包含javascript和css?

时间:2016-08-16 04:55:44

标签: r r-markdown flexdashboard

我创建了一个flexdashboard,其中包含使用传单包的地图。

我需要能够在地图区域内选择标记,以便我可以根据这些标记显示摘要统计数据。 leaflet-locationfilter似乎提供了我需要的东西,但我需要弄清楚如何将其包含在生成的HTML文件中。我尝试过使用"包含"在flexdashboard标题中,但这会产生错误。这是一个简单的测试用例:

---
title: "Dashboard Title"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    includes: includes(in_header = "TEST.HTML", before_body = "TEST.HTML", after_body = "TEST.HTML")
---

......其中TEST.HTML是:

<!-- TEST TEST TEST -->

但这失败了:

  

输出文件:Dashboard.knit.md

     

包含$ in_header时出错:$运算符对原子向量无效   电话: - &gt; - &GT; overlay - &gt; pandoc_include_args   执行暂停

我不得不求助于阅读the code来弄清楚如何做到这一点,因为它似乎没有记录在任何地方,但我显然错过了一些东西。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

而不是使用像documentation这样的内置includes函数(第4页)奇怪地说要做,而是使用YAML:

---
title: "Dashboard Title"
    output: 
    flexdashboard::flex_dashboard:
        orientation: columns
        vertical_layout: fill
        includes: 
            in_header: "TEST.HTML"
            before_body: "TEST.HTML"
            after_body: "TEST.HTML"
---

然而,除了通过flexdashboard之外,还有一种不同的方式来包括传单插件。使用传单自己的dependencies参数:

map$dependencies <- c(map$dependencies, list(htmlDependency(
    name = "Leaflet.locationfilter",
    version = "0.1",
    src = "PATH_TO_DIRECTORY",
    script = "locationfilter.js",
    stylesheet = "locationfilter.css"
)))