-
{{label}}
+ {{#if link}}
+
{{label}}
+ {{else}}
+
{{label}}
+ {{/if}}
{{#each children}}
{{> decomposition this}}
{{/each}}
@@ -49,7 +53,7 @@
{{#each metadata}}
-
{{value}}
+
{{{linkify value}}}
{{/each}}
diff --git a/client/character.js b/client/character.js
index 3dcb07e2..3cd436e9 100644
--- a/client/character.js
+++ b/client/character.js
@@ -18,6 +18,9 @@ const augmentTreeWithLabels = (node, dependencies) => {
node.children.map((child) => augmentTreeWithLabels(child, dependencies));
} else {
node.label = dependencies[node.value] || '(unknown)';
+ if (dependencies[node.value]) {
+ node.link = `#/codepoint/${node.value.charCodeAt(0)}`;
+ }
}
}
@@ -122,11 +125,26 @@ const resize = () => {
// Meteor template bindings.
+const linkify = (value) => {
+ const result = [];
+ for (let character of value) {
+ if (character.match(/[\u3400-\u9FBF]/)) {
+ result.push(`