diff --git a/.circleci/config.yml b/.circleci/config.yml
index 461a0dfa6..666a9564a 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -5,12 +5,12 @@
version: 2.1
orbs:
- node: circleci/node@3.0.0
+ node: circleci/node@5.1.0
jobs:
build:
docker:
- - image: cimg/node:16.11.0
+ - image: cimg/node:20.8.0
- image: mongo:4.4
working_directory: ~/homebrewery
@@ -27,7 +27,7 @@ jobs:
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- - run: sudo npm install -g npm@8.10.0
+ - run: sudo npm install -g npm@10.2.0
- node/install-packages:
app-dir: ~/homebrewery
cache-path: node_modules
@@ -45,7 +45,7 @@ jobs:
test:
docker:
- - image: cimg/node:16.11.0
+ - image: cimg/node:20.8.0
working_directory: ~/homebrewery
parallelism: 1
diff --git a/changelog.md b/changelog.md
index 626a992d9..9f4a07ab2 100644
--- a/changelog.md
+++ b/changelog.md
@@ -80,6 +80,56 @@ pre {
## changelog
For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery).
+### Friday 13/10/2023 - v3.10.0
+{{taskList
+
+##### G-Ambatte
+
+* [x] Fix user preferred save location being ignored
+
+Fixes issue [#2993](https://github.com/naturalcrit/homebrewery/issues/2993)
+
+* [x] Fix crash to white screen when starting new brews while not signed in
+
+Fixes issue [#2999](https://github.com/naturalcrit/homebrewery/issues/2999)
+
+* [x] Fix FreeBSD install script
+
+Fixes issue [#3005](https://github.com/naturalcrit/homebrewery/issues/3005)
+
+* [x] Fix *"This brew has been changed on another device"* triggering when manually saving during auto-save
+
+Fixes issue [#2641](https://github.com/naturalcrit/homebrewery/issues/2641)
+
+* [x] Fix Firefox different column-flow behavior
+
+Fixes issue [#2982](https://github.com/naturalcrit/homebrewery/issues/2982)
+
+* [x] Fix brew titles being mis-sorted on user page
+
+Fixes issue [#2775](https://github.com/naturalcrit/homebrewery/issues/2775)
+
+* [x] Text Editor themes now available via new drop-down
+
+Fixes issue [#362](https://github.com/naturalcrit/homebrewery/issues/362)
+
+##### 5e-Cleric
+
+* [x] New {{openSans **PHB → {{fas,fa-quote-right}} QUOTE** }} snippet for V3!
+
+Fixes issue [#2920](https://github.com/naturalcrit/homebrewery/issues/2920)
+
+* [x] Several updates and fixes to FAQ and Welcome page
+
+Fixes issue [#2729](https://github.com/naturalcrit/homebrewery/issues/2729),
+[#2787](https://github.com/naturalcrit/homebrewery/issues/2787)
+
+##### Gazook89
+
+* [x] Add syntax highlighting for Definition Lists :\:
+}}
+
+
### Thursday 17/08/2023 - v3.9.2
{{taskList
@@ -119,14 +169,15 @@ Fixes issue [#2943](https://github.com/naturalcrit/homebrewery/issues/2943)
* [x] Exclude cover pages from Table of Content generation (editing on mobile is still not recommended)
-Fixes issue [#2920](https://github.com/naturalcrit/homebrewery/issues/2920)
+Fixes issue [#2920](https://github.com/naturalcrit/homebrewery/issues/2920)
##### Gazook89
* [x] Adjustments to improve mobile viewing
-
}}
+
+
### Wednesday 28/06/2023 - v3.9.1
{{taskList
@@ -171,6 +222,8 @@ Fixes issue [#2790](https://github.com/naturalcrit/homebrewery/issues/2790)
Fixes issue [#2784](https://github.com/naturalcrit/homebrewery/issues/2784)
}}
+\page
+
### Wednesday 12/04/2023 - v3.8.0
{{taskList
@@ -232,8 +285,6 @@ Fixes issues [#2731](https://github.com/naturalcrit/homebrewery/issues/2731)
}}
-\page
-
### Monday 13/03/2023 - v3.7.2
{{taskList
@@ -314,7 +365,11 @@ Fixes issues [#2603](https://github.com/naturalcrit/homebrewery/issues/2603)
* [x] Add message to refresh the browser if the user is missing an update to the Homebrewery
Fixes issues [#2583](https://github.com/naturalcrit/homebrewery/issues/2583)
+}}
+\page
+
+{{taskList
##### G-Ambatte
* [x] Auto-compile Themes CSS on development server
@@ -324,7 +379,6 @@ Fixes issues [#2583](https://github.com/naturalcrit/homebrewery/issues/2583)
* [x] Fix cloned brews inheriting the parent view count
}}
-\page
### Friday 23/12/2022 - v3.5.0
{{taskList
@@ -1408,4 +1462,4 @@ Massive changelog incoming:
* Added `phb.standalone.css` plus a build system for creating it
* Added page numbers and footer text
-* Page accent now flips each page
+* Page accent now flips each page
\ No newline at end of file
diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx
index d6502e985..b4f1fc824 100644
--- a/client/homebrew/editor/editor.jsx
+++ b/client/homebrew/editor/editor.jsx
@@ -149,6 +149,17 @@ const Editor = createClass({
codeMirror.addLineClass(lineNumber, 'text', 'columnSplit');
}
+ // definition lists
+ if(line.includes('::')){
+ const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym;
+ let match;
+ while ((match = regex.exec(line)) != null){
+ codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'define' });
+ codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[1]) }, { line: lineNumber, ch: line.indexOf(match[1]) + match[1].length }, { className: 'term' });
+ codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[2]) }, { line: lineNumber, ch: line.indexOf(match[2]) + match[2].length }, { className: 'definition' });
+ }
+ }
+
// Highlight injectors {style}
if(line.includes('{') && line.includes('}')){
const regex = /(?:^|[^{\n])({(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\2})/gm;
diff --git a/client/homebrew/editor/editor.less b/client/homebrew/editor/editor.less
index db88b5b0f..d31ceb97c 100644
--- a/client/homebrew/editor/editor.less
+++ b/client/homebrew/editor/editor.less
@@ -1,65 +1,73 @@
@import 'themes/codeMirror/customEditorStyles.less';
-.editor{
+.editor {
position : relative;
width : 100%;
- .codeEditor{
+ .codeEditor {
height : 100%;
- .pageLine{
+ .pageLine {
background : #33333328;
- border-top : #339 solid 1px;
+ border-top : #333399 solid 1px;
}
- .editor-page-count{
- color : grey;
+ .editor-page-count {
float : right;
+ color : grey;
}
- .columnSplit{
- font-style : italic;
- color : grey;
- background-color : fade(#299, 15%);
- border-bottom : #299 solid 1px;
+ .columnSplit {
+ font-style : italic;
+ color : grey;
+ background-color : fade(#229999, 15%);
+ border-bottom : #229999 solid 1px;
}
- .block:not(.cm-comment){
- color : purple;
+ .define {
+ &:not(.term):not(.definition) {
+ font-weight : bold;
+ color : #949494;
+ background : #E5E5E5;
+ border-radius : 3px;
+ }
+ &.term { color : rgb(96, 117, 143); }
+ &.definition { color : rgb(97, 57, 178); }
+ }
+ .block:not(.cm-comment) {
font-weight : bold;
+ color : purple;
//font-style: italic;
}
- .inline-block:not(.cm-comment){
- color : red;
+ .inline-block:not(.cm-comment) {
font-weight : bold;
+ color : red;
//font-style: italic;
}
- .injection:not(.cm-comment){
+ .injection:not(.cm-comment) {
+ font-weight : bold;
color : green;
- font-weight : bold;
}
}
- .brewJump{
- position : absolute;
- background-color : @teal;
- cursor : pointer;
- width : 30px;
- height : 30px;
- display : flex;
- align-items : center;
- bottom : 20px;
- right : 20px;
- z-index : 1000000;
- justify-content : center;
- .tooltipLeft("Jump to brew page");
+ .brewJump {
+ position : absolute;
+ right : 20px;
+ bottom : 20px;
+ z-index : 1000000;
+ display : flex;
+ align-items : center;
+ justify-content : center;
+ width : 30px;
+ height : 30px;
+ cursor : pointer;
+ background-color : @teal;
+ .tooltipLeft('Jump to brew page');
}
- .editorToolbar{
- position: absolute;
- top: 5px;
- left: 50%;
- color: black;
- font-size: 13px;
- z-index: 9;
- span {
- padding: 2px 5px;
- }
+ .editorToolbar {
+ position : absolute;
+ top : 5px;
+ left : 50%;
+ z-index : 9;
+ font-size : 13px;
+ color : black;
+ span { padding : 2px 5px; }
}
}
diff --git a/client/homebrew/pages/homePage/welcome_msg.md b/client/homebrew/pages/homePage/welcome_msg.md
index 3332dfc39..9df769903 100644
--- a/client/homebrew/pages/homePage/welcome_msg.md
+++ b/client/homebrew/pages/homePage/welcome_msg.md
@@ -16,9 +16,9 @@ The Homebrewery makes the creation and sharing of authentic looking Fifth-Editio
**Try it!** Simply edit the text on the left and watch it *update live* on the right. Note that not every button is visible on this demo page. Click New {{fas,fa-plus-square}} in the navbar above to start brewing with all the features!
### Editing and Sharing
-When you create your own homebrew, you will be given a *edit url* and a *share url*.
+When you create a new homebrew document ("brew"), your document will be given a *edit link* and a *share link*.
-Any changes you make while on the *edit url* will be automatically saved to the database within a few seconds. Anyone with the edit url will be able to make edits to your homebrew, so be careful about who you share it with.
+The *edit link* is where you write your brew. If you edit a brew while logged in, you are added as one of the brew's authors, and no one else can edit that brew until you add them as a new author via the {{fa,fa-info-circle}} **Properties** tab. Brews without any author can still be edited by anyone with the *edit link*, so be careful about who you share it with if you prefer to work without an account.
Anyone with the *share url* will be able to access a read-only version of your homebrew.
@@ -48,57 +48,63 @@ If you want to save ink or have a monochrome printer, add the **PRINT → {{fas,
\column
-## New in V3.0.0
-We've implemented an extended Markdown-like syntax for block and span elements, plus a few other changes, eliminating the need for HTML tags like `div` and `span` in most cases. No raw HTML tags should be needed in a brew (*but can still be used if you insist*).
+## V3 vs Legacy
+The Homebrewery has two renderers: Legacy and V3. The V3 renderer is recommended for all users because it is more powerful, more customizable, and continues to receive new feature updates while Legacy does not. However Legacy mode will remain available for older brews and veteran users.
+
+At any time, any individual brew can be changed to your renderer of choice via the {{fa,fa-info-circle}} **Properties** tab on your brew. However, converting between Legacy and V3 may require heavily tweaking the document; while both renderers can use raw HTML, V3 prefers a streamlined curly bracket syntax that avoids the complex HTML structures required by Legacy.
-Much of the syntax and styling has changed in V3, so converting a Legacy brew to V3 (or vice-versa) will require tweaking your document. *However*, all brews made prior to the release of v3.0.0 will still render normally, and you may switch between the "Legacy" brew renderer and the newer "V3" renderer via the {{fa,fa-info-circle}} **Properties** button on your brew at any time.
-
-Scroll down to the next page for a brief summary of the changes and new features available in V3!
+Scroll down to the next page for a brief summary of the changes and features available in V3!
#### New Things All The Time!
Check out the latest updates in the full changelog [here](/changelog).
### Helping out
-Like this tool? Want to buy me a beer? [Head here](https://www.patreon.com/Naturalcrit) to help me keep the servers running.
+Like this tool? Head over to our [Patreon](https://www.patreon.com/Naturalcrit) to help us keep the servers running.
-This tool will **always** be free, never have ads, and I will never offer any "premium" features or whatever.
+
+This tool will **always** be free, never have ads, and we will never offer any "premium" features or whatever.
### Bugs, Issues, Suggestions?
-Take a quick look at our [Frequently Asked Questions page](/faq) to see if your question has a handy answer.
-
-Need help getting started or just the right look for your brew? Head to [r/Homebrewery](https://www.reddit.com/r/homebrewery/submit?selftext=true&title=%5BIssue%5D%20Describe%20Your%20Issue%20Here) and let us know!
-
-Have an idea to make The Homebrewery better? Or did you find something that wasn't quite right? Check out the [GitHub Repo](https://github.com/naturalcrit/homebrewery/) to report technical issues.
+- Check the [Frequently Asked Questions](/faq) page first for quick answers.
+- Get help or the right look for your brew by posting on [r/Homebrewery](https://www.reddit.com/r/homebrewery/submit?selftext=true&title=%5BIssue%5D%20Describe%20Your%20Issue%20Here) or joining the [Discord Of Many Things](https://discord.gg/by3deKx).
+- Report technical issues or provide feedback on the [GitHub Repo](https://github.com/naturalcrit/homebrewery/).
### Legal Junk
The Homebrewery is licensed using the [MIT License](https://github.com/naturalcrit/homebrewery/blob/master/license). Which means you are free to use The Homebrewery codebase any way that you want, except for claiming that you made it yourself.
If you wish to sell or in some way gain profit for what's created on this site, it's your responsibility to ensure you have the proper licenses/rights for any images or resources used.
-
-#### Crediting Me
-If you'd like to credit me in your brew, I'd be flattered! Just reference that you made it with The Homebrewery.
+#### Crediting Us
+If you'd like to credit us in your brew, we'd be flattered! Just reference that you made it with The Homebrewery.
### More Homebrew Resources
-
-If you are looking for more 5e Homebrew resources check out [r/UnearthedArcana](https://www.reddit.com/r/UnearthedArcana/) and their list of useful resources [here](https://www.reddit.com/r/UnearthedArcana/wiki/resources). The Discord of Many Things is another great resource to connect with fellow homebrewers for help and feedback.
+[{width:50px,float:right,padding-left:10px}](https://discord.gg/by3deKx)
+
+If you are looking for more 5e Homebrew resources check out [r/UnearthedArcana](https://www.reddit.com/r/UnearthedArcana/) and their list of useful resources [here](https://www.reddit.com/r/UnearthedArcana/wiki/resources). The [Discord Of Many Things](https://discord.gg/by3deKx) is another great resource to connect with fellow homebrewers for help and feedback.
+
{{position:absolute;top:20px;right:20px;width:auto
-
-
-
-
+[{height:30px}](https://discord.gg/by3deKx)
+[{height:30px}](https://github.com/naturalcrit/homebrewery)
+[{height:30px}](https://patreon.com/NaturalCrit)
+[{height:30px}](https://www.reddit.com/r/homebrewery/)
}}
\page
+
+
+
+
+
+
+
## Markdown+
The Homebrewery aims to make homebrewing as simple as possible, providing a live editor with Markdown syntax that is more human-readable and faster to write with than raw HTML.
-In version 3.0.0, with a goal of adding maximum flexibility without users resorting to complex HTML to accomplish simple tasks, Homebrewery provides an extended verision of Markdown with additional syntax.
-**You can enable V3 via the {{fa,fa-info-circle}} Properties button!**
+From version 3.0.0, with a goal of adding maximum flexibility without users resorting to complex HTML to accomplish simple tasks, Homebrewery provides an extended verision of Markdown with additional syntax.
### Curly Brackets
-The biggest change in V3 is the replacement of `` and `