From a1bfa1d0d68890ebd5811bd46455d10be4bbc17d Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 4 Oct 2023 13:16:50 -0300 Subject: support art tag info pages; ensure "art tag" terminology everywhere --- src/data/composite/things/art-tag/index.js | 2 +- .../things/art-tag/withAllDescendantArtTags.js | 45 ++++++++++++++++++++++ .../things/art-tag/withAllDescendantTags.js | 45 ---------------------- src/data/things/art-tag.js | 24 ++++++------ src/data/yaml.js | 4 +- 5 files changed, 61 insertions(+), 59 deletions(-) create mode 100644 src/data/composite/things/art-tag/withAllDescendantArtTags.js delete mode 100644 src/data/composite/things/art-tag/withAllDescendantTags.js (limited to 'src/data') diff --git a/src/data/composite/things/art-tag/index.js b/src/data/composite/things/art-tag/index.js index aedc3a0c..0c365ce2 100644 --- a/src/data/composite/things/art-tag/index.js +++ b/src/data/composite/things/art-tag/index.js @@ -1 +1 @@ -export {default as withAllDescendantTags} from './withAllDescendantTags.js'; +export {default as withAllDescendantArtTags} from './withAllDescendantArtTags.js'; diff --git a/src/data/composite/things/art-tag/withAllDescendantArtTags.js b/src/data/composite/things/art-tag/withAllDescendantArtTags.js new file mode 100644 index 00000000..c643cf23 --- /dev/null +++ b/src/data/composite/things/art-tag/withAllDescendantArtTags.js @@ -0,0 +1,45 @@ +// Gets all the art tags which descend from this one - that means its own direct +// descendants, but also all the direct and indirect desceands of each of those! +// The results aren't specially sorted, but they won't contain any duplicates +// (for example if two descendant tags both route deeper to end up including +// some of the same tags). + +import {input, templateCompositeFrom} from '#composite'; +import find from '#find'; +import {unique} from '#sugar'; + +import {raiseOutputWithoutDependency} from '#composite/control-flow'; +import {withResolvedReferenceList} from '#composite/wiki-data'; + +export default templateCompositeFrom({ + annotation: `withAllDescendantArtTags`, + + outputs: ['#allDescendantArtTags'], + + steps: () => [ + raiseOutputWithoutDependency({ + dependency: 'directDescendantArtTags', + mode: input.value('empty'), + output: input.value({'#allDescendantArtTags': []}) + }), + + withResolvedReferenceList({ + list: 'directDescendantArtTags', + data: 'artTagData', + find: input.value(find.artTag), + }), + + { + dependencies: ['#resolvedReferenceList'], + compute: (continuation, { + ['#resolvedReferenceList']: directDescendantArtTags, + }) => continuation({ + ['#allDescendantArtTags']: + unique([ + ...directDescendantArtTags, + ...directDescendantArtTags.flatMap(artTag => artTag.allDescendantArtTags), + ]), + }), + }, + ], +}) diff --git a/src/data/composite/things/art-tag/withAllDescendantTags.js b/src/data/composite/things/art-tag/withAllDescendantTags.js deleted file mode 100644 index b832e529..00000000 --- a/src/data/composite/things/art-tag/withAllDescendantTags.js +++ /dev/null @@ -1,45 +0,0 @@ -// Gets all the tags which descend from this one - that means its own direct -// descendants, but also all the direct and indirect desceands of each of those! -// The results aren't specially sorted, but they won't contain any duplicates -// (for example if two descendant tags both route deeper to end up including -// some of the same tags). - -import {input, templateCompositeFrom} from '#composite'; -import find from '#find'; -import {unique} from '#sugar'; - -import {raiseOutputWithoutDependency} from '#composite/control-flow'; -import {withResolvedReferenceList} from '#composite/wiki-data'; - -export default templateCompositeFrom({ - annotation: `withAllDescendantTags`, - - outputs: ['#allDescendantTags'], - - steps: () => [ - raiseOutputWithoutDependency({ - dependency: 'directDescendantTags', - mode: input.value('empty'), - output: input.value({'#allDescendantTags': []}) - }), - - withResolvedReferenceList({ - list: 'directDescendantTags', - data: 'artTagData', - find: input.value(find.artTag), - }), - - { - dependencies: ['#resolvedReferenceList'], - compute: (continuation, { - ['#resolvedReferenceList']: directDescendantTags, - }) => continuation({ - ['#allDescendantTags']: - unique([ - ...directDescendantTags, - ...directDescendantTags.flatMap(tag => tag.allDescendantTags), - ]), - }), - }, - ], -}) diff --git a/src/data/things/art-tag.js b/src/data/things/art-tag.js index d86800de..50526691 100644 --- a/src/data/things/art-tag.js +++ b/src/data/things/art-tag.js @@ -18,7 +18,7 @@ import { wikiData, } from '#composite/wiki-properties'; -import {withAllDescendantTags} from '#composite/things/art-tag'; +import {withAllDescendantArtTags} from '#composite/things/art-tag'; import Thing from './thing.js'; @@ -47,7 +47,7 @@ export class ArtTag extends Thing { description: simpleString(), - directDescendantTags: referenceList({ + directDescendantArtTags: referenceList({ class: input.value(ArtTag), find: input.value(find.artTag), data: 'artTagData', @@ -88,23 +88,25 @@ export class ArtTag extends Thing { }, indirectlyTaggedInThings: [ - withAllDescendantTags(), + withAllDescendantArtTags(), { - dependencies: ['#allDescendantTags'], - compute: ({'#allDescendantTags': allDescendantTags}) => - unique(allDescendantTags.flatMap(tag => tag.directlyTaggedInThings)), + dependencies: ['#allDescendantArtTags'], + compute: ({'#allDescendantArtTags': allDescendantArtTags}) => + unique( + allDescendantArtTags + .flatMap(artTag => artTag.directlyTaggedInThings)), }, ], - allDescendantTags: [ - withAllDescendantTags(), - exposeDependency({dependency: '#allDescendantTags'}), + allDescendantArtTags: [ + withAllDescendantArtTags(), + exposeDependency({dependency: '#allDescendantArtTags'}), ], - directAncestorTags: reverseReferenceList({ + directAncestorArtTags: reverseReferenceList({ data: 'artTagData', - list: input.value('directDescendantTags'), + list: input.value('directDescendantArtTags'), }), }); } diff --git a/src/data/yaml.js b/src/data/yaml.js index c8916fb8..61a9308d 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -464,7 +464,7 @@ export const processArtTagDocument = makeProcessDocument(T.ArtTag, { color: 'Color', isContentWarning: 'Is CW', - directDescendantTags: 'Direct Descendant Tags', + directDescendantArtTags: 'Direct Descendant Tags', }, }); @@ -1481,7 +1481,7 @@ export function filterReferenceErrors(wikiData) { }], ['artTagData', processArtTagDocument, { - directDescendantTags: 'artTag', + directDescendantArtTags: 'artTag', }], ['trackData', processTrackDocument, { -- cgit 1.3.0-6-gf8a5