Добавить плагин для генерации графа заметок: создать файл graph_json.rb для визуализации связей между заметками

This commit is contained in:
ada
2025-08-22 16:14:57 +03:00
parent 0ef8769b89
commit ee6d5ee9d2
2 changed files with 23 additions and 1 deletions
+22
View File
@@ -0,0 +1,22 @@
require 'json'
Jekyll::Hooks.register :site, :post_write do |site|
notes = site.collections["notes"].docs
nodes = []
edges = []
notes.each do |note|
id = note.url
nodes << { id: id, title: note.data["title"] || note.basename_without_ext, url: note.url }
# ищем [[ссылки]]
note.content.scan(/\[\[(.*?)\]\]/).each do |m|
target = m[0].downcase.strip.gsub(" ", "-")
target_doc = notes.find { |n| n.basename_without_ext.downcase == target }
edges << { source: id, target: target_doc.url } if target_doc
end
end
graph = { nodes: nodes, edges: edges }
File.write(File.join(site.dest, "graph.json"), JSON.pretty_generate(graph))
end