From 44713eda4ece6304394a33743af56269deea6450 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 29 Apr 2025 23:20:06 -0500 Subject: [PATCH 1/3] Might work? --- scripts/buildHomebrew.js | 42 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/scripts/buildHomebrew.js b/scripts/buildHomebrew.js index 4d55a4176..031aa4fc7 100644 --- a/scripts/buildHomebrew.js +++ b/scripts/buildHomebrew.js @@ -30,25 +30,6 @@ const build = async ({ bundle, render, ssr })=>{ await fs.copy('./client/homebrew/favicon.ico', './build/assets/favicon.ico'); - //compress files in production - if(!isDev){ - await fs.outputFile('./build/homebrew/bundle.css.br', zlib.brotliCompressSync(css)); - await fs.outputFile('./build/homebrew/bundle.js.br', zlib.brotliCompressSync(bundle)); - await fs.outputFile('./build/homebrew/ssr.js.br', zlib.brotliCompressSync(ssr)); - } else { - await fs.remove('./build/homebrew/bundle.css.br'); - await fs.remove('./build/homebrew/bundle.js.br'); - await fs.remove('./build/homebrew/ssr.js.br'); - } -}; - -fs.emptyDirSync('./build'); - - -(async ()=>{ - - //v==----------------------------- COMPILE THEMES --------------------------------==v// - // Update list of all Theme files const themes = { Legacy: {}, V3: {} }; @@ -88,6 +69,26 @@ fs.emptyDirSync('./build'); await fs.outputFile('./themes/themes.json', JSON.stringify(themes, null, 2)); + //compress files in production + if(!isDev){ + await fs.outputFile('./build/homebrew/bundle.css.br', zlib.brotliCompressSync(css)); + await fs.outputFile('./build/homebrew/bundle.js.br', zlib.brotliCompressSync(bundle)); + await fs.outputFile('./build/homebrew/ssr.js.br', zlib.brotliCompressSync(ssr)); + } else { + await fs.remove('./build/homebrew/bundle.css.br'); + await fs.remove('./build/homebrew/bundle.js.br'); + await fs.remove('./build/homebrew/ssr.js.br'); + } +}; + +fs.emptyDirSync('./build'); + + +(async ()=>{ + + //v==----------------------------- COMPILE THEMES --------------------------------==v// + + // await less.render(lessCode, { // compress : !dev, // sourceMap : (dev ? { @@ -158,9 +159,8 @@ fs.emptyDirSync('./build'); //In development, set up LiveReload (refreshes browser), and Nodemon (restarts server) if(isDev){ - livereload('./build'); // Install the Chrome extension LiveReload to automatically refresh the browser watchFile('./server.js', { // Restart server when change detected to this file or any nested directory from here - ignore : ['./build', './client', './themes'], // Ignore folders that are not running server code / avoids unneeded restarts + ignore : ['./build', './client'], // Ignore folders that are not running server code / avoids unneeded restarts ext : 'js json' // Extensions to watch (only .js/.json by default) //watch : ['./server', './themes'], // Watch additional folders if needed }); From 742de8582c9528991668c6fd9fe6c8fa18f91305 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 6 May 2025 16:27:55 -0500 Subject: [PATCH 2/3] Allow pagebreak and columnbreak compatibility --- client/homebrew/brewRenderer/brewRenderer.jsx | 2 +- client/homebrew/editor/editor.jsx | 4 ++-- shared/naturalcrit/markdown.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index c2c996e79..9f44359ff 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -19,7 +19,7 @@ const { printCurrentBrew } = require('../../../shared/helpers.js'); import HeaderNav from './headerNav/headerNav.jsx'; import { safeHTML } from './safeHTML.js'; -const PAGEBREAK_REGEX_V3 = /^(?=\\page(?: *{[^\n{}]*})?$)/m; +const PAGEBREAK_REGEX_V3 = /^(?=\\page(?:break)?(?: *{[^\n{}]*})?$)/m; const PAGE_HEIGHT = 1056; const INITIAL_CONTENT = dedent` diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 6859c5aa2..cf9a17303 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -12,7 +12,7 @@ const MetadataEditor = require('./metadataEditor/metadataEditor.jsx'); const EDITOR_THEME_KEY = 'HOMEBREWERY-EDITOR-THEME'; -const PAGEBREAK_REGEX_V3 = /^(?=\\page(?: *{[^\n{}]*})?$)/m; +const PAGEBREAK_REGEX_V3 = /^(?=\\page(?:break)?(?: *{[^\n{}]*})?$)/m; const SNIPPETBREAK_REGEX_V3 = /^\\snippet\ .*$/; const SNIPPETBAR_HEIGHT = 25; const DEFAULT_STYLE_TEXT = dedent` @@ -211,7 +211,7 @@ const Editor = createClass({ // New Codemirror styling for V3 renderer if(this.props.renderer === 'V3') { - if(line.match(/^\\column$/)){ + if(line.match(/^\\column(?:break)?$/)){ codeMirror.addLineClass(lineNumber, 'text', 'columnSplit'); } diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 90a9488dc..ac6988734 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -825,7 +825,7 @@ const Markdown = { MarkedGFMResetHeadingIDs(); } - rawBrewText = rawBrewText.replace(/^\\column$/gm, `\n
\n`); + rawBrewText = rawBrewText.replace(/^\\column(?:break)?$/gm, `\n
\n`); const opts = Marked.defaults; From 6867cb5a4a6d196141a9d08953557f30e2487e5e Mon Sep 17 00:00:00 2001 From: David Bolack Date: Tue, 6 May 2025 16:35:53 -0500 Subject: [PATCH 3/3] Clear up debris that was on the wrong branch --- scripts/buildHomebrew.js | 42 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/scripts/buildHomebrew.js b/scripts/buildHomebrew.js index 031aa4fc7..4d55a4176 100644 --- a/scripts/buildHomebrew.js +++ b/scripts/buildHomebrew.js @@ -30,6 +30,25 @@ const build = async ({ bundle, render, ssr })=>{ await fs.copy('./client/homebrew/favicon.ico', './build/assets/favicon.ico'); + //compress files in production + if(!isDev){ + await fs.outputFile('./build/homebrew/bundle.css.br', zlib.brotliCompressSync(css)); + await fs.outputFile('./build/homebrew/bundle.js.br', zlib.brotliCompressSync(bundle)); + await fs.outputFile('./build/homebrew/ssr.js.br', zlib.brotliCompressSync(ssr)); + } else { + await fs.remove('./build/homebrew/bundle.css.br'); + await fs.remove('./build/homebrew/bundle.js.br'); + await fs.remove('./build/homebrew/ssr.js.br'); + } +}; + +fs.emptyDirSync('./build'); + + +(async ()=>{ + + //v==----------------------------- COMPILE THEMES --------------------------------==v// + // Update list of all Theme files const themes = { Legacy: {}, V3: {} }; @@ -69,26 +88,6 @@ const build = async ({ bundle, render, ssr })=>{ await fs.outputFile('./themes/themes.json', JSON.stringify(themes, null, 2)); - //compress files in production - if(!isDev){ - await fs.outputFile('./build/homebrew/bundle.css.br', zlib.brotliCompressSync(css)); - await fs.outputFile('./build/homebrew/bundle.js.br', zlib.brotliCompressSync(bundle)); - await fs.outputFile('./build/homebrew/ssr.js.br', zlib.brotliCompressSync(ssr)); - } else { - await fs.remove('./build/homebrew/bundle.css.br'); - await fs.remove('./build/homebrew/bundle.js.br'); - await fs.remove('./build/homebrew/ssr.js.br'); - } -}; - -fs.emptyDirSync('./build'); - - -(async ()=>{ - - //v==----------------------------- COMPILE THEMES --------------------------------==v// - - // await less.render(lessCode, { // compress : !dev, // sourceMap : (dev ? { @@ -159,8 +158,9 @@ fs.emptyDirSync('./build'); //In development, set up LiveReload (refreshes browser), and Nodemon (restarts server) if(isDev){ + livereload('./build'); // Install the Chrome extension LiveReload to automatically refresh the browser watchFile('./server.js', { // Restart server when change detected to this file or any nested directory from here - ignore : ['./build', './client'], // Ignore folders that are not running server code / avoids unneeded restarts + ignore : ['./build', './client', './themes'], // Ignore folders that are not running server code / avoids unneeded restarts ext : 'js json' // Extensions to watch (only .js/.json by default) //watch : ['./server', './themes'], // Watch additional folders if needed });