Neo4j 的浏览器允许它显示的图形使用 GRASS 语言(GRaph 样式表)中的类 CSS 样式文件进行样式设置。但是,我一直没能找到这种语言的语法。有没有,如果有,在哪里可以找到?
最佳答案
据我所知,它并没有真正的记录,但我会分享我所知道的,因为我认为没有那么多要涵盖的内容。
首先,您可以使用浏览器命令 :style
下载您的 Neo4j .grass 文件(您需要将结果复制到一个文本文件,并制作扩展名 .grass 以重新导入它)
接下来,需要注意的是,.grass 文件实际上是 CSS,但 Neo4j 似乎更喜欢 JSON 格式。 (两种格式都是有效的 .grass 内容)
结果应该是这样的
{
"node": {
"diameter": "100px",
"color": "#FFD86E",
"border-color": "#EDBA39",
"border-width": "2px",
"text-color-internal": "#604A0E",
"font-size": "16px"
},
"relationship": {
"color": "#68BDF6",
"shaft-width": "13px",
"font-size": "14px",
"padding": "3px",
"text-color-external": "#000000",
"text-color-internal": "#FFFFFF",
"caption": "<type>"
},
"node.MyFirstLabel": {
"color": "#68BDF6",
"border-color": "#5CA8DB",
"text-color-internal": "#FFFFFF"
},
"node.MySecondLabel": {
"color": "#6DCE9E",
"border-color": "#60B58B",
"text-color-internal": "#FFFFFF"
},
"relationship.IS_RELATED_TO": {
"color": "#A5ABB6",
"shaft-width": "1px",
"font-size": "8px",
"padding": "3px",
"text-color-external": "#000000",
"text-color-internal": "#FFFFFF"
},
/*This is a comment, the rest is added by hand*/
"node.EXPERIMENTAL": {
"color": "#DE9BF9",
"border-color": "#BF85D6",
"text-color-internal": "#FFFFFF",
/*You can use {<prop_name>} for dynamic values. can be mixed with literals*/
"caption": "Hello, my name is {name}",
/*You can't use <>, the HTML will eat it, so use the HTML escaped version for the string literal <id>*/
/* <id> and <type> will actually use the internal value for nodes and relationships respectively */
"defaultCaption": "<id>"
}
}
请注意,如果一个节点有 2 个样式标签,则只会应用第一个(最靠近顶部的)样式。如果节点没有 GRASS 中的标签,则“节点”用作默认值(关系相同)。我相信大多数 CSS 样式都受支持,但您可以随时尝试。如果不支持,它将被忽略。
所以我将尝试涵盖非标准属性
- caption:显示的文本(通常绑定(bind)到属性)
- defaultCaption:未设置标题时使用的标题(据我所知)
- 直径:仅节点。圈子大小
- 轴宽:仅限关系。尺寸
- color:圆形颜色(在标准 css 中,这是文本颜色)
- text-color-internal: 文字颜色
(这是一个社区维基,请更新有关 GRASS 文件的任何其他详细信息)
在大多数情况下,在官方文档发布之前,只对微小的更改进行试验可能会更容易。如果你想进入兔子洞,grass parser是开源的。请注意,在发布官方文档之前,行为可能会发生变化。
关于css - 在哪里可以找到 Neo4j GRASS 语言的语法概述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39101466/