jekyll-graph 0.0.7 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ed0feb31f2a12640c7ba6611b2768a0d2424fff77a5d6909876e5f1b586abd0
4
- data.tar.gz: 856133d37f0c83fc570ea8437edea51a4181d5b43f8e832b310ea17a08966a4c
3
+ metadata.gz: de4fcabd768803478de94c420777d5c869ef3413cf310fad0a787df5de651291
4
+ data.tar.gz: dbb8770a7bfd68bde812fc99e45cf048a3f8edef25fc2f02435eaa6aa9047e8a
5
5
  SHA512:
6
- metadata.gz: 7cff6886e6391bb8920746f0f248fb13ed8f795841c66c714f0c91b158afa0c16253d82249941fee5b2b4e018a2d715af2fd4527509ab3af7d0626f415c52d68
7
- data.tar.gz: cbd240e478d07b67f92c8da3d8a31c261e3a3ea58a9052838b7fd4bb30da830dc37092c72453db65e2aab293a9bdf38d022f522cba227008947d3c45bfeb2275
6
+ metadata.gz: d7c26b4ee6344fb97217275054f1d6882eaaa0d137fbcfd6c76045a1819cdc95d351fd77794f0fb560cc5af44571def099d45c3c1a7d3be5fb05a7541c01cb4d
7
+ data.tar.gz: 8c020f044a5130b91222e1bc990a95f4fe04ceae3e27a29f7f1adce4fa1cc655acf080bbc87a6545e182ad96f92747627bf2a4da389722dd6c19e639780ffcf1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.0.8] - 2022-03-03
2
+ ### Change
3
+ - Update javascript setup instructions in README.
4
+ ### Fix
5
+ - Check 'visited' localstorage variable is not null.
1
6
  ## [0.0.7] - 2022-01-27
2
7
  ### Change
3
8
  - Bump jekyll-wikilinks version number (0.0.11).
