diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-01-13 19:12:46 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-01-13 21:19:10 -0400 |
commit | e8f8306cf85288c1f424a4d31cfc50c2aac2ccab (patch) | |
tree | cad7f1f8b39d48c1be2a61cccc2b156efbd5f8b0 /src/content | |
parent | a3dca62ee1cd0c1da0a8952bbbf62fb55ce7319f (diff) |
content, css, test: linkThing: wiki tooltip
Diffstat (limited to 'src/content')
-rw-r--r-- | src/content/dependencies/linkThing.js | 53 |
1 files changed, 41 insertions, 12 deletions
diff --git a/src/content/dependencies/linkThing.js b/src/content/dependencies/linkThing.js index 4c38c51d..d1f6a097 100644 --- a/src/content/dependencies/linkThing.js +++ b/src/content/dependencies/linkThing.js @@ -1,5 +1,11 @@ export default { - contentDependencies: ['generateColorStyleAttribute', 'linkTemplate'], + contentDependencies: [ + 'generateColorStyleAttribute', + 'generateTextWithTooltip', + 'generateTooltip', + 'linkTemplate', + ], + extraDependencies: ['html', 'language'], relations: (relation, _pathKey, thing) => ({ @@ -8,6 +14,12 @@ export default { colorStyle: relation('generateColorStyleAttribute', thing.color ?? null), + + textWithTooltip: + relation('generateTextWithTooltip'), + + tooltip: + relation('generateTooltip'), }), data: (pathKey, thing) => ({ @@ -37,8 +49,8 @@ export default { }, tooltipStyle: { - validate: v => v.is('none', 'browser'), - default: 'none', + validate: v => v.is('none', 'auto', 'browser', 'wiki'), + default: 'auto', }, color: { @@ -79,6 +91,18 @@ export default { ? data.nameShort : data.name); + const showWikiTooltip = + (slots.tooltipStyle === 'auto' + ? showShortName + : slots.tooltipStyle === 'wiki'); + + const wikiTooltip = + showWikiTooltip && + relations.tooltip.slots({ + attributes: {class: 'thing-name-tooltip'}, + content: data.name, + }); + if (slots.tooltipStyle === 'browser') { attributes.add('title', data.name); } @@ -100,14 +124,19 @@ export default { attributes.add(colorStyle); } - return relations.linkTemplate - .slots({ - path: slots.anchor ? [] : path, - href: slots.anchor ? '' : null, - content, - attributes, - hash: slots.hash, - linkless: slots.linkless, - }); + return relations.textWithTooltip.slots({ + text: + relations.linkTemplate.slots({ + path: slots.anchor ? [] : path, + href: slots.anchor ? '' : null, + content, + attributes, + hash: slots.hash, + linkless: slots.linkless, + }), + + tooltip: + wikiTooltip ?? null, + }); }, } |