docs: support for writing edge styles for individual connections

This commit is contained in:
Daniel Kolesa 2016-07-28 14:18:58 +01:00
parent 26ebd20db8
commit 63a3da0c0f
2 changed files with 22 additions and 8 deletions

View File

@ -132,8 +132,11 @@ M.Writer = util.Object:clone {
self:write_raw(" ", k, " = \"", v, "\"\n")
end
local write_node = function(nname, attrs)
self:write_raw(" ", nname, " [")
local write_attrs = function(attrs)
if not v then
return
end
self:write_raw(" [")
local first = true
for k, v in pairs(attrs) do
if not first then
@ -142,28 +145,34 @@ M.Writer = util.Object:clone {
self:write_raw(k, " = \"", v, "\"")
first = false
end
self:write_raw("]\n")
self:write_raw("]")
end
if tbl.node then
self:write_nl()
write_node("node", tbl.node)
self:write_raw(" node")
write_attrs(tbl.node)
self:write_nl()
end
if tbl.edge then
if not tbl.node then self:write_nl() end
write_node("edge", tbl.edge)
self:write_raw(" edge")
write_attrs(tbl.edge)
self:write_nl()
end
self:write_nl()
for i, v in ipairs(tbl.nodes) do
local nname = v.name
v.name = nil
write_node(nname, v)
self:write_raw(" ", nname)
write_attrs(v)
self:write_nl()
end
self:write_nl()
for i, v in ipairs(tbl.connections) do
local from, to, sep = v[1], v[2], (v[3] or "->")
local from, to, sep, attrs = v[1], v[2], (v[3] or "->")
if type(from) == "table" then
self:write_raw(" {", table.concat(from, ", "), "}")
else
@ -175,6 +184,7 @@ M.Writer = util.Object:clone {
else
self:write_raw(to)
end
write_attrs(v[4])
self:write_nl()
end

View File

@ -551,6 +551,9 @@ local default_theme = {
node = {
shape = "box"
},
edge = {
color = "black"
},
bg_color = "transparent"
}
@ -604,7 +607,8 @@ local build_igraph = function(cl)
size = "6",
bgcolor = default_theme.bg_color
},
node = default_theme.node
node = default_theme.node,
edge = default_theme.edge
}
local nbuf = {}