data/README.md CHANGED
@@ -37,7 +37,7 @@ Follow the instructions for installing a [jekyll plugin](https://jekyllrb.com/do
37
37
  ```javascript
38
38
  import JekyllGraph from './jekyll-graph.js';
39
39
 
40
- export default class JekyllGraphSubClass extends JekyllGraph {
40
+ class JekyllGraphSubClass extends JekyllGraph {
41
41
 
42
42
  constructor() {
43
43
  super();
@@ -49,10 +49,27 @@ export default class JekyllGraphSubClass extends JekyllGraph {
49
49
  }
50
50
  ```
51
51
 
52
- Call `this.drawNetWeb()` and `this.drawTree()` to actually draw the graph. You could do this simply on initialization or on a button click, etc.
52
+ The import should point to the `jekyll-graph.js` javascript file generated by the plugin. Unless otherwise configured (see `path` vars below), the `jekyll-graph.js` file will be generated into `_site/assets/js/`. The sample javascript snippet above is presumed to be generated into `_site/assets/js/` as well.
53
53
 
54
- Unless otherwise configured (see `path` vars below), the `jekyll-graph.js` file will be generated into `_site/assets/js/`.
54
+ 4. Create a class instance:
55
55
 
56
+ ```javascript
57
+ var graph = new JekyllGraphSubClass();
58
+ ```
59
+
60
+ 5. Call `drawNetWeb()` and/or `drawTree()` to actually draw the graph. You could do this simply on initialization or on a button click, etc.
61
+
62
+ ```javascript
63
+ // on page load
64
+ (() => {
65
+ graph.drawNetWeb();
66
+ });
67
+
68
+ // on button click
69
+ this.graphBtn.addEventListener('click', () => {
70
+ graph.drawTree();
71
+ });
72
+ ```
56
73
  ## Configuration
57
74
 
58
75
  Default configs look like this:
@@ -127,6 +144,8 @@ No configurations are strictly necessary for plugin defaults to work.
127
144
  Graph colors are determined by css variables which may be defined like so -- any valid css color works (hex, rgba, etc.):
128
145
 
129
146
  ```CSS
147
+ /* make sure color vars are attached to the root of the html document */
148
+ html {
130
149
  /* nodes */
131
150
  /* glow */
132
151
  --graph-node-current-glow: yellow;
@@ -142,6 +161,7 @@ Graph colors are determined by css variables which may be defined like so -- any
142
161
  --graph-particles-color: grey;
143
162
  /* label text */
144
163
  --graph-text-color: black;
164
+ }
145
165
  ```
146
166
 
147
167
  ## Data
@@ -14,12 +14,12 @@ export default class JekyllGraph {
14
14
  // neighbors: replace ids with full object
15
15
  data.nodes.forEach(node => {
16
16
  let neighborNodes = [];
17
- node.neighbors.nodes.forEach(nNodeId => {
18
- neighborNodes.push(data.nodes.find(node => node.id === nNodeId));
17
+ node.neighbors.nodes.forEach(nodeId => {
18
+ neighborNodes.push(data.nodes.find(node => node.id === nodeId));
19
19
  });
20
20
  let neighborLinks = [];
21
- node.neighbors.links.forEach(nLink => {
22
- neighborLinks.push(data.links.find(link => link.source === nLink.source && link.target === nLink.target));
21
+ node.neighbors.links.forEach(linkIds => {
22
+ neighborLinks.push(data.links.find(link => link.source === linkIds.source && link.target === linkIds.target));
23
23
  });
24
24
  node.neighbors.nodes = neighborNodes;
25
25
  node.neighbors.links = neighborLinks;
@@ -131,15 +131,15 @@ export default class JekyllGraph {
131
131
  data.nodes.forEach(node => {
132
132
  // lineage
133
133
  let lineageNodes = [];
134
- node.lineage.nodes.forEach(nNodeId => {
135
- lineageNodes.push(data.nodes.find(node => node.id === nNodeId));
134
+ node.lineage.nodes.forEach(nodeId => {
135
+ lineageNodes.push(data.nodes.find(node => node.id === nodeId));
136
136
  });
137
- let relativeLinks = [];
138
- node.lineage.links.forEach(nLink => {
139
- relativeLinks.push(data.links.find(link => link.source === nLink.source && link.target === nLink.target));
137
+ let lineageLinks = [];
138
+ node.lineage.links.forEach(linkIds => {
139
+ lineageLinks.push(data.links.find(link => link.source === linkIds.source && link.target === linkIds.target));
140
140
  });
141
141
  node.lineage.nodes = lineageNodes;
142
- node.lineage.links = relativeLinks;
142
+ node.lineage.links = lineageLinks;
143
143
  // siblings
144
144
  this.numSiblingsLeft[node.parent] = node.siblings.length;
145
145
  });
@@ -227,7 +227,7 @@ export default class JekyllGraph {
227
227
  // draw helpers
228
228
 
229
229
  shiftNodeHeight(node) {
230
- if (node.namespace !== 'root' && !this.shifted.includes(node)) {
230
+ if ((node.namespace !== 'root') && (node.namespace !== 'i.bonsai') && !this.shifted.includes(node)) {
231
231
  const padding = 5;
232
232
  let areSiblingsLeftEven = (this.numSiblingsLeft[node.parent] % 2) === 1;
233
233
  let altrntr = areSiblingsLeftEven ? 1 : -1;
@@ -338,8 +338,10 @@ export default class JekyllGraph {
338
338
  isVisitedPage(node) {
339
339
  if (!this.isMissingPage(node)) {
340
340
  var visited = JSON.parse(localStorage.getItem('visited'));
341
- for (let i = 0; i < visited.length; i++) {
342
- if (visited[i]['url'] === node.url) return true;
341
+ if (visited !== null) {
342
+ for (let i = 0; i < visited.length; i++) {
343
+ if (visited[i]['url'] === node.url) return true;
344
+ }
343
345
  }
344
346
  }
345
347
  return false;
@@ -3,7 +3,7 @@
3
3
  module Jekyll
4
4
  module Graph
5
5
 
6
- VERSION = "0.0.7"
6
+ VERSION = "0.0.9"
7
7
 
8
8
  end
9
9
  end
data/lib/jekyll-graph.rb CHANGED
@@ -37,7 +37,7 @@ module Jekyll
37
37
  return
38
38
  end
39
39
  if !$graph_conf.disabled_tree? && !site.respond_to?(:tree)
40
- Jekyll.logger.error("Jekyll-Graph: To generate the tree graph, please either add and enable the 'jekyll-namespaces' plugin or disable the tree in the jekyll-graph config")
40
+ Jekyll.logger.error("Jekyll-Graph: To generate the tree graph, please either add and enable the 'jekyll-semtree' or 'jekyll-namespaces' plugin, or disable the tree in the jekyll-graph config")
41
41
  return
42
42
  end
43
43
 
@@ -173,7 +173,7 @@ module Jekyll
173
173
  #
174
174
  @site.link_index.index[doc.url].missing.each do |missing_link_name|
175
175
  if net_web_nodes.none? { |node| node[:id] == missing_link_name }
176
- Jekyll.logger.warn("Jekyll-Graph: Net-Web node missing: #{missing_link_name}, in: #{doc.data['title']}")
176
+ Jekyll.logger.warn("Jekyll-Graph: Net-Web node missing: #{missing_link_name}, in: #{File.basename(doc.basename, File.extname(doc.basename))}")
177
177
  net_web_nodes << {
178
178
  id: missing_link_name, # an id is necessary for link targets
179
179
  url: '',
@@ -242,18 +242,24 @@ module Jekyll
242
242
  return net_web_nodes, net_web_links
243
243
  end
244
244
 
245
+ # used for both plugins:
246
+ # jekyll-semtree
247
+ # jekyll-namespace
245
248
  def generate_json_tree(node, json_parent="", tree_nodes=[], tree_links=[], level=0)
249
+ node = node.is_a?(String) ? @site.tree.nodes.detect { |n| n.text == node } : node
246
250
  #
247
251
  # missing nodes
248
252
  #
249
253
  if node.missing
250
- Jekyll.logger.warn("Jekyll-Graph: Document for tree node missing: ", node.namespace)
254
+ missing_text = node.namespace ? node.namespace : node.text
255
+ Jekyll.logger.warn("Jekyll-Graph: Tree node missing: ", missing_text)
251
256
 
252
- leaf = node.namespace.split('.').pop()
257
+ if node.namespace
258
+ leaf = node.namespace.split('.').pop()
259
+ end
253
260
  missing_node = {
254
- id: node.namespace,
255
- label: leaf.gsub('-', ' '),
256
- namespace: node.namespace,
261
+ id: node.namespace ? node.namespace : node.text,
262
+ label: node.namespace ? leaf.gsub('-', ' ') : node.text,
257
263
  url: "",
258
264
  level: level,
259
265
  lineage: {
@@ -262,12 +268,15 @@ module Jekyll
262
268
  },
263
269
  siblings: [],
264
270
  }
271
+ if node.namespace
272
+ missing_node['namespace'] = node.namespace
273
+ end
265
274
  # non-root handling
266
275
  if !json_parent.empty?
267
276
  missing_node[:parent] = json_parent[:id]
268
277
  tree_links << {
269
278
  source: json_parent[:id],
270
- target: node.namespace,
279
+ target: node.namespace ? node.namespace : node.text,
271
280
  }
272
281
  end
273
282
  tree_nodes << missing_node
@@ -279,7 +288,6 @@ module Jekyll
279
288
  existing_node = {
280
289
  id: node.url,
281
290
  label: node.title,
282
- namespace: node.namespace,
283
291
  url: relative_url(node.url),
284
292
  level: level,
285
293
  lineage: {
@@ -288,6 +296,9 @@ module Jekyll
288
296
  },
289
297
  siblings: [],
290
298
  }
299
+ if node.namespace
300
+ existing_node['namespace'] = node.namespace
301
+ end
291
302
  # non-root handling
292
303
  if !json_parent.empty?
293
304
  existing_node[:parent] = json_parent[:id]
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.7
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - manunamz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-27 00:00:00.000000000 Z
11
+ date: 2023-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
102
  requirements: []
103
- rubygems_version: 3.2.27
103
+ rubygems_version: 3.4.10
104
104
  signing_key:
105
105
  specification_version: 4
106
106
  summary: Add d3 graph generation to jekyll.