From dc3243ae599616613c972d69f68c992918803fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 11 Aug 2023 15:08:49 +0200 Subject: [PATCH 1/8] back cover should not create a page after itself --- themes/V3/5ePHB/snippets/coverpage.gen.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/themes/V3/5ePHB/snippets/coverpage.gen.js b/themes/V3/5ePHB/snippets/coverpage.gen.js index 865269f92..b662aaaa6 100644 --- a/themes/V3/5ePHB/snippets/coverpage.gen.js +++ b/themes/V3/5ePHB/snippets/coverpage.gen.js @@ -149,8 +149,6 @@ module.exports = { ![](/assets/naturalCritLogoWhite.svg) Homebrewery.Naturalcrit.com - }} - - \page`; + }}`; } }; From 4347debf4525c69b65f1480299bc3d9ae8d12086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 11 Aug 2023 15:10:08 +0200 Subject: [PATCH 2/8] unsetting footer should use display property --- themes/V3/5ePHB/style.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index c6e87c40a..f16dc7d18 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -684,7 +684,7 @@ h5 + table{ columns : 1; text-align : center; &:after { - all: unset; + display: none; } h1 { text-shadow: unset; @@ -828,7 +828,7 @@ h5 + table{ columns: 1; padding: 2.25cm 1.3cm 2cm 1.3cm; &:after { - all: unset; + display: none; } .columnWrapper { width: 7.6cm; From a889fa657ec0d0ec99916553d8e4aa102e927860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 11 Aug 2023 15:18:16 +0200 Subject: [PATCH 3/8] display prop again --- themes/V3/5ePHB/style.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index f16dc7d18..1f998b63b 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -780,7 +780,7 @@ h5 + table{ columns : 1; text-align : center; &:after { - all : unset; + display : none; } h1 { font-family : NodestoCapsCondensed; From 3d5f99adaee814e2235bd5bce0237ef88d1111c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Fri, 11 Aug 2023 15:30:33 +0200 Subject: [PATCH 4/8] covers em to cm --- themes/V3/5ePHB/style.less | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 1f998b63b..7c2ccb78c 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -598,7 +598,7 @@ body { // *****************************/ .page .spellList{ .useSansSerif(); - column-count : 2; + column-count : 2; ul+h5{ margin-top : 15px; } @@ -699,7 +699,7 @@ h5 + table{ color : white; font-family : NodestoCapsCondensed; font-size : 2.245cm; - line-height : 0.85em; + line-height : 1.9cm; } h2 { filter : drop-shadow(0 0 1px black) drop-shadow(0 0 0 black) @@ -783,13 +783,13 @@ h5 + table{ display : none; } h1 { - font-family : NodestoCapsCondensed; - font-weight : normal; - font-size : 2.1cm; - margin-top : 1.2cm; + font-family : NodestoCapsCondensed; + font-weight : normal; + font-size : 2.1cm; + margin-top : 1.2cm; margin-bottom : 0; text-transform : uppercase; - line-height : 0.85em; + line-height : 1.785cm; } h2 { font-family : NodestoCapsCondensed; @@ -848,7 +848,7 @@ h5 + table{ h1 { margin-bottom: .3cm; font-size: 1.35cm; - line-height: 0.95em; + line-height: 1.28cm; font-family: NodestoCapsCondensed; text-align: center; color: #ED1C24; @@ -876,8 +876,8 @@ h5 + table{ } p { font-family: Overpass; - line-height: 1.5em; font-size: 0.332cm; + line-height: 0.5cm; } hr+p { text-align: center; @@ -901,8 +901,8 @@ h5 + table{ color: #fff; font-family: NodestoCapsWide; font-size: .4cm; - letter-spacing: 0.08em; - line-height: 1em; + letter-spacing: 0.036cm; + line-height: .4cm; text-align: center; text-indent: 0; width: 100%; @@ -942,8 +942,8 @@ h5 + table{ font-family: Overpass; font-size: 0.45cm; position: relative; - margin-top: -0.7em; - line-height: 1.1em; + margin-top: -0.315cm; + line-height: 0.495cm; margin-left : auto; margin-right : auto; } From 8a15172db19cdb655bae375a16d88a4ba11f4ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 2 Apr 2024 14:09:53 +0200 Subject: [PATCH 5/8] pull from master and suggested fixes --- client/homebrew/brewRenderer/brewRenderer.jsx | 6 +- .../notificationPopup/notificationPopup.jsx | 4 +- .../homebrew/editor/snippetbar/snippetbar.jsx | 4 +- client/homebrew/navbar/error-navitem.jsx | 10 +- client/homebrew/navbar/newbrew.navitem.jsx | 94 +++++++++---------- .../pages/basePages/listPage/listPage.jsx | 4 +- client/homebrew/pages/printPage/printPage.jsx | 10 +- server/admin.api.js | 2 +- shared/helpers.js | 30 +++--- shared/naturalcrit/codeEditor/codeEditor.jsx | 2 +- themes/V3/5ePHB/snippets/quote.gen.js | 68 +++++++------- .../V3/5ePHB/snippets/tableOfContents.gen.js | 2 +- themes/V3/5ePHB/style.less | 2 +- themes/V3/Blank/snippets.js | 70 +++++++------- 14 files changed, 154 insertions(+), 154 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index ed64c363b..89a75ec79 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -211,11 +211,11 @@ const BrewRenderer = (props)=>{ - + {baseThemePath && - + } - + {/* Apply CSS from Style tab and render pages from Markdown tab */} {state.isMounted diff --git a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx index 5a870c108..c08cf4f03 100644 --- a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx +++ b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx @@ -26,8 +26,8 @@ const NotificationPopup = createClass({ <>
  • Don't store IMAGES in Google Drive
    - Google Drive is not an image service, and will block images from being used - in brews if they get more views than expected. Google has confirmed they won't fix + Google Drive is not an image service, and will block images from being used + in brews if they get more views than expected. Google has confirmed they won't fix this, so we recommend you look for another image hosting service such as imgur, ImgBB or Google Photos.
  • diff --git a/client/homebrew/editor/snippetbar/snippetbar.jsx b/client/homebrew/editor/snippetbar/snippetbar.jsx index 75fe0d736..80a97f49e 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.jsx +++ b/client/homebrew/editor/snippetbar/snippetbar.jsx @@ -161,7 +161,7 @@ const Snippetbar = createClass({ onClick={this.props.unfoldCode} > - + ; } @@ -181,7 +181,7 @@ const Snippetbar = createClass({ {this.state.themeSelector && this.renderThemeSelector()} - +
    this.props.onViewChange('text')}> diff --git a/client/homebrew/navbar/error-navitem.jsx b/client/homebrew/navbar/error-navitem.jsx index 8551408c5..59e05a253 100644 --- a/client/homebrew/navbar/error-navitem.jsx +++ b/client/homebrew/navbar/error-navitem.jsx @@ -42,7 +42,7 @@ const ErrorNavItem = createClass({
    ; } - + if(status === 412) { return Oops! @@ -51,7 +51,7 @@ const ErrorNavItem = createClass({ ; } - + if(HBErrorCode === '04') { return Oops! @@ -76,10 +76,10 @@ const ErrorNavItem = createClass({ if(response.body?.errors?.[0].reason == 'storageQuotaExceeded') { return Oops! -
    +
    Can't save because your Google Drive seems to be full! -
    - ; +
    +
    ; } if(response.req.url.match(/^\/api.*Google.*$/m)){ diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 319ef3392..30d53c675 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -7,58 +7,58 @@ const BREWKEY = 'homebrewery-new'; const STYLEKEY = 'homebrewery-new-style'; const METAKEY = 'homebrewery-new-meta'; -const NewBrew = () => { - const handleFileChange = (e) => { - const file = e.target.files[0]; - if (file) { - const reader = new FileReader(); - reader.onload = (e) => { - const fileContent = e.target.result; - const newBrew = { - text: fileContent, - style: '' - }; - if(fileContent.startsWith('```metadata')) { - splitTextStyleAndMetadata(newBrew); // Modify newBrew directly - localStorage.setItem(BREWKEY, newBrew.text); - localStorage.setItem(STYLEKEY, newBrew.style); - localStorage.setItem(METAKEY, JSON.stringify(_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); - window.location.href = '/new'; - } else { - alert('This file is invalid, please, enter a valid file'); - } - }; - reader.readAsText(file); - } - }; +const NewBrew = ()=>{ + const handleFileChange = (e)=>{ + const file = e.target.files[0]; + if(file) { + const reader = new FileReader(); + reader.onload = (e)=>{ + const fileContent = e.target.result; + const newBrew = { + text : fileContent, + style : '' + }; + if(fileContent.startsWith('```metadata')) { + splitTextStyleAndMetadata(newBrew); // Modify newBrew directly + localStorage.setItem(BREWKEY, newBrew.text); + localStorage.setItem(STYLEKEY, newBrew.style); + localStorage.setItem(METAKEY, JSON.stringify(_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); + window.location.href = '/new'; + } else { + alert('This file is invalid, please, enter a valid file'); + } + }; + reader.readAsText(file); + } + }; - return ( - - + return ( + + new - - + + from blank - + - { document.getElementById('uploadTxt').click(); }}> - + { document.getElementById('uploadTxt').click(); }}> + from file - - - ); +
    + + ); }; module.exports = NewBrew; diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index 0b51609b5..ec557ffb1 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -262,8 +262,8 @@ const ListPage = createClass({ render : function(){ return
    {/**/} - - + + {this.props.navItems} {this.renderSortOptions()} {this.renderTagsOptions()} diff --git a/client/homebrew/pages/printPage/printPage.jsx b/client/homebrew/pages/printPage/printPage.jsx index 9a5a80dbf..29ecbab66 100644 --- a/client/homebrew/pages/printPage/printPage.jsx +++ b/client/homebrew/pages/printPage/printPage.jsx @@ -34,7 +34,7 @@ const PrintPage = createClass({ style : this.props.brew.style || undefined, renderer : this.props.brew.renderer || 'legacy', theme : this.props.brew.theme || '5ePHB', - lang : this.props.brew.lang || 'en' + lang : this.props.brew.lang || 'en' } }; }, @@ -52,7 +52,7 @@ const PrintPage = createClass({ style : styleStorage, renderer : metaStorage?.renderer || 'legacy', theme : metaStorage?.theme || '5ePHB', - lang : metaStorage?.lang || 'en' + lang : metaStorage?.lang || 'en' } }; }); @@ -96,11 +96,11 @@ const PrintPage = createClass({ return
    - + {baseThemePath && - + } - + {/* Apply CSS from Style tab */} {this.renderStyle()}
    diff --git a/server/admin.api.js b/server/admin.api.js index 5363ecc08..fe2def3ce 100644 --- a/server/admin.api.js +++ b/server/admin.api.js @@ -30,7 +30,7 @@ const junkBrewPipeline = [ { $match : { updatedAt : { $lt: Moment().subtract(30, 'days').toDate() }, lastViewed : { $lt: Moment().subtract(30, 'days').toDate() } - }}, + } }, { $project: { textBinSize: { $binarySize: '$textBin' } } }, { $match: { textBinSize: { $lt: 140 } } }, { $limit: 100 } diff --git a/shared/helpers.js b/shared/helpers.js index 5abb93fea..42dd09e3f 100644 --- a/shared/helpers.js +++ b/shared/helpers.js @@ -1,22 +1,22 @@ const _ = require('lodash'); const yaml = require('js-yaml'); -const splitTextStyleAndMetadata = (brew) => { - brew.text = brew.text.replaceAll('\r\n', '\n'); - if (brew.text.startsWith('```metadata')) { - const index = brew.text.indexOf('```\n\n'); - const metadataSection = brew.text.slice(12, index - 1); - const metadata = yaml.load(metadataSection); - Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); - brew.text = brew.text.slice(index + 5); - } - if (brew.text.startsWith('```css')) { - const index = brew.text.indexOf('```\n\n'); - brew.style = brew.text.slice(7, index - 1); - brew.text = brew.text.slice(index + 5); - } +const splitTextStyleAndMetadata = (brew)=>{ + brew.text = brew.text.replaceAll('\r\n', '\n'); + if(brew.text.startsWith('```metadata')) { + const index = brew.text.indexOf('```\n\n'); + const metadataSection = brew.text.slice(12, index - 1); + const metadata = yaml.load(metadataSection); + Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); + brew.text = brew.text.slice(index + 5); + } + if(brew.text.startsWith('```css')) { + const index = brew.text.indexOf('```\n\n'); + brew.style = brew.text.slice(7, index - 1); + brew.text = brew.text.slice(index + 5); + } }; module.exports = { - splitTextStyleAndMetadata + splitTextStyleAndMetadata }; diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index a5232a42b..486408332 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -436,7 +436,7 @@ const CodeEditor = createClass({ render : function(){ return <> - +
    ; } diff --git a/themes/V3/5ePHB/snippets/quote.gen.js b/themes/V3/5ePHB/snippets/quote.gen.js index c5e3d6293..c2a233255 100644 --- a/themes/V3/5ePHB/snippets/quote.gen.js +++ b/themes/V3/5ePHB/snippets/quote.gen.js @@ -1,47 +1,47 @@ -const _ = require("lodash"); +const _ = require('lodash'); const quotes = [ - "The sword glinted in the dim light, its edges keen and deadly. As the adventurer reached for it, he couldn't help but feel a surge of excitement mixed with fear. This was no ordinary blade.", - "The dragon's roar shook the ground beneath their feet, and the brave knight stood tall, his sword at the ready. He knew that this would be the battle of his life, but he was determined to emerge victorious.", - "The wizard's laboratory was a sight to behold, filled with bubbling cauldrons, ancient tomes, and strange artifacts from distant lands. As the apprentice gazed around in wonder, she knew that she was about to embark on a journey unlike any other.", - "The tavern was packed with rowdy patrons, their voices raised in song and laughter. The bard took center stage, strumming his lute and launching into a tale of adventure and heroism that had the crowd hanging on his every word.", - "The thief crept through the shadows, his eyes scanning the room for any sign of danger. He knew that one false move could mean the difference between success and failure, and he was determined to come out on top.", - "The elf queen stood atop her castle walls, surveying the kingdom below with a mix of pride and sadness. She knew that the coming war would be brutal, but she was determined to protect her people at all costs.", - "The necromancer's tower loomed in the distance, its dark spires piercing the sky. As the adventurers approached, they could feel the chill of death emanating from within", - "The ranger moved through the forest like a shadow, his senses attuned to every sound and movement around him. He knew that danger lurked behind every tree, but he was ready for whatever came his way.", - "The paladin knelt before the altar, his hands clasped in prayer. He knew that his faith would be tested in the days ahead, but he was ready to face whatever trials lay in store for him.", - "The druid communed with the spirits of nature, his mind merging with the trees, the animals, and the very earth itself. He knew that his power came with a great responsibility, and he was determined to use it for the greater good.", + 'The sword glinted in the dim light, its edges keen and deadly. As the adventurer reached for it, he couldn\'t help but feel a surge of excitement mixed with fear. This was no ordinary blade.', + 'The dragon\'s roar shook the ground beneath their feet, and the brave knight stood tall, his sword at the ready. He knew that this would be the battle of his life, but he was determined to emerge victorious.', + 'The wizard\'s laboratory was a sight to behold, filled with bubbling cauldrons, ancient tomes, and strange artifacts from distant lands. As the apprentice gazed around in wonder, she knew that she was about to embark on a journey unlike any other.', + 'The tavern was packed with rowdy patrons, their voices raised in song and laughter. The bard took center stage, strumming his lute and launching into a tale of adventure and heroism that had the crowd hanging on his every word.', + 'The thief crept through the shadows, his eyes scanning the room for any sign of danger. He knew that one false move could mean the difference between success and failure, and he was determined to come out on top.', + 'The elf queen stood atop her castle walls, surveying the kingdom below with a mix of pride and sadness. She knew that the coming war would be brutal, but she was determined to protect her people at all costs.', + 'The necromancer\'s tower loomed in the distance, its dark spires piercing the sky. As the adventurers approached, they could feel the chill of death emanating from within', + 'The ranger moved through the forest like a shadow, his senses attuned to every sound and movement around him. He knew that danger lurked behind every tree, but he was ready for whatever came his way.', + 'The paladin knelt before the altar, his hands clasped in prayer. He knew that his faith would be tested in the days ahead, but he was ready to face whatever trials lay in store for him.', + 'The druid communed with the spirits of nature, his mind merging with the trees, the animals, and the very earth itself. He knew that his power came with a great responsibility, and he was determined to use it for the greater good.', ]; const authors = [ - "Unknown", - "James Wyatt", - "Eolande Blackwood", - "Ragnar Ironheart", - "Lyra Nightshade", - "Valtorius Darkstar", - "Isadora Fireheart", - "Theron Shadowbane", - "Lirien Starweaver", - "Drogathar Bonecrusher", - "Kaelen Frostblade", + 'Unknown', + 'James Wyatt', + 'Eolande Blackwood', + 'Ragnar Ironheart', + 'Lyra Nightshade', + 'Valtorius Darkstar', + 'Isadora Fireheart', + 'Theron Shadowbane', + 'Lirien Starweaver', + 'Drogathar Bonecrusher', + 'Kaelen Frostblade', ]; const books = [ - "The Blade of Destiny", - "Dragonfire and Steel", - "The Bard's Tale", - "Darkness Rising", - "The Sacred Quest", - "Shadows in the Forest", - "The Starweaver Chronicles", - "Beneath the Bones", - "Moonlit Magic", - "Frost and Fury", + 'The Blade of Destiny', + 'Dragonfire and Steel', + 'The Bard\'s Tale', + 'Darkness Rising', + 'The Sacred Quest', + 'Shadows in the Forest', + 'The Starweaver Chronicles', + 'Beneath the Bones', + 'Moonlit Magic', + 'Frost and Fury', ]; -module.exports = () => { - return ` +module.exports = ()=>{ + return ` {{quote ${_.sample(quotes)} diff --git a/themes/V3/5ePHB/snippets/tableOfContents.gen.js b/themes/V3/5ePHB/snippets/tableOfContents.gen.js index 03f90d5fa..04ff77f3f 100644 --- a/themes/V3/5ePHB/snippets/tableOfContents.gen.js +++ b/themes/V3/5ePHB/snippets/tableOfContents.gen.js @@ -29,7 +29,7 @@ const getTOC = (pages)=>{ const res = []; _.each(pages, (page, pageNum)=>{ - if(!page.includes("{{frontCover}}") && !page.includes("{{insideCover}}") && !page.includes("{{partCover}}") && !page.includes("{{backCover}}")) { + if(!page.includes('{{frontCover}}') && !page.includes('{{insideCover}}') && !page.includes('{{partCover}}') && !page.includes('{{backCover}}')) { const lines = page.split('\n'); _.each(lines, (line)=>{ if(_.startsWith(line, '# ')){ diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index b37516ec0..f01a3c7e3 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -718,7 +718,7 @@ p { font-family: 'Overpass'; font-size: 0.332cm; - line-height: 0.5cm; + line-height: 0.35cm; } hr + p { margin-top : 0.6cm; diff --git a/themes/V3/Blank/snippets.js b/themes/V3/Blank/snippets.js index 122666055..2dcf49b3e 100644 --- a/themes/V3/Blank/snippets.js +++ b/themes/V3/Blank/snippets.js @@ -307,8 +307,8 @@ module.exports = [ /**************** FONTS *************/ { groupName : 'Fonts', - icon : 'fas fa-keyboard', - view : 'text', + icon : 'fas fa-keyboard', + view : 'text', snippets : [ { name : 'Open Sans', @@ -341,59 +341,59 @@ module.exports = [ gen : dedent`{{font-family:MrEavesRemake Dummy Text}}` }, { - name: 'Solbera Imitation Remake', - icon: 'font SolberaImitationRemake', - gen: dedent`{{font-family:SolberaImitationRemake Dummy Text}}` + name : 'Solbera Imitation Remake', + icon : 'font SolberaImitationRemake', + gen : dedent`{{font-family:SolberaImitationRemake Dummy Text}}` }, { - name: 'Scaly Sans Small Caps Remake', - icon: 'font ScalySansSmallCapsRemake', - gen: dedent`{{font-family:ScalySansSmallCapsRemake Dummy Text}}` + name : 'Scaly Sans Small Caps Remake', + icon : 'font ScalySansSmallCapsRemake', + gen : dedent`{{font-family:ScalySansSmallCapsRemake Dummy Text}}` }, { - name: 'Walter Turncoat', - icon: 'font WalterTurncoat', - gen: dedent`{{font-family:WalterTurncoat Dummy Text}}` + name : 'Walter Turncoat', + icon : 'font WalterTurncoat', + gen : dedent`{{font-family:WalterTurncoat Dummy Text}}` }, { - name: 'Lato', - icon: 'font Lato', - gen: dedent`{{font-family:Lato Dummy Text}}` + name : 'Lato', + icon : 'font Lato', + gen : dedent`{{font-family:Lato Dummy Text}}` }, { - name: 'Courier', - icon: 'font Courier', - gen: dedent`{{font-family:Courier Dummy Text}}` + name : 'Courier', + icon : 'font Courier', + gen : dedent`{{font-family:Courier Dummy Text}}` }, { - name: 'Nodesto Caps Condensed', - icon: 'font NodestoCapsCondensed', - gen: dedent`{{font-family:NodestoCapsCondensed Dummy Text}}` + name : 'Nodesto Caps Condensed', + icon : 'font NodestoCapsCondensed', + gen : dedent`{{font-family:NodestoCapsCondensed Dummy Text}}` }, { - name: 'Overpass', - icon: 'font Overpass', - gen: dedent`{{font-family:Overpass Dummy Text}}` + name : 'Overpass', + icon : 'font Overpass', + gen : dedent`{{font-family:Overpass Dummy Text}}` }, { - name: 'Davek', - icon: 'font Davek', - gen: dedent`{{font-family:Davek Dummy Text}}` + name : 'Davek', + icon : 'font Davek', + gen : dedent`{{font-family:Davek Dummy Text}}` }, { - name: 'Iokharic', - icon: 'font Iokharic', - gen: dedent`{{font-family:Iokharic Dummy Text}}` + name : 'Iokharic', + icon : 'font Iokharic', + gen : dedent`{{font-family:Iokharic Dummy Text}}` }, { - name: 'Rellanic', - icon: 'font Rellanic', - gen: dedent`{{font-family:Rellanic Dummy Text}}` + name : 'Rellanic', + icon : 'font Rellanic', + gen : dedent`{{font-family:Rellanic Dummy Text}}` }, { - name: 'Times New Roman', - icon: 'font TimesNewRoman', - gen: dedent`{{font-family:"Times New Roman" Dummy Text}}` + name : 'Times New Roman', + icon : 'font TimesNewRoman', + gen : dedent`{{font-family:"Times New Roman" Dummy Text}}` } ] }, From 85a00b508b26cb07fc40201167c2ecafaca3179b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 2 Apr 2024 14:47:03 +0200 Subject: [PATCH 6/8] automatic linting --- themes/V3/5ePHB/style.less | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index f01a3c7e3..37327fb19 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -532,16 +532,14 @@ .page:has(.frontCover) { columns : 1; text-align : center; - &:after { - display: none; - } + &::after { display : none; } h1 { margin-top : 1.2cm; margin-bottom : 0; font-family : 'NodestoCapsCondensed'; font-size : 2.245cm; - line-height : 1.9cm; font-weight : normal; + line-height : 1.9cm; color : white; text-shadow : unset; text-transform : uppercase; @@ -628,9 +626,7 @@ .page:has(.insideCover) { columns : 1; text-align : center; - &:after { - display : none; - } + &::after { display : none; } h1 { margin-top : 1.2cm; margin-bottom : 0; @@ -674,9 +670,9 @@ // *****************************/ .page:has(.backCover) { padding : 2.25cm 1.3cm 2cm 1.3cm; - color : #fff; + color : #FFFFFF; columns : 1; - &::after { display: none; } + &::after { display : none; } .columnWrapper { width : 7.6cm; } .backCover { position : absolute; @@ -692,7 +688,7 @@ margin-bottom : 0.3cm; font-family : 'NodestoCapsCondensed'; font-size : 1.35cm; - line-height: 1.28cm; + line-height : 1.28cm; color : #ED1C24; text-align : center; } @@ -716,9 +712,9 @@ border : none; } p { - font-family: 'Overpass'; - font-size: 0.332cm; - line-height: 0.35cm; + font-family : 'Overpass'; + font-size : 0.332cm; + line-height : 0.35cm; } hr + p { margin-top : 0.6cm; @@ -743,10 +739,10 @@ font-family : 'NodestoCapsWide'; font-size : 0.4cm; line-height : 1em; + line-height : 1.28cm; color : #FFFFFF; text-align : center; text-indent : 0; - line-height : 1.28cm; } } } From d0fbca7af50d14cd5ada194f4251295f2bdc7728 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 4 Apr 2024 17:36:06 -0400 Subject: [PATCH 7/8] Undo linting on unrelated files. --- client/homebrew/brewRenderer/brewRenderer.jsx | 6 +- .../notificationPopup/notificationPopup.jsx | 4 +- .../homebrew/editor/snippetbar/snippetbar.jsx | 4 +- client/homebrew/navbar/error-navitem.jsx | 10 +- client/homebrew/navbar/newbrew.navitem.jsx | 94 +++++++++---------- .../pages/basePages/listPage/listPage.jsx | 4 +- client/homebrew/pages/printPage/printPage.jsx | 10 +- server/admin.api.js | 2 +- shared/helpers.js | 30 +++--- shared/naturalcrit/codeEditor/codeEditor.jsx | 2 +- themes/V3/5ePHB/snippets/quote.gen.js | 68 +++++++------- themes/V3/Blank/snippets.js | 76 +++++++-------- 12 files changed, 155 insertions(+), 155 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 89a75ec79..ed64c363b 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -211,11 +211,11 @@ const BrewRenderer = (props)=>{
    - + {baseThemePath && - + } - + {/* Apply CSS from Style tab and render pages from Markdown tab */} {state.isMounted diff --git a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx index c08cf4f03..5a870c108 100644 --- a/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx +++ b/client/homebrew/brewRenderer/notificationPopup/notificationPopup.jsx @@ -26,8 +26,8 @@ const NotificationPopup = createClass({ <>
  • Don't store IMAGES in Google Drive
    - Google Drive is not an image service, and will block images from being used - in brews if they get more views than expected. Google has confirmed they won't fix + Google Drive is not an image service, and will block images from being used + in brews if they get more views than expected. Google has confirmed they won't fix this, so we recommend you look for another image hosting service such as imgur, ImgBB or Google Photos.
  • diff --git a/client/homebrew/editor/snippetbar/snippetbar.jsx b/client/homebrew/editor/snippetbar/snippetbar.jsx index 80a97f49e..75fe0d736 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.jsx +++ b/client/homebrew/editor/snippetbar/snippetbar.jsx @@ -161,7 +161,7 @@ const Snippetbar = createClass({ onClick={this.props.unfoldCode} >
    - ; + } @@ -181,7 +181,7 @@ const Snippetbar = createClass({ {this.state.themeSelector && this.renderThemeSelector()}
    - +
    this.props.onViewChange('text')}> diff --git a/client/homebrew/navbar/error-navitem.jsx b/client/homebrew/navbar/error-navitem.jsx index 59e05a253..8551408c5 100644 --- a/client/homebrew/navbar/error-navitem.jsx +++ b/client/homebrew/navbar/error-navitem.jsx @@ -42,7 +42,7 @@ const ErrorNavItem = createClass({
    ; } - + if(status === 412) { return Oops! @@ -51,7 +51,7 @@ const ErrorNavItem = createClass({
    ; } - + if(HBErrorCode === '04') { return Oops! @@ -76,10 +76,10 @@ const ErrorNavItem = createClass({ if(response.body?.errors?.[0].reason == 'storageQuotaExceeded') { return Oops! -
    +
    Can't save because your Google Drive seems to be full! -
    - ; +
    +
    ; } if(response.req.url.match(/^\/api.*Google.*$/m)){ diff --git a/client/homebrew/navbar/newbrew.navitem.jsx b/client/homebrew/navbar/newbrew.navitem.jsx index 30d53c675..319ef3392 100644 --- a/client/homebrew/navbar/newbrew.navitem.jsx +++ b/client/homebrew/navbar/newbrew.navitem.jsx @@ -7,58 +7,58 @@ const BREWKEY = 'homebrewery-new'; const STYLEKEY = 'homebrewery-new-style'; const METAKEY = 'homebrewery-new-meta'; -const NewBrew = ()=>{ - const handleFileChange = (e)=>{ - const file = e.target.files[0]; - if(file) { - const reader = new FileReader(); - reader.onload = (e)=>{ - const fileContent = e.target.result; - const newBrew = { - text : fileContent, - style : '' - }; - if(fileContent.startsWith('```metadata')) { - splitTextStyleAndMetadata(newBrew); // Modify newBrew directly - localStorage.setItem(BREWKEY, newBrew.text); - localStorage.setItem(STYLEKEY, newBrew.style); - localStorage.setItem(METAKEY, JSON.stringify(_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); - window.location.href = '/new'; - } else { - alert('This file is invalid, please, enter a valid file'); - } - }; - reader.readAsText(file); - } - }; +const NewBrew = () => { + const handleFileChange = (e) => { + const file = e.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + const fileContent = e.target.result; + const newBrew = { + text: fileContent, + style: '' + }; + if(fileContent.startsWith('```metadata')) { + splitTextStyleAndMetadata(newBrew); // Modify newBrew directly + localStorage.setItem(BREWKEY, newBrew.text); + localStorage.setItem(STYLEKEY, newBrew.style); + localStorage.setItem(METAKEY, JSON.stringify(_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); + window.location.href = '/new'; + } else { + alert('This file is invalid, please, enter a valid file'); + } + }; + reader.readAsText(file); + } + }; - return ( - - + return ( + + new - - + + from blank - + - { document.getElementById('uploadTxt').click(); }}> - + { document.getElementById('uploadTxt').click(); }}> + from file - - - ); +
    + + ); }; module.exports = NewBrew; diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index ec557ffb1..0b51609b5 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -262,8 +262,8 @@ const ListPage = createClass({ render : function(){ return
    {/**/} - - + + {this.props.navItems} {this.renderSortOptions()} {this.renderTagsOptions()} diff --git a/client/homebrew/pages/printPage/printPage.jsx b/client/homebrew/pages/printPage/printPage.jsx index 29ecbab66..9a5a80dbf 100644 --- a/client/homebrew/pages/printPage/printPage.jsx +++ b/client/homebrew/pages/printPage/printPage.jsx @@ -34,7 +34,7 @@ const PrintPage = createClass({ style : this.props.brew.style || undefined, renderer : this.props.brew.renderer || 'legacy', theme : this.props.brew.theme || '5ePHB', - lang : this.props.brew.lang || 'en' + lang : this.props.brew.lang || 'en' } }; }, @@ -52,7 +52,7 @@ const PrintPage = createClass({ style : styleStorage, renderer : metaStorage?.renderer || 'legacy', theme : metaStorage?.theme || '5ePHB', - lang : metaStorage?.lang || 'en' + lang : metaStorage?.lang || 'en' } }; }); @@ -96,11 +96,11 @@ const PrintPage = createClass({ return
    - + {baseThemePath && - + } - + {/* Apply CSS from Style tab */} {this.renderStyle()}
    diff --git a/server/admin.api.js b/server/admin.api.js index fe2def3ce..5363ecc08 100644 --- a/server/admin.api.js +++ b/server/admin.api.js @@ -30,7 +30,7 @@ const junkBrewPipeline = [ { $match : { updatedAt : { $lt: Moment().subtract(30, 'days').toDate() }, lastViewed : { $lt: Moment().subtract(30, 'days').toDate() } - } }, + }}, { $project: { textBinSize: { $binarySize: '$textBin' } } }, { $match: { textBinSize: { $lt: 140 } } }, { $limit: 100 } diff --git a/shared/helpers.js b/shared/helpers.js index 42dd09e3f..5abb93fea 100644 --- a/shared/helpers.js +++ b/shared/helpers.js @@ -1,22 +1,22 @@ const _ = require('lodash'); const yaml = require('js-yaml'); -const splitTextStyleAndMetadata = (brew)=>{ - brew.text = brew.text.replaceAll('\r\n', '\n'); - if(brew.text.startsWith('```metadata')) { - const index = brew.text.indexOf('```\n\n'); - const metadataSection = brew.text.slice(12, index - 1); - const metadata = yaml.load(metadataSection); - Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); - brew.text = brew.text.slice(index + 5); - } - if(brew.text.startsWith('```css')) { - const index = brew.text.indexOf('```\n\n'); - brew.style = brew.text.slice(7, index - 1); - brew.text = brew.text.slice(index + 5); - } +const splitTextStyleAndMetadata = (brew) => { + brew.text = brew.text.replaceAll('\r\n', '\n'); + if (brew.text.startsWith('```metadata')) { + const index = brew.text.indexOf('```\n\n'); + const metadataSection = brew.text.slice(12, index - 1); + const metadata = yaml.load(metadataSection); + Object.assign(brew, _.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])); + brew.text = brew.text.slice(index + 5); + } + if (brew.text.startsWith('```css')) { + const index = brew.text.indexOf('```\n\n'); + brew.style = brew.text.slice(7, index - 1); + brew.text = brew.text.slice(index + 5); + } }; module.exports = { - splitTextStyleAndMetadata + splitTextStyleAndMetadata }; diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 486408332..a5232a42b 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -436,7 +436,7 @@ const CodeEditor = createClass({ render : function(){ return <> - +
    ; } diff --git a/themes/V3/5ePHB/snippets/quote.gen.js b/themes/V3/5ePHB/snippets/quote.gen.js index c2a233255..c5e3d6293 100644 --- a/themes/V3/5ePHB/snippets/quote.gen.js +++ b/themes/V3/5ePHB/snippets/quote.gen.js @@ -1,47 +1,47 @@ -const _ = require('lodash'); +const _ = require("lodash"); const quotes = [ - 'The sword glinted in the dim light, its edges keen and deadly. As the adventurer reached for it, he couldn\'t help but feel a surge of excitement mixed with fear. This was no ordinary blade.', - 'The dragon\'s roar shook the ground beneath their feet, and the brave knight stood tall, his sword at the ready. He knew that this would be the battle of his life, but he was determined to emerge victorious.', - 'The wizard\'s laboratory was a sight to behold, filled with bubbling cauldrons, ancient tomes, and strange artifacts from distant lands. As the apprentice gazed around in wonder, she knew that she was about to embark on a journey unlike any other.', - 'The tavern was packed with rowdy patrons, their voices raised in song and laughter. The bard took center stage, strumming his lute and launching into a tale of adventure and heroism that had the crowd hanging on his every word.', - 'The thief crept through the shadows, his eyes scanning the room for any sign of danger. He knew that one false move could mean the difference between success and failure, and he was determined to come out on top.', - 'The elf queen stood atop her castle walls, surveying the kingdom below with a mix of pride and sadness. She knew that the coming war would be brutal, but she was determined to protect her people at all costs.', - 'The necromancer\'s tower loomed in the distance, its dark spires piercing the sky. As the adventurers approached, they could feel the chill of death emanating from within', - 'The ranger moved through the forest like a shadow, his senses attuned to every sound and movement around him. He knew that danger lurked behind every tree, but he was ready for whatever came his way.', - 'The paladin knelt before the altar, his hands clasped in prayer. He knew that his faith would be tested in the days ahead, but he was ready to face whatever trials lay in store for him.', - 'The druid communed with the spirits of nature, his mind merging with the trees, the animals, and the very earth itself. He knew that his power came with a great responsibility, and he was determined to use it for the greater good.', + "The sword glinted in the dim light, its edges keen and deadly. As the adventurer reached for it, he couldn't help but feel a surge of excitement mixed with fear. This was no ordinary blade.", + "The dragon's roar shook the ground beneath their feet, and the brave knight stood tall, his sword at the ready. He knew that this would be the battle of his life, but he was determined to emerge victorious.", + "The wizard's laboratory was a sight to behold, filled with bubbling cauldrons, ancient tomes, and strange artifacts from distant lands. As the apprentice gazed around in wonder, she knew that she was about to embark on a journey unlike any other.", + "The tavern was packed with rowdy patrons, their voices raised in song and laughter. The bard took center stage, strumming his lute and launching into a tale of adventure and heroism that had the crowd hanging on his every word.", + "The thief crept through the shadows, his eyes scanning the room for any sign of danger. He knew that one false move could mean the difference between success and failure, and he was determined to come out on top.", + "The elf queen stood atop her castle walls, surveying the kingdom below with a mix of pride and sadness. She knew that the coming war would be brutal, but she was determined to protect her people at all costs.", + "The necromancer's tower loomed in the distance, its dark spires piercing the sky. As the adventurers approached, they could feel the chill of death emanating from within", + "The ranger moved through the forest like a shadow, his senses attuned to every sound and movement around him. He knew that danger lurked behind every tree, but he was ready for whatever came his way.", + "The paladin knelt before the altar, his hands clasped in prayer. He knew that his faith would be tested in the days ahead, but he was ready to face whatever trials lay in store for him.", + "The druid communed with the spirits of nature, his mind merging with the trees, the animals, and the very earth itself. He knew that his power came with a great responsibility, and he was determined to use it for the greater good.", ]; const authors = [ - 'Unknown', - 'James Wyatt', - 'Eolande Blackwood', - 'Ragnar Ironheart', - 'Lyra Nightshade', - 'Valtorius Darkstar', - 'Isadora Fireheart', - 'Theron Shadowbane', - 'Lirien Starweaver', - 'Drogathar Bonecrusher', - 'Kaelen Frostblade', + "Unknown", + "James Wyatt", + "Eolande Blackwood", + "Ragnar Ironheart", + "Lyra Nightshade", + "Valtorius Darkstar", + "Isadora Fireheart", + "Theron Shadowbane", + "Lirien Starweaver", + "Drogathar Bonecrusher", + "Kaelen Frostblade", ]; const books = [ - 'The Blade of Destiny', - 'Dragonfire and Steel', - 'The Bard\'s Tale', - 'Darkness Rising', - 'The Sacred Quest', - 'Shadows in the Forest', - 'The Starweaver Chronicles', - 'Beneath the Bones', - 'Moonlit Magic', - 'Frost and Fury', + "The Blade of Destiny", + "Dragonfire and Steel", + "The Bard's Tale", + "Darkness Rising", + "The Sacred Quest", + "Shadows in the Forest", + "The Starweaver Chronicles", + "Beneath the Bones", + "Moonlit Magic", + "Frost and Fury", ]; -module.exports = ()=>{ - return ` +module.exports = () => { + return ` {{quote ${_.sample(quotes)} diff --git a/themes/V3/Blank/snippets.js b/themes/V3/Blank/snippets.js index 2dcf49b3e..272368665 100644 --- a/themes/V3/Blank/snippets.js +++ b/themes/V3/Blank/snippets.js @@ -307,8 +307,8 @@ module.exports = [ /**************** FONTS *************/ { groupName : 'Fonts', - icon : 'fas fa-keyboard', - view : 'text', + icon : 'fas fa-keyboard', + view : 'text', snippets : [ { name : 'Open Sans', @@ -326,74 +326,74 @@ module.exports = [ gen : dedent`{{font-family:CodeLight Dummy Text}}` }, { - name : 'Scaly Sans Remake', + name : 'Scaly Sans', icon : 'font ScalySansRemake', gen : dedent`{{font-family:ScalySansRemake Dummy Text}}` }, { - name : 'Book Insanity Remake', + name : 'Book Insanity', icon : 'font BookInsanityRemake', gen : dedent`{{font-family:BookInsanityRemake Dummy Text}}` }, { - name : 'Mr Eaves Remake', + name : 'Mr Eaves', icon : 'font MrEavesRemake', gen : dedent`{{font-family:MrEavesRemake Dummy Text}}` }, { - name : 'Solbera Imitation Remake', - icon : 'font SolberaImitationRemake', - gen : dedent`{{font-family:SolberaImitationRemake Dummy Text}}` + name: 'Solbera Imitation', + icon: 'font SolberaImitationRemake', + gen: dedent`{{font-family:SolberaImitationRemake Dummy Text}}` }, { - name : 'Scaly Sans Small Caps Remake', - icon : 'font ScalySansSmallCapsRemake', - gen : dedent`{{font-family:ScalySansSmallCapsRemake Dummy Text}}` + name: 'Scaly Sans Small Caps', + icon: 'font ScalySansSmallCapsRemake', + gen: dedent`{{font-family:ScalySansSmallCapsRemake Dummy Text}}` }, { - name : 'Walter Turncoat', - icon : 'font WalterTurncoat', - gen : dedent`{{font-family:WalterTurncoat Dummy Text}}` + name: 'Walter Turncoat', + icon: 'font WalterTurncoat', + gen: dedent`{{font-family:WalterTurncoat Dummy Text}}` }, { - name : 'Lato', - icon : 'font Lato', - gen : dedent`{{font-family:Lato Dummy Text}}` + name: 'Lato', + icon: 'font Lato', + gen: dedent`{{font-family:Lato Dummy Text}}` }, { - name : 'Courier', - icon : 'font Courier', - gen : dedent`{{font-family:Courier Dummy Text}}` + name: 'Courier', + icon: 'font Courier', + gen: dedent`{{font-family:Courier Dummy Text}}` }, { - name : 'Nodesto Caps Condensed', - icon : 'font NodestoCapsCondensed', - gen : dedent`{{font-family:NodestoCapsCondensed Dummy Text}}` + name: 'Nodesto Caps Condensed', + icon: 'font NodestoCapsCondensed', + gen: dedent`{{font-family:NodestoCapsCondensed Dummy Text}}` }, { - name : 'Overpass', - icon : 'font Overpass', - gen : dedent`{{font-family:Overpass Dummy Text}}` + name: 'Overpass', + icon: 'font Overpass', + gen: dedent`{{font-family:Overpass Dummy Text}}` }, { - name : 'Davek', - icon : 'font Davek', - gen : dedent`{{font-family:Davek Dummy Text}}` + name: 'Davek', + icon: 'font Davek', + gen: dedent`{{font-family:Davek Dummy Text}}` }, { - name : 'Iokharic', - icon : 'font Iokharic', - gen : dedent`{{font-family:Iokharic Dummy Text}}` + name: 'Iokharic', + icon: 'font Iokharic', + gen: dedent`{{font-family:Iokharic Dummy Text}}` }, { - name : 'Rellanic', - icon : 'font Rellanic', - gen : dedent`{{font-family:Rellanic Dummy Text}}` + name: 'Rellanic', + icon: 'font Rellanic', + gen: dedent`{{font-family:Rellanic Dummy Text}}` }, { - name : 'Times New Roman', - icon : 'font TimesNewRoman', - gen : dedent`{{font-family:"Times New Roman" Dummy Text}}` + name: 'Times New Roman', + icon: 'font TimesNewRoman', + gen: dedent`{{font-family:"Times New Roman" Dummy Text}}` } ] }, From 97fba241a1d7f7a39a1632dbf029e64521156ccc Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 4 Apr 2024 17:37:52 -0400 Subject: [PATCH 8/8] Undo linting on unrelated pages --- themes/V3/5ePHB/snippets/tableOfContents.gen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/V3/5ePHB/snippets/tableOfContents.gen.js b/themes/V3/5ePHB/snippets/tableOfContents.gen.js index 04ff77f3f..03f90d5fa 100644 --- a/themes/V3/5ePHB/snippets/tableOfContents.gen.js +++ b/themes/V3/5ePHB/snippets/tableOfContents.gen.js @@ -29,7 +29,7 @@ const getTOC = (pages)=>{ const res = []; _.each(pages, (page, pageNum)=>{ - if(!page.includes('{{frontCover}}') && !page.includes('{{insideCover}}') && !page.includes('{{partCover}}') && !page.includes('{{backCover}}')) { + if(!page.includes("{{frontCover}}") && !page.includes("{{insideCover}}") && !page.includes("{{partCover}}") && !page.includes("{{backCover}}")) { const lines = page.split('\n'); _.each(lines, (line)=>{ if(_.startsWith(line, '# ')){