2016-08-16 1 views
2

Я создал гибкую панель, которая включает в себя карту, используя пакет листовки.Как включить javascript и css в flexdashboard?

Мне нужно иметь возможность выбирать маркеры в пределах области карты, чтобы я мог отображать сводную статистику на основе этих маркеров. leaflet-locationfilter, как представляется, обеспечивает то, что мне нужно, но мне нужно выяснить, как включить это в сгенерированный HTML-файл. Я попытался использовать «includes» в заголовке 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

Ошибка в include $ in_header: оператор $ недействителен для атомных векторов Вызовы: -> -> overlay -> pandoc_include_args Выполнение остановлено

мне пришлось прибегнуть к чтению the code, чтобы выяснить, как это сделать, потому что это не по всей видимости, задокументированы в любом месте, но я, очевидно, что-то пропустил.

Любые предложения? (Стр. 4)

ответ

1

Вместо того, чтобы использовать R встроенного includes функции вроде documentation странно говорит делать, используйте 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" 
)))