From 543d18f9d942bf64fd45e41c1286d8489a2eb246 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Thu, 13 Mar 2025 12:22:08 +1300 Subject: [PATCH] Add written number functions --- shared/naturalcrit/markdown.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index de2a5aeec..fda410c36 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -9,6 +9,7 @@ import { gfmHeadingId as MarkedGFMHeadingId, resetHeadings as MarkedGFMResetHead import { markedEmoji as MarkedEmojis } from 'marked-emoji'; import MarkedSubSuperText from 'marked-subsuper-text'; import { romanize } from 'romans'; +import writtenNumber from 'written-number'; //Icon fonts included so they can appear in emoji autosuggest dropdown import diceFont from '../../themes/fonts/iconFonts/diceFont.js'; @@ -84,6 +85,22 @@ mathParser.functions.toCharUpper = function (a) { mathParser.functions.toCharLower = function (a) { return mathParser.functions.toChar(a).toLowerCase(); }; +// Add word functions +mathParser.functions.toWords = function (a) { + return writtenNumber(a); +}; +mathParser.functions.toWordsUpper = function (a) { + return mathParser.functions.toWords(a).toUpperCase(); +}; +mathParser.functions.toWordsLower = function (a) { + return mathParser.functions.toWords(a).toLowerCase(); +}; +mathParser.functions.toWordsCamel = function (a) { + const words = mathParser.functions.toWords(a).split(' '); + return words.map((word)=>{ + return _.capitalize(word); + }).join(' '); +}; //Processes the markdown within an HTML block if it's just a class-wrapper renderer.html = function (token) {