我正在尝试使用这个Jekyll主题http://richbray.me/frap/
并且我想创建一个博客文章,展示这个D3.js的例子:http://bl.ocks.org/mbostock/4061502
所以主要的困难是如何让Markdown渲染这个脚本,使得d3.js能够展示它的内容。有什么想法吗?
我正在尝试使用这个Jekyll主题http://richbray.me/frap/
并且我想创建一个博客文章,展示这个D3.js的例子:http://bl.ocks.org/mbostock/4061502
所以主要的困难是如何让Markdown渲染这个脚本,使得d3.js能够展示它的内容。有什么想法吗?
有几种方法可以让这个工作:
<iframe>
在d3示例中,有一个嵌入的 iframe:
你可以将此更改为
<iframe src="/mbostock/raw/4061502/0a200ddf998aa75dfdb1ff32e16b680a15e5cb01/" marginwidth="0" marginheight="0" scrolling="no"></iframe>
然后,你可以将这个iframe代码段简单地粘贴到你的markdown文件中。确保在它前后都有空行。
<iframe src="http://bl.ocks.org/mbostock/raw/4061502/0a200ddf998aa75dfdb1ff32e16b680a15e5cb01/" marginwidth="0" marginheight="0" scrolling="no"></iframe>
你也可以给该iframe元素添加width="600" height="400"
属性,以便大部分图表适合于iframe。
目标是文档内的块级元素(例如<div>
而不是<body>
):
- 将var svg = d3.select("body").selectAll("svg")
改为var svg = d3.select("div#example").selectAll("svg")
- 将d3.csv("morley.csv", function(error, csv)
更改为d3.csv("/morley.csv", function(error, csv)
,并保存morley.csv
(你可以在这里获取它)到你的Jekyll站点的根目录中(将此文件复制到您的Jekyll项目中以解决跨站脚本错误) - 将<script src="box.js"></script>
更改为<script src="http://bl.ocks.org/mbostock/raw/4061502/0a200ddf998aa75dfdb1ff32e16b680a15e5cb01/box.js"></script>
- 创建一个名为<div id="example"></div>
的新元素。
我创建了这篇Jekyll博客文章,展示了如何实现这一点。另外,请查看Matt Shwery的博客文章(以及原始markdown)中的另一个d3 / Jekyll示例。
inframe已不再被bl.ocks支持,您将会收到以下错误信息
因为祖先违反了以下内容安全策略指令:"frame-ancestors 'self' *.ocks.org",所以拒绝在框架中显示'http://bl.ocks.org/mbostock/raw/4061502/0a200ddf998aa75dfdb1ff32e16b680a15e5cb01/'。
你可以尝试使用rawgit.com。