Вставить локальный HTML-файл в reve.js - PullRequest
0 голосов
/ 05 июля 2018

Я хочу импортировать боке интерактивные графики в моей презентации reve.js .

Что я могу сделать

  1. Я могу встроить html-контент в reve.js с помощью iframe:
<iframe data-src="https://demo.bokehplots.com/apps/sliders" 
width="445" height="355" frameborder="0" marginwidth="0" marginheight="0" 
scrolling="no" style="border:3px solid #666; margin-bottom:5px; max-width:
100%;" allowfullscreen=""></iframe>
  1. Я могу сохранить график Bokeh в формате HTML:
from bokeh.plotting import figure, output_file, show

output_file("/line.html")
p = figure(plot_width=400, plot_height=400)
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="navy", alpha=0.5)
show(p)

, который приводит к файлу line.html, который я могу видеть и взаимодействовать, когда открываю его в своем веб-браузере.

Что я не могу сделать

Вставить мой line.html файл в reve.js.

Я пытался:

  1. <iframe data-src="/Users/JohnDoe/line.html" width="945" height="555" frameborder="0" marginwidth="0" marginheight="0" scrolling="yes" style="border:3px solid #666; margin-bottom:5px; max-width: 600%;" allowfullscreen=""></iframe>

    Этот результат в сообщении Cannot GET /Users/JohnDoe/line.html отображается в моем iframe.

  2. <iframe data-src="file:///Users/JohnDoe/line.html" width="945" height="555" frameborder="0" marginwidth="0" marginheight="0" scrolling="yes" style="border:3px solid #666; margin-bottom:5px; max-width: 600%;" allowfullscreen=""></iframe>

    А в траме ничего не отображается.

Что я хочу сделать

Я хочу, чтобы мой файл .html отображался в моем iframe, как он работает в разделе 1. «Что я могу сделать».

1 Ответ

0 голосов
/ 05 июля 2018

Вывод Reveal.js отображается с какого-то локального сервера, верно? AFAIK IFrames не позволит вам загружать из локальных файлов в этом случае. В общем, вы не можете загрузить file:\\ из http:\\, потому что это будет гигантской дырой в безопасности. Решением было бы запустить базовый HTTP-сервер для обслуживания HTML-файлов Bokeh, например, python -m http.server (или python -m SimpleHTTPServer для устаревшего Python 2) и заставить ваш IFrame загружать страницы Bokeh с простого сервера.

...