jekyll-graph 0.0.9 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -4
- data/README.md +14 -11
- data/jekyll-graph.gemspec +0 -3
- data/lib/jekyll-graph/config.rb +42 -21
- data/lib/jekyll-graph/jekyll-graph.js +36 -21
- data/lib/jekyll-graph/version.rb +1 -1
- data/lib/jekyll-graph.rb +30 -9
- metadata +2 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d143e24a47db4dbc9d9792c1eb09223f78d85da5d33adae50187b30331874956
|
4
|
+
data.tar.gz: 126d97994a598c28d4284e54980a3cf49d58b48733bae41c894e2e1172485053
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07a27ee92832a88f43ebc23eb30285aa6873b394a91b152269d812400a8c69f39dd85c530d5e4f0c399c27d27eb2dac283d2abec0742fe4d56ecb0e985caf0f2
|
7
|
+
data.tar.gz: 7fb96e000d369fcd8004a4ec8e8411ded14e7ee4c1042bf2427add05e412465fbfcd95a1b9af7e01dce13109b34a66d77f84b5dd749efc5260e324b37efa3d3b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## [0.0.11] - 2023-10-06
|
2
|
+
### Change
|
3
|
+
- `net-web` -> `web`.
|
4
|
+
## [0.0.10] - 2023-09-25
|
5
|
+
### Fix
|
6
|
+
- Dependencies
|
7
|
+
## [0.0.9] - 2023-09-25
|
8
|
+
### Change
|
9
|
+
- Update plugin to support both `jekyll-namespaces` and `jekyll-semtree`.
|
1
10
|
## [0.0.8] - 2022-03-03
|
2
11
|
### Change
|
3
12
|
- Update javascript setup instructions in README.
|
@@ -13,11 +22,9 @@
|
|
13
22
|
## [0.0.5] - 2021-11-23
|
14
23
|
### Change
|
15
24
|
- 'relatives' -> 'lineage' for tree nodes.
|
16
|
-
|
17
25
|
## [0.0.4] - 2021-11-22
|
18
26
|
### Fix
|
19
27
|
- Custom path config related fix in scripts.
|
20
|
-
|
21
28
|
## [0.0.3] - 2021-11-22
|
22
29
|
### Change
|
23
30
|
- Fix javascript inheritance.
|
@@ -26,11 +33,9 @@
|
|
26
33
|
### Fix
|
27
34
|
- Display log messages related to dependencies (see [#2](https://github.com/manunamz/jekyll-graph/issues/2)).
|
28
35
|
- Custom path configs.
|
29
|
-
|
30
36
|
## [0.0.2] - 2021-09-17
|
31
37
|
### Change
|
32
38
|
- Liquid tag `force-graph` -> `jekyll_graph`.
|
33
|
-
|
34
39
|
## [0.0.1] - 2021-09-17
|
35
40
|
- Initial release
|
36
41
|
### Added
|
data/README.md
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
# Jekyll-Graph
|
2
2
|
|
3
|
+
[![A WikiBonsai Project](https://img.shields.io/badge/%F0%9F%8E%8B-A%20WikiBonsai%20Project-brightgreen)](https://github.com/wikibonsai/wikibonsai)
|
4
|
+
[![Ruby Gem](https://img.shields.io/gem/v/jekyll-graph)](https://rubygems.org/gems/jekyll-graph)
|
5
|
+
|
3
6
|
⚠️ This is gem is under active development! ⚠️
|
4
7
|
|
5
8
|
⚠️ Expect breaking changes and surprises until otherwise noted (likely by v0.1.0 or v1.0.0). ⚠️
|
6
9
|
|
7
|
-
Jekyll-Graph generates data and renders a graph that allows visitors to navigate a jekyll site by clicking nodes in the graph. Nodes are generated from the site's markdown files. Links for the tree graph are generated from [`jekyll-
|
10
|
+
Jekyll-Graph generates data and renders a graph that allows visitors to navigate a jekyll site by clicking nodes in the graph. Nodes are generated from the site's markdown files. Links for the tree graph are generated from [`jekyll-semtree`](https://github.com/wikibonsai/jekyll-semtree) and links for the web graph from [`jekyll-wikirefs`](https://github.com/wikibonsai/jekyll-wikirefs) (legacy versions from [`jekyll-namespaces`](https://github.com/manunamz/jekyll-namespaces) and [`jekyll-wikilinks`](https://github.com/manunamz/jekyll-wikilinks) respectively).
|
8
11
|
|
9
|
-
|
12
|
+
🏡 Build and maintain a treehouze to play in in your [WikiBonsai](https://github.com/wikibonsai/wikibonsai) digital garden.
|
10
13
|
|
11
14
|
## Installation
|
12
15
|
|
@@ -57,12 +60,12 @@ The import should point to the `jekyll-graph.js` javascript file generated by th
|
|
57
60
|
var graph = new JekyllGraphSubClass();
|
58
61
|
```
|
59
62
|
|
60
|
-
5. Call `
|
63
|
+
5. Call `drawWeb()` and/or `drawTree()` to actually draw the graph. You could do this simply on initialization or on a button click, etc.
|
61
64
|
|
62
65
|
```javascript
|
63
66
|
// on page load
|
64
67
|
(() => {
|
65
|
-
graph.
|
68
|
+
graph.drawWeb();
|
66
69
|
});
|
67
70
|
|
68
71
|
// on button click
|
@@ -81,7 +84,7 @@ graph:
|
|
81
84
|
path:
|
82
85
|
assets: "/assets"
|
83
86
|
scripts: "/assets/js"
|
84
|
-
|
87
|
+
web:
|
85
88
|
enabled: true
|
86
89
|
exclude:
|
87
90
|
attrs: false
|
@@ -110,11 +113,11 @@ graph:
|
|
110
113
|
|
111
114
|
`path.scripts`: An optional custom scripts location for the graph scripts to generate into. Location is relative to the assets location in the `_site/` directory (If `assets_path` is set, but `scripts_path` is not, the location will default to `_site/<assets_path>/js/`).
|
112
115
|
|
113
|
-
`
|
116
|
+
`web.exclude.attrs` and `web.exclude.links`: Determines whether wikilink attributes and/or links are added to the web graph from the link index.
|
114
117
|
|
115
|
-
`tree.enabled` and `
|
118
|
+
`tree.enabled` and `web.enabled`: Toggles on/off the `tree` and `web` graphs, respectively. Be sure to disable graphs that are not in use.
|
116
119
|
|
117
|
-
`tree.force` and `
|
120
|
+
`tree.force` and `web.force`: These are force variables from d3's simulation forces. You can check out the [docs for details](https://github.com/d3/d3-force#simulation_force).
|
118
121
|
|
119
122
|
Force values will likely need to be played with depending on the div size and number of nodes. [jekyll-bonsai](https://manunamz.github.io/jekyll-bonsai/) currently uses these values:
|
120
123
|
|
@@ -128,7 +131,7 @@ graph:
|
|
128
131
|
x_val: 0.9
|
129
132
|
strength_y: 0.1
|
130
133
|
y_val: 0.9
|
131
|
-
|
134
|
+
web:
|
132
135
|
force:
|
133
136
|
charge: -300
|
134
137
|
strength_x: 0.3
|
@@ -167,10 +170,10 @@ html {
|
|
167
170
|
## Data
|
168
171
|
Graph data is generated in the following format:
|
169
172
|
|
170
|
-
For the
|
173
|
+
For the web graph, `graph-web.json`,`links` are built from `backlinks` and `attributed` metadata generated in `jekyll-wikilinks`:
|
171
174
|
|
172
175
|
```json
|
173
|
-
// graph-
|
176
|
+
// graph-web.json
|
174
177
|
{
|
175
178
|
"nodes": [
|
176
179
|
{
|
data/jekyll-graph.gemspec
CHANGED
@@ -34,7 +34,4 @@ Gem::Specification.new do |spec|
|
|
34
34
|
|
35
35
|
# For more information and examples about making a new gem, checkout our
|
36
36
|
# guide at: https://bundler.io/guides/creating_gem.html
|
37
|
-
|
38
|
-
spec.add_runtime_dependency "jekyll-namespaces", "~> 0.0.3"
|
39
|
-
spec.add_runtime_dependency "jekyll-wikilinks", "~> 0.0.11"
|
40
37
|
end
|
data/lib/jekyll-graph/config.rb
CHANGED
@@ -6,17 +6,17 @@ module Jekyll
|
|
6
6
|
|
7
7
|
class PluginConfig
|
8
8
|
|
9
|
-
ASSETS_KEY
|
10
|
-
ATTRS_KEY
|
11
|
-
CONFIG_KEY
|
9
|
+
ASSETS_KEY = "assets"
|
10
|
+
ATTRS_KEY = "attrs"
|
11
|
+
CONFIG_KEY = "graph"
|
12
12
|
ENABLED_KEY = "enabled"
|
13
13
|
EXCLUDE_KEY = "exclude"
|
14
|
-
LINKS_KEY
|
15
|
-
NET_WEB_KEY = "net_web"
|
16
|
-
PATH_KEY
|
14
|
+
LINKS_KEY = "links"
|
15
|
+
NET_WEB_KEY = "net_web" # deprecated: 'net_web' -> 'web'
|
16
|
+
PATH_KEY = "path"
|
17
17
|
SCRIPTS_KEY = "scripts"
|
18
|
-
TREE_KEY
|
19
|
-
|
18
|
+
TREE_KEY = "tree"
|
19
|
+
WEB_KEY = "web"
|
20
20
|
|
21
21
|
def initialize(config)
|
22
22
|
@config ||= config
|
@@ -30,12 +30,17 @@ module Jekyll
|
|
30
30
|
return option(ENABLED_KEY) == false
|
31
31
|
end
|
32
32
|
|
33
|
+
def disabled_tree?
|
34
|
+
return option_tree(ENABLED_KEY) == false
|
35
|
+
end
|
36
|
+
|
37
|
+
# deprecated: 'net_web' -> 'web'
|
33
38
|
def disabled_net_web?
|
34
|
-
return
|
39
|
+
return option_web(ENABLED_KEY) == false
|
35
40
|
end
|
36
41
|
|
37
|
-
def
|
38
|
-
|
42
|
+
def disabled_web?
|
43
|
+
option_web(ENABLED_KEY) == false
|
39
44
|
end
|
40
45
|
|
41
46
|
def excluded?(type)
|
@@ -52,13 +57,13 @@ module Jekyll
|
|
52
57
|
end
|
53
58
|
|
54
59
|
def use_attrs?
|
55
|
-
return true if
|
56
|
-
return !
|
60
|
+
return true if option_web_exclude(ATTRS_KEY).nil?
|
61
|
+
return !option_web_exclude(ATTRS_KEY)
|
57
62
|
end
|
58
63
|
|
59
64
|
def use_links?
|
60
|
-
return true if
|
61
|
-
return !
|
65
|
+
return true if option_web_exclude(LINKS_KEY).nil?
|
66
|
+
return !option_web_exclude(LINKS_KEY)
|
62
67
|
end
|
63
68
|
|
64
69
|
# options
|
@@ -71,12 +76,28 @@ module Jekyll
|
|
71
76
|
@config[CONFIG_KEY] && @config[CONFIG_KEY][PATH_KEY] && @config[CONFIG_KEY][PATH_KEY][key]
|
72
77
|
end
|
73
78
|
|
74
|
-
def
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
79
|
+
def option_web(key)
|
80
|
+
if @config[CONFIG_KEY]
|
81
|
+
# deprecated: 'net_web' -> 'web'
|
82
|
+
if @config[CONFIG_KEY][NET_WEB_KEY]
|
83
|
+
return @config[CONFIG_KEY][NET_WEB_KEY][key]
|
84
|
+
end
|
85
|
+
if @config[CONFIG_KEY][WEB_KEY]
|
86
|
+
return @config[CONFIG_KEY][WEB_KEY][key]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def option_web_exclude(key)
|
92
|
+
if @config[CONFIG_KEY]
|
93
|
+
# deprecated: 'net_web' -> 'web'
|
94
|
+
if @config[CONFIG_KEY][NET_WEB_KEY] && @config[CONFIG_KEY][NET_WEB_KEY][EXCLUDE_KEY]
|
95
|
+
return @config[CONFIG_KEY][NET_WEB_KEY][EXCLUDE_KEY][key]
|
96
|
+
end
|
97
|
+
if @config[CONFIG_KEY][WEB_KEY]&& @config[CONFIG_KEY][WEB_KEY][EXCLUDE_KEY]
|
98
|
+
return @config[CONFIG_KEY][WEB_KEY][EXCLUDE_KEY][key]
|
99
|
+
end
|
100
|
+
end
|
80
101
|
end
|
81
102
|
|
82
103
|
def option_tree(key)
|
@@ -7,9 +7,17 @@ export default class JekyllGraph {
|
|
7
7
|
}
|
8
8
|
|
9
9
|
// d3
|
10
|
+
|
11
|
+
// deprecated: 'net_web' -> 'web'
|
10
12
|
drawNetWeb () {
|
13
|
+
this.drawWeb(true);
|
14
|
+
}
|
15
|
+
|
16
|
+
drawWeb (legacy = false) {
|
11
17
|
let assetsPath = '{{ site.graph.path.assets }}' !== '' ? '{{ site.graph.path.assets }}' : '/assets';
|
12
|
-
|
18
|
+
// deprecated: 'net-web' -> 'web' in filenames
|
19
|
+
let filename = legacy ? 'graph-net-web.json' : 'graph-web.json';
|
20
|
+
fetch(`{{ site.baseurl }}${assetsPath}/${filename}`).then(res => res.json()).then(data => {
|
13
21
|
|
14
22
|
// neighbors: replace ids with full object
|
15
23
|
data.nodes.forEach(node => {
|
@@ -34,13 +42,20 @@ export default class JekyllGraph {
|
|
34
42
|
this.graph._destructor();
|
35
43
|
}
|
36
44
|
|
45
|
+
// deprecated: 'net_web' -> 'web' in configs
|
46
|
+
const charge = legacy ? '{{ site.graph.net_web.force.charge }}' : '{{ site.graph.web.force.charge }}';
|
47
|
+
const xStrength = legacy ? '{{ site.graph.net_web.force.strength_x }}' : '{{ site.graph.web.force.strength_x }}';
|
48
|
+
const xVal = legacy ? '{{ site.graph.net_web.force.x_val }}' : '{{ site.graph.web.force.x_val }}';
|
49
|
+
const yStrength = legacy ? '{{ site.graph.net_web.force.strength_y }}' : '{{ site.graph.web.force.strength_y }}';
|
50
|
+
const yVal = legacy ? '{{ site.graph.net_web.force.y_val }}' : '{{ site.graph.web.force.y_val }}';
|
51
|
+
|
37
52
|
const Graph = ForceGraph()(this.graphDiv)
|
38
53
|
// container
|
39
54
|
.height(this.graphDiv.parentElement.clientHeight)
|
40
55
|
.width(this.graphDiv.parentElement.clientWidth)
|
41
56
|
// node
|
42
|
-
.nodeCanvasObject((node, ctx) => this.nodePaint(node, ctx, hoverNode, hoverLink, "
|
43
|
-
// .nodePointerAreaPaint((node, color, ctx, scale) => nodePaint(node,
|
57
|
+
.nodeCanvasObject((node, ctx) => this.nodePaint(node, ctx, hoverNode, hoverLink, "web"))
|
58
|
+
// .nodePointerAreaPaint((node, color, ctx, scale) => nodePaint(node, nodeTypeInWeb(node), ctx))
|
44
59
|
.nodeId('id')
|
45
60
|
.nodeLabel('label')
|
46
61
|
.onNodeClick((node, event) => this.goToPage(node, event))
|
@@ -56,15 +71,15 @@ export default class JekyllGraph {
|
|
56
71
|
// .links(data.links))
|
57
72
|
|
58
73
|
.d3Force('charge', d3.forceManyBody()
|
59
|
-
.strength(Number(
|
74
|
+
.strength(Number(charge)))
|
60
75
|
// .d3Force('collide', d3.forceCollide())
|
61
76
|
// .d3Force('center', d3.forceCenter())
|
62
77
|
.d3Force('forceX', d3.forceX()
|
63
|
-
.strength(Number(
|
64
|
-
.x(Number(
|
78
|
+
.strength(Number(xStrength))
|
79
|
+
.x(Number(xVal)))
|
65
80
|
.d3Force('forceY', d3.forceY()
|
66
|
-
.strength(Number(
|
67
|
-
.y(Number(
|
81
|
+
.strength(Number(yStrength))
|
82
|
+
.y(Number(yVal)))
|
68
83
|
|
69
84
|
// hover
|
70
85
|
.autoPauseRedraw(false) // keep redrawing after engine has stopped
|
@@ -153,7 +168,7 @@ export default class JekyllGraph {
|
|
153
168
|
.width(this.graphDiv.parentElement.clientWidth)
|
154
169
|
// node
|
155
170
|
.nodeCanvasObject((node, ctx) => this.nodePaint(node, ctx, hoverNode, hoverLink, "tree"))
|
156
|
-
// .nodePointerAreaPaint((node, color, ctx, scale) => nodePaint(node,
|
171
|
+
// .nodePointerAreaPaint((node, color, ctx, scale) => nodePaint(node, nodeTypeInWeb(node), ctx))
|
157
172
|
.nodeId('id')
|
158
173
|
.nodeLabel('label')
|
159
174
|
// todo-shift: this shiftNodeHeight() always renders, but animatation is choppy
|
@@ -226,16 +241,16 @@ export default class JekyllGraph {
|
|
226
241
|
|
227
242
|
// draw helpers
|
228
243
|
|
229
|
-
shiftNodeHeight(node) {
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
}
|
244
|
+
// shiftNodeHeight(node) {
|
245
|
+
// if ((node.namespace !== 'root') && (node.namespace !== 'i.bonsai') && !this.shifted.includes(node)) {
|
246
|
+
// const padding = 5;
|
247
|
+
// let areSiblingsLeftEven = (this.numSiblingsLeft[node.parent] % 2) === 1;
|
248
|
+
// let altrntr = areSiblingsLeftEven ? 1 : -1;
|
249
|
+
// node.fy = node.fy + (altrntr * (this.numSiblingsLeft[node.parent] * padding));
|
250
|
+
// this.numSiblingsLeft[node.parent] -= 1;
|
251
|
+
// this.shifted.push(node);
|
252
|
+
// }
|
253
|
+
// }
|
239
254
|
|
240
255
|
nodePaint(node, ctx, hoverNode, hoverLink, gType) {
|
241
256
|
// todo-shift: this shiftNodeHeight() animates more smoothly, but suffers from a race condition
|
@@ -264,9 +279,9 @@ export default class JekyllGraph {
|
|
264
279
|
// hoverNode
|
265
280
|
radius *= 2;
|
266
281
|
fillText = false; // node label should be active
|
267
|
-
} else if (hoverNode !== null && gType === "
|
282
|
+
} else if (hoverNode !== null && gType === "web" && hoverNode.neighbors.nodes.includes(node)) {
|
268
283
|
// neighbor to hoverNode
|
269
|
-
} else if (hoverNode !== null && gType === "
|
284
|
+
} else if (hoverNode !== null && gType === "web" && !hoverNode.neighbors.nodes.includes(node)) {
|
270
285
|
// non-neighbor to hoverNode
|
271
286
|
fillText = false;
|
272
287
|
} else if (hoverNode !== null && gType === "tree" && hoverNode.lineage.nodes.includes(node)) {
|
data/lib/jekyll-graph/version.rb
CHANGED
data/lib/jekyll-graph.rb
CHANGED
@@ -32,8 +32,13 @@ module Jekyll
|
|
32
32
|
def generate(site)
|
33
33
|
# check what's enabled
|
34
34
|
return if $graph_conf.disabled?
|
35
|
+
# deprecated: 'net_web' -> 'web'
|
35
36
|
if !$graph_conf.disabled_net_web? && !site.respond_to?(:link_index)
|
36
|
-
Jekyll.logger.error("Jekyll-Graph: To generate the net-web graph, please either add and enable the 'jekyll-wikilinks' plugin or disable the net-web in the jekyll-graph config")
|
37
|
+
Jekyll.logger.error("Jekyll-Graph: To generate the net-web graph, please either add and enable the 'jekyll-wikirefs' or 'jekyll-wikilinks' plugin or disable the net-web in the jekyll-graph config")
|
38
|
+
return
|
39
|
+
end
|
40
|
+
if !$graph_conf.disabled_web? && !site.respond_to?(:link_index)
|
41
|
+
Jekyll.logger.error("Jekyll-Graph: To generate the web graph, please either add and enable the 'jekyll-wikirefs' or 'jekyll-wikilinks' plugin or disable the web in the jekyll-graph config")
|
37
42
|
return
|
38
43
|
end
|
39
44
|
if !$graph_conf.disabled_tree? && !site.respond_to?(:tree)
|
@@ -66,6 +71,17 @@ module Jekyll
|
|
66
71
|
# create json file
|
67
72
|
json_net_web_graph_file = self.new_page($graph_conf.path_assets, "graph-net-web.json", net_web_graph_content)
|
68
73
|
end
|
74
|
+
if !$graph_conf.disabled_web?
|
75
|
+
# generate json data
|
76
|
+
json_web_nodes, json_web_links = self.generate_json_net_web()
|
77
|
+
self.set_neighbors(json_web_nodes, json_web_links)
|
78
|
+
web_graph_content = JSON.dump(
|
79
|
+
nodes: json_web_nodes,
|
80
|
+
links: json_web_links,
|
81
|
+
)
|
82
|
+
# create json file
|
83
|
+
json_web_graph_file = self.new_page($graph_conf.path_assets, "graph-web.json", web_graph_content)
|
84
|
+
end
|
69
85
|
if !$graph_conf.disabled_tree?
|
70
86
|
# generate json data
|
71
87
|
json_tree_nodes, json_tree_links = self.generate_json_tree(@site.tree.root)
|
@@ -161,8 +177,13 @@ module Jekyll
|
|
161
177
|
|
162
178
|
# json generation helpers
|
163
179
|
|
180
|
+
# deprecated: 'net_web' -> 'web'
|
164
181
|
def generate_json_net_web()
|
165
|
-
|
182
|
+
return generate_json_web()
|
183
|
+
end
|
184
|
+
|
185
|
+
def generate_json_web()
|
186
|
+
web_nodes, web_links = [], []
|
166
187
|
|
167
188
|
@md_docs.each do |doc|
|
168
189
|
if !$graph_conf.excluded?(doc.type)
|
@@ -172,9 +193,9 @@ module Jekyll
|
|
172
193
|
# missing nodes
|
173
194
|
#
|
174
195
|
@site.link_index.index[doc.url].missing.each do |missing_link_name|
|
175
|
-
if
|
196
|
+
if web_nodes.none? { |node| node[:id] == missing_link_name }
|
176
197
|
Jekyll.logger.warn("Jekyll-Graph: Net-Web node missing: #{missing_link_name}, in: #{File.basename(doc.basename, File.extname(doc.basename))}")
|
177
|
-
|
198
|
+
web_nodes << {
|
178
199
|
id: missing_link_name, # an id is necessary for link targets
|
179
200
|
url: '',
|
180
201
|
label: missing_link_name,
|
@@ -183,7 +204,7 @@ module Jekyll
|
|
183
204
|
links: [],
|
184
205
|
},
|
185
206
|
}
|
186
|
-
|
207
|
+
web_links << {
|
187
208
|
source: doc.url,
|
188
209
|
target: missing_link_name,
|
189
210
|
}
|
@@ -192,7 +213,7 @@ module Jekyll
|
|
192
213
|
#
|
193
214
|
# existing nodes
|
194
215
|
#
|
195
|
-
|
216
|
+
web_nodes << {
|
196
217
|
# TODO: when using real ids, be sure to convert id to string (to_s)
|
197
218
|
id: doc.url,
|
198
219
|
url: relative_url(doc.url),
|
@@ -212,7 +233,7 @@ module Jekyll
|
|
212
233
|
linked_doc = @md_docs.select{ |d| d.url == link_no_baseurl }
|
213
234
|
if !linked_doc.nil? && linked_doc.size == 1 && !$graph_conf.excluded?(linked_doc.first.type)
|
214
235
|
# TODO: add link['type'] to d3 graph
|
215
|
-
|
236
|
+
web_links << {
|
216
237
|
source: doc.url,
|
217
238
|
target: linked_doc.first.url,
|
218
239
|
}
|
@@ -228,7 +249,7 @@ module Jekyll
|
|
228
249
|
linked_doc = @md_docs.select{ |d| d.url == link_no_baseurl }
|
229
250
|
if !linked_doc.nil? && linked_doc.size == 1 && !$graph_conf.excluded?(linked_doc.first.type)
|
230
251
|
# TODO: add link['type'] to d3 graph
|
231
|
-
|
252
|
+
web_links << {
|
232
253
|
source: doc.url,
|
233
254
|
target: linked_doc.first.url,
|
234
255
|
}
|
@@ -239,7 +260,7 @@ module Jekyll
|
|
239
260
|
end
|
240
261
|
end
|
241
262
|
|
242
|
-
return
|
263
|
+
return web_nodes, web_links
|
243
264
|
end
|
244
265
|
|
245
266
|
# used for both plugins:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-graph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- manunamz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -24,34 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 4.2.0
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: jekyll-namespaces
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.3
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0.3
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: jekyll-wikilinks
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.0.11
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.0.11
|
55
27
|
description:
|
56
28
|
email:
|
57
29
|
- manunamz@pm.me
|