[feature]
name        = "content-graph"
version     = "0.1.0"
source      = "rustelo"
description = "Knowledge graph connecting content items with each other and with on+re ontology nodes. Generates content_graph.json at build time and provides Cytoscape-powered interactive graph views plus SSR-safe RelatedContent and OntologyContext components."
requires    = []

[dependencies]
workspace = ["serde", "serde_json"]
external  = ["glob = '0.3'"]

[[environment.variables]]
name     = "CONTENT_GRAPH_CONTENT_DIR"
default  = "site/content"
required = false

[[environment.variables]]
name     = "CONTENT_GRAPH_NICKEL_SCHEMA_DIR"
default  = "rustelo/nickel"
required = false

[[environment.variables]]
name     = "CONTENT_GRAPH_FRAMEWORK_ONTOLOGY"
default  = ""
required = true

[[environment.variables]]
name     = "CONTENT_GRAPH_IMPL_ONTOLOGY"
default  = ".ontology/core.ncl"
required = false

[[environment.variables]]
name     = "CONTENT_GRAPH_FRAMEWORK_ADRS_GLOB"
default  = ""
required = true

[[environment.variables]]
name     = "CONTENT_GRAPH_IMPL_ADRS_GLOB"
default  = "adrs/adr-*.ncl"
required = false

[[environment.variables]]
name     = "ONTOREF_NICKEL_IMPORT_PATH"
default  = ""
required = true

[configuration]
files = [
    { path = "site/config/assets_content_graph.ncl", template = "templates/assets_ncl_fragment.ncl" },
]

[resources]
public = [
    { from = "js/cytoscape-shim.js",               to = "public/js/content-graph-shim.js" },
]

[node]
scripts = [
    { name = "cytoscape:download", command = "node scripts/download/download-cytoscape.js" },
]
build_all_hook = "cytoscape:download"

[[scripts]]
from = "scripts/download/download-cytoscape.js"
to   = "scripts/download/download-cytoscape.js"
