如何编写svg图层以便它们出现在Inkscape图层下拉菜单中?

时间:2015-02-10 02:05:01

标签: svg d3.js inkscape

我正在编写一些svg,以便以后进行Inkscape编辑。另外,我想在下拉菜单中将要显示的组显示为图层。但是目前,当点击时,我只看到(root)而没有更多,而我实际上有12层应该产生12行起来。

enter image description here

我目前正在做:

svg.append("g")
    .attr("groupmode","layer")
    .attr({'id':'L1_borders','label':'L1_borders'})

但它不起作用(see & download)。

如何编写svg图层以便它们出现在Inkscape图层下拉菜单中?

1 个答案:

答案 0 :(得分:1)

打开Inkscape GUI,创建一个新图层,并检查它表明,由于某些原因,Inkscape添加了命名空间" inkscape:"在少数几个按键之前,例如:

enter image description here

所以反映这种行为的D3代码应该是:

svg.append("g")
    .attr("inkscape:groupmode","layer")
    .attr({'id':'L1_borders','inkscape:label':'L1_borders'})
这让我很烦,因为它不太可能成为标准。烦。

实际上,即使是这样的添加也会被D3js清理干净,我完全支持这个大胆的举动!

然而,我需要这些。我最终做了一个小小的黑客:

svg.append("g")
    .attr(":inkscape:groupmode","layer")
    .attr({'id':'L1_borders',':inkscape:label':'L1_borders'})

D3js清理第一个...:并离开inkscape:label。它然后工作。通过前。完成L0& L1:

enter image description here

现在可以在下拉GUI图层下拉菜单中将图层作为可点击行进行访问。

哦,丑陋顽皮的非标准黑客~~~