diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-01-01 15:13:51 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-01-01 15:16:33 -0400 |
| commit | 07059614fb0e5b64950b21abdd46b99deb481dfd (patch) | |
| tree | d46473073ebfccff8fd10eb98c57309a7e776688 /src/content/dependencies/getContentEntryTotals.js | |
| parent | 22c69347998f1ca076f9131567903cd983cb5960 (diff) | |
content: getContentEntryTotals
Diffstat (limited to 'src/content/dependencies/getContentEntryTotals.js')
| -rw-r--r-- | src/content/dependencies/getContentEntryTotals.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/content/dependencies/getContentEntryTotals.js b/src/content/dependencies/getContentEntryTotals.js new file mode 100644 index 00000000..ce590887 --- /dev/null +++ b/src/content/dependencies/getContentEntryTotals.js @@ -0,0 +1,29 @@ +import multilingualWordCount from 'word-count'; + +import {accumulateSum} from '#sugar'; + +export default { + relations: (relation, entries) => ({ + bodies: + entries + .map(entry => relation('transformContent', entry.body)), + }), + + data: (entries) => ({ + entries: + entries.length, + }), + + generate: (data, relations, {html}) => ({ + entryCount: + data.entries, + + wordCount: + accumulateSum( + relations.bodies.flatMap(body => + multilingualWordCount( + html.resolve( + body.slot('mode', 'multiline'), + {normalize: 'plain'})))), + }), +}; \ No newline at end of file |