From e252a39bd2e08dfd7f58ce2991edb8400dc3e71f Mon Sep 17 00:00:00 2001 From: David Bolack Date: Sun, 1 Dec 2024 11:41:29 -0600 Subject: [PATCH 1/4] Implement Gazook89's suggested fix --- client/homebrew/brewRenderer/brewRenderer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 36d263040..5eba86a6a 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -217,7 +217,7 @@ const BrewRenderer = (props)=>{ } const renderedStyle = useMemo(()=>renderStyle(), [props.style, props.themeBundle]); - renderedPages = useMemo(()=>renderPages(), [props.text]); + renderedPages = useMemo(()=>renderPages(), [displayOptions.pageShadows, props.text]); return ( <> From e17db0788c0b07ff03cdcbd166ae7f3503b28993 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 2 Dec 2024 16:18:18 +1300 Subject: [PATCH 2/4] Convert any `tags` strings to arrays --- shared/helpers.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shared/helpers.js b/shared/helpers.js index d60da885d..e0e66fc35 100644 --- a/shared/helpers.js +++ b/shared/helpers.js @@ -21,6 +21,8 @@ const splitTextStyleAndMetadata = (brew)=>{ brew.snippets = brew.text.slice(11, index - 1); brew.text = brew.text.slice(index + 5); } + + if(typeof brew.tags === 'string') brew.tags = brew.tags ? [brew.tags] : []; }; const printCurrentBrew = ()=>{ From 4b21538e3ef581ea31d1205e012f487a13ea6900 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 2 Dec 2024 17:14:45 +1300 Subject: [PATCH 3/4] Add splitTextStyleAndMetadata tests --- server/homebrew.api.spec.js | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/server/homebrew.api.spec.js b/server/homebrew.api.spec.js index 84ffc3052..814db26f8 100644 --- a/server/homebrew.api.spec.js +++ b/server/homebrew.api.spec.js @@ -1,5 +1,7 @@ /* eslint-disable max-lines */ +import { splitTextStyleAndMetadata } from '../shared/helpers.js'; + describe('Tests for api', ()=>{ let api; let google; @@ -968,4 +970,57 @@ brew`); expect(res.send).toHaveBeenCalledWith(''); }); }); + describe('Split Text, Style, and Metadata', ()=>{ + + it('basic splitting', async ()=>{ + const testBrew = { + text : '```metadata\n' + + 'title: title\n' + + 'description: description\n' + + 'tags: [ \'tag a\' , \'tag b\' ]\n' + + 'systems: [ test system ]\n' + + 'renderer: legacy\n' + + 'theme: 5ePHB\n' + + 'lang: en\n' + + '\n' + + '```\n' + + '\n' + + '```css\n' + + 'style\n' + + 'style\n' + + 'style\n' + + '```\n' + + '\n' + + 'text\n' + }; + + splitTextStyleAndMetadata(testBrew); + + // Metadata + expect(testBrew.title).toEqual('title'); + expect(testBrew.description).toEqual('description'); + expect(testBrew.tags).toEqual(['tag a', 'tag b']); + expect(testBrew.systems).toEqual(['test system']); + expect(testBrew.renderer).toEqual('legacy'); + expect(testBrew.theme).toEqual('5ePHB'); + expect(testBrew.lang).toEqual('en'); + // Style + expect(testBrew.style).toEqual('style\nstyle\nstyle'); + // Text + expect(testBrew.text).toEqual('text\n'); + }); + + it('convert tags string to array', async ()=>{ + const testBrew = { + text : '```metadata\n' + + 'tags: tag a\n' + + '```\n\n' + }; + + splitTextStyleAndMetadata(testBrew); + + // Metadata + expect(testBrew.tags).toEqual(['tag a']); + }); + }); }); From 9f9948f5315aa7334aba0c0cb53b3382f3997a2e Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Mon, 2 Dec 2024 12:23:54 -0500 Subject: [PATCH 4/4] Add comment --- shared/helpers.js | 1 + 1 file changed, 1 insertion(+) diff --git a/shared/helpers.js b/shared/helpers.js index e0e66fc35..b2190cdcd 100644 --- a/shared/helpers.js +++ b/shared/helpers.js @@ -22,6 +22,7 @@ const splitTextStyleAndMetadata = (brew)=>{ brew.text = brew.text.slice(index + 5); } + // Handle old brews that still have empty strings in the tags metadata if(typeof brew.tags === 'string') brew.tags = brew.tags ? [brew.tags] : []; };