0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-23 16:33:05 +00:00

Compare commits

..

1832 Commits

Author SHA1 Message Date
Trevor Buckner
f23959bb05 Update pr-check.yml 2024-04-19 11:24:18 -04:00
Trevor Buckner
228041913e Create limit-pull-requests.yml 2024-04-19 11:15:27 -04:00
Trevor Buckner
fc53989946 Create pr-check.yml
For users with many open PRs, creates a warning message in the PR description when opening a new PR, encouraging users to complete existing PRs before opening new ones.
2024-04-19 10:47:00 -04:00
Trevor Buckner
9f72dc08c6 Merge pull request #3411 from naturalcrit/make-diceFont-capitalization-consistent
Change dicefont names to consistent camelCase
2024-04-18 16:52:15 -04:00
Trevor Buckner
1018ba554f rename files to camelCase 2024-04-18 16:42:06 -04:00
Trevor Buckner
709c9ece74 Change to camelCase 2024-04-18 16:20:09 -04:00
Trevor Buckner
19e51102d2 Merge pull request #3410 from naturalcrit/Only-check-DefinitionLists-at-start-of-line
Only check definition lists at start of line
2024-04-17 01:08:03 -04:00
Trevor Buckner
68a68bde82 Only check for DLs at start of line
Previous "start" regex used `^` instead of `\n`, which meant if the first character in a line failed to start a match, it would check for the start of a DL in *every* character in the line, which slows things down a lot.
2024-04-17 01:03:25 -04:00
Trevor Buckner
e1186b4a1e Rename Inline to SingleLine 2024-04-17 01:01:58 -04:00
Trevor Buckner
9e71945a76 Merge pull request #3388 from 5e-Cleric/scrollbar-new-fix
Custom scrollbar fixes
2024-04-09 18:39:20 -04:00
Trevor Buckner
9f6fc3d1ac Merge branch 'master' into scrollbar-new-fix 2024-04-09 18:38:07 -04:00
Trevor Buckner
e22830eb4a Merge pull request #3399 from 5e-Cleric/add-share-link-to-error-pages
Add share link to error pages ONLY IF PUBLISHED
2024-04-09 15:31:53 -04:00
Trevor Buckner
f02a3d815a Merge branch 'master' into add-share-link-to-error-pages 2024-04-09 15:24:23 -04:00
Trevor Buckner
7097897df8 Remove "stub.published" from thrown error, since no longer used 2024-04-09 15:24:04 -04:00
Víctor Losada Hernández
9247967f93 fixed published request 2024-04-09 20:12:40 +02:00
Trevor Buckner
1b3d82fc04 Merge pull request #3400 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-28.2.0
Bump eslint-plugin-jest from 27.9.0 to 28.2.0
2024-04-09 13:15:56 -04:00
dependabot[bot]
810934f2c1 Bump eslint-plugin-jest from 27.9.0 to 28.2.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.9.0 to 28.2.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.9.0...v28.2.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-09 15:42:16 +00:00
Trevor Buckner
3b507a1fb9 Merge pull request #3403 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.3.1
Bump mongoose from 8.3.0 to 8.3.1
2024-04-09 11:41:27 -04:00
Trevor Buckner
4f1056a320 Merge branch 'master' into dependabot/npm_and_yarn/mongoose-8.3.1 2024-04-09 11:39:03 -04:00
Trevor Buckner
963aa8f003 Merge pull request #3398 from Gazook89/Clean-Up-accountPage.jsx
Refactor accountPage.jsx to functional component
2024-04-09 11:37:34 -04:00
Trevor Buckner
431dfd7780 tweak comments 2024-04-09 11:36:13 -04:00
Trevor Buckner
4f0cbd82d4 Linting, small cleanup, and renaming some functions
Renamed "makeActive" and "renderButton" to make more clear without needing comments.
2024-04-09 11:35:30 -04:00
dependabot[bot]
53e437c6bc Bump mongoose from 8.3.0 to 8.3.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.3.0 to 8.3.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.3.0...8.3.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-09 03:02:17 +00:00
Víctor Losada Hernández
0e5c91733d Revert "rename icons less"
This reverts commit 7cc83eaf95.
2024-04-08 02:29:43 +02:00
Víctor Losada Hernández
f5c729c328 Revert "rename icons"
This reverts commit 22b01b131f.
2024-04-08 02:29:40 +02:00
Víctor Losada Hernández
4f9e93fac7 Revert "renaming snippetBar"
This reverts commit 2045bf8060.
2024-04-08 02:29:38 +02:00
Víctor Losada Hernández
7cc83eaf95 rename icons less 2024-04-08 02:19:43 +02:00
Víctor Losada Hernández
22b01b131f rename icons 2024-04-08 02:19:32 +02:00
Víctor Losada Hernández
2045bf8060 renaming snippetBar 2024-04-08 02:17:10 +02:00
Víctor Losada Hernández
df73b37180 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into add-share-link-to-error-pages 2024-04-07 16:17:51 +02:00
Víctor Losada Hernández
99f9b10348 initial commit 2024-04-07 16:16:21 +02:00
Gazook89
ed85f77c48 ESLint linting (one small whitespace change). 2024-04-06 21:34:04 -05:00
Gazook89
777438fd94 rename props.brew.uiItems to ...accountDetails
and destructure props at start of account page component.

`accountDetails` is more descriptive of what set of info is being passed through props to the account page, info which is only *then* displayed as UI items.
2024-04-06 21:23:26 -05:00
Gazook89
08406de5cc add code comments for each step. 2024-04-06 15:44:19 -05:00
Gazook89
e1599909bc change name of render method to be more discriptive
"UiItems" is not descriptive enough for a render method because most anything that is rendered is part of the UI.  This could be left as just `render()`, but `renderAccountPage()` provides best context of what is happening.
2024-04-06 15:30:18 -05:00
Gazook89
e7eda1f5ec Convert class component to functional component
Used OpenAI ChatGPT to do the bulk of this, and then fixed some formatting and looked for obvious mistakes.
2024-04-06 15:26:40 -05:00
Gazook89
9f2aaf01c7 Remove unnecessary Nav components and methods. 2024-04-06 14:50:20 -05:00
Trevor Buckner
882c78fbb5 Merge pull request #2981 from 5e-Cleric/small-fixes,-snippet-uniformity
Cleaning CSS for uniformity
2024-04-04 17:44:34 -04:00
Trevor Buckner
a79b2fb755 Merge branch 'master' into small-fixes,-snippet-uniformity 2024-04-04 17:38:42 -04:00
Trevor Buckner
97fba241a1 Undo linting on unrelated pages 2024-04-04 17:37:52 -04:00
Trevor Buckner
d0fbca7af5 Undo linting on unrelated files. 2024-04-04 17:36:06 -04:00
Trevor Buckner
36726c747c Merge pull request #3393 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.3.0
Bump mongoose from 8.2.3 to 8.3.0
2024-04-04 14:28:16 -04:00
Trevor Buckner
74580e63d6 Merge branch 'master' into dependabot/npm_and_yarn/mongoose-8.3.0 2024-04-04 14:22:13 -04:00
Trevor Buckner
1d8eb35c64 Merge pull request #3368 from 5e-Cleric/authors-as-links-to-userpage-in-error-pages
Usernames in error pages being displayed as anchors to their userpage
2024-04-04 14:22:01 -04:00
Trevor Buckner
659472578b Merge branch 'master' into authors-as-links-to-userpage-in-error-pages 2024-04-04 14:19:56 -04:00
Trevor Buckner
9ec549b496 Merge pull request #3383 from Gazook89/Changes-to-server-start
Changes to terminal output on server start
2024-04-04 14:12:40 -04:00
Trevor Buckner
e37c190600 Merge branch 'master' into Changes-to-server-start 2024-04-04 14:11:33 -04:00
dependabot[bot]
d51d7efdcf Bump mongoose from 8.2.3 to 8.3.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.2.3 to 8.3.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.2.3...8.3.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 17:47:06 +00:00
Trevor Buckner
b0a16c8daf Merge pull request #3392 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.24.4
Bump @babel/preset-env from 7.24.3 to 7.24.4
2024-04-04 13:46:14 -04:00
dependabot[bot]
beb86c1820 Bump @babel/preset-env from 7.24.3 to 7.24.4
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.24.3 to 7.24.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 17:42:44 +00:00
Trevor Buckner
48f8026c35 Merge pull request #3391 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.24.4
Bump @babel/core from 7.24.3 to 7.24.4
2024-04-04 13:41:24 -04:00
Trevor Buckner
1be0a2dac3 Merge branch 'master' into dependabot/npm_and_yarn/babel/core-7.24.4 2024-04-04 13:40:08 -04:00
Trevor Buckner
d31e495d07 Merge pull request #3394 from Gazook89/1px-change-in-Editor-Height
1px adjustment to Editor height
2024-04-04 13:23:14 -04:00
Gazook89
3b2a48eabf remove + 1 from editor height 2024-04-03 22:52:16 -05:00
dependabot[bot]
4bc76a0766 Bump @babel/core from 7.24.3 to 7.24.4
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.24.3 to 7.24.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.4/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-04 03:12:37 +00:00
Trevor Buckner
3faa23c6eb Merge pull request #3389 from Gazook89/snippet-menu-style-revision
Align snippet menu icons and names
2024-04-03 23:05:25 -04:00
Gazook89
e324de8f4f remove 'remake' from font names 2024-04-03 14:09:07 -05:00
Gazook89
7954ae8692 set a min-width on icons, reduce font sizes 2024-04-03 12:57:24 -05:00
Víctor Losada Hernández
85a00b508b automatic linting 2024-04-02 14:47:03 +02:00
Víctor Losada Hernández
1e91d7256c Merge branch 'master' into authors-as-links-to-userpage-in-error-pages 2024-04-02 14:12:35 +02:00
Víctor Losada Hernández
8a15172db1 pull from master and suggested fixes 2024-04-02 14:09:53 +02:00
Víctor Losada Hernández
aae574e4e5 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into small-fixes,-snippet-uniformity 2024-04-02 13:56:21 +02:00
Víctor Losada Hernández
45106b47d4 Custom scrollbar fixes 2024-04-02 13:47:16 +02:00
Gazook89
59b3038b9b small style changes to terminal output of server start 2024-03-29 20:42:07 -05:00
Gazook89
31cf8b7d28 add browser-readable address and some styling to log. 2024-03-28 14:58:05 -05:00
Trevor Buckner
9f6bc10369 Merge pull request #3222 from naturalcrit/dependabot/npm_and_yarn/classnames-2.5.1
Bump classnames from 2.3.2 to 2.5.1
2024-03-27 10:07:46 -04:00
Trevor Buckner
f7c7d40195 Merge branch 'master' into dependabot/npm_and_yarn/classnames-2.5.1 2024-03-27 10:04:11 -04:00
Trevor Buckner
380e3fead3 Merge pull request #3367 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.24.3
Bump @babel/core from 7.24.0 to 7.24.3
2024-03-27 10:03:22 -04:00
dependabot[bot]
ffa01c7f1d Bump @babel/core from 7.24.0 to 7.24.3
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.24.0 to 7.24.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.3/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 14:01:07 +00:00
Trevor Buckner
15367f9444 Merge pull request #3380 from naturalcrit/dependabot/npm_and_yarn/express-4.19.2
Bump express from 4.19.1 to 4.19.2
2024-03-27 09:59:34 -04:00
Trevor Buckner
90a710907e Merge branch 'master' into dependabot/npm_and_yarn/express-4.19.2 2024-03-27 09:57:16 -04:00
Trevor Buckner
da6d06728c Merge pull request #3346 from 5e-Cleric/scrollbar
Custom scrollbar
2024-03-27 09:56:35 -04:00
Trevor Buckner
451ff3ffec Merge branch 'master' into scrollbar 2024-03-27 09:54:57 -04:00
Trevor Buckner
61038f876d Merge branch 'master' into dependabot/npm_and_yarn/express-4.19.2 2024-03-27 09:34:20 -04:00
Trevor Buckner
20e1c71eff Merge pull request #3379 from G-Ambatte/fixDL+MustacheClash-#3378
Change Marked extension priority order
2024-03-27 09:34:05 -04:00
Trevor Buckner
d2d7f5b71e Merge branch 'master' into fixDL+MustacheClash-#3378 2024-03-27 09:23:52 -04:00
dependabot[bot]
0ad4cb7cfd Bump express from 4.19.1 to 4.19.2
Bumps [express](https://github.com/expressjs/express) from 4.19.1 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.1...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 13:23:35 +00:00
Trevor Buckner
161efbb3c8 Merge pull request #3372 from naturalcrit/dependabot/npm_and_yarn/express-4.19.1
Bump express from 4.18.3 to 4.19.1
2024-03-27 09:23:06 -04:00
G.Ambatte
b35739c5c1 Change Marked extension priority order 2024-03-27 15:48:34 +13:00
Trevor Buckner
831c635149 Merge branch 'master' into dependabot/npm_and_yarn/express-4.19.1 2024-03-25 14:51:30 -04:00
Trevor Buckner
d961e7695d Merge pull request #3366 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.24.3
Bump @babel/plugin-transform-runtime from 7.24.0 to 7.24.3
2024-03-25 14:44:23 -04:00
dependabot[bot]
4b842ef37f Bump @babel/plugin-transform-runtime from 7.24.0 to 7.24.3
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.24.0 to 7.24.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.3/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 18:33:28 +00:00
Trevor Buckner
0396bedcd0 Merge pull request #3373 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.24.3
Bump @babel/preset-env from 7.24.1 to 7.24.3
2024-03-25 14:31:26 -04:00
Trevor Buckner
772b478682 Merge branch 'master' into dependabot/npm_and_yarn/babel/preset-env-7.24.3 2024-03-22 11:43:07 -04:00
Trevor Buckner
dab8dd278d Merge pull request #3376 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.2.3
Bump mongoose from 8.2.2 to 8.2.3
2024-03-22 11:42:57 -04:00
dependabot[bot]
72d26c6c7e Bump @babel/preset-env from 7.24.1 to 7.24.3
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.24.1 to 7.24.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.3/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-22 15:41:15 +00:00
Trevor Buckner
a7f07ab9f5 Merge branch 'master' into dependabot/npm_and_yarn/express-4.19.1 2024-03-22 11:40:47 -04:00
Trevor Buckner
75080135af Merge branch 'master' into dependabot/npm_and_yarn/mongoose-8.2.3 2024-03-22 11:40:36 -04:00
Trevor Buckner
7a9483c0d0 Merge pull request #3363 from naturalcrit/dependabot/npm_and_yarn/babel/preset-react-7.24.1
Bump @babel/preset-react from 7.23.3 to 7.24.1
2024-03-22 11:40:26 -04:00
Trevor Buckner
484c6bb8a7 Merge branch 'master' into dependabot/npm_and_yarn/babel/preset-react-7.24.1 2024-03-22 11:23:23 -04:00
Trevor Buckner
125adfb198 Merge branch 'master' into dependabot/npm_and_yarn/express-4.19.1 2024-03-22 11:23:09 -04:00
dependabot[bot]
a0c6e92016 Bump mongoose from 8.2.2 to 8.2.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.2.2 to 8.2.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.2.2...8.2.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-22 03:49:13 +00:00
Trevor Buckner
7de58740a2 Merge pull request #3375 from G-Ambatte/fixDefinitionListUndefinedTypeCrash
Fix crash when match is undefined
2024-03-21 21:56:31 -04:00
G.Ambatte
bae56b8b9d Fix crash when match is undefined 2024-03-22 14:27:45 +13:00
dependabot[bot]
e02d925a49 Bump express from 4.18.3 to 4.19.1
Bumps [express](https://github.com/expressjs/express) from 4.18.3 to 4.19.1.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.3...4.19.1)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-21 03:02:53 +00:00
Víctor Losada Hernández
03f868d084 initial commit 2024-03-20 17:58:10 +01:00
Trevor Buckner
920c4cd7cb Merge pull request #3361 from G-Ambatte/addDefinitionListTests
Add definition list test: ensure inline has priority over multiline
2024-03-20 10:42:52 -04:00
dependabot[bot]
bf2c638cad Bump @babel/preset-react from 7.23.3 to 7.24.1
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.23.3 to 7.24.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.1/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 14:41:25 +00:00
Trevor Buckner
eddb513e72 Merge branch 'master' into addDefinitionListTests 2024-03-20 10:40:34 -04:00
Trevor Buckner
fea68ac71a Merge pull request #3362 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.24.1
Bump @babel/preset-env from 7.24.0 to 7.24.1
2024-03-20 10:39:45 -04:00
dependabot[bot]
97b10c685c Bump @babel/preset-env from 7.24.0 to 7.24.1
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.24.0 to 7.24.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.1/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 03:21:58 +00:00
G.Ambatte
40fc422ab5 Check inline DL has priority over multiline DL 2024-03-20 13:31:10 +13:00
Trevor Buckner
647afba2b0 Merge pull request #3359 from naturalcrit/Fix-Multiline-DL-Crash
Fix crash for DL, disallow block tokens as DT, add test
2024-03-19 15:48:40 -04:00
Trevor Buckner
bd324a7e74 Fix crash for DL, disallow block tokens as DT, add test 2024-03-19 13:14:58 -04:00
Trevor Buckner
ac080c8323 Merge pull request #3358 from 5e-Cleric/fix-monster-dl
Quickfix: Monster statblocks definition list missed blank line
2024-03-18 19:36:48 -04:00
Trevor Buckner
30ebf90371 Add Tests to circleci 2024-03-18 19:34:17 -04:00
Trevor Buckner
f9a7adbd72 Fix tests 2024-03-18 19:28:42 -04:00
Víctor Losada Hernández
b74fb22182 Revert "fix another test"
This reverts commit b6ea89356b.
2024-03-18 23:50:33 +01:00
Víctor Losada Hernández
b6ea89356b fix another test 2024-03-18 23:47:06 +01:00
Víctor Losada Hernández
37488ded4d fix 1 test, no idea how these work 2024-03-18 23:43:51 +01:00
Víctor Losada Hernández
c47dd828ed initial commit 2024-03-18 23:39:15 +01:00
Trevor Buckner
a34ed8ccb4 Merge pull request #3354 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-react-7.34.1
Bump eslint-plugin-react from 7.34.0 to 7.34.1
2024-03-18 17:37:47 -04:00
Trevor Buckner
d4d0546d61 Merge branch 'master' into dependabot/npm_and_yarn/eslint-plugin-react-7.34.1 2024-03-18 17:34:16 -04:00
Trevor Buckner
e94c1d33d2 Merge pull request #3353 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.2.2
Bump mongoose from 8.2.1 to 8.2.2
2024-03-18 17:34:05 -04:00
Trevor Buckner
dd6388bf9f Merge pull request #3327 from G-Ambatte/experimentalBrewLocking-#3326
Add administrative brew locking function
2024-03-18 17:33:54 -04:00
Trevor Buckner
8b8071a903 Merge branch 'master' into experimentalBrewLocking-#3326 2024-03-18 17:31:41 -04:00
dependabot[bot]
19746a78f4 Bump eslint-plugin-react from 7.34.0 to 7.34.1
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.34.0 to 7.34.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/v7.34.1/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.0...v7.34.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 21:26:36 +00:00
dependabot[bot]
13d679c4bf Bump mongoose from 8.2.1 to 8.2.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.2.1 to 8.2.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.2.1...8.2.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 21:26:34 +00:00
Trevor Buckner
a851378a2f Merge pull request #3357 from naturalcrit/v3.12.0
v3.12.0
2024-03-18 17:25:34 -04:00
Trevor Buckner
e3b2d33a5e v3.12.0 2024-03-18 17:24:39 -04:00
Trevor Buckner
e4b7d0be64 Merge pull request #3356 from naturalcrit/Fix-Dicefont
Fix dicefont
2024-03-18 16:55:32 -04:00
Trevor Buckner
7e48696fb5 lint 2024-03-18 16:55:08 -04:00
Trevor Buckner
b727c56e56 Fix Dicefont 2024-03-18 16:52:43 -04:00
G.Ambatte
7f168f35b8 Add test for locked brew 2024-03-17 21:35:03 +13:00
G.Ambatte
21c0916693 Switch to boolean lock state 2024-03-17 21:34:31 +13:00
G.Ambatte
8f0fb6e458 Merge branch 'master' into experimentalBrewLocking-#3326 2024-03-17 18:40:57 +13:00
Trevor Buckner
4606ad4c6e Merge branch 'master' into scrollbar 2024-03-14 17:10:30 -04:00
Trevor Buckner
bf267436b0 Merge pull request #3348 from 5e-Cleric/fonts-fix
Font fix, df to icon fonts, remove duplication
2024-03-14 17:07:30 -04:00
Trevor Buckner
2af44665e1 Merge branch 'master' into fonts-fix 2024-03-14 16:59:21 -04:00
Trevor Buckner
e412a379e3 Merge pull request #3129 from dbolacksn/Extended_DD
Add Multi-line Dictionary Definition (<dd>) rows.
2024-03-14 00:05:30 -04:00
Trevor Buckner
f37da19649 lint 2024-03-14 00:03:28 -04:00
Trevor Buckner
d7756230fb More tests. Split into two extensions
Split into two extensions as single-line and multiline are different syntaxes. Simplified a lot of logic and probably cleaner as their own NPM packages (eventually).
2024-03-14 00:02:18 -04:00
David Bolack
d6aa0138f0 Merge branch 'Extended_DD' of github.com:dbolacksn/homebrewery-broken into Extended_DD 2024-03-09 19:42:34 -06:00
David Bolack
f3b17f4615 Fix bad merge 2024-03-09 19:40:54 -06:00
David Bolack
04e6f2ea58 Merge branch 'master' into Extended_DD 2024-03-09 19:37:57 -06:00
David Bolack
ed6718eef1 Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-03-09 19:37:31 -06:00
Trevor Buckner
e36a638ae5 Add more tests 2024-03-09 16:41:05 -05:00
Víctor Losada Hernández
d1c2e74ed6 Merge branch 'master' into fonts-fix 2024-03-08 19:56:15 +01:00
Víctor Losada Hernández
5a410029f6 Merge branch 'master' into scrollbar 2024-03-08 19:51:15 +01:00
Trevor Buckner
005fb705fa Merge pull request #3349 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.22.3
Bump react-router-dom from 6.22.2 to 6.22.3
2024-03-08 10:46:35 -05:00
Víctor Losada Hernández
b4fec32320 Merge branch 'scrollbar' of https://github.com/5e-Cleric/homebrewery into scrollbar 2024-03-08 10:13:06 +01:00
Víctor Losada Hernández
d0000cee11 linting 2024-03-08 10:13:04 +01:00
Víctor Losada Hernández
846b3b9d02 Merge branch 'master' into scrollbar 2024-03-08 10:11:16 +01:00
Víctor Losada Hernández
54d881642d listpage, editor 2024-03-08 10:09:29 +01:00
Trevor Buckner
f6c0b0d6fc Simplification of CSS 2024-03-07 23:46:10 -05:00
dependabot[bot]
08a3d7367b Bump react-router-dom from 6.22.2 to 6.22.3
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.2 to 6.22.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.3/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-08 03:15:21 +00:00
David Bolack
cd537f98c7 Merge branch 'master' into Extended_DD 2024-03-06 23:41:42 -06:00
David Bolack
8ab91c3eb2 Merge branch 'master' of github.com:dbolacksn/homebrewery-broken 2024-03-06 23:39:12 -06:00
David Bolack
8c773ced9c Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-03-06 23:38:44 -06:00
Víctor Losada Hernández
4cc2acc9e6 quickfix 2024-03-06 23:12:12 +01:00
Víctor Losada Hernández
f903e97562 back to original links 2024-03-06 23:03:44 +01:00
Víctor Losada Hernández
b57e42be6f Merge branch 'master' of https://github.com/naturalcrit/homebrewery into fonts-fix 2024-03-06 22:38:00 +01:00
Víctor Losada Hernández
9f95947d16 initial commit 2024-03-06 22:34:44 +01:00
Trevor Buckner
d129fc14c1 Merge pull request #3291 from 5e-Cleric/nav-fixes
Small navigation fixes
2024-03-06 15:39:45 -05:00
Trevor Buckner
58422569c9 Extra classes were needed for .recent and .save
.save has special styling for the "on" button.

.recent has special styling for the dividers between Edited and Viewed
2024-03-06 15:32:38 -05:00
Víctor Losada Hernández
f172d02920 Merge branch 'nav-fixes' of https://github.com/5e-Cleric/homebrewery into nav-fixes 2024-03-06 19:43:46 +01:00
Víctor Losada Hernández
dbe60e3ff1 dropdown classes fix 2024-03-06 19:43:44 +01:00
Víctor Losada Hernández
beaf67c975 initial commit 2024-03-06 19:30:23 +01:00
Trevor Buckner
8e6f0a7dbb Merge branch 'master' into nav-fixes 2024-03-06 13:24:32 -05:00
Víctor Losada Hernández
b2b276c3a3 classname to new dropdown 2024-03-06 19:21:11 +01:00
Víctor Losada Hernández
7483b4afc6 quickfix 2024-03-06 19:16:48 +01:00
Víctor Losada Hernández
c7a2e84927 no wrapping text 2024-03-06 19:13:35 +01:00
Víctor Losada Hernández
3482330629 adjust to work with overflow 2024-03-06 19:05:58 +01:00
Trevor Buckner
a74b556188 Merge pull request #3278 from 5e-Cleric/type-fix-for-stylesheet-import-in-html
Add type attribute to all stylesheet import link tags
2024-03-06 12:57:03 -05:00
Víctor Losada Hernández
1721b9087a Merge branch 'master' of https://github.com/naturalcrit/homebrewery into nav-fixes 2024-03-06 18:55:02 +01:00
Trevor Buckner
c871548877 Merge branch 'master' into type-fix-for-stylesheet-import-in-html 2024-03-06 12:53:04 -05:00
Trevor Buckner
190ecddc2a Merge pull request #3345 from RKuerten/fixContentsSnippet
Updated Table of Contents snippet
2024-03-06 12:45:38 -05:00
Trevor Buckner
0a24ac9f25 Merge pull request #3289 from 5e-Cleric/newFromLocal
New Brew from Local file
2024-03-06 12:44:01 -05:00
Trevor Buckner
d8d580c277 Merge branch 'master' into newFromLocal 2024-03-06 12:43:34 -05:00
Trevor Buckner
be08887e50 Merge pull request #3286 from 5e-Cleric/PHB-vs-Blank-theme-management
Phb vs Blank theme management
2024-03-06 12:33:26 -05:00
Trevor Buckner
5043313aca Merge branch 'master' into PHB-vs-Blank-theme-management 2024-03-06 12:32:20 -05:00
Trevor Buckner
83d2a604e1 Clean up some spacing 2024-03-06 12:28:43 -05:00
Víctor Losada Hernández
02509ebc3a Merge branch 'newFromLocal' of https://github.com/5e-Cleric/homebrewery into newFromLocal 2024-03-06 18:12:23 +01:00
Víctor Losada Hernández
e494899f8b icons 2024-03-06 18:12:21 +01:00
Víctor Losada Hernández
9f483bba6f Merge branch 'master' into newFromLocal 2024-03-06 18:09:57 +01:00
Víctor Losada Hernández
f93af38fa6 split-style-and-metadata moved to helpers.js 2024-03-06 18:09:26 +01:00
Rodrigo Kuerten
6eecd9cee4 Updated Table of Contents snippet 2024-03-06 13:46:13 -03:00
Trevor Buckner
7e847cc139 Merge pull request #3332 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.24.0
Bump @babel/plugin-transform-runtime from 7.23.9 to 7.24.0
2024-03-06 11:25:06 -05:00
dependabot[bot]
99daaf5537 Bump @babel/plugin-transform-runtime from 7.23.9 to 7.24.0
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.23.9 to 7.24.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-06 16:05:23 +00:00
Trevor Buckner
24421ca4e7 Merge pull request #3331 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.24.0
Bump @babel/preset-env from 7.23.9 to 7.24.0
2024-03-06 11:03:34 -05:00
Víctor Losada Hernández
25945fc0df getting rid of state as per req 2024-03-06 14:06:57 +01:00
Víctor Losada Hernández
b50353c8c4 rename nav buttons per req 2024-03-06 14:02:09 +01:00
dbolacksn
4f4b43f49d Merge branch 'naturalcrit:master' into master 2024-03-05 13:56:23 -06:00
dependabot[bot]
cfdc3e6870 Bump @babel/preset-env from 7.23.9 to 7.24.0
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.9 to 7.24.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 17:40:24 +00:00
Trevor Buckner
f71c3da568 Merge pull request #3333 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.24.0
Bump @babel/core from 7.23.9 to 7.24.0
2024-03-05 12:39:36 -05:00
dependabot[bot]
e472465ce7 Bump @babel/core from 7.23.9 to 7.24.0
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.9 to 7.24.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 17:36:12 +00:00
Trevor Buckner
776b6da79f Merge pull request #3337 from naturalcrit/dependabot/npm_and_yarn/express-4.18.3
Bump express from 4.18.2 to 4.18.3
2024-03-05 12:35:10 -05:00
dependabot[bot]
1e4a00ce56 Bump express from 4.18.2 to 4.18.3
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.18.3.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.18.3)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 17:23:13 +00:00
Trevor Buckner
ed6bca04f5 Merge pull request #3334 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.22.2
Bump react-router-dom from 6.22.1 to 6.22.2
2024-03-05 12:22:25 -05:00
dependabot[bot]
dbfc1e7d28 Bump react-router-dom from 6.22.1 to 6.22.2
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.1 to 6.22.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 17:19:12 +00:00
Trevor Buckner
cc9ead20b3 Merge pull request #3342 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-react-7.34.0
Bump eslint-plugin-react from 7.33.2 to 7.34.0
2024-03-05 12:18:26 -05:00
Trevor Buckner
79c89bb621 Merge branch 'master' into dependabot/npm_and_yarn/eslint-plugin-react-7.34.0 2024-03-05 12:14:59 -05:00
dependabot[bot]
cf1617f2a3 Bump eslint-plugin-react from 7.33.2 to 7.34.0
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.2 to 7.34.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.2...v7.34.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 17:10:23 +00:00
Trevor Buckner
7ecca16fd0 Merge pull request #3343 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.2.1
Bump mongoose from 8.2.0 to 8.2.1
2024-03-05 12:09:42 -05:00
Víctor Losada Hernández
1e1505c63f towards a more traditional approach 2024-03-05 08:27:56 +01:00
Víctor Losada Hernández
1bddb38fcc Merge branch 'master' of https://github.com/naturalcrit/homebrewery into newFromLocal 2024-03-05 08:07:34 +01:00
dependabot[bot]
3314471d73 Bump mongoose from 8.2.0 to 8.2.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.2.0 to 8.2.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.2.0...8.2.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 03:47:01 +00:00
David Bolack
15f95ddd44 Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-03-04 16:33:15 -06:00
Trevor Buckner
4dd8ad77bb Merge pull request #3288 from 5e-Cleric/FA-upgrade
FA to 6.5.1
2024-03-04 16:58:53 -05:00
Trevor Buckner
9f5a4fb44c Merge branch 'master' into FA-upgrade 2024-03-04 16:57:59 -05:00
David Bolack
7f16da110f Merge branch 'master' into Extended_DD 2024-03-04 11:01:49 -06:00
David Bolack
3734c9e71d Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-03-04 09:21:09 -06:00
Víctor Losada Hernández
6b93b1c1e7 Merge pull request #3292 from Gazook89/Combine-Nav-Styling
Looks good! thanks @Gazook89 !
2024-03-01 19:44:27 +01:00
Trevor Buckner
3d7780958a Merge branch 'Combine-Nav-Styling' of https://github.com/Gazook89/homebrewery into pr/3292 2024-03-01 01:31:06 -05:00
Trevor Buckner
59e87697ff linting 2024-03-01 01:27:46 -05:00
Trevor Buckner
20c088b6de Merge branch 'master' into Combine-Nav-Styling 2024-03-01 01:26:17 -05:00
Trevor Buckner
50f069e688 Fix some nesting of styles
The values from nav.less were mistakenly nested inside each other which was adding too much specificity.
2024-03-01 01:24:50 -05:00
Trevor Buckner
148c243d9f Merge pull request #3323 from dbolack-ab/fix_subsuper_Highlighting
Fix syntax highlighting on sub and superscript
2024-02-29 18:28:03 -05:00
Trevor Buckner
16e4f66b99 Merge branch 'master' into fix_subsuper_Highlighting 2024-02-29 18:27:35 -05:00
Trevor Buckner
774b555a61 Rework to fix 5eCleric's tests 2024-02-29 17:17:38 -05:00
G.Ambatte
5b35d1169d Merge branch 'experimentalBrewLocking-#3326' of https://github.com/G-Ambatte/homebrewery into experimentalBrewLocking-#3326 2024-02-28 16:02:47 +13:00
G.Ambatte
0d1d3a180d Handle missing lock property 2024-02-28 16:02:35 +13:00
G.Ambatte
df3db14e8b Merge branch 'master' into experimentalBrewLocking-#3326 2024-02-28 15:55:01 +13:00
Víctor Losada Hernández
0310eee685 increase minimum width 2024-02-27 22:18:04 +01:00
Víctor Losada Hernández
c4499fcc26 min-width for elements 2024-02-27 22:12:40 +01:00
Víctor Losada Hernández
1d317788fe fix undefined class 2024-02-27 22:12:32 +01:00
Víctor Losada Hernández
b5301ff978 requested changes 2024-02-27 21:53:44 +01:00
Víctor Losada Hernández
a027e16636 Merge branch 'pr/3292' into nav-fixes 2024-02-27 21:42:44 +01:00
Víctor Losada Hernández
673a22a571 Merge branch 'master' into nav-fixes 2024-02-27 21:32:03 +01:00
Trevor Buckner
1c7d2740f3 Merge branch 'master' into dependabot/npm_and_yarn/classnames-2.5.1 2024-02-27 15:30:35 -05:00
Trevor Buckner
3778b4c719 Merge pull request #3328 from naturalcrit/dependabot/npm_and_yarn/eslint-8.57.0
Bump eslint from 8.56.0 to 8.57.0
2024-02-27 10:39:12 -05:00
Trevor Buckner
3e258332c1 Merge pull request #3330 from RKuerten/removeBGattach
Remove background-attachment property from .monster.frame
2024-02-27 10:38:53 -05:00
Rodrigo Kuerten
713865fb40 Remove background-attachment property 2024-02-27 10:21:53 -03:00
G.Ambatte
bc29cddcec Merge pull request #3165 from G-Ambatte/experimentalTagFiltering-#3164
Add tag filtering
2024-02-27 08:49:33 +13:00
G.Ambatte
f9d8344dba Remove unnecessary function 2024-02-26 21:16:37 +13:00
dependabot[bot]
9d38c937b4 Bump eslint from 8.56.0 to 8.57.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.56.0 to 8.57.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 03:43:17 +00:00
G.Ambatte
622579bb7d Merge branch 'master' into experimentalTagFiltering-#3164 2024-02-26 13:12:37 +13:00
G.Ambatte
26263c0bf8 Remove unused function parameter type 2024-02-26 13:01:13 +13:00
David Bolack
05f88dfd00 Extended Definition List cleanup
Remove redundant inlineBlock extension
Add missing trim on multiline definitions
Fix editor regex for colon terminated terms.
2024-02-25 09:19:31 -06:00
David Bolack
d1d28acebb Merge branch 'master' into Extended_DD 2024-02-25 09:15:27 -06:00
David Bolack
84d5b26530 Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-02-25 08:34:37 -06:00
Víctor Losada Hernández
16c37d8d76 Merge branch 'master' into Combine-Nav-Styling 2024-02-25 13:12:21 +01:00
G.Ambatte
802da2920b Initial functionality pass 2024-02-25 22:28:44 +13:00
Víctor Losada Hernández
a608df9cd9 Merge pull request #3325 from RKuerten/new-theme
This looks good, merging now, thanks @RKuerten !
2024-02-25 01:03:58 +01:00
Rodrigo Kuerten
254b0852ca Cleaned up css, added missing variables 2024-02-24 20:57:26 -03:00
Víctor Losada Hernández
8e41755d2a Merge branch 'master' into Combine-Nav-Styling 2024-02-25 00:06:29 +01:00
Rodrigo Kuerten
36eb250d7a Merge branch 'master' into new-theme 2024-02-24 20:00:44 -03:00
G.Ambatte
a2b97abb2e Remove missed console.log debugging lines 2024-02-25 11:47:34 +13:00
Víctor Losada Hernández
0331f5cf5b Merge branch 'master' into experimentalTagFiltering-#3164 2024-02-24 23:30:14 +01:00
Víctor Losada Hernández
54159513e4 Merge pull request #3197 from G-Ambatte/addDiceFont
Add DiceFont support to Homebrewery
2024-02-24 23:26:33 +01:00
Víctor Losada Hernández
99a766d990 Merge branch 'master' into addDiceFont 2024-02-24 23:24:49 +01:00
Rodrigo Kuerten
1ec0cb14ef Merge branch 'master' into new-theme 2024-02-24 14:42:33 -03:00
Víctor Losada Hernández
387f03db25 Merge branch 'master' into Combine-Nav-Styling 2024-02-24 13:29:08 +01:00
Víctor Losada Hernández
0c20a65999 Merge pull request #3324 from dbolack-ab/Readme_column
Add a column break before the Tables header on page 2
2024-02-24 13:04:42 +01:00
Rodrigo Kuerten
da8836ba99 Added new theme 2024-02-23 22:07:28 -03:00
David Bolack
bf874c55af Add a column break before the Tables header on page 2
Small formatting fix.
2024-02-23 14:46:13 -06:00
Víctor Losada Hernández
43a76933ab Merge branch 'master' into experimentalTagFiltering-#3164 2024-02-23 20:23:15 +01:00
Víctor Losada Hernández
ce9013fed2 Merge branch 'master' into addDiceFont 2024-02-23 20:22:45 +01:00
Víctor Losada Hernández
e4632ea340 Merge branch 'master' into Combine-Nav-Styling 2024-02-23 20:20:50 +01:00
Víctor Losada Hernández
f21eaab997 Merge branch 'master' into type-fix-for-stylesheet-import-in-html 2024-02-23 20:19:58 +01:00
Víctor Losada Hernández
f48b9c46fe Merge branch 'master' into PHB-vs-Blank-theme-management 2024-02-23 20:19:49 +01:00
Víctor Losada Hernández
7d08731094 Merge branch 'master' into newFromLocal 2024-02-23 20:19:33 +01:00
Víctor Losada Hernández
bd97d78195 Merge branch 'master' into nav-fixes 2024-02-23 20:19:18 +01:00
Víctor Losada Hernández
b1a3fcf33c Merge branch 'master' into FA-upgrade 2024-02-23 20:18:50 +01:00
Víctor Losada Hernández
453656fbeb Merge branch 'master' into small-fixes,-snippet-uniformity 2024-02-23 18:53:56 +01:00
David Bolack
7d755fe2a3 Fix syntax highlighting on sub and superscript
I did not test this very robustly, it seems.
2024-02-23 11:35:57 -06:00
Trevor Buckner
ba1430c377 Merge pull request #3320 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.2.0
Bump mongoose from 8.1.3 to 8.2.0
2024-02-22 23:08:17 -05:00
dependabot[bot]
7698abe70f Bump mongoose from 8.1.3 to 8.2.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.1.3 to 8.2.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.1.3...8.2.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-23 03:02:05 +00:00
Víctor Losada Hernández
fd58503a77 Merge pull request #3297 from RKuerten/fixMonsterBg
Changed background-attachment: fixed on the monster frame
2024-02-22 16:43:10 +01:00
Rodrigo Kuerten
8aa7a26183 Merge branch 'master' into fixMonsterBg 2024-02-22 12:02:14 -03:00
G.Ambatte
ad5ad05b7b Simplify syntax 2024-02-22 20:02:09 +13:00
G.Ambatte
c0827d6db0 Merge branch 'master' into addDiceFont 2024-02-22 19:55:25 +13:00
G.Ambatte
43209186ee Remove obsolete styling from tags-container 2024-02-22 19:27:17 +13:00
G.Ambatte
46a0a66fb6 Use currentColor once instead of multiple border-color declarations 2024-02-22 19:20:42 +13:00
G.Ambatte
9e6f7a496e Merge branch 'master' into experimentalTagFiltering-#3164 2024-02-22 19:16:38 +13:00
Trevor Buckner
94d9e1b08e Merge pull request #3316 from G-Ambatte/fixSantizeScriptTags-#3315
Fix sanitizeScriptTags when content is null
2024-02-22 00:20:35 -05:00
G.Ambatte
087ce4bb90 Merge branch 'master' into experimentalTagFiltering-#3164 2024-02-22 17:37:37 +13:00
G.Ambatte
2c02d4174f Fix sanitizeScriptTags when content is null 2024-02-22 17:06:02 +13:00
Trevor Buckner
4feeaee7e7 Merge pull request #3307 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.9.0
Bump eslint-plugin-jest from 27.6.3 to 27.9.0
2024-02-21 22:02:52 -05:00
Trevor Buckner
5f5185c619 Merge branch 'master' into dependabot/npm_and_yarn/eslint-plugin-jest-27.9.0 2024-02-21 21:53:14 -05:00
Trevor Buckner
3e76307303 Merge pull request #3296 from 5e-Cleric/lang-fix-on-print
Fix lang on print
2024-02-21 21:52:59 -05:00
Trevor Buckner
fe3a5f4def Merge branch 'master' into lang-fix-on-print 2024-02-21 21:52:03 -05:00
Trevor Buckner
5d752f3355 Merge branch 'master' into dependabot/npm_and_yarn/eslint-plugin-jest-27.9.0 2024-02-21 21:49:43 -05:00
Trevor Buckner
8f400236a7 Merge pull request #3314 from naturalcrit/ForceVarMathTo$
Variable math requires `$` prefix
2024-02-21 21:42:36 -05:00
Trevor Buckner
8779ee3325 Variable math requires $ prefix 2024-02-21 21:42:03 -05:00
dependabot[bot]
e268858945 Bump eslint-plugin-jest from 27.6.3 to 27.9.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.6.3 to 27.9.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.6.3...v27.9.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 22:31:38 +00:00
Trevor Buckner
0e48f325f2 Merge pull request #3311 from naturalcrit/v3.11.0
Up to v3.11.0
2024-02-21 17:30:44 -05:00
Trevor Buckner
7e38271ac6 Up to v3.11.0 2024-02-21 17:30:15 -05:00
Rodrigo Kuerten
ff75afa91f Merge branch 'master' into fixMonsterBg 2024-02-21 08:46:47 -03:00
Trevor Buckner
4866eacd5d Merge pull request #3306 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.22.1
Bump react-router-dom from 6.22.0 to 6.22.1
2024-02-20 23:51:32 -05:00
Trevor Buckner
1386020bbb Merge pull request #3273 from 5e-Cleric/brew-author-comma-fix
brew fix commas
2024-02-20 23:25:23 -05:00
Trevor Buckner
6b7af58e6c Change span to Fragment; linting 2024-02-20 23:24:43 -05:00
dependabot[bot]
0f1d07d90f Bump react-router-dom from 6.22.0 to 6.22.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.22.0 to 6.22.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@6.22.1/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 04:08:37 +00:00
Trevor Buckner
d5230757b1 Merge pull request #3305 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.1.3
Bump mongoose from 8.1.1 to 8.1.3
2024-02-20 23:07:27 -05:00
Trevor Buckner
06825468b4 Merge pull request #3299 from 5e-Cleric/update-popup
popup update 3.11
2024-02-20 23:07:05 -05:00
Trevor Buckner
faab60f271 Merge branch 'master' into update-popup 2024-02-20 23:06:33 -05:00
dependabot[bot]
4bed2349a9 Bump mongoose from 8.1.1 to 8.1.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.1.1 to 8.1.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.1.1...8.1.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 04:05:02 +00:00
Trevor Buckner
53f1e53fcb Merge pull request #3199 from naturalcrit/GlobalReflinks
Yet another Brew Variables PR
2024-02-20 23:03:53 -05:00
Trevor Buckner
df447d3d4d typo 2024-02-20 23:01:49 -05:00
Trevor Buckner
e3bf913a80 lint 2024-02-20 23:00:57 -05:00
Trevor Buckner
7bb1f16946 Always render currently-edited page first, so variables update across pages properly 2024-02-20 22:56:37 -05:00
Trevor Buckner
6870fd6d76 Add tests for cross-page behavior and fix related bugs 2024-02-20 22:31:33 -05:00
Trevor Buckner
9ad1d1f196 remove unused 'parseVarse' variable 2024-02-20 17:05:26 -05:00
Trevor Buckner
969cff61bf Add one more test that was failing 2024-02-20 17:03:17 -05:00
Trevor Buckner
736f729457 Rename variables 2024-02-20 16:46:49 -05:00
Trevor Buckner
0050e1e294 Added another test for a broken case and fixed; Cleaned up more 2024-02-20 15:37:54 -05:00
Trevor Buckner
f2d1b61a7a Remove unused variables 2024-02-20 00:04:29 -05:00
Trevor Buckner
1d1fa99b4b Pass all tests 2024-02-19 23:57:19 -05:00
Víctor Losada Hernández
f42cab6e40 suggested changes 2024-02-17 11:51:42 +01:00
Trevor Buckner
bc21abd509 Fix matches inside of code blocks 2024-02-14 11:38:47 -05:00
Trevor Buckner
72744718cc Adding some tests 2024-02-13 22:44:57 -05:00
Trevor Buckner
e85a62a05c Disable default def behavior. 2024-02-13 09:35:55 -05:00
Víctor Losada Hernández
5a68acc0f5 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into update-popup 2024-02-13 14:31:45 +01:00
Víctor Losada Hernández
f51fca74e6 initial commit 2024-02-13 14:27:32 +01:00
Víctor Losada Hernández
fe5a76c0df fix link href 2024-02-13 10:52:53 +01:00
Trevor Buckner
3bda834ad3 remove console.log 2024-02-13 00:53:34 -05:00
Trevor Buckner
29f0a8e635 Fix code blocks and nested parens. 2024-02-13 00:23:58 -05:00
Trevor Buckner
c035404555 Add exponents via '^' 2024-02-12 11:58:56 -05:00
Trevor Buckner
74ddc71962 Add 'floor()' and 'ceil()' math functions. 2024-02-12 11:57:37 -05:00
Trevor Buckner
1491a1b4ff Fix Math assignments 2024-02-12 11:54:28 -05:00
Rodrigo Kuerten
6890bab668 Fixed background being fixed on the monster frame 2024-02-12 10:37:52 -03:00
Víctor Losada Hernández
209c237b73 en-US to en 2024-02-12 08:54:00 +01:00
Víctor Losada Hernández
086468d65b initial commit 2024-02-12 08:12:53 +01:00
Gazook89
323d84974c Combine nav and navbar styles
- moves all the nav.less styling to navbar.less in the `client` directory
- deletes nav.less
- changes the nav.jsx import of styles to navbar.less
- stylelint navbar.less
- added a couple comments about easy future changes.
2024-02-10 22:29:16 -06:00
Víctor Losada Hernández
6365fb9b56 Merge branch 'master' into nav-fixes 2024-02-10 13:05:13 +01:00
Víctor Losada Hernández
19bb9705b6 initial commit 2024-02-09 13:33:41 +01:00
Víctor Losada Hernández
705d170b6e alert if wrong file, redirect if good 2024-02-09 10:22:55 +01:00
Trevor Buckner
ab54188ba4 Fix small typo 2024-02-09 02:15:53 -05:00
Trevor Buckner
e0b6b95295 Merge pull request #3290 from naturalcrit/PreprocessVars
Simplify and clean Vars - Done in preprocessing step now
2024-02-09 02:04:02 -05:00
Trevor Buckner
c7cfade86f Support () and round in math 2024-02-09 01:59:59 -05:00
Trevor Buckner
e4fa59aae8 Merge branch 'master' into PreprocessVars 2024-02-08 23:13:19 -05:00
Trevor Buckner
35227268cf Move to preprocessor step 2024-02-08 23:12:06 -05:00
David Bolack
67b11d62ea Small DD appending mode fix 2024-02-08 19:35:43 -06:00
David Bolack
2b81c26cff Working, but ugly 2024-02-08 19:23:33 -06:00
Víctor Losada Hernández
32b5bebbc4 full functionality 2024-02-09 00:18:39 +01:00
Trevor Buckner
c27f5d9efa Merge pull request #3287 from naturalcrit/dependabot/npm_and_yarn/stylelint-config-recess-order-4.6.0
Bump stylelint-config-recess-order from 4.5.0 to 4.6.0
2024-02-08 10:53:40 -05:00
Víctor Losada Hernández
26a41e6262 FA to 6.5.1 2024-02-08 11:33:11 +01:00
dependabot[bot]
87c9e587a1 Bump stylelint-config-recess-order from 4.5.0 to 4.6.0
Bumps [stylelint-config-recess-order](https://github.com/stormwarning/stylelint-config-recess-order) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/stormwarning/stylelint-config-recess-order/releases)
- [Changelog](https://github.com/stormwarning/stylelint-config-recess-order/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stormwarning/stylelint-config-recess-order/compare/v4.5.0...v4.6.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recess-order
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 03:54:50 +00:00
David Bolack
f3148ed53c Fix Syntax Highlighting
Update changelog to match PR target shifts.
2024-02-07 20:23:19 -06:00
David Bolack
ea320e0cc4 Merge branch 'master' into Extended_DD 2024-02-07 20:11:57 -06:00
Víctor Losada Hernández
7f8b87bb85 watermark now visible 2024-02-07 22:52:44 +01:00
Víctor Losada Hernández
5e97121e5a pageNumber to blank 2024-02-07 22:48:32 +01:00
Víctor Losada Hernández
c9fc976c72 counter left 2024-02-07 22:43:43 +01:00
Víctor Losada Hernández
9e8570c19b page counter rename 2024-02-07 22:42:55 +01:00
Trevor Buckner
ed2d539995 Merge pull request #3282 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-8.7.0
Bump @googleapis/drive from 8.6.0 to 8.7.0
2024-02-07 07:45:44 -05:00
David Bolack
13fbcd0eb1 Improve Regex to permit DTs with a final : 2024-02-06 23:29:59 -06:00
David Bolack
43b9f3d901 Merge branch 'master' into Extended_DD 2024-02-06 22:25:26 -06:00
David Bolack
3ee9fe1c3f Update tests.
Prune no lionger valid cases.
2024-02-06 22:13:44 -06:00
dependabot[bot]
65cc8567a1 Bump @googleapis/drive from 8.6.0 to 8.7.0
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 8.6.0 to 8.7.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/drive-v8.6.0...drive-v8.7.0)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 04:12:33 +00:00
Trevor Buckner
dd82f54549 Merge pull request #3283 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.1.3
Bump marked-gfm-heading-id from 3.1.2 to 3.1.3
2024-02-06 23:11:44 -05:00
dependabot[bot]
a014056440 Bump marked-gfm-heading-id from 3.1.2 to 3.1.3
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.1.2...v3.1.3)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 03:58:59 +00:00
Trevor Buckner
c176c38f30 Merge pull request #3280 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.22.0
Bump react-router-dom from 6.21.3 to 6.22.0
2024-02-06 22:58:10 -05:00
dependabot[bot]
4c87aed628 Bump react-router-dom from 6.21.3 to 6.22.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.21.3 to 6.22.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.22.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 03:51:27 +00:00
Trevor Buckner
09f2f96dff Merge pull request #3285 from naturalcrit/dependabot/npm_and_yarn/stylelint-config-recess-order-4.5.0
Bump stylelint-config-recess-order from 4.4.0 to 4.5.0
2024-02-06 22:50:26 -05:00
David Bolack
703e207970 I think I have all the desired modes in place.
I feel like this is ugly code and maybe there are prettier ways to do
it, but it functions as I *believe* is currently desired.
2024-02-06 21:47:15 -06:00
dependabot[bot]
f075b19a68 Bump stylelint-config-recess-order from 4.4.0 to 4.5.0
Bumps [stylelint-config-recess-order](https://github.com/stormwarning/stylelint-config-recess-order) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/stormwarning/stylelint-config-recess-order/releases)
- [Changelog](https://github.com/stormwarning/stylelint-config-recess-order/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stormwarning/stylelint-config-recess-order/compare/v4.4.0...v4.5.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recess-order
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 03:42:21 +00:00
David Bolack
283c2b5ae1 Empty Tag multiline input 2024-02-05 21:18:36 -06:00
Víctor Losada Hernández
f1c3507a9f initial commit 2024-01-31 15:45:27 +01:00
David Bolack
29dc1e0747 Merge branch 'master' into Extended_DD 2024-01-30 18:40:58 -06:00
David Bolack
265e9976b9 Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-01-30 18:40:42 -06:00
dependabot[bot]
70657c16d1 Bump classnames from 2.3.2 to 2.5.1
Bumps [classnames](https://github.com/JedWatson/classnames) from 2.3.2 to 2.5.1.
- [Changelog](https://github.com/JedWatson/classnames/blob/main/HISTORY.md)
- [Commits](https://github.com/JedWatson/classnames/compare/v2.3.2...v2.5.1)

---
updated-dependencies:
- dependency-name: classnames
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-30 19:30:29 +00:00
Trevor Buckner
7177548c0e Merge pull request #3276 from naturalcrit/dependabot/npm_and_yarn/marked-11.2.0
Bump marked from 11.1.1 to 11.2.0
2024-01-30 14:29:00 -05:00
David Bolack
e1ad05eb3a Solve regression with monster template.
Was not handling "weak" Definition list endings well ( places were it
was \n<something> instead of \n\n.
2024-01-29 23:42:13 -06:00
David Bolack
e4324f316d Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-01-29 20:03:03 -06:00
Trevor Buckner
46140e92fd Merge branch 'master' into pr/3129 2024-01-29 20:56:48 -05:00
dependabot[bot]
3bc2df0ac5 Bump marked from 11.1.1 to 11.2.0
Bumps [marked](https://github.com/markedjs/marked) from 11.1.1 to 11.2.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v11.1.1...v11.2.0)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:26:17 +00:00
Víctor Losada Hernández
77abab8395 initial commit 2024-01-27 16:58:28 +01:00
Trevor Buckner
37c72d5125 Merge pull request #3267 from dbolacksn/clone_tags
Clone a brew's tags when cloning a brew.
2024-01-26 15:00:50 -05:00
Trevor Buckner
602a476b59 Merge branch 'master' into pr/3267 2024-01-26 14:58:42 -05:00
Trevor Buckner
965397733d Merge pull request #3268 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.23.9
Bump @babel/core from 7.23.7 to 7.23.9
2024-01-26 14:57:12 -05:00
Trevor Buckner
f10868db0b Merge branch 'master' into dependabot/npm_and_yarn/babel/core-7.23.9 2024-01-26 14:30:38 -05:00
Trevor Buckner
d7a95d3cff Merge pull request #3269 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.23.9
Bump @babel/preset-env from 7.23.8 to 7.23.9
2024-01-26 14:30:22 -05:00
dependabot[bot]
6eeed49022 Bump @babel/core from 7.23.7 to 7.23.9
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.7 to 7.23.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.9/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-26 16:48:01 +00:00
dependabot[bot]
be96c3a56f Bump @babel/preset-env from 7.23.8 to 7.23.9
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.8 to 7.23.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.9/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-26 16:46:59 +00:00
Trevor Buckner
57a31f3b71 Merge pull request #3270 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.23.9
Bump @babel/plugin-transform-runtime from 7.23.7 to 7.23.9
2024-01-26 11:46:10 -05:00
David Bolack
7c5955c96f Merge branch 'master' into clone_tags 2024-01-26 10:40:00 -06:00
David Bolack
8ab273363c Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-01-26 09:52:42 -06:00
dependabot[bot]
538650bf92 Bump @babel/plugin-transform-runtime from 7.23.7 to 7.23.9
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.23.7 to 7.23.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.9/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-26 03:22:04 +00:00
David Bolack
54921a998a Clone tags along with the rest of the brew 2024-01-25 19:51:03 -06:00
Trevor Buckner
da11089fff Merge pull request #3265 from 5e-Cleric/brewItem-update
Easy enough. Thanks @5e-Cleric ! 🎉
2024-01-25 16:36:46 -05:00
Trevor Buckner
0243d138ff Merge branch 'master' into pr/3265 2024-01-25 16:30:43 -05:00
Trevor Buckner
4c8a5baee5 Merge pull request #3264 from 5e-Cleric/admin-fix
Thanks @5e-Cleric !  💯 🔥
2024-01-25 16:29:37 -05:00
Trevor Buckner
e5acbfed3a Linting and small tweaks 2024-01-25 16:27:10 -05:00
David Bolack
0163e22567 Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-01-25 13:58:04 -06:00
Trevor Buckner
b503b8fc9b Merge branch 'master' into pr/3264 2024-01-25 14:35:23 -05:00
Trevor Buckner
3243e4d56c Merge pull request #3266 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.1.1
Bump mongoose from 8.1.0 to 8.1.1
2024-01-25 14:33:46 -05:00
David Bolack
fbc164a9b8 Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-01-25 13:10:08 -06:00
dependabot[bot]
78cf95fbb1 Bump mongoose from 8.1.0 to 8.1.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.1.0 to 8.1.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.1.0...8.1.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-25 03:48:29 +00:00
Víctor Losada Hernández
d2306b70a9 quick fix based on review, textBin 2024-01-24 23:24:51 +01:00
Víctor Losada Hernández
43180c314f Merge branch 'master' into brewItem-update 2024-01-24 23:11:18 +01:00
Víctor Losada Hernández
f47c2dcb56 style fix 2024-01-24 23:07:53 +01:00
Víctor Losada Hernández
a4ea1612c1 tag count in title, and authors to links 2024-01-24 23:05:50 +01:00
Víctor Losada Hernández
8b6517eb8d more callback errors, and cloning queries 2024-01-24 22:49:14 +01:00
Víctor Losada Hernández
067a7cd507 admin fixes, the rest( i think) 2024-01-24 22:20:01 +01:00
Víctor Losada Hernández
0243b5f491 inital commit 2024-01-23 08:09:17 +01:00
Trevor Buckner
31c7fd12b9 Merge pull request #3241 from naturalcrit/dependabot/npm_and_yarn/marked-11.1.1
Bump marked from 5.1.1 to 11.1.1
2024-01-22 19:29:55 -05:00
Trevor Buckner
7b8aaa408d Merge branch 'master' into dependabot/npm_and_yarn/marked-11.1.1 2024-01-22 18:03:57 -05:00
Trevor Buckner
1c65ee150b relocate renderer.link 2024-01-22 17:56:40 -05:00
Trevor Buckner
b0cfeaa782 Allow Babel to transpile Marked
Marked now only supports ES6. Needs to be transpiled by us to support older browsers.
2024-01-22 17:45:00 -05:00
Trevor Buckner
84de560083 Initial commit 2024-01-22 16:00:21 -05:00
Víctor Losada Hernández
2b1b0acefc Merge branch 'master' into experimentalTagFiltering-#3164 2024-01-20 14:50:41 +01:00
David Bolack
8fc6047127 Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-01-19 19:01:39 -06:00
Louis David Bolack
7782e200af Merge branch 'master' into Extended_DD 2024-01-19 18:49:24 -06:00
Víctor Losada Hernández
62e679571e Merge pull request #3259 from 5e-Cleric/new-page-in-new-tab
New page in new tab
2024-01-19 18:31:43 +01:00
Víctor Losada Hernández
f32c52a460 Merge branch 'master' into new-page-in-new-tab 2024-01-19 18:25:57 +01:00
Víctor Losada Hernández
edbe8cdace initial commit 2024-01-19 18:17:03 +01:00
Trevor Buckner
9e4344de83 Merge branch 'master' into GlobalReflinks 2024-01-19 00:13:02 -05:00
Trevor Buckner
760269a6e1 Fix math and inline defs getting lowercased 2024-01-19 00:11:52 -05:00
dependabot[bot]
e53e00713d Bump marked from 5.1.1 to 11.1.1
Bumps [marked](https://github.com/markedjs/marked) from 5.1.1 to 11.1.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v5.1.1...v11.1.1)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-19 04:59:48 +00:00
David Bolack
faba9f1616 Merge branch 'master' into Extended_DD 2024-01-18 22:59:22 -06:00
David Bolack
6beee49ebc Merge branch 'master' of github.com:naturalcrit/homebrewery 2024-01-18 22:58:58 -06:00
Trevor Buckner
eaf3c7978d Merge pull request #3256 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.21.3
Bump react-router-dom from 6.21.2 to 6.21.3
2024-01-18 23:58:23 -05:00
dependabot[bot]
d36e052478 Bump react-router-dom from 6.21.2 to 6.21.3
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.21.2 to 6.21.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.21.3/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-19 03:08:19 +00:00
Trevor Buckner
099ea08bd4 Merge pull request #3255 from naturalcrit/MoreSpecificSaveErrorPopups
Add error popups for "Out of Google Drive Storage" and "Not logged in to edit"
2024-01-18 17:25:04 -05:00
Trevor Buckner
b0ea34cc3f Add custom error messages. 2024-01-18 17:20:31 -05:00
Trevor Buckner
a241813b8d Merge pull request #3118 from G-Ambatte/separateApiErrors-#2975
Identify API errors and send error response
2024-01-18 15:36:10 -05:00
Trevor Buckner
de27437148 Merge branch 'master' into separateApiErrors-#2975 2024-01-18 15:32:16 -05:00
Víctor Losada Hernández
79e8dfec18 Merge branch 'master' into GlobalReflinks 2024-01-18 16:55:21 +01:00
David Bolack
0c010a0a87 Revert "WIP"
This reverts commit 67a4391dcb.
2024-01-18 09:51:17 -06:00
David Bolack
0c6c9fce4d Revert "Simple Underline token."
This reverts commit 04187cf769.
2024-01-18 09:51:14 -06:00
David Bolack
ac9fc720f7 Revert "A better regex for underlining."
This reverts commit a88b256b6c.
2024-01-18 09:51:11 -06:00
David Bolack
8b31966c2b Revert "Remove stray console.logs."
This reverts commit 1861c7db69.
2024-01-18 09:51:07 -06:00
Víctor Losada Hernández
76d966f17d Merge pull request #3248 from 5e-Cleric/small-phb-fixes
Fix italicized parentheses in class feature
2024-01-18 13:38:50 +01:00
Víctor Losada Hernández
d0d8b268d4 Merge branch 'master' into small-phb-fixes 2024-01-18 13:22:49 +01:00
David Bolack
8bd8f0fc37 Merge remote-tracking branch 'origin/master' 2024-01-17 17:20:23 -06:00
Trevor Buckner
a2acf3be0e Merge pull request #3244 from Gazook89/theme-selector-styling
Theme Selector Z-index issue
2024-01-17 17:21:32 -05:00
Trevor Buckner
844a3c19ec Merge branch 'master' into theme-selector-styling 2024-01-17 17:21:21 -05:00
Trevor Buckner
877c2e365f Merge pull request #3245 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.6.3
Bump eslint-plugin-jest from 27.6.2 to 27.6.3
2024-01-17 17:20:24 -05:00
Trevor Buckner
81c7950ad1 Merge branch 'master' into dependabot/npm_and_yarn/eslint-plugin-jest-27.6.3 2024-01-17 14:28:43 -05:00
Trevor Buckner
7b8e3da90a Merge pull request #3250 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.1.0
Bump mongoose from 8.0.4 to 8.1.0
2024-01-17 14:28:26 -05:00
Trevor Buckner
eef3d7738e Merge branch 'master' into separateApiErrors-#2975 2024-01-17 14:11:13 -05:00
dependabot[bot]
b8ca837c02 Bump eslint-plugin-jest from 27.6.2 to 27.6.3
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.6.2 to 27.6.3.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.6.2...v27.6.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 19:10:57 +00:00
dependabot[bot]
1fc3573087 Bump mongoose from 8.0.4 to 8.1.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.0.4 to 8.1.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.0.4...8.1.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 19:10:35 +00:00
Trevor Buckner
5ab89b2583 Merge pull request #3251 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-8.6.0
Bump @googleapis/drive from 8.5.0 to 8.6.0
2024-01-17 14:09:42 -05:00
dependabot[bot]
539cd1d2b9 Bump @googleapis/drive from 8.5.0 to 8.6.0
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 8.5.0 to 8.6.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/drive-v8.5.0...drive-v8.6.0)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 03:45:33 +00:00
G.Ambatte
c930ae87f4 Merge branch 'master' into addDiceFont 2024-01-17 07:06:15 +13:00
Víctor Losada Hernández
4424a331d5 first commit 2024-01-16 18:38:38 +01:00
David Bolack
c747c5577e Add PANdoc style lists ( using :: not : )
Includes new tests and fixes broken old tests
2024-01-16 02:01:55 -06:00
David Bolack
ce8cbba441 Merge branch 'master' into Extended_DD 2024-01-16 00:29:29 -06:00
David Bolack
c0cabbb563 Move Credits snippet to Blank 2024-01-15 21:35:19 -06:00
G.Ambatte
e56ff93db1 Add underline on hover to link in credit 2024-01-15 21:34:24 -06:00
G.Ambatte
033776168e Change the text to include URL link 2024-01-15 21:34:23 -06:00
G.Ambatte
d0ccc4a15a Capitalize C in NaturalCrit.com 2024-01-15 21:34:19 -06:00
G.Ambatte
2f383d59b6 Add HB Credit snippet 2024-01-15 21:34:18 -06:00
G.Ambatte
c9c5176f1b Add Credits styling to 5ePHB theme 2024-01-15 21:34:17 -06:00
G.Ambatte
fe0cfcb2b6 New file was unnecessary 2024-01-15 21:34:16 -06:00
G.Ambatte
0470d13ae0 Add optimized NC logo 2024-01-15 21:34:15 -06:00
Trevor Buckner
c4defb7b3f Merge pull request #3246 from naturalcrit/dependabot/npm_and_yarn/supertest-6.3.4
Bump supertest from 6.3.3 to 6.3.4
2024-01-15 21:13:35 -05:00
dependabot[bot]
c1e17bb6aa Bump supertest from 6.3.3 to 6.3.4
Bumps [supertest](https://github.com/ladjs/supertest) from 6.3.3 to 6.3.4.
- [Release notes](https://github.com/ladjs/supertest/releases)
- [Commits](https://github.com/ladjs/supertest/compare/v6.3.3...v6.3.4)

---
updated-dependencies:
- dependency-name: supertest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 03:52:38 +00:00
David Bolack
d09dc11f5f The remainder of the tests 2024-01-14 13:38:01 -06:00
David Bolack
4c2211c428 Updated rendering to follow input line breaks
Updated and additional tests.
2024-01-14 13:30:52 -06:00
David Bolack
d076d6c719 Update tests for previous changes. 2024-01-13 18:58:59 -06:00
Gazook89
d648bacd26 Merge branch 'master' into theme-selector-styling 2024-01-13 15:28:51 -06:00
Gazook89
1ca5ba1086 Merge branch 'theme-selector-styling' of https://github.com/Gazook89/homebrewery into theme-selector-styling 2024-01-13 15:19:40 -06:00
Gazook89
7c28f60e0a fix z-index layering issue 2024-01-13 15:19:38 -06:00
David Bolack
20b76bdead Fix issue when pattern matches a DD without DT
```
Test
::One
```

WOuld previously break the browser.
2024-01-13 11:55:43 -06:00
Trevor Buckner
2fd2ccfe14 Tweak Font snippets to have ABC 2024-01-12 11:59:16 -05:00
Trevor Buckner
69308cfd8b Merge pull request #3242 from naturalcrit/stylelint-Snippetbar.less
Lint snippetbar.less
2024-01-12 11:58:39 -05:00
Trevor Buckner
ccc1895304 Lint snippetbar.less 2024-01-12 11:57:34 -05:00
Trevor Buckner
05a0d80c1b Merge pull request #3203 from 5e-Cleric/font-snippets
fonts as snippets
2024-01-12 11:48:26 -05:00
Trevor Buckner
2ea65de0c0 Merge branch 'master' into pr/3203 2024-01-12 11:45:55 -05:00
Trevor Buckner
742798ad79 Fixing merge issues 2024-01-12 11:41:08 -05:00
Trevor Buckner
f088fc49f3 Start fixing merge conflicts 2024-01-12 11:37:34 -05:00
Trevor Buckner
b837ac5d6b Merge pull request #3240 from naturalcrit/dependabot/npm_and_yarn/marked-smartypants-lite-1.0.2
Bump marked-smartypants-lite from 1.0.1 to 1.0.2
2024-01-11 23:03:26 -05:00
Trevor Buckner
64af24f0f4 Merge pull request #3239 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.21.2
Bump react-router-dom from 6.21.1 to 6.21.2
2024-01-11 23:03:13 -05:00
dependabot[bot]
5abb1db512 Bump marked-smartypants-lite from 1.0.1 to 1.0.2
Bumps [marked-smartypants-lite](https://github.com/calculuschild/marked-smartypants-lite) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/calculuschild/marked-smartypants-lite/releases)
- [Changelog](https://github.com/calculuschild/marked-smartypants-lite/blob/main/release.config.cjs)
- [Commits](https://github.com/calculuschild/marked-smartypants-lite/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: marked-smartypants-lite
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-12 03:41:27 +00:00
dependabot[bot]
f1133b9c33 Bump react-router-dom from 6.21.1 to 6.21.2
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.21.1 to 6.21.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.21.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-12 03:40:45 +00:00
Víctor Losada Hernández
c73d02c550 Requested changes 2024-01-11 22:19:04 +01:00
Trevor Buckner
f1d26cc0c0 Merge pull request #3237 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.6.2
Bump eslint-plugin-jest from 27.6.1 to 27.6.2
2024-01-11 12:14:00 -05:00
dependabot[bot]
077d699f0b Bump eslint-plugin-jest from 27.6.1 to 27.6.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.6.1 to 27.6.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.6.1...v27.6.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-11 03:01:28 +00:00
Trevor Buckner
2ed8614642 Merge pull request #3195 from naturalcrit/dependabot/npm_and_yarn/eslint-8.56.0
Bump eslint from 8.55.0 to 8.56.0
2024-01-10 15:10:12 -05:00
Trevor Buckner
9834fcb97f Merge pull request #3200 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.21.1
Bump react-router-dom from 6.21.0 to 6.21.1
2024-01-10 15:09:58 -05:00
Trevor Buckner
347393520d Merge pull request #3172 from 5e-Cleric/Elderberry-icon-font
Eldeberry Inn Icon font to HB
2024-01-10 14:59:57 -05:00
Víctor Losada Hernández
e65e12ff6e translate removal 2024-01-10 20:24:43 +01:00
Trevor Buckner
4dfe1a0914 Merge pull request #3202 from Gazook89/theme-selector-styling
Improve Theme selector styling
2024-01-10 14:12:01 -05:00
Trevor Buckner
1a1acec2f3 Merge branch 'master' into theme-selector-styling 2024-01-10 14:11:40 -05:00
Víctor Losada Hernández
e6276a0c7b new version of the font 2024-01-10 20:04:30 +01:00
Trevor Buckner
84a0c43745 Merge pull request #3221 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.23.7
Bump @babel/plugin-transform-runtime from 7.23.6 to 7.23.7
2024-01-10 11:33:35 -05:00
Trevor Buckner
baed640a3d Merge pull request #3233 from naturalcrit/FixPageDeletion
Fix Page Deletion issue
2024-01-10 11:32:17 -05:00
G.Ambatte
9621a69b7d Merge branch 'master' into addDiceFont 2024-01-10 21:31:16 +13:00
Trevor Buckner
7d6851572f Merge pull request #3193 from G-Ambatte/fixMustacheBlocks
MustacheDivs do not account for prefixed spaces when generating text
2024-01-09 22:36:49 -05:00
Trevor Buckner
3e2ec7cd36 Merge pull request #3235 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.0.4
Bump mongoose from 8.0.3 to 8.0.4
2024-01-09 22:34:24 -05:00
Trevor Buckner
0ac88bd84a Fix $[var]:() - Must have at least one char inside ( ) 2024-01-09 22:29:30 -05:00
dependabot[bot]
db3f9a45ad Bump mongoose from 8.0.3 to 8.0.4
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.0.3 to 8.0.4.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.0.3...8.0.4)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-10 03:28:03 +00:00
Trevor Buckner
8fc2737670 Merge pull request #3215 from 5e-Cleric/Darkbrewery-color-fix
Color simplification and Darkbrewery snippet color fix
2024-01-09 22:21:33 -05:00
dependabot[bot]
0c2e4ce20b Bump @babel/plugin-transform-runtime from 7.23.6 to 7.23.7
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.23.6 to 7.23.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.7/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-10 03:21:14 +00:00
Trevor Buckner
62948b2838 Merge pull request #3213 from naturalcrit/dependabot/npm_and_yarn/moment-2.30.1
Bump moment from 2.29.4 to 2.30.1
2024-01-09 22:20:38 -05:00
Trevor Buckner
3dfb3a9738 Merge pull request #3230 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.23.8
Bump @babel/preset-env from 7.23.7 to 7.23.8
2024-01-09 22:20:00 -05:00
Trevor Buckner
42c1bece65 Also edit currently selected page 2024-01-09 22:19:09 -05:00
Trevor Buckner
448c12cc91 Truncate extra pages when page count is edited. 2024-01-09 17:10:03 -05:00
Trevor Buckner
56c82f8793 Merge pull request #3204 from 5e-Cleric/fix-page-size-override
quick fix page size override
2024-01-09 16:52:09 -05:00
Víctor Losada Hernández
84b0407f74 contain page size quick fix 2024-01-09 20:36:34 +01:00
Trevor Buckner
90977521df Merge branch 'master' into GlobalReflinks 2024-01-09 13:53:09 -05:00
Trevor Buckner
09a52bc7cb Merge pull request #3232 from naturalcrit/CleanupVarsCode
Added hoisting, math, fixed several bugs
2024-01-09 13:51:03 -05:00
Trevor Buckner
6ef80eed7f All features working...? 2024-01-09 13:28:35 -05:00
dependabot[bot]
ad1795258b Bump @babel/preset-env from 7.23.7 to 7.23.8
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.7 to 7.23.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-09 03:03:20 +00:00
David Bolack
993ae295af Update editor pattern match for DLs 2024-01-07 15:40:05 -06:00
dependabot[bot]
78c26ab1a3 Bump eslint from 8.55.0 to 8.56.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.55.0 to 8.56.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.55.0...v8.56.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-06 04:17:52 +00:00
Trevor Buckner
eb669e6eca Merge pull request #3223 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.23.7
Bump @babel/preset-env from 7.23.6 to 7.23.7
2024-01-05 23:16:42 -05:00
Trevor Buckner
17355012fb Merge pull request #3225 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.6.1
Bump eslint-plugin-jest from 27.6.0 to 27.6.1
2024-01-05 23:16:37 -05:00
Trevor Buckner
eae593ce90 Merge pull request #3228 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-8.5.0
Bump @googleapis/drive from 8.4.0 to 8.5.0
2024-01-05 23:16:31 -05:00
Trevor Buckner
7a8a6480de Merge pull request #3220 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.23.7
Bump @babel/core from 7.23.6 to 7.23.7
2024-01-05 23:16:24 -05:00
dependabot[bot]
d0dd61a25c Bump @googleapis/drive from 8.4.0 to 8.5.0
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 8.4.0 to 8.5.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/drive-v8.4.0...drive-v8.5.0)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-05 03:39:39 +00:00
dependabot[bot]
dbf0559f95 Bump eslint-plugin-jest from 27.6.0 to 27.6.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.6.0 to 27.6.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.6.0...v27.6.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-02 03:57:38 +00:00
dependabot[bot]
8e88b881fc Bump @babel/preset-env from 7.23.6 to 7.23.7
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.6 to 7.23.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.7/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 03:21:35 +00:00
dependabot[bot]
c722e0af39 Bump @babel/core from 7.23.6 to 7.23.7
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.6 to 7.23.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.7/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 03:20:46 +00:00
Víctor Losada Hernández
6dcdc1b685 font to icon 2023-12-29 12:13:13 +01:00
Víctor Losada Hernández
76d17baf7e divider color to currentColor keyword 2023-12-28 17:31:06 +01:00
Víctor Losada Hernández
c97e2be9d5 color simplification and darkbrewery snippet color fix 2023-12-28 17:27:22 +01:00
Víctor Losada Hernández
229acbfcd1 title as snippet.name 2023-12-28 12:25:07 +01:00
dependabot[bot]
2cb216ed7b Bump moment from 2.29.4 to 2.30.1
Bumps [moment](https://github.com/moment/moment) from 2.29.4 to 2.30.1.
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.4...2.30.1)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-28 03:49:49 +00:00
Gazook89
8674bc9da2 change gray to #999 2023-12-23 20:49:59 -06:00
Víctor Losada Hernández
199e049871 fix column-gap in listpage 2023-12-23 23:49:44 +01:00
Víctor Losada Hernández
31f18ef3d5 add blank theme to listpage 2023-12-23 23:49:30 +01:00
Víctor Losada Hernández
9db55c4dff fix piage size override 2023-12-23 20:43:39 +01:00
Víctor Losada Hernández
e2ac6c9b6b fonts as snippets 2023-12-23 12:40:56 +01:00
Gazook89
407c35d9f7 switch to gray 'active' color 2023-12-22 23:40:29 -06:00
Gazook89
8575d72f6e add e.target check to prevent dismissal of select menu 2023-12-22 23:36:46 -06:00
Gazook89
7b8e398891 improve simple styling on theme selector. nest inside toggle. 2023-12-22 22:58:13 -06:00
Louis David Bolack
dfd5b228c2 Merge branch 'master' into Extended_DD 2023-12-21 22:08:30 -06:00
dependabot[bot]
89c5c3f255 Bump react-router-dom from 6.21.0 to 6.21.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.21.0 to 6.21.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.21.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-22 03:05:24 +00:00
Trevor Buckner
4dd58aaad3 Ugly ugly initial commit 2023-12-21 17:13:13 -05:00
David Bolack
96d973528c Updated and reworked to handle more definition*
Updated to allow multiple definition terms and definitions per term

<Term>::<definition>
<Term>::<definition1>::<definition2>
::<definition3>

```
**Example** ::
::V3 uses HTML *definition lists* to create "lists" with hanging indents.
::Three
I'm a term::Four

**<u>Hello</u>**::I\'m a different
::List
:
```
2023-12-20 22:57:37 -06:00
Trevor Buckner
3a4de13551 split renderer into steps 2023-12-19 15:57:32 -05:00
Víctor Losada Hernández
a65c24bebf font-size and position fix for uniformity with FA 2023-12-19 21:50:10 +01:00
G.Ambatte
7dfc857217 Add DiceFont license file 2023-12-19 17:48:23 +13:00
G.Ambatte
d5980cba89 Initial DiceFont commit 2023-12-19 17:44:43 +13:00
G.Ambatte
9ed32527a6 Account for prefixed spaces when generating text 2023-12-17 15:47:17 +13:00
Víctor Losada Hernández
62982f86a1 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into Elderberry-icon-font 2023-12-16 16:55:23 +01:00
Trevor Buckner
985a9843f2 Merge pull request #3191 from 5e-Cleric/Navigator-node-error-fix
Navigator Node Error Fix
2023-12-16 10:55:10 -05:00
Víctor Losada Hernández
3bbcb1b6fb Merge branch 'master' of https://github.com/5e-Cleric/homebrewery into Navigator-node-error-fix 2023-12-16 16:53:18 +01:00
Víctor Losada Hernández
9da203d204 Merge branch 'master' of https://github.com/naturalcrit/homebrewery 2023-12-16 16:52:09 +01:00
Víctor Losada Hernández
212b3f7e05 full fix 2023-12-16 16:49:13 +01:00
Víctor Losada Hernández
7a06fe386d navigator to window 2023-12-14 23:44:45 +01:00
Víctor Losada Hernández
4580217410 Merge branch 'Elderberry-icon-font' of https://github.com/5e-Cleric/homebrewery into Elderberry-icon-font 2023-12-14 23:38:40 +01:00
Víctor Losada Hernández
e82ba8cb7a Merge branch 'master' of https://github.com/naturalcrit/homebrewery into Elderberry-icon-font 2023-12-14 23:38:15 +01:00
Trevor Buckner
636f10cb41 stylelint 2023-12-14 16:57:26 -05:00
Trevor Buckner
d6eaa812b1 Merge pull request #3066 from 5e-Cleric/single-quote-inline-style
Single Quote in in-line styles
2023-12-14 16:47:18 -05:00
Trevor Buckner
507f170720 Merge branch 'master' into pr/3066 2023-12-14 16:45:57 -05:00
Trevor Buckner
faaf4207b4 Merge pull request #3187 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.21.0
Bump react-router-dom from 6.20.1 to 6.21.0
2023-12-14 16:24:49 -05:00
Trevor Buckner
688377ce0b Fix failing Markdown tests 2023-12-14 16:24:23 -05:00
Trevor Buckner
8cf57dbc72 Merge branch 'master' into pr/3066 2023-12-14 15:01:28 -05:00
Trevor Buckner
12012a2a5b Merge pull request #3131 from dbolack-ab/Issue_1488
Add arbitrary tag attribute assignment in mustaches
2023-12-14 14:53:50 -05:00
Trevor Buckner
9b59f47536 Simplify Attributes parsing logic 2023-12-14 13:58:38 -05:00
Trevor Buckner
90b4e47861 Fix ' ' removed from processStyleTags regex
Removes the case of "empty properties" that needed `.trim()`
2023-12-14 13:47:36 -05:00
Trevor Buckner
ef00231c5b Move tests to the correct section 2023-12-14 13:46:44 -05:00
Trevor Buckner
c39653bc69 Merge branch 'master' into pr/3131 2023-12-14 12:24:48 -05:00
Trevor Buckner
83faa86063 Merge pull request #3189 from naturalcrit/FixMarkdownTests
Make a lot of Markdown tests pass
2023-12-14 12:22:11 -05:00
Trevor Buckner
af20d0b1c2 Make a lot of Markdown tests pass 2023-12-14 12:20:50 -05:00
David Bolack
1861c7db69 Remove stray console.logs. 2023-12-13 21:59:02 -06:00
David Bolack
a88b256b6c A better regex for underlining. 2023-12-13 21:47:55 -06:00
dependabot[bot]
40542e9bec Bump react-router-dom from 6.20.1 to 6.21.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.20.1 to 6.21.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.21.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-14 03:46:17 +00:00
David Bolack
04187cf769 Simple Underline token.
Overrides __
2023-12-13 17:37:05 -06:00
David Bolack
67a4391dcb WIP 2023-12-13 15:57:00 -06:00
Trevor Buckner
3784e0f583 Merge branch 'master' into pr/3131 2023-12-13 16:55:19 -05:00
Trevor Buckner
df33713f82 Merge branch 'master' into pr/3066 2023-12-13 16:46:35 -05:00
Trevor Buckner
c4ba6381f2 Merge pull request #3180 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.23.6
Bump @babel/core from 7.23.5 to 7.23.6
2023-12-13 16:39:57 -05:00
Trevor Buckner
547daf6499 Merge pull request #3179 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.23.6
Bump @babel/preset-env from 7.23.5 to 7.23.6
2023-12-13 16:39:49 -05:00
dependabot[bot]
649e225359 Bump @babel/preset-env from 7.23.5 to 7.23.6
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.5 to 7.23.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.6/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 20:51:54 +00:00
dependabot[bot]
35bf26feae Bump @babel/core from 7.23.5 to 7.23.6
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.5 to 7.23.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.6/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 20:51:34 +00:00
Trevor Buckner
481bab9463 Merge pull request #3181 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.23.6
Bump @babel/plugin-transform-runtime from 7.23.4 to 7.23.6
2023-12-13 15:50:23 -05:00
dependabot[bot]
a0e2997a40 Bump @babel/plugin-transform-runtime from 7.23.4 to 7.23.6
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.23.4 to 7.23.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.6/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-12 03:35:53 +00:00
Trevor Buckner
74c4f4fe52 Merge pull request #3078 from 5e-Cleric/clear-invalid-or-unused-css
Clear invalid CSS from 5ePHB/style.less
2023-12-11 16:39:57 -05:00
Trevor Buckner
7c9513f377 Lint 2023-12-11 16:29:16 -05:00
Víctor Losada Hernández
c10be139c9 redundant font-weight removed 2023-12-11 22:09:08 +01:00
Víctor Losada Hernández
ee4921f02c uncaught styles 2023-12-11 22:08:03 +01:00
Trevor Buckner
f5f6137a4d Lint 2023-12-11 15:48:58 -05:00
Trevor Buckner
0775f9ee1b Restore padding to code blocks 2023-12-11 15:45:39 -05:00
Trevor Buckner
75ed555de1 Merge branch 'master' into pr/3078 2023-12-11 15:13:39 -05:00
Trevor Buckner
e7d0741139 Merge pull request #3178 from naturalcrit/lintBlankTheme
Lint Blank style.less to match PHB format
2023-12-11 15:13:07 -05:00
Trevor Buckner
c69de1036f Lint Blank style.less to match PHB format 2023-12-11 15:12:40 -05:00
Trevor Buckner
7d115c970a Merge pull request #3176 from naturalcrit/dependabot/npm_and_yarn/marked-extended-tables-1.0.8
Bump marked-extended-tables from 1.0.7 to 1.0.8
2023-12-11 14:12:30 -05:00
Trevor Buckner
852aa8d289 Merge pull request #3174 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.0.3
Bump mongoose from 8.0.2 to 8.0.3
2023-12-11 14:12:22 -05:00
dependabot[bot]
ae974b270d Bump marked-extended-tables from 1.0.7 to 1.0.8
Bumps [marked-extended-tables](https://github.com/calculuschild/marked-extended-tables) from 1.0.7 to 1.0.8.
- [Release notes](https://github.com/calculuschild/marked-extended-tables/releases)
- [Changelog](https://github.com/calculuschild/marked-extended-tables/blob/main/release.config.cjs)
- [Commits](https://github.com/calculuschild/marked-extended-tables/compare/v1.0.7...v1.0.8)

---
updated-dependencies:
- dependency-name: marked-extended-tables
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 03:42:57 +00:00
G.Ambatte
0a1c04d003 Merge branch 'master' into experimentalTagFiltering-#3164 2023-12-09 22:33:21 +13:00
dependabot[bot]
ef10b71e56 Bump mongoose from 8.0.2 to 8.0.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.0.2 to 8.0.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.0.2...8.0.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-08 03:44:10 +00:00
Trevor Buckner
5bfd0dd537 Merge pull request #3074 from G-Ambatte/addCreditsSnippet-#283
Add basic Homebrewery credits snippet
2023-12-07 22:33:41 -05:00
Trevor Buckner
05e56221f4 Small tweaks 2023-12-07 22:32:33 -05:00
Víctor Losada Hernández
5c5230e64e Merge branch 'master' of https://github.com/naturalcrit/homebrewery into clear-invalid-or-unused-css 2023-12-07 21:32:40 +01:00
David Bolack
769f636db2 Small fix and test updates
Discovered that classes ( and possibly other splits could end up with an
empty/null member that still gets joined so I added a trim to the end of
all the joins in processStyleTags.

Added tests that SHOULD test for bloc-level and inline-span moustaches
with added attributes ( a=b )
2023-12-06 17:48:51 -06:00
David Bolack
eeba037244 Merge branch 'master' into Extended_DD 2023-12-06 17:10:18 -06:00
David Bolack
688eca05e1 Update Regex pattern to be consistant. 2023-12-06 16:59:53 -06:00
David Bolack
4c48992331 Merge branch 'master' into Issue_1488 2023-12-06 16:56:43 -06:00
David Bolack
fcb9a8cdc5 Update Editor highlighting to handle attribut assignments 2023-12-06 16:54:28 -06:00
G.Ambatte
78d4d6fb7c Tweak icon styling 2023-12-06 14:33:55 +13:00
G.Ambatte
407efd0f8b Merge branch 'master' into addCreditsSnippet-#283 2023-12-06 14:02:31 +13:00
Víctor Losada Hernández
d39ae139d7 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into single-quote-inline-style 2023-12-06 00:26:53 +01:00
Víctor Losada Hernández
467b728c47 text-re-fix 2023-12-06 00:24:44 +01:00
Víctor Losada Hernández
b02036fb7a Initial commit 2023-12-05 23:16:27 +01:00
G.Ambatte
d8524c3a84 Merge branch 'master' into experimentalTagFiltering-#3164 2023-12-06 08:48:46 +13:00
Sean Robertson
75809a5f42 Remove forced uppercase 2023-12-06 08:28:51 +13:00
Trevor Buckner
e99aad15c1 Merge pull request #3116 from G-Ambatte/fixFFPrinting-#3115
Fix Firefox printing
2023-12-05 11:49:50 -05:00
Trevor Buckner
c57b011215 Merge branch 'master' into fixFFPrinting-#3115 2023-12-05 11:40:32 -05:00
Trevor Buckner
5942bfece1 Merge pull request #3133 from dbolack-ab/Issue_2171
Add subscript and subscript markdown tokens
2023-12-04 22:23:28 -05:00
Trevor Buckner
2dc874daba Adjust hotkeys to match other changes 2023-12-04 22:21:58 -05:00
Trevor Buckner
38fa428fde Change to 1 and 2 ^'s . Slight cleanup 2023-12-04 22:11:05 -05:00
Trevor Buckner
6bf51cd94a Allow both sub and super highlighting on same line 2023-12-04 21:56:08 -05:00
Trevor Buckner
ddef21cd7e Give editor highlighting sub/superscript alignment 2023-12-04 21:54:44 -05:00
Trevor Buckner
bf30cadb68 Add default page size to brewRenderer.less
Add default brew page size to brewRenderer.less, so all pages have a fallback size when switching between themes and renderers. Avoids losing the scroll position on a page caused by out-of-view pages losing their size, especially on long brews where recalculating page layout can take a half second.
2023-12-04 21:13:26 -05:00
G.Ambatte
2f13b89510 Styling tweak 2023-12-05 12:41:27 +13:00
Trevor Buckner
abe3a7e7c7 Merge pull request #3154 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.23.4
Bump @babel/plugin-transform-runtime from 7.23.3 to 7.23.4
2023-12-04 17:10:16 -05:00
dependabot[bot]
4ec5f73aed Bump @babel/plugin-transform-runtime from 7.23.3 to 7.23.4
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.23.3 to 7.23.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.4/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 22:09:59 +00:00
Trevor Buckner
a5313deb78 Merge pull request #3157 from naturalcrit/dependabot/npm_and_yarn/fs-extra-11.2.0
Bump fs-extra from 11.1.1 to 11.2.0
2023-12-04 17:09:53 -05:00
Trevor Buckner
5dd486866f Merge pull request #3151 from naturalcrit/dependabot/npm_and_yarn/stylelint-config-recess-order-4.4.0
Bump stylelint-config-recess-order from 4.3.0 to 4.4.0
2023-12-04 17:09:43 -05:00
Trevor Buckner
ada642e56e Merge pull request #3158 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.0.2
Bump mongoose from 8.0.0 to 8.0.2
2023-12-04 17:09:02 -05:00
Trevor Buckner
881fcc9cba Merge pull request #3161 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.23.5
Bump @babel/core from 7.23.3 to 7.23.5
2023-12-04 17:08:44 -05:00
Trevor Buckner
a809e920fc Merge pull request #3160 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.23.5
Bump @babel/preset-env from 7.23.3 to 7.23.5
2023-12-04 17:08:38 -05:00
Trevor Buckner
36f3eb4da1 Merge pull request #3162 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.1.2
Bump marked-gfm-heading-id from 3.1.1 to 3.1.2
2023-12-04 17:08:31 -05:00
Trevor Buckner
57772065e0 Merge pull request #3170 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.20.1
Bump react-router-dom from 6.18.0 to 6.20.1
2023-12-04 17:08:23 -05:00
Trevor Buckner
f10be94190 Merge pull request #3169 from naturalcrit/dependabot/npm_and_yarn/eslint-8.55.0
Bump eslint from 8.53.0 to 8.55.0
2023-12-04 17:08:15 -05:00
Trevor Buckner
055ee38cb7 Merge pull request #3163 from naturalcrit/BrewRendererToFunctionalComponent
Convert BrewRenderer to function, PPR always on
2023-12-04 17:08:04 -05:00
Trevor Buckner
202b275966 Tweak legacy style so V3 pages offscreen keep size 2023-12-04 17:07:20 -05:00
G.Ambatte
34be05ac51 Add X icon to tag window 2023-12-05 10:00:25 +13:00
Trevor Buckner
39e33da2d1 Cleanup 2023-12-04 14:46:51 -05:00
G.Ambatte
d262f586fc Add basic selected tags display to List Page 2023-12-04 21:45:59 +13:00
dependabot[bot]
71f1aed227 Bump react-router-dom from 6.18.0 to 6.20.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.18.0 to 6.20.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.20.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 03:09:30 +00:00
dependabot[bot]
159d5a35b2 Bump eslint from 8.53.0 to 8.55.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.53.0 to 8.55.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.53.0...v8.55.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 03:09:15 +00:00
G.Ambatte
efecfac68a Simplify tag styling 2023-12-04 08:10:32 +13:00
G.Ambatte
2c997458b2 Simplify filter tag test 2023-12-04 07:54:19 +13:00
G.Ambatte
7e98f79416 Make alphabetical tag sorting case insensitive 2023-12-04 07:53:49 +13:00
G.Ambatte
cfecc001aa Add brew tag sorting 2023-12-03 19:14:20 +13:00
G.Ambatte
ab8716d071 Add icons before special tags 2023-12-03 18:40:20 +13:00
G.Ambatte
9e12ab71f8 Switch to better brew.tags array check 2023-12-03 17:46:55 +13:00
G.Ambatte
995d1c63d8 Make tag removal from URL case insensitive 2023-12-03 17:17:03 +13:00
G.Ambatte
875e1023fc Add styling for different tag types 2023-12-03 17:09:33 +13:00
G.Ambatte
6c4dad675f Switch to case-insensitive tag comparison 2023-12-03 16:34:12 +13:00
G.Ambatte
632882d370 Use the whole tag in the tag filter 2023-12-03 16:02:36 +13:00
G.Ambatte
041c7ed48f Shift to AND operation for multiple tags 2023-12-03 12:48:20 +13:00
G.Ambatte
6dcc6d36b7 Add separate tag filter 2023-12-03 12:23:39 +13:00
G.Ambatte
0762b82c40 Initial functionality of basic tag filtering 2023-12-03 09:46:02 +13:00
G.Ambatte
c6821819c7 Initial functionality pass on BrewItem 2023-12-03 09:36:17 +13:00
G.Ambatte
5a79795e4f Indicate tags are clickable by cursor 2023-12-03 09:33:00 +13:00
Trevor Buckner
3073b3e35d Convert BrewRenderer to function, PPR always on 2023-11-30 23:52:42 -05:00
dependabot[bot]
0491516662 Bump marked-gfm-heading-id from 3.1.1 to 3.1.2
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.1.1...v3.1.2)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-01 03:26:01 +00:00
dependabot[bot]
b55616170b Bump @babel/core from 7.23.3 to 7.23.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.3 to 7.23.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-30 03:48:32 +00:00
dependabot[bot]
e080c46509 Bump @babel/preset-env from 7.23.3 to 7.23.5
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.3 to 7.23.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.5/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-30 03:47:55 +00:00
dependabot[bot]
171d1c7c46 Bump mongoose from 8.0.0 to 8.0.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 8.0.0 to 8.0.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.0.0...8.0.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 03:23:54 +00:00
dependabot[bot]
d1503c8d6f Bump fs-extra from 11.1.1 to 11.2.0
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.1.1 to 11.2.0.
- [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.1.1...11.2.0)

---
updated-dependencies:
- dependency-name: fs-extra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-28 03:04:54 +00:00
Trevor Buckner
be72b029bf Merge pull request #3156 from naturalcrit/renderAllPages
Render all pages
2023-11-26 17:29:49 -05:00
Trevor Buckner
93a7b11017 Simplify "BrewPage" into Functional Component 2023-11-25 23:23:39 -05:00
Trevor Buckner
045fbbe158 lint 2023-11-24 01:36:04 -05:00
Trevor Buckner
ede731e3a5 Add "BrewPage" component which updates only when needed 2023-11-24 01:35:06 -05:00
David Bolack
d6e63604ac Add tests 2023-11-22 13:29:37 -06:00
David Bolack
0624f8a0b9 Add basic tests for Dictionary lists. 2023-11-22 13:13:58 -06:00
dependabot[bot]
960c03bfa6 Bump stylelint-config-recess-order from 4.3.0 to 4.4.0
Bumps [stylelint-config-recess-order](https://github.com/stormwarning/stylelint-config-recess-order) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/stormwarning/stylelint-config-recess-order/releases)
- [Changelog](https://github.com/stormwarning/stylelint-config-recess-order/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stormwarning/stylelint-config-recess-order/compare/v4.3.0...v4.4.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recess-order
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:36:02 +00:00
Trevor Buckner
cda98e02e0 Merge pull request #3079 from 5e-Cleric/fix-indent-in-monster-blocks
fix indent in monster blocks
2023-11-15 14:34:44 -05:00
Trevor Buckner
9ac070512d linting 2023-11-15 14:34:30 -05:00
Trevor Buckner
a1e9c82c06 Linting 2023-11-15 14:32:15 -05:00
Trevor Buckner
b116e0a622 Merge pull request #3147 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.1.1
Bump marked-gfm-heading-id from 3.1.0 to 3.1.1
2023-11-15 11:49:56 -05:00
dependabot[bot]
ef2bbfea5e Bump marked-gfm-heading-id from 3.1.0 to 3.1.1
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 03:28:56 +00:00
David Bolack
c858c705d2 Complete mustache div updates for attr 2023-11-11 22:23:43 -06:00
G.Ambatte
fb91761c31 Merge branch 'naturalcrit:master' into separateApiErrors-#2975 2023-11-12 13:45:40 +13:00
Víctor Losada Hernández
93d38eb184 Merge branch 'fix-indent-in-monster-blocks' of https://github.com/5e-Cleric/homebrewery into fix-indent-in-monster-blocks 2023-11-12 00:28:45 +01:00
Víctor Losada Hernández
d31dae728f i don't know why i didn't do this last time 2023-11-12 00:28:43 +01:00
David Bolack
c068aca9ff Small tweaks to processStyle.
This changes the output on arbitrary outputs to always wrap the value in
quotes instead of only doing so on whitespaced values.
2023-11-11 15:47:27 -06:00
David Bolack
fcdaef2445 Merge branch 'master' into Issue_1488 2023-11-11 15:08:11 -06:00
David Bolack
c78dcbfe05 Remove Line-break
Remove the linbreak between the </dt> and the first <dd>
2023-11-10 23:19:55 -06:00
Louis David Bolack
8d94e5fbe0 Update shared/naturalcrit/markdown.js
Co-authored-by: Trevor Buckner <calculuschild@gmail.com>
2023-11-10 23:10:01 -06:00
Louis David Bolack
c6d8bbae16 Update shared/naturalcrit/markdown.js
Co-authored-by: Trevor Buckner <calculuschild@gmail.com>
2023-11-10 23:09:49 -06:00
Trevor Buckner
0a54c7b04e Merge pull request #3141 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.23.3
Bump @babel/preset-env from 7.23.2 to 7.23.3
2023-11-10 22:55:50 -05:00
Trevor Buckner
2fd54ee87e Merge pull request #3138 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.23.3
Bump @babel/core from 7.23.2 to 7.23.3
2023-11-10 22:55:31 -05:00
dependabot[bot]
1f5f160964 Bump @babel/core from 7.23.2 to 7.23.3
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.2 to 7.23.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.3/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-10 16:01:36 +00:00
dependabot[bot]
8d04f09aab Bump @babel/preset-env from 7.23.2 to 7.23.3
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.2 to 7.23.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.3/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-10 16:01:28 +00:00
Trevor Buckner
be1f905b48 Merge pull request #3140 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.23.3
Bump @babel/plugin-transform-runtime from 7.23.2 to 7.23.3
2023-11-10 10:59:22 -05:00
Trevor Buckner
dbbd8cb26d Merge pull request #3139 from naturalcrit/dependabot/npm_and_yarn/babel/preset-react-7.23.3
Bump @babel/preset-react from 7.22.15 to 7.23.3
2023-11-10 10:59:13 -05:00
David Bolack
827fdd3cff REmove a console message. 2023-11-10 00:43:45 -06:00
David Bolack
7b85995b4a Updated attribute assignment.
Wraps with quotes ( a="b and c" )

Still does not work on Mustache Divs. UNsure where the failure is at the
moment. Even regressed "a:b and c" pattern on those.
2023-11-10 00:28:25 -06:00
David Bolack
37593573ce Merge branch 'master' into Issue_1488 2023-11-09 21:52:44 -06:00
David Bolack
a6ecec4172 Merge remote-tracking branch 'origin/Extended_DD' into Extended_DD 2023-11-09 21:51:23 -06:00
David Bolack
b561f69dd0 Merge branch 'master' into Extended_DD 2023-11-09 21:40:24 -06:00
dependabot[bot]
0bdadaf946 Bump @babel/plugin-transform-runtime from 7.23.2 to 7.23.3
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.23.2 to 7.23.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.3/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-10 03:34:19 +00:00
dependabot[bot]
7b1a815e78 Bump @babel/preset-react from 7.22.15 to 7.23.3
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.22.15 to 7.23.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.3/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-10 03:33:55 +00:00
David Bolack
7b9a23670d Update Regex based on PR siuggestions.
This should match more economically and in line with marked
recomendations as well as not allow whitespace ( \s ) at the beginning
or end of a sub or superscript mark. Additionally, a failure in having
mixed sub and supers on the same line was corrected.
2023-11-09 21:31:08 -06:00
Louis David Bolack
a762626c53 Merge branch 'naturalcrit:master' into Issue_2171 2023-11-09 21:25:47 -06:00
Trevor Buckner
1c5c21d89b Merge branch 'master' into Extended_DD 2023-11-09 18:52:58 -05:00
Trevor Buckner
da2c647fa6 Merge pull request #3123 from naturalcrit/dependabot/npm_and_yarn/mongoose-8.0.0
Bump mongoose from 7.6.4 to 8.0.0
2023-11-09 16:45:10 -05:00
dependabot[bot]
cb61badfc5 Bump mongoose from 7.6.4 to 8.0.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.6.4 to 8.0.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.6.4...8.0.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-09 21:44:04 +00:00
Trevor Buckner
d2f909384e Merge pull request #3124 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.18.0
Bump react-router-dom from 6.17.0 to 6.18.0
2023-11-09 16:43:02 -05:00
Trevor Buckner
cebc7be81d Merge pull request #3130 from MurdoMaclachlan/master
Fix minor grammatical error in FAQ
2023-11-09 16:36:51 -05:00
Trevor Buckner
83c604cb74 Merge pull request #3073 from Gazook89/Fold-Buttons-in-Editor
Add foldAll and unfoldAll buttons to Snippet Bar
2023-11-09 16:36:20 -05:00
Trevor Buckner
ad455f652c Remove extra comma 2023-11-09 10:03:14 -05:00
Trevor Buckner
3f19b2975c Add tooltips 2023-11-08 17:48:32 -05:00
Trevor Buckner
cacfc788fb Change Expand Icon for consistency with collapse icon 2023-11-08 17:38:42 -05:00
Trevor Buckner
8f99712a28 Merge branch 'master' into Fold-Buttons-in-Editor 2023-11-08 17:07:04 -05:00
Trevor Buckner
367c2bd111 Merge branch 'master' into fix-indent-in-monster-blocks 2023-11-08 17:05:23 -05:00
Trevor Buckner
1c45cb1b7f Merge branch 'master' into Issue_2171 2023-11-08 17:03:16 -05:00
dependabot[bot]
19fbd832f1 Bump react-router-dom from 6.17.0 to 6.18.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.17.0 to 6.18.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.18.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-08 21:39:16 +00:00
Trevor Buckner
7ce0ac577a Merge pull request #3134 from naturalcrit/AwaitBuildCompleteBeforeStartServer
Fix issues starting server first time in Dev environment
2023-11-08 16:38:08 -05:00
Trevor Buckner
3ce4d6d1f8 Merge pull request #3136 from naturalcrit/DownNodeToV20_FixHerokuCrashes
Downgrade Node to v20 to fix Heroku
2023-11-08 16:37:30 -05:00
Trevor Buckner
18aca07e84 Downgrade Node to v20 to fix Heroku
Heroku is crashing on deployments that use Node 21. Not sure why.
2023-11-08 16:01:09 -05:00
Trevor Buckner
4bda071742 Should fix issues starting server first time
Using `node scripts/buildHomebrew.js --dev` can sometimes start up the server before the build is complete, so `ssr.js` is not quite ready and the app crashes. This puts the server startup inside the async block to it must await everything else being complete.
2023-11-08 12:18:51 -05:00
Víctor Losada Hernández
35bde09aa7 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into fix-indent-in-monster-blocks 2023-11-08 13:17:37 +01:00
David Bolack
d43ea46e40 Add subscript and subscript markdown tokens
Uses ^^ for superscript and ^^^ subscript as wrappers in the same
pattern as italics and bold ( * and **, respectively)

Adds editor hot-keys and sytax highlighting. (CTRL-6/CTRL-7)

Exact values may not be ideal. Short of the suggestted overloading of ~,
I didn't see a better option for the delimiter.
2023-11-08 00:54:43 -06:00
David Bolack
f1ca6eeee2 Near complete 2023-11-08 00:49:39 -06:00
David Bolack
d390d518a3 Initial commit, subscripts and superscripts 2023-11-07 22:42:53 -06:00
David Bolack
d1152dcbb5 Add Change log 2023-11-07 21:04:03 -06:00
David Bolack
837306c9a7 Add tests for arbitrary attributes.
Also shifted around the adding of spaces for the attributes.
2023-11-07 19:07:58 -06:00
David Bolack
e6428a3b18 Update Editor highlighting for Definition Lists
Fixes syntax highlighting to account for multiple definitions on a
definition list.
2023-11-07 18:07:11 -06:00
David Bolack
c58c8777f1 Add arbitrary tag attr assign. in moustaches
This adds the ability to include attribute values for any element that
can be altered by a moustache.

Form:

```
{attribute=value}

example:

![homebrew mug](https://i.imgur.com/hMna6G0.png) {position:absolute,bottom:20px,left:130px,width:220px,a=b and c,g=h}
```

In order to permit spaces, the pattern matches for moustache code had to
remove the space character as a delimiter. I believe I have adequate
compensated.

This should solve #1488
2023-11-07 17:43:24 -06:00
Murdo B. Maclachlan
caadb7b4ce Fix minor grammatical error in FAQ
Just a minor grammatical fix, "its" being the correct possessive as opposed to "it's" being a contraction of "it is".
2023-11-07 18:49:16 +00:00
David Bolack
ce1ba8289c Add Multi-line Dictionary Definition (<dd>) rows.
Expands the existing syntax to allow/expect the option of multiple
definitions by adding any number of ``` :: Definition``` to an a DT/DD
set.
2023-11-06 22:30:26 -06:00
Trevor Buckner
ce946bda98 Merge pull request #3035 from G-Ambatte/addDarkbreweryTheme
Add DarkBrewery theme
2023-11-06 17:18:41 -05:00
Trevor Buckner
07b1254309 Merge pull request #3127 from naturalcrit/dependabot/npm_and_yarn/eslint-8.53.0
Bump eslint from 8.52.0 to 8.53.0
2023-11-06 16:39:37 -05:00
dependabot[bot]
4c7715286e Bump eslint from 8.52.0 to 8.53.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.52.0 to 8.53.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.52.0...v8.53.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:32:37 +00:00
Trevor Buckner
980c544bba Merge pull request #3122 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.6.4
Bump mongoose from 7.6.3 to 7.6.4
2023-10-31 15:43:52 -04:00
Trevor Buckner
7c0b9ea3f6 Merge pull request #3069 from Gazook89/Stat-Block-H3-CSS-Tweak
Tweak monster H3 sizing and spacing per recommendation
2023-10-31 12:13:40 -04:00
Trevor Buckner
e6d8784633 Remove redundant properties 2023-10-31 12:12:56 -04:00
dependabot[bot]
4720aced6c Bump mongoose from 7.6.3 to 7.6.4
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.6.3 to 7.6.4.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/7.6.4/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.6.3...7.6.4)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-31 03:59:26 +00:00
Trevor Buckner
cf5e61cf09 Merge branch 'master' into Stat-Block-H3-CSS-Tweak 2023-10-30 22:18:04 -04:00
Trevor Buckner
9d43588f44 Merge pull request #3121 from naturalcrit/cleanV3PHB-Stylelint
Fix styleLint warnings on V3 PHB
2023-10-30 22:17:04 -04:00
Trevor Buckner
ce005da20f Fix styleLint warnings on V3 PHB
Duplicate `dl` entries and wrong quotes.
2023-10-30 22:16:46 -04:00
Trevor Buckner
17531151ad Merge branch 'master' into Stat-Block-H3-CSS-Tweak 2023-10-30 22:02:50 -04:00
Trevor Buckner
863f624772 Merge pull request #3117 from naturalcrit/dependabot/npm_and_yarn/browserify-sign-4.2.2
Bump browserify-sign from 4.2.1 to 4.2.2
2023-10-30 22:02:12 -04:00
Trevor Buckner
6a5f4efd26 Merge pull request #3112 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.6.0
Bump eslint-plugin-jest from 27.4.2 to 27.6.0
2023-10-30 22:02:04 -04:00
Trevor Buckner
6200b416ab Merge pull request #3108 from naturalcrit/dependabot/npm_and_yarn/nconf-0.12.1
Bump nconf from 0.12.0 to 0.12.1
2023-10-30 22:01:55 -04:00
Trevor Buckner
dc1931a5e3 Merge pull request #3105 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.6.3
Bump mongoose from 7.6.1 to 7.6.3
2023-10-30 22:01:48 -04:00
Trevor Buckner
26bddc1a79 Merge pull request #3106 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.11.0
Bump stylelint from 15.10.3 to 15.11.0
2023-10-30 22:01:41 -04:00
dependabot[bot]
74ebd44d7c Bump eslint-plugin-jest from 27.4.2 to 27.6.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.4.2 to 27.6.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.4.2...v27.6.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-31 02:01:02 +00:00
Trevor Buckner
989af1bbd0 Merge pull request #3109 from naturalcrit/dependabot/npm_and_yarn/eslint-8.52.0
Bump eslint from 8.51.0 to 8.52.0
2023-10-30 22:00:04 -04:00
Trevor Buckner
3359e489f5 Merge pull request #3104 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.17.0
Bump react-router-dom from 6.16.0 to 6.17.0
2023-10-30 21:59:57 -04:00
Trevor Buckner
f431ac2e40 Merge pull request #3099 from G-Ambatte/addShareLinkToNotAnAuthor
Add Share link to Unauthorized Edit Access error message
2023-10-30 21:59:31 -04:00
G.Ambatte
511c38dd1e Remove unnecessary nullish coalescing operators 2023-10-29 14:16:41 +13:00
G.Ambatte
85b0976082 Move API call error handling 2023-10-29 11:52:02 +13:00
G.Ambatte
7052337669 Remove API error message from log 2023-10-29 11:43:24 +13:00
G.Ambatte
e07d1d1ddb Add originalUrl to error object 2023-10-29 11:27:03 +13:00
G.Ambatte
c5ebd0352d Identify API errors and send error response 2023-10-29 11:04:07 +13:00
dependabot[bot]
a8fbcf0ad1 Bump browserify-sign from 4.2.1 to 4.2.2
Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2.
- [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md)
- [Commits](https://github.com/crypto-browserify/browserify-sign/compare/v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: browserify-sign
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-27 13:30:24 +00:00
G.Ambatte
92f33136ce Remove page-break-before and -after from Blank 2023-10-27 23:58:56 +13:00
G.Ambatte
9260283914 Remove page-break-before and -after from 5ePHB 2023-10-27 23:58:39 +13:00
dependabot[bot]
a08263dd7c Bump eslint from 8.51.0 to 8.52.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.51.0 to 8.52.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.51.0...v8.52.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:39:23 +00:00
dependabot[bot]
7eae170f6c Bump nconf from 0.12.0 to 0.12.1
Bumps [nconf](https://github.com/flatiron/nconf) from 0.12.0 to 0.12.1.
- [Release notes](https://github.com/flatiron/nconf/releases)
- [Changelog](https://github.com/indexzero/nconf/blob/v0.12.1/CHANGELOG.md)
- [Commits](https://github.com/flatiron/nconf/compare/v0.12.0...v0.12.1)

---
updated-dependencies:
- dependency-name: nconf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:39:02 +00:00
G.Ambatte
b5cb8ce834 Mark HB navigation changes 2023-10-19 18:20:50 +13:00
G.Ambatte
d497c0094b Fix comments 2023-10-19 17:51:02 +13:00
G.Ambatte
71141aa6f6 Merge branch 'master' into addDarkbreweryTheme 2023-10-19 16:37:36 +13:00
G.Ambatte
36e607eb3b Merge branch 'master' into addCreditsSnippet-#283 2023-10-19 16:37:27 +13:00
dependabot[bot]
d67f206900 Bump stylelint from 15.10.3 to 15.11.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.10.3 to 15.11.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.10.3...15.11.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-18 03:22:03 +00:00
dependabot[bot]
6bf9ddd585 Bump mongoose from 7.6.1 to 7.6.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.6.1 to 7.6.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.6.1...7.6.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-18 03:21:44 +00:00
dependabot[bot]
1607a1ac10 Bump react-router-dom from 6.16.0 to 6.17.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-17 03:07:32 +00:00
G.Ambatte
392a3db3c2 Add Share link to Unauthorized Edit access message 2023-10-14 20:01:21 +13:00
G.Ambatte
0845234f2f Add brew's shareId to error info 2023-10-14 19:59:51 +13:00
Trevor Buckner
f58a7d65b5 Merge pull request #3068 from Gazook89/Prevent-View-Increase-By-Author
Check for author in author list before increasing views.
2023-10-13 23:45:47 -04:00
Trevor Buckner
3ac0ac7568 Fix crash when not logged in
If not logged in, brew.authors doesn't exist, so visiting the share page crashes.
2023-10-13 23:44:34 -04:00
Trevor Buckner
1c71ff0945 Merge branch 'master' into pr/3068 2023-10-13 23:27:37 -04:00
G.Ambatte
3ccfef0763 Merge branch 'master' into addCreditsSnippet-#283 2023-10-14 11:42:50 +13:00
G.Ambatte
a6ec8370be Merge branch 'master' into addDarkbreweryTheme 2023-10-14 11:42:09 +13:00
Trevor Buckner
7b059f029d Merge pull request #3098 from naturalcrit/v3.10.0
Up to v3.10.0
2023-10-13 16:33:55 -04:00
Trevor Buckner
917b63722c typo 2023-10-13 16:32:02 -04:00
Trevor Buckner
c1cbbe0047 Up to v3.10.0 2023-10-13 16:31:08 -04:00
Trevor Buckner
963d76add9 Merge pull request #3093 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.23.2
Bump @babel/preset-env from 7.22.20 to 7.23.2
2023-10-12 15:42:09 -04:00
Trevor Buckner
e055734d03 Merge pull request #3094 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.23.2
Bump @babel/core from 7.23.0 to 7.23.2
2023-10-12 15:41:59 -04:00
dependabot[bot]
7c16805680 Bump @babel/core from 7.23.0 to 7.23.2
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.0 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/@babel/core@7.23.2/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-12 19:35:37 +00:00
dependabot[bot]
be52e0ecd9 Bump @babel/preset-env from 7.22.20 to 7.23.2
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.20 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-12 19:34:55 +00:00
Trevor Buckner
175673cdf9 Merge pull request #3088 from naturalcrit/dependabot/npm_and_yarn/eslint-8.51.0
Bump eslint from 8.50.0 to 8.51.0
2023-10-12 15:34:15 -04:00
Trevor Buckner
a279c75826 Merge pull request #3091 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.6.1
Bump mongoose from 7.5.4 to 7.6.1
2023-10-12 15:34:05 -04:00
Trevor Buckner
8be95e7d04 Merge pull request #3095 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.23.2
Bump @babel/plugin-transform-runtime from 7.22.15 to 7.23.2
2023-10-12 15:33:51 -04:00
Trevor Buckner
8e0c1d78dc Merge pull request #3096 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-8.4.0
Bump @googleapis/drive from 8.3.1 to 8.4.0
2023-10-12 15:33:42 -04:00
dependabot[bot]
5da73f8ff8 Bump @googleapis/drive from 8.3.1 to 8.4.0
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 8.3.1 to 8.4.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/drive-v8.3.1...drive-v8.4.0)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-12 03:19:54 +00:00
dependabot[bot]
e20fc680e9 Bump @babel/plugin-transform-runtime from 7.22.15 to 7.23.2
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.15 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-12 03:19:36 +00:00
dependabot[bot]
e821ddac93 Bump mongoose from 7.5.4 to 7.6.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.5.4 to 7.6.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.5.4...7.6.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-10 03:14:54 +00:00
dependabot[bot]
fab2c2cead Bump eslint from 8.50.0 to 8.51.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.50.0 to 8.51.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.50.0...v8.51.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:23:43 +00:00
Trevor Buckner
bd0e142999 Merge pull request #3084 from naturalcrit/UpdateCircleCiNodeVersion
Up Node Version on CircleCi to pass tests
2023-10-06 15:02:49 -04:00
Trevor Buckner
673649abc4 typo 2023-10-06 15:00:50 -04:00
Trevor Buckner
b95a2189a5 Up Node Version on CircleCi to pass tests 2023-10-06 14:59:19 -04:00
Trevor Buckner
f45547d899 Merge pull request #3083 from naturalcrit/dependabot/npm_and_yarn/marked-smartypants-lite-1.0.1
Bump marked-smartypants-lite from 1.0.0 to 1.0.1
2023-10-06 01:16:04 -04:00
dependabot[bot]
f2c970fb79 Bump marked-smartypants-lite from 1.0.0 to 1.0.1
Bumps [marked-smartypants-lite](https://github.com/calculuschild/marked-smartypants-lite) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/calculuschild/marked-smartypants-lite/releases)
- [Changelog](https://github.com/calculuschild/marked-smartypants-lite/blob/main/release.config.cjs)
- [Commits](https://github.com/calculuschild/marked-smartypants-lite/commits/v1.0.1)

---
updated-dependencies:
- dependency-name: marked-smartypants-lite
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-06 03:16:34 +00:00
Trevor Buckner
6e6a6dd1e3 Merge pull request #3067 from Gazook89/Definition-List-Highlighting
Add syntax highlighting for definition lists
2023-10-05 22:43:58 -04:00
Trevor Buckner
b2fc020d81 Merge pull request #3063 from naturalcrit/dependabot/npm_and_yarn/marked-extended-tables-1.0.7
Bump marked-extended-tables from 1.0.6 to 1.0.7
2023-10-05 15:29:57 -04:00
Trevor Buckner
3bfa3bac3a Merge pull request #3082 from naturalcrit/dependabot/npm_and_yarn/postcss-8.4.31
Bump postcss from 8.4.28 to 8.4.31
2023-10-05 15:29:48 -04:00
dependabot[bot]
00134c6c3d Bump postcss from 8.4.28 to 8.4.31
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.28 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.28...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-05 19:25:47 +00:00
Trevor Buckner
6a393a1437 Merge pull request #3064 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.23.0
Bump @babel/core from 7.22.20 to 7.23.0
2023-10-05 15:25:19 -04:00
Trevor Buckner
115be2813d Merge pull request #3076 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.4.2
Bump eslint-plugin-jest from 27.4.0 to 27.4.2
2023-10-05 15:25:11 -04:00
Trevor Buckner
e4a46c84ec Merge pull request #3080 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.5.4
Bump mongoose from 7.5.2 to 7.5.4
2023-10-05 15:24:57 -04:00
dependabot[bot]
b994bf269a Bump mongoose from 7.5.2 to 7.5.4
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.5.2 to 7.5.4.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.5.2...7.5.4)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-05 03:40:18 +00:00
Víctor Losada Hernández
2de7ec3585 Initial Commit 2023-10-03 17:08:46 +02:00
Víctor Losada Hernández
efbfbf3568 Merge branch 'master' of https://github.com/naturalcrit/homebrewery 2023-10-03 08:07:54 +02:00
Víctor Losada Hernández
12ca82e6e6 Initial commit 2023-10-03 08:00:20 +02:00
dependabot[bot]
e7ce8d73bb Bump eslint-plugin-jest from 27.4.0 to 27.4.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.4.0 to 27.4.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.4.0...v27.4.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:52:27 +00:00
G.Ambatte
a420f202d8 Fix a:hover in LESS styling 2023-10-01 21:10:08 +13:00
G.Ambatte
3628ca837a Shift to LESS nested styling 2023-10-01 21:09:32 +13:00
G.Ambatte
cc3a42402a Move Credits snippet to Blank 2023-10-01 20:11:05 +13:00
G.Ambatte
1e9b71080b Add underline on hover to link in credit 2023-10-01 19:58:57 +13:00
G.Ambatte
90917bb84c Change the text to include URL link 2023-10-01 19:52:17 +13:00
G.Ambatte
7f6e90fee3 Capitalize C in NaturalCrit.com 2023-10-01 15:29:46 +13:00
G.Ambatte
b8d8c1bebb Add HB Credit snippet 2023-10-01 14:15:58 +13:00
G.Ambatte
7ee0e914e6 Add Credits styling to 5ePHB theme 2023-10-01 14:13:01 +13:00
G.Ambatte
08dbd5638d New file was unnecessary 2023-10-01 14:11:07 +13:00
G.Ambatte
b7d7f4f2a0 Add optimized NC logo 2023-10-01 13:03:37 +13:00
Gazook89
3cf6691e67 remove width constraint on editors in snippet bar. 2023-09-29 09:31:20 -05:00
Gazook89
8077a91ff7 add foldAll and unfoldAll buttons to snippet bar. 2023-09-29 09:31:20 -05:00
Gazook89
09670b8535 Stylelint the v3 PHB theme. 2023-09-28 00:04:21 -05:00
Gazook89
36f8f39486 Tweak monster H3 sizing and spacing per recommendation 2023-09-28 00:02:57 -05:00
Gazook89
1556cf361a Check for author in author list before increasing views. 2023-09-27 23:46:38 -05:00
Gazook89
c6ef051232 Stylelint the editor.less file. 2023-09-27 22:56:20 -05:00
Gazook89
2c130d1943 add styling for definition lists in the editor. 2023-09-27 22:46:51 -05:00
Gazook89
f1e6a9a41e add syntax highlighting for definition lists 2023-09-27 22:46:51 -05:00
Víctor Losada Hernández
b557144f63 extra tests 2023-09-27 20:11:00 +02:00
Víctor Losada Hernández
738fc62b8f initial commit 2023-09-27 18:20:56 +02:00
dependabot[bot]
34edd436e7 Bump @babel/core from 7.22.20 to 7.23.0
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.20 to 7.23.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-26 03:37:54 +00:00
dependabot[bot]
0b13e90dd8 Bump marked-extended-tables from 1.0.6 to 1.0.7
Bumps [marked-extended-tables](https://github.com/calculuschild/marked-extended-tables) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/calculuschild/marked-extended-tables/releases)
- [Changelog](https://github.com/calculuschild/marked-extended-tables/blob/main/release.config.cjs)
- [Commits](https://github.com/calculuschild/marked-extended-tables/commits)

---
updated-dependencies:
- dependency-name: marked-extended-tables
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-26 03:37:38 +00:00
Trevor Buckner
52dcc3b53c Merge pull request #3057 from naturalcrit/CSSLint-V3PHB
CSS Lint on V3 5ePHB theme page
2023-09-25 16:18:28 -04:00
Trevor Buckner
6803db268f Merge pull request #3062 from naturalcrit/dependabot/npm_and_yarn/eslint-8.50.0
Bump eslint from 8.49.0 to 8.50.0
2023-09-25 16:04:25 -04:00
Trevor Buckner
99c45b6cc3 Merge pull request #3061 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.1.0
Bump marked-gfm-heading-id from 3.0.8 to 3.1.0
2023-09-25 16:04:18 -04:00
dependabot[bot]
4cf8e620ee Bump eslint from 8.49.0 to 8.50.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.49.0 to 8.50.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.49.0...v8.50.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-25 03:11:42 +00:00
dependabot[bot]
fb4c33545c Bump marked-gfm-heading-id from 3.0.8 to 3.1.0
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.0.8 to 3.1.0.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.0.8...v3.1.0)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-25 03:11:21 +00:00
Trevor Buckner
68475a6aa0 Merge pull request #3016 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-8.3.1
Bump @googleapis/drive from 5.1.0 to 8.3.1
2023-09-19 16:39:46 -04:00
Trevor Buckner
e5140bd5b4 Merge pull request #2990 from naturalcrit/dependabot/npm_and_yarn/superagent-8.1.2
Bump superagent from 6.1.0 to 8.1.2
2023-09-19 16:39:09 -04:00
Trevor Buckner
e3c05c83ba Merge branch 'master' into CSSLint-V3PHB 2023-09-19 15:36:46 -04:00
Trevor Buckner
b374f06718 Merge pull request #3058 from naturalcrit/Node20
Update Node to v20
2023-09-19 15:36:23 -04:00
Trevor Buckner
ea8c93d39d Move npm position 2023-09-19 14:43:14 -04:00
Trevor Buckner
6dd8ccff90 Raise Node version 2023-09-19 14:10:28 -04:00
Trevor Buckner
ca90a22c64 Run CSSLint 2023-09-19 12:40:39 -04:00
Trevor Buckner
abc4851375 Merge pull request #2796 from 5e-Cleric/DMG-theme-update
Update in the DMG theme
2023-09-18 16:28:38 -04:00
Trevor Buckner
a155c10d46 Merge branch 'master' into pr/2796 2023-09-18 16:28:20 -04:00
Trevor Buckner
5247f5c87b Update style.less 2023-09-18 16:26:38 -04:00
dependabot[bot]
e41c1ef0bd Bump @googleapis/drive from 5.1.0 to 8.3.1
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 5.1.0 to 8.3.1.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/release-please-config.json)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/5.1.0...drive-v8.3.1)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 19:18:17 +00:00
Trevor Buckner
4d6b428f93 Merge pull request #3054 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.20
Bump @babel/preset-env from 7.22.15 to 7.22.20
2023-09-18 15:17:22 -04:00
Trevor Buckner
6928bd9fb4 Merge pull request #3051 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.20
Bump @babel/core from 7.22.17 to 7.22.20
2023-09-18 15:17:14 -04:00
Trevor Buckner
f2855aca85 Merge pull request #3052 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.4.0
Bump eslint-plugin-jest from 27.2.3 to 27.4.0
2023-09-18 15:16:49 -04:00
Trevor Buckner
aeef595ea9 Merge pull request #3055 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.5.2
Bump mongoose from 7.5.1 to 7.5.2
2023-09-18 15:16:39 -04:00
dependabot[bot]
1a24709da0 Bump mongoose from 7.5.1 to 7.5.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.5.1 to 7.5.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.5.1...7.5.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 03:54:17 +00:00
dependabot[bot]
8c11f47c1f Bump @babel/preset-env from 7.22.15 to 7.22.20
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.15 to 7.22.20.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.20/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 03:54:04 +00:00
dependabot[bot]
486fbf32b2 Bump eslint-plugin-jest from 27.2.3 to 27.4.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.2.3 to 27.4.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.2.3...v27.4.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 03:53:32 +00:00
dependabot[bot]
8ac3cdcf9d Bump @babel/core from 7.22.17 to 7.22.20
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.17 to 7.22.20.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.20/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 03:53:17 +00:00
dependabot[bot]
f0fc0bcb6d Bump superagent from 6.1.0 to 8.1.2
Bumps [superagent](https://github.com/ladjs/superagent) from 6.1.0 to 8.1.2.
- [Release notes](https://github.com/ladjs/superagent/releases)
- [Changelog](https://github.com/ladjs/superagent/blob/master/HISTORY.md)
- [Commits](https://github.com/ladjs/superagent/compare/v6.1.0...v8.1.2)

---
updated-dependencies:
- dependency-name: superagent
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-14 21:16:32 +00:00
Trevor Buckner
63a5e9f817 Merge pull request #3048 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.16.0
Bump react-router-dom from 6.15.0 to 6.16.0
2023-09-14 17:15:48 -04:00
Trevor Buckner
5456f4f197 Merge pull request #2791 from 5e-Cleric/FAQ-update
Update FAQ and Landpage
2023-09-14 17:15:39 -04:00
Trevor Buckner
d75ea8943b rewrite Editing and Sharing to better fit 2023-09-14 17:15:05 -04:00
Trevor Buckner
07ae1539aa Merge pull request #2797 from 5e-Cleric/quote-snippet
Quote Snippet
2023-09-14 16:46:06 -04:00
Trevor Buckner
2125b8a026 Small tweaks 2023-09-14 16:44:59 -04:00
dependabot[bot]
b3522bddf1 Bump react-router-dom from 6.15.0 to 6.16.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.16.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-14 03:53:35 +00:00
Víctor Losada Hernández
9dc19d996d reviewed fixes 2023-09-13 23:40:33 +02:00
G.Ambatte
216de73c93 Fix from 5E-Cleric 2023-09-14 08:19:25 +12:00
G.Ambatte
a306030635 Merge branch 'master' into addDarkbreweryTheme 2023-09-14 08:14:05 +12:00
Trevor Buckner
3e9bea3761 Merge pull request #3043 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.5.1
Bump mongoose from 7.5.0 to 7.5.1
2023-09-13 09:36:06 -04:00
Trevor Buckner
73e909c4c8 Merge pull request #3045 from naturalcrit/dependabot/npm_and_yarn/jest-29.7.0
Bump jest from 29.6.4 to 29.7.0
2023-09-13 09:35:59 -04:00
dependabot[bot]
53fa6af5f9 Bump jest from 29.6.4 to 29.7.0
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 29.6.4 to 29.7.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v29.7.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-13 03:33:13 +00:00
dependabot[bot]
4d2edf81a9 Bump mongoose from 7.5.0 to 7.5.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.5.0 to 7.5.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.5.0...7.5.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 03:46:23 +00:00
Trevor Buckner
b10b33830a Merge pull request #3038 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.0.8
Bump marked-gfm-heading-id from 3.0.7 to 3.0.8
2023-09-11 18:59:39 -04:00
Trevor Buckner
393ac69581 Merge pull request #3040 from naturalcrit/dependabot/npm_and_yarn/eslint-8.49.0
Bump eslint from 8.48.0 to 8.49.0
2023-09-11 18:59:31 -04:00
Trevor Buckner
1098f6da70 Merge pull request #3039 from naturalcrit/dependabot/npm_and_yarn/npm-10.1.0
Bump npm from 10.0.0 to 10.1.0
2023-09-11 18:59:26 -04:00
Trevor Buckner
a29fed3c89 Merge pull request #3041 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.17
Bump @babel/core from 7.22.15 to 7.22.17
2023-09-11 18:59:19 -04:00
dependabot[bot]
7af3a629f9 Bump @babel/core from 7.22.15 to 7.22.17
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.15 to 7.22.17.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.17/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:32:05 +00:00
dependabot[bot]
b0a9765819 Bump eslint from 8.48.0 to 8.49.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.48.0 to 8.49.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.48.0...v8.49.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:31:50 +00:00
dependabot[bot]
86d18ea0d9 Bump npm from 10.0.0 to 10.1.0
Bumps [npm](https://github.com/npm/cli) from 10.0.0 to 10.1.0.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/libnpmhook-v10.0.0...v10.1.0)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:31:19 +00:00
dependabot[bot]
bfe278c81c Bump marked-gfm-heading-id from 3.0.7 to 3.0.8
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.0.7 to 3.0.8.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.0.7...v3.0.8)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 03:30:59 +00:00
G.Ambatte
7870c763df Linter fix 2023-09-09 13:42:35 +12:00
G.Ambatte
7f1758364b Add darkbrewery to editorThemes.json 2023-09-09 13:42:25 +12:00
Sean Robertson
46a6ed4fcc Modify build script to include custom theme dir 2023-09-08 15:21:51 +12:00
Sean Robertson
7efd23039e Add DarkBrewery CSS file 2023-09-08 15:20:06 +12:00
Víctor Losada Hernández
9e5103a0c7 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into FAQ-update 2023-09-07 23:14:53 +02:00
Trevor Buckner
7281b6e43c Merge pull request #2768 from G-Ambatte/addEditorThemes-#362
Add editor themes
2023-09-07 10:39:33 -04:00
G.Ambatte
3f6eb7371f Increase ESLint lines for SnippetBar.jsx 2023-09-07 18:28:08 +12:00
G.Ambatte
2b0bbfc2db Merge branch 'master' into addEditorThemes-#362 2023-09-07 18:22:17 +12:00
G.Ambatte
e909bc8f35 Load editorThemes in SnippetBar.jsx 2023-09-07 17:33:36 +12:00
G.Ambatte
e16110da6a Add custom styling for light background themes 2023-09-07 17:05:52 +12:00
G.Ambatte
fcd15e6d9c Merge branch 'addEditorThemes-#362' of https://github.com/G-Ambatte/homebrewery into addEditorThemes-#362 2023-09-07 16:55:49 +12:00
G.Ambatte
3f828c8649 Make Default first option in built themes JSON 2023-09-07 16:55:39 +12:00
Trevor Buckner
bb66cffa13 Merge pull request #3021 from naturalcrit/dependabot/npm_and_yarn/npm-10.0.0
Bump npm from 9.8.1 to 10.0.0
2023-09-06 14:44:26 -04:00
Trevor Buckner
da5a5631ad Merge pull request #2889 from G-Ambatte/trimBrewTitlesOnUserPage-#2775
Remove whitespace from brew titles on UserPage
2023-09-06 11:37:59 -04:00
Sean Robertson
3e43b058a5 Move userpage brew data clean up to app.js 2023-09-06 11:52:28 +12:00
G.Ambatte
a30c2fa1f7 Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-09-06 10:58:10 +12:00
G.Ambatte
cb203c29c9 Merge branch 'master' into addEditorThemes-#362 2023-09-06 08:24:22 +12:00
Trevor Buckner
e50d7b8882 Merge pull request #3013 from G-Ambatte/changeColumnFlow-#2982
Change column flow to auto
2023-09-05 16:15:14 -04:00
G.Ambatte
74d6aa7c8a Merge branch 'master' into addEditorThemes-#362 2023-09-06 07:44:24 +12:00
G.Ambatte
e86686807b Merge branch 'master' into changeColumnFlow-#2982 2023-09-06 07:43:50 +12:00
Trevor Buckner
f4356025de Merge pull request #3024 from G-Ambatte/fixVersionError-#2641
Shift manual save to use debounced save function
2023-09-05 14:52:42 -04:00
dependabot[bot]
73b141d08c Bump npm from 9.8.1 to 10.0.0
Bumps [npm](https://github.com/npm/cli) from 9.8.1 to 10.0.0.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.8.1...libnpmhook-v10.0.0)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 18:34:36 +00:00
Trevor Buckner
9196ffc480 Merge pull request #3011 from naturalcrit/dependabot/npm_and_yarn/jest-29.6.4
Bump jest from 29.6.2 to 29.6.4
2023-09-05 14:33:12 -04:00
Trevor Buckner
4e18bb047e Merge pull request #3029 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.15
Bump @babel/plugin-transform-runtime from 7.22.10 to 7.22.15
2023-09-05 14:33:04 -04:00
Trevor Buckner
e4b4e34216 Merge pull request #3027 from naturalcrit/dependabot/npm_and_yarn/babel/preset-react-7.22.15
Bump @babel/preset-react from 7.22.5 to 7.22.15
2023-09-05 14:30:24 -04:00
Trevor Buckner
d38c1b9ab2 Merge pull request #3014 from naturalcrit/dependabot/npm_and_yarn/eslint-8.48.0
Bump eslint from 8.47.0 to 8.48.0
2023-09-05 14:30:16 -04:00
dependabot[bot]
deaaafd9d2 Bump @babel/plugin-transform-runtime from 7.22.10 to 7.22.15
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.10 to 7.22.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.15/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 18:27:40 +00:00
dependabot[bot]
9b33bf9855 Bump @babel/preset-react from 7.22.5 to 7.22.15
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.22.5 to 7.22.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.15/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 18:27:25 +00:00
Trevor Buckner
e5346d3a6e Merge pull request #3018 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.5.0
Bump mongoose from 7.4.3 to 7.5.0
2023-09-05 14:27:03 -04:00
Trevor Buckner
d9ca20e17d Merge pull request #3026 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.0.7
Bump marked-gfm-heading-id from 3.0.6 to 3.0.7
2023-09-05 14:26:28 -04:00
Trevor Buckner
a5cb3f085f Merge pull request #3028 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.15
Bump @babel/core from 7.22.10 to 7.22.15
2023-09-05 14:26:14 -04:00
Trevor Buckner
6d28948387 Merge pull request #3030 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.15
Bump @babel/preset-env from 7.22.10 to 7.22.15
2023-09-05 14:26:07 -04:00
dependabot[bot]
65c75b3282 Bump @babel/preset-env from 7.22.10 to 7.22.15
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.10 to 7.22.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.15/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 03:35:27 +00:00
dependabot[bot]
a0f22e31b7 Bump @babel/core from 7.22.10 to 7.22.15
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.10 to 7.22.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.15/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 03:34:18 +00:00
dependabot[bot]
c750eebc11 Bump marked-gfm-heading-id from 3.0.6 to 3.0.7
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.0.6 to 3.0.7.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.0.6...v3.0.7)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 03:21:55 +00:00
G.Ambatte
93a93f1907 Shift manual save to use debounced save function 2023-09-04 13:29:37 +12:00
dependabot[bot]
29428b81f6 Bump mongoose from 7.4.3 to 7.5.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.4.3 to 7.5.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.4.3...7.5.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-30 03:22:53 +00:00
dependabot[bot]
a542953cec Bump eslint from 8.47.0 to 8.48.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.47.0 to 8.48.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.47.0...v8.48.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 03:11:48 +00:00
G.Ambatte
183ca51753 Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-08-28 07:50:44 +12:00
G.Ambatte
220816a172 Merge branch 'master' into addEditorThemes-#362 2023-08-28 07:50:33 +12:00
G.Ambatte
840b075c8e Merge branch 'master' into changeColumnFlow-#2982 2023-08-28 07:48:00 +12:00
Trevor Buckner
3ba15a068a Merge pull request #3009 from G-Ambatte/fixFreeBSDInstallScript-#3005
Fix FreeBSD Install Script
2023-08-25 00:30:57 -04:00
G.Ambatte
b99de1c6e1 Change column-fill to auto 2023-08-25 16:16:11 +12:00
dependabot[bot]
73a48501e0 Bump jest from 29.6.2 to 29.6.4
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 29.6.2 to 29.6.4.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v29.6.4/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-25 03:45:43 +00:00
G.Ambatte
599d39b69d Correct service file location in repository 2023-08-25 11:56:48 +12:00
G.Ambatte
ed18ba3108 Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-08-24 14:12:15 +12:00
G.Ambatte
6d93291d5b Merge branch 'master' into addEditorThemes-#362 2023-08-24 14:09:59 +12:00
Trevor Buckner
3fef61cbf8 Merge pull request #2991 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-react-7.33.2
Bump eslint-plugin-react from 7.33.1 to 7.33.2
2023-08-21 12:10:05 -04:00
Trevor Buckner
c5d9c3bdc0 Merge pull request #3002 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.10.3
Bump stylelint from 15.10.2 to 15.10.3
2023-08-21 12:09:48 -04:00
Trevor Buckner
6c7af2d968 Merge pull request #3003 from G-Ambatte/bugfix-#2998
Move save location logic out of ShareID check
2023-08-21 12:09:19 -04:00
Trevor Buckner
6130d69906 Rearranged to avoid obscuring the state
`output` variable added an unneeded layer to dig through to understand what is being saved to `setState()`
2023-08-21 12:08:54 -04:00
G.Ambatte
8c975747c4 Move save location logic out of ShareID check 2023-08-21 19:33:51 +12:00
Trevor Buckner
ef6dab24a2 Merge pull request #2997 from G-Ambatte/bugfix-#2996
Move e.preventDefault to after isDragging check
2023-08-20 23:44:25 -04:00
Trevor Buckner
1f09fff94b Merge pull request #3000 from G-Ambatte/bugfix-#2999
Fix crash to white screen on New page
2023-08-20 23:42:24 -04:00
dependabot[bot]
7bcd898c81 Bump stylelint from 15.10.2 to 15.10.3
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.10.2 to 15.10.3.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.10.2...15.10.3)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 03:00:59 +00:00
G.Ambatte
186809008c Correct check for case of user not being logged in 2023-08-21 14:56:44 +12:00
G.Ambatte
b6e11ba607 Move e.preventDefault to after isDragging check 2023-08-19 15:01:16 +12:00
Trevor Buckner
355b8ac78f Merge pull request #2994 from G-Ambatte/bugfix-#2993
Fix save location logic
2023-08-18 07:20:01 -04:00
G.Ambatte
a2c20a0f7a Fix save location logic 2023-08-18 20:35:26 +12:00
Trevor Buckner
117e399c1d Merge pull request #2979 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.15.0
Bump react-router-dom from 6.14.2 to 6.15.0
2023-08-17 16:45:15 -04:00
Trevor Buckner
a3ac524308 Merge pull request #2978 from G-Ambatte/update-v3.9.2
Update v3.9.2
2023-08-17 16:12:07 -04:00
Trevor Buckner
1e9ba31644 Add date 2023-08-17 16:11:40 -04:00
dependabot[bot]
751728d134 Bump eslint-plugin-react from 7.33.1 to 7.33.2
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.1 to 7.33.2.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.1...v7.33.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-17 03:26:38 +00:00
Trevor Buckner
8e05cdbb43 Merge pull request #2985 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.4.3
Bump mongoose from 7.4.2 to 7.4.3
2023-08-15 10:48:53 -04:00
Trevor Buckner
a5483c549b Merge pull request #2986 from naturalcrit/dependabot/npm_and_yarn/eslint-8.47.0
Bump eslint from 8.46.0 to 8.47.0
2023-08-15 10:48:46 -04:00
dependabot[bot]
746f3d35f8 Bump eslint from 8.46.0 to 8.47.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.46.0 to 8.47.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.46.0...v8.47.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 03:47:18 +00:00
dependabot[bot]
94c902bf38 Bump mongoose from 7.4.2 to 7.4.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.4.2 to 7.4.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.4.2...7.4.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 03:47:06 +00:00
Trevor Buckner
0da1c43dc3 Merge pull request #2983 from G-Ambatte/fixColumnFlow
Fix Markdown render parameter
2023-08-12 01:19:16 -04:00
G.Ambatte
32417e92ff Fix Markdown render parameter 2023-08-12 14:27:34 +12:00
Víctor Losada Hernández
3d5f99adae covers em to cm 2023-08-11 15:30:33 +02:00
Víctor Losada Hernández
a889fa657e display prop again 2023-08-11 15:18:16 +02:00
Víctor Losada Hernández
4347debf45 unsetting footer should use display property 2023-08-11 15:10:08 +02:00
Víctor Losada Hernández
dc3243ae59 back cover should not create a page after itself 2023-08-11 15:08:49 +02:00
dependabot[bot]
540dee89dd Bump react-router-dom from 6.14.2 to 6.15.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.14.2 to 6.15.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.15.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-11 03:32:08 +00:00
G.Ambatte
1854080771 Merge branch 'master' into update-v3.9.2 2023-08-11 12:52:38 +12:00
Sean Robertson
45207b8114 Up version to 3.9.2 2023-08-11 12:42:20 +12:00
Sean Robertson
2b3c2c9fac Update change log with merged PR info 2023-08-11 12:42:04 +12:00
Trevor Buckner
0b953fcbf3 Merge pull request #2944 from G-Ambatte/experimentalSaveLocation
Add save location setting to local storage
2023-08-10 20:30:13 -04:00
G.Ambatte
0a3453d228 Merge branch 'master' into addEditorThemes-#362 2023-08-11 12:09:02 +12:00
G.Ambatte
6b49e720ca Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-08-11 12:08:40 +12:00
Sean Robertson
7feaa51de0 Rename renderButton visibility control parameter 2023-08-11 11:56:45 +12:00
G.Ambatte
1729b13574 Merge branch 'master' into experimentalSaveLocation 2023-08-11 11:53:26 +12:00
G.Ambatte
73832fabcc Update client/homebrew/pages/accountPage/accountPage.jsx
Co-authored-by: Trevor Buckner <calculuschild@gmail.com>
2023-08-11 11:15:27 +12:00
Trevor Buckner
bac537244c Merge pull request #2969 from G-Ambatte/addGoogleFileLink
Add Google file link to UserPage BrewItem
2023-08-10 17:19:18 -04:00
G.Ambatte
54f8bb4b08 Merge branch 'master' into addGoogleFileLink 2023-08-10 16:47:07 +12:00
G.Ambatte
38f6929c1d Reverse StorageIcons logic 2023-08-10 16:46:45 +12:00
Trevor Buckner
64ce9ecfa6 Merge pull request #2973 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.10
Bump @babel/preset-env from 7.22.9 to 7.22.10
2023-08-09 13:57:56 -04:00
Trevor Buckner
858990c4bd Merge pull request #2971 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.10
Bump @babel/core from 7.22.9 to 7.22.10
2023-08-09 13:57:48 -04:00
dependabot[bot]
785011cba4 Bump @babel/core from 7.22.9 to 7.22.10
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.9 to 7.22.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.10/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 15:27:35 +00:00
dependabot[bot]
50d3b503d9 Bump @babel/preset-env from 7.22.9 to 7.22.10
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.9 to 7.22.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.10/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 15:27:22 +00:00
Trevor Buckner
2f8e2545c6 Merge pull request #2968 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.0.6
Bump marked-gfm-heading-id from 3.0.4 to 3.0.6
2023-08-09 11:26:16 -04:00
Trevor Buckner
d8574e7045 Merge pull request #2972 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.10
Bump @babel/plugin-transform-runtime from 7.22.9 to 7.22.10
2023-08-09 11:25:59 -04:00
Víctor Losada Hernández
b3497e14f1 remove italics 2023-08-08 19:15:19 +02:00
Víctor Losada Hernández
d6e0047d4e Merge branch 'master' of https://github.com/naturalcrit/homebrewery into quote-snippet 2023-08-08 19:12:34 +02:00
Víctor Losada Hernández
8ebd5ccff9 syntax change 2023-08-08 19:11:54 +02:00
dependabot[bot]
4a927daff3 Bump @babel/plugin-transform-runtime from 7.22.9 to 7.22.10
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.9 to 7.22.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.10/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-08 03:02:35 +00:00
G.Ambatte
d28e85209e Add HB icon for Mongo brews 2023-08-07 22:03:49 +12:00
G.Ambatte
cca882869d Add file link to Google icon on User Page 2023-08-07 22:03:17 +12:00
dependabot[bot]
9ae55c87a9 Bump marked-gfm-heading-id from 3.0.4 to 3.0.6
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.0.4 to 3.0.6.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.0.4...v3.0.6)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-07 03:02:48 +00:00
G.Ambatte
99ad96a584 Merge branch 'master' into addEditorThemes-#362 2023-08-05 14:22:31 +12:00
G.Ambatte
f8b42031fb Merge branch 'master' into experimentalSaveLocation 2023-08-05 14:22:05 +12:00
G.Ambatte
850b52d924 Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-08-05 14:22:01 +12:00
Trevor Buckner
b2e7b28b65 Merge pull request #2945 from 5e-Cleric/TOC-generate-fix
exclude covers from TOC generation
2023-08-04 19:16:58 -04:00
Trevor Buckner
3efa7dd0be Merge pull request #2961 from Gazook89/Mobile-tweaks
Simple adjustments for mobile viewing
2023-08-04 16:42:08 -04:00
Trevor Buckner
677e27bb66 Merge pull request #2966 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.4.2
Bump mongoose from 7.4.1 to 7.4.2
2023-08-04 01:51:12 -04:00
Trevor Buckner
da71bd7a10 Merge pull request #2965 from G-Ambatte/reworkClassTables-#2964
Update class table generators
2023-08-04 01:41:02 -04:00
Trevor Buckner
0869f6b29b Just... put the whole table in. 2023-08-04 01:19:33 -04:00
Trevor Buckner
0da5de494e simplify third caster gen 2023-08-04 00:23:23 -04:00
Trevor Buckner
bc9dc8dee9 Clean up half caster gen. 2023-08-04 00:04:17 -04:00
Trevor Buckner
e3e250255e Simplify full caster gen 2023-08-03 23:39:17 -04:00
dependabot[bot]
787a23bdf8 Bump mongoose from 7.4.1 to 7.4.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.4.1 to 7.4.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.4.1...7.4.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-04 03:36:35 +00:00
Trevor Buckner
7aca0f2f10 Use dedent-tabs 2023-08-03 19:23:40 -04:00
Trevor Buckner
999f9c8f25 Rename passed in "classes" to "snippetClasses" for clarity 2023-08-03 17:22:30 -04:00
Trevor Buckner
ee4b2d549b Make CSS class order consistent on snippets 2023-08-03 17:20:38 -04:00
Trevor Buckner
3eb7ce2775 Clean up indentation 2023-08-03 17:16:26 -04:00
Trevor Buckner
4d4371f48c Compact features array 2023-08-03 17:15:14 -04:00
G.Ambatte
47666cc26d Merge branch 'master' into addEditorThemes-#362 2023-08-03 18:29:19 +12:00
G.Ambatte
e8352d996e Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-08-03 18:29:13 +12:00
G.Ambatte
e6f792900c Merge branch 'master' into experimentalSaveLocation 2023-08-03 18:28:39 +12:00
G.Ambatte
0ddeafd260 Merge branch 'master' into reworkClassTables-#2964 2023-08-02 21:40:22 +12:00
G.Ambatte
4cf54d6ae8 Update class table generators 2023-08-02 21:23:11 +12:00
Gazook89
8d3329069a remove logs 2023-08-01 14:16:31 -05:00
Gazook89
2e13eed2ef revert moving pointerMove & pointerUp, now on splitPane 2023-08-01 13:53:38 -05:00
Gazook89
310faa449d set editor font size to 16px on touchscreens
iOS requires minimum 16px font to prevent auto-zooming into input fields.
2023-08-01 13:29:57 -05:00
Trevor Buckner
8527a976a6 Merge pull request #2936 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.9
Bump @babel/core from 7.22.8 to 7.22.9
2023-08-01 11:27:53 -04:00
dependabot[bot]
54460c52f6 Bump @babel/core from 7.22.8 to 7.22.9
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.8 to 7.22.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.9/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-01 15:26:55 +00:00
Trevor Buckner
e81bd2a0d2 Merge pull request #2960 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-react-7.33.1
Bump eslint-plugin-react from 7.33.0 to 7.33.1
2023-08-01 11:25:54 -04:00
Trevor Buckner
6c0daa1e4d Merge pull request #2935 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.9
Bump @babel/plugin-transform-runtime from 7.22.7 to 7.22.9
2023-08-01 11:25:47 -04:00
dependabot[bot]
25d03faae2 Bump eslint-plugin-react from 7.33.0 to 7.33.1
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.33.0 to 7.33.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.33.0...v7.33.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-01 15:22:58 +00:00
Trevor Buckner
378b2204da Merge pull request #2959 from naturalcrit/dependabot/npm_and_yarn/eslint-8.46.0
Bump eslint from 8.45.0 to 8.46.0
2023-08-01 11:21:38 -04:00
Trevor Buckner
447b0939f2 Merge pull request #2957 from naturalcrit/dependabot/npm_and_yarn/jest-29.6.2
Bump jest from 29.6.1 to 29.6.2
2023-08-01 11:21:26 -04:00
Gazook89
0bde336226 move all pointer events to divider, not splitPane 2023-07-31 22:20:27 -05:00
Gazook89
73e44b8d7a add touch-action css property to splitPane 2023-07-31 15:06:09 -05:00
dependabot[bot]
53fbaf87c2 Bump eslint from 8.45.0 to 8.46.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.46.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.45.0...v8.46.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-31 03:14:21 +00:00
Gazook89
a8db7353b0 preventDefaults on pointerEvents to prevent some default behavior. 2023-07-30 20:49:16 -05:00
Gazook89
bda8037cd6 change onMouse events to onPointer events for mobile use. 2023-07-30 20:12:16 -05:00
Gazook89
1f173814ec Add viewport meta tag for mobile view. 2023-07-30 19:40:39 -05:00
Gazook89
deb0e2f85b add meta viewport tag in header 2023-07-30 15:00:42 -05:00
dependabot[bot]
5425ae5d15 Bump jest from 29.6.1 to 29.6.2
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.6.1 to 29.6.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.6.2/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-28 03:15:48 +00:00
G.Ambatte
f03f2c36de Merge branch 'master' into addEditorThemes-#362 2023-07-27 13:59:05 +12:00
G.Ambatte
a1e663bc32 Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-07-27 13:58:01 +12:00
Trevor Buckner
16c842e08f Merge pull request #2939 from naturalcrit/dependabot/npm_and_yarn/eslint-8.45.0
Bump eslint from 8.44.0 to 8.45.0
2023-07-25 19:05:00 -04:00
Trevor Buckner
1c0edce6f6 Merge pull request #2941 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.14.2
Bump react-router-dom from 6.14.1 to 6.14.2
2023-07-25 19:04:47 -04:00
Trevor Buckner
8ec6e66c92 Merge pull request #2947 from naturalcrit/dependabot/npm_and_yarn/npm-9.8.1
Bump npm from 9.8.0 to 9.8.1
2023-07-25 19:04:37 -04:00
Trevor Buckner
330cdb35f4 Merge pull request #2948 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.10.2
Bump stylelint from 15.10.1 to 15.10.2
2023-07-25 19:04:29 -04:00
Trevor Buckner
f93fbab754 Merge pull request #2950 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-react-7.33.0
Bump eslint-plugin-react from 7.32.2 to 7.33.0
2023-07-25 19:04:21 -04:00
Trevor Buckner
b9498e49fc Merge pull request #2952 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.4.1
Bump mongoose from 7.3.4 to 7.4.1
2023-07-25 19:04:09 -04:00
dependabot[bot]
4a434bb161 Bump mongoose from 7.3.4 to 7.4.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.3.4 to 7.4.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.3.4...7.4.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-25 03:49:00 +00:00
dependabot[bot]
a339cb036f Bump eslint-plugin-react from 7.32.2 to 7.33.0
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.32.2 to 7.33.0.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.2...v7.33.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-21 03:14:09 +00:00
dependabot[bot]
91eef51fb5 Bump stylelint from 15.10.1 to 15.10.2
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.10.1 to 15.10.2.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.10.1...15.10.2)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-20 03:52:49 +00:00
dependabot[bot]
46b050ae7d Bump npm from 9.8.0 to 9.8.1
Bumps [npm](https://github.com/npm/cli) from 9.8.0 to 9.8.1.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.8.0...v9.8.1)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-20 03:52:26 +00:00
Víctor Losada Hernández
b433691596 exclude covers from TOC generation 2023-07-19 21:38:14 +02:00
G.Ambatte
cef7f98176 Use existing makeActive function 2023-07-19 20:43:49 +12:00
G.Ambatte
b869d086ea Add default to New Page 2023-07-19 20:39:33 +12:00
G.Ambatte
64a361e06c Determine default state and set in local storage 2023-07-19 20:36:55 +12:00
G.Ambatte
9e7e646296 Add username to save key 2023-07-19 20:34:10 +12:00
G.Ambatte
7274d788c5 Clean up comments, change to actual G-Drive check 2023-07-19 19:39:07 +12:00
G.Ambatte
7942f1caed Initial functionality pass 2023-07-19 19:36:14 +12:00
G.Ambatte
343e176b83 Merge branch 'master' into addEditorThemes-#362 2023-07-19 17:19:44 +12:00
G.Ambatte
3db5959cfa Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-07-19 17:19:35 +12:00
dependabot[bot]
62f9781c8e Bump react-router-dom from 6.14.1 to 6.14.2
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.14.1 to 6.14.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@6.14.2/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.14.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-18 03:05:33 +00:00
dependabot[bot]
9d53002874 Bump eslint from 8.44.0 to 8.45.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.44.0 to 8.45.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.44.0...v8.45.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 03:48:12 +00:00
dependabot[bot]
4e7e6f8105 Bump @babel/plugin-transform-runtime from 7.22.7 to 7.22.9
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.7 to 7.22.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.9/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 03:25:35 +00:00
Trevor Buckner
cea1157eb2 Merge pull request #2934 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.3.4
Bump mongoose from 7.3.2 to 7.3.4
2023-07-16 23:24:37 -04:00
Trevor Buckner
d535328eb8 Merge pull request #2938 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.2.3
Bump eslint-plugin-jest from 27.2.2 to 27.2.3
2023-07-16 23:24:24 -04:00
Trevor Buckner
627e9ec7d8 Merge pull request #2937 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.9
Bump @babel/preset-env from 7.22.7 to 7.22.9
2023-07-16 23:24:17 -04:00
dependabot[bot]
ab9b5b7487 Bump eslint-plugin-jest from 27.2.2 to 27.2.3
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.2.2 to 27.2.3.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.2.2...v27.2.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-14 03:12:13 +00:00
dependabot[bot]
957a8bf05c Bump @babel/preset-env from 7.22.7 to 7.22.9
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.7 to 7.22.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.9/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-13 03:43:52 +00:00
dependabot[bot]
509390ae03 Bump mongoose from 7.3.2 to 7.3.4
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.3.2 to 7.3.4.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.3.2...7.3.4)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-13 03:43:01 +00:00
G.Ambatte
d3a70c3d75 Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-07-13 12:20:15 +12:00
G.Ambatte
1806854969 Add onMouseDown handler for Firefox functionality 2023-07-12 20:16:36 +12:00
G.Ambatte
c2570fec6b Merge branch 'master' into addEditorThemes-#362 2023-07-12 19:04:14 +12:00
Trevor Buckner
9d64740678 Merge pull request #2931 from naturalcrit/dependabot/npm_and_yarn/stylelint-config-recess-order-4.3.0
Bump stylelint-config-recess-order from 4.2.0 to 4.3.0
2023-07-10 23:52:35 -04:00
dependabot[bot]
053aadeff4 Bump stylelint-config-recess-order from 4.2.0 to 4.3.0
Bumps [stylelint-config-recess-order](https://github.com/stormwarning/stylelint-config-recess-order) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/stormwarning/stylelint-config-recess-order/releases)
- [Changelog](https://github.com/stormwarning/stylelint-config-recess-order/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stormwarning/stylelint-config-recess-order/compare/v4.2.0...v4.3.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recess-order
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-11 03:45:53 +00:00
Trevor Buckner
d3763beb15 Merge pull request #2927 from naturalcrit/dependabot/npm_and_yarn/marked-5.1.1
Bump marked from 5.1.0 to 5.1.1
2023-07-10 22:23:20 -04:00
Trevor Buckner
8281051797 Merge pull request #2928 from naturalcrit/dependabot/npm_and_yarn/stylelint-stylistic-0.4.3
Bump stylelint-stylistic from 0.4.2 to 0.4.3
2023-07-10 22:23:12 -04:00
Trevor Buckner
5b0104fc10 Merge pull request #2929 from naturalcrit/dependabot/npm_and_yarn/semver-5.7.2
Bump semver from 5.7.1 to 5.7.2
2023-07-10 19:45:54 -04:00
dependabot[bot]
b3fa902d85 Bump semver from 5.7.1 to 5.7.2
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 23:38:16 +00:00
G.Ambatte
cf3635bccc Merge branch 'master' into addEditorThemes-#362 2023-07-11 07:38:13 +12:00
dependabot[bot]
a22d223927 Bump stylelint-stylistic from 0.4.2 to 0.4.3
Bumps [stylelint-stylistic](https://github.com/elirasza/stylelint-stylistic) from 0.4.2 to 0.4.3.
- [Commits](https://github.com/elirasza/stylelint-stylistic/compare/0.4.2...0.4.3)

---
updated-dependencies:
- dependency-name: stylelint-stylistic
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 03:07:34 +00:00
dependabot[bot]
5c08926576 Bump marked from 5.1.0 to 5.1.1
Bumps [marked](https://github.com/markedjs/marked) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 03:07:24 +00:00
G.Ambatte
7aa374e529 Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-07-08 19:07:55 +12:00
Trevor Buckner
797ca7e64e Merge pull request #2543 from naturalcrit/dependabot/npm_and_yarn/react-and-react-dom-18.2.0
Bump react and react-dom
2023-07-08 02:53:15 -04:00
dependabot[bot]
5b8f2d8e3c Bump react and react-dom
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) and [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom). These dependencies needed to be updated together.

Updates `react` from 17.0.2 to 18.2.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v18.2.0/packages/react)

Updates `react-dom` from 17.0.2 to 18.2.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v18.2.0/packages/react-dom)

---
updated-dependencies:
- dependency-name: react
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: react-dom
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-08 06:31:42 +00:00
Trevor Buckner
bd0ef5da48 Merge pull request #2406 from G-Ambatte/addStyleSanitization-#1437
Add sanitization of Style content
2023-07-08 02:23:56 -04:00
Trevor Buckner
fe324d6822 Merge pull request #2417 from G-Ambatte/addSmartPageBreak-#2289
Add smarter footer shortcut/snippet
2023-07-08 02:17:37 -04:00
Trevor Buckner
3140299d73 Renderer is always V3. No need to check. 2023-07-08 01:48:49 -04:00
Trevor Buckner
96d04ad75a Fix TOC generators 2023-07-08 01:43:08 -04:00
Trevor Buckner
62532f788e Remove extra param sent to execute() 2023-07-08 01:42:47 -04:00
Trevor Buckner
69a3d04bb7 Merge branch 'master' into pr/2417 2023-07-08 01:11:45 -04:00
Trevor Buckner
21017e45fe Merge pull request #2901 from G-Ambatte/experimentalClickToOpen-#2702
Change dropdowns to stay open when clicked
2023-07-07 20:46:05 -04:00
Trevor Buckner
48474c6f7b Simplify dropdown & convert to Functional Component 2023-07-07 20:38:56 -04:00
Trevor Buckner
3d318f8863 Merge pull request #2926 from naturalcrit/dependabot/npm_and_yarn/jest-29.6.1
Bump jest from 29.6.0 to 29.6.1
2023-07-06 23:21:52 -04:00
Trevor Buckner
2b798f4ecb Merge pull request #2925 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.7
Bump @babel/plugin-transform-runtime from 7.22.6 to 7.22.7
2023-07-06 23:21:43 -04:00
Trevor Buckner
938802e1a3 Merge pull request #2924 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.3.2
Bump mongoose from 7.3.1 to 7.3.2
2023-07-06 23:21:32 -04:00
Trevor Buckner
14f825f3b5 Merge pull request #2923 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.10.1
Bump stylelint from 15.10.0 to 15.10.1
2023-07-06 23:21:03 -04:00
dependabot[bot]
37241a70eb Bump jest from 29.6.0 to 29.6.1
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.6.0 to 29.6.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.6.1/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-07 03:08:55 +00:00
dependabot[bot]
bcd86a7f0c Bump @babel/plugin-transform-runtime from 7.22.6 to 7.22.7
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.6 to 7.22.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.7/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-07 03:08:33 +00:00
dependabot[bot]
cf54594a4c Bump mongoose from 7.3.1 to 7.3.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.3.1...7.3.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-07 03:08:12 +00:00
dependabot[bot]
535fdeaf62 Bump stylelint from 15.10.0 to 15.10.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.10.0 to 15.10.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.10.0...15.10.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-07 03:07:59 +00:00
Trevor Buckner
77bf1b5258 Merge pull request #2922 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.8
Bump @babel/core from 7.22.5 to 7.22.8
2023-07-06 14:41:49 -04:00
Trevor Buckner
63da418b60 Merge pull request #2921 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.7
Bump @babel/preset-env from 7.22.5 to 7.22.7
2023-07-06 14:41:40 -04:00
dependabot[bot]
67f5e53160 Bump @babel/core from 7.22.5 to 7.22.8
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.5 to 7.22.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-06 18:41:20 +00:00
dependabot[bot]
c6103d51c5 Bump @babel/preset-env from 7.22.5 to 7.22.7
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.5 to 7.22.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.7/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-06 18:41:14 +00:00
Trevor Buckner
a4a10783f6 Merge pull request #2915 from naturalcrit/dependabot/npm_and_yarn/stylelint-config-recommended-13.0.0
Bump stylelint-config-recommended from 12.0.0 to 13.0.0
2023-07-06 14:41:05 -04:00
Trevor Buckner
5ed53f75c5 Merge pull request #2912 from naturalcrit/dependabot/npm_and_yarn/jest-29.6.0
Bump jest from 29.5.0 to 29.6.0
2023-07-06 14:40:38 -04:00
Trevor Buckner
81b289923a Merge pull request #2911 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.6
Bump @babel/plugin-transform-runtime from 7.22.5 to 7.22.6
2023-07-06 14:40:30 -04:00
Trevor Buckner
c3d8364789 Merge pull request #2910 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.10.0
Bump stylelint from 15.9.0 to 15.10.0
2023-07-06 14:40:24 -04:00
Trevor Buckner
82fec9901d Merge pull request #2916 from naturalcrit/dependabot/npm_and_yarn/npm-9.8.0
Bump npm from 9.7.2 to 9.8.0
2023-07-06 14:40:16 -04:00
Trevor Buckner
173d0a726b restore livereload
It might work after all. Takes some fiddling.
2023-07-06 00:55:00 -04:00
Trevor Buckner
e064219ca0 Merge pull request #2919 from naturalcrit/FixNodemonbehavior
Fix Nodemon config in `buildHomebrew.js`
2023-07-06 00:33:27 -04:00
Trevor Buckner
ec339f2717 Fix Nodemon config 2023-07-06 00:29:45 -04:00
Trevor Buckner
d9d27808a8 Merge pull request #2918 from naturalcrit/FixGoogleLinksWith10-charShareId
Fix google links with10 char shareid
2023-07-06 00:29:08 -04:00
Trevor Buckner
a4584dc78e Fix spec tests 2023-07-06 00:19:23 -04:00
Trevor Buckner
6344eaa17d Handle Old Google Drive links that used 10-char shareID
When the Homebrewery was first made, editIds and ShareIds only had 10 characters. We later increased this to 12.

However this means some old, old Google Drive links (in the form of `googleId + editId`) were being split incorrectly because they assumed the newer 12-char length, accidentally cutting the last 2 chars from the googleId.
2023-07-06 00:10:07 -04:00
dependabot[bot]
5c41110e50 Bump npm from 9.7.2 to 9.8.0
Bumps [npm](https://github.com/npm/cli) from 9.7.2 to 9.8.0.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.7.2...v9.8.0)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-06 03:11:38 +00:00
G.Ambatte
085cb99562 Merge branch 'master' into addStyleSanitization-#1437 2023-07-06 12:41:14 +12:00
G.Ambatte
568586541a Merge branch 'master' into addSmartPageBreak-#2289 2023-07-06 12:40:05 +12:00
G.Ambatte
0d44e1778f Emit click event when iFrame clicked 2023-07-05 15:48:54 +12:00
dependabot[bot]
4a5269e1f3 Bump stylelint-config-recommended from 12.0.0 to 13.0.0
Bumps [stylelint-config-recommended](https://github.com/stylelint/stylelint-config-recommended) from 12.0.0 to 13.0.0.
- [Release notes](https://github.com/stylelint/stylelint-config-recommended/releases)
- [Changelog](https://github.com/stylelint/stylelint-config-recommended/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint-config-recommended/compare/12.0.0...13.0.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recommended
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 03:33:11 +00:00
dependabot[bot]
62cf0a4483 Bump jest from 29.5.0 to 29.6.0
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.5.0 to 29.6.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.6.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 03:32:27 +00:00
dependabot[bot]
07c7352aa2 Bump @babel/plugin-transform-runtime from 7.22.5 to 7.22.6
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.5 to 7.22.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.6/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 03:32:05 +00:00
dependabot[bot]
cf6c8bce88 Bump stylelint from 15.9.0 to 15.10.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.9.0 to 15.10.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.9.0...15.10.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 03:31:53 +00:00
G.Ambatte
9cb8b46930 Merge branch 'master' into addEditorThemes-#362 2023-07-05 14:24:36 +12:00
G.Ambatte
467b6ff8de Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-07-05 14:24:27 +12:00
G.Ambatte
45d32ebfc3 Merge branch 'master' into experimentalClickToOpen-#2702 2023-07-05 14:24:24 +12:00
Trevor Buckner
84496f51ba Merge pull request #2904 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.14.1
Bump react-router-dom from 6.14.0 to 6.14.1
2023-07-03 15:48:45 -04:00
Trevor Buckner
4cf659e711 Merge pull request #2903 from naturalcrit/dependabot/npm_and_yarn/eslint-8.44.0
Bump eslint from 8.43.0 to 8.44.0
2023-07-03 15:48:38 -04:00
dependabot[bot]
e0bfef5231 Bump react-router-dom from 6.14.0 to 6.14.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.14.0 to 6.14.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.14.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 03:25:11 +00:00
dependabot[bot]
afb6962407 Bump eslint from 8.43.0 to 8.44.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.43.0 to 8.44.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.43.0...v8.44.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 03:24:46 +00:00
Trevor Buckner
8d2945ee5c Fix changelog.md typos 2023-06-29 20:25:57 -04:00
G.Ambatte
1dad009298 Merge branch 'experimentalClickToOpen-#2702' of https://github.com/G-Ambatte/homebrewery into experimentalClickToOpen-#2702 2023-06-30 07:57:38 +12:00
G.Ambatte
aadf663623 Add scrollbar on dropdowns 2023-06-30 07:57:33 +12:00
G.Ambatte
8685f32b49 Merge branch 'master' into experimentalClickToOpen-#2702 2023-06-30 00:03:35 +12:00
G.Ambatte
678ac90cd0 Shift Recent Items to use Nav.dropdown 2023-06-29 23:58:52 +12:00
G.Ambatte
3cb5e8ed42 Initial functionality pass 2023-06-29 21:59:42 +12:00
G.Ambatte
a41553637a Add trim to brew description 2023-06-29 16:43:30 +12:00
G.Ambatte
636f2f9372 Add title trim before new saves and updates 2023-06-29 16:35:26 +12:00
G.Ambatte
4ded080a58 Trim titles before alphabetical ListPage sorting 2023-06-29 16:30:06 +12:00
G.Ambatte
a5885c8f4f Merge branch 'master' into trimBrewTitlesOnUserPage-#2775 2023-06-29 13:26:48 +12:00
G.Ambatte
273f0ca05d Merge branch 'master' into addStyleSanitization-#1437 2023-06-29 13:26:21 +12:00
G.Ambatte
3c929870cb Merge branch 'master' into addSmartPageBreak-#2289 2023-06-29 13:25:11 +12:00
G.Ambatte
4cb2a9ef76 Merge branch 'master' into addEditorThemes-#362 2023-06-29 13:24:56 +12:00
Trevor Buckner
36df5a3212 Merge pull request #2899 from naturalcrit/v3.9.1
Up version to v3.9.1
2023-06-28 16:13:14 -04:00
Trevor Buckner
cea5f2e43a Up version to v3.9.1 2023-06-28 16:13:01 -04:00
Trevor Buckner
046845885d Merge pull request #2892 from G-Ambatte/experimentalErrorPage
Basic ErrorPage functionality
2023-06-28 16:05:23 -04:00
G.Ambatte
9713cc4be9 Merge branch 'master' into experimentalErrorPage 2023-06-27 15:35:28 +12:00
Trevor Buckner
8baf0fc849 Add additional test for when logged in, but not in author list 2023-06-26 23:26:59 -04:00
Sean Robertson
a7040e554a Fix test 2023-06-27 15:19:33 +12:00
Trevor Buckner
ba43055f32 another text tweak 2023-06-26 23:14:08 -04:00
Trevor Buckner
d0de7ca28c Rephrasing of error texts 2023-06-26 22:48:58 -04:00
Trevor Buckner
c0164dce6a Fix for username undefined (not logged in) 2023-06-26 17:02:28 -04:00
Trevor Buckner
9e2b8477a8 Merge pull request #2898 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.14.0
Bump react-router-dom from 6.13.0 to 6.14.0
2023-06-26 16:44:09 -04:00
Trevor Buckner
5a32ae5cd4 Merge pull request #2897 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.9.0
Bump stylelint from 15.8.0 to 15.9.0
2023-06-26 16:44:00 -04:00
G.Ambatte
e88e7f852c Add account check to Google File not found error 2023-06-26 20:40:11 +12:00
G.Ambatte
a3b2c6987f Fix test 2023-06-26 18:08:52 +12:00
G.Ambatte
3d47b5a0bc Fix test 2023-06-26 18:06:37 +12:00
G.Ambatte
c5f4793c23 Add owner info to missing Google file message 2023-06-26 17:43:19 +12:00
dependabot[bot]
10e14bfcfd Bump react-router-dom from 6.13.0 to 6.14.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.13.0 to 6.14.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@6.14.0/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.14.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 03:57:17 +00:00
dependabot[bot]
f3c36ffb0a Bump stylelint from 15.8.0 to 15.9.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.8.0 to 15.9.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.8.0...15.9.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 03:56:53 +00:00
G.Ambatte
cff4f8eae5 Catch duplicate delete requests 2023-06-25 21:26:02 +12:00
G.Ambatte
4799e8b443 Fix test 2023-06-25 21:10:28 +12:00
G.Ambatte
fa38d5c892 Additional info in errors 2023-06-25 20:39:36 +12:00
G.Ambatte
04eb7d0556 Add brew title to Not an Author page 2023-06-25 20:13:13 +12:00
G.Ambatte
f175323221 Use common error object to reduce DRY 2023-06-25 18:22:22 +12:00
G.Ambatte
9f4de3c66e Fix test 2023-06-25 18:16:57 +12:00
G.Ambatte
800bff611a Fix test 2023-06-25 18:14:12 +12:00
G.Ambatte
e28b6e7a19 Differentiate Not an Author from Not logged in 2023-06-25 18:10:31 +12:00
G.Ambatte
4c6de90d82 Fix test 2023-06-25 17:13:37 +12:00
G.Ambatte
e5ef0aedd3 Pass all error properties to message generator 2023-06-25 17:10:25 +12:00
G.Ambatte
da8e7ec610 Change Not an Author to 401 2023-06-25 16:51:17 +12:00
G.Ambatte
d1412abe03 Increase specificity of ErrorPage.less 2023-06-25 16:48:50 +12:00
G.Ambatte
9de4a82977 Remove unneeded HR 2023-06-25 15:24:10 +12:00
G.Ambatte
9ddae7bbea Update UIPage.less to increase specificity 2023-06-25 15:23:58 +12:00
G.Ambatte
4fdc6b79ea Use Less var to not break server build process 2023-06-25 15:11:12 +12:00
G.Ambatte
0001cf16d9 Change UIPage width calculation 2023-06-25 15:00:10 +12:00
G.Ambatte
438cb7f26d Fix test 2023-06-25 14:41:15 +12:00
G.Ambatte
ffa240f78d Fix test 2023-06-25 14:39:42 +12:00
G.Ambatte
782aa8e658 Increase ESLint max lines in app.js 2023-06-25 14:23:14 +12:00
G.Ambatte
7efe8964f1 Change throw method, update HBErrors 2023-06-25 14:21:35 +12:00
G.Ambatte
853515e09e Switch Error gen from spread operator to func 2023-06-25 12:56:22 +12:00
Trevor Buckner
f6c5354ce0 Add support for custom HBErrorCodes 2023-06-24 02:57:03 -04:00
Trevor Buckner
6353341738 styleLint 2023-06-24 01:50:57 -04:00
Trevor Buckner
66b9a792e7 Change Missing Google error text 2023-06-24 01:47:07 -04:00
Trevor Buckner
2775614eab Add styling to errorPage 2023-06-24 01:46:44 -04:00
Trevor Buckner
32229c6e6e Change json file to js so we can use multiline strings 2023-06-24 00:40:10 -04:00
Trevor Buckner
37c88b83f1 Don't redirect/use cookies. Just render page. 2023-06-23 17:24:31 -04:00
Trevor Buckner
2fa1b2bb8b Break out page rendering into function 2023-06-23 16:29:17 -04:00
G.Ambatte
949d763e35 Detect heading from Markdown Lexer tokens 2023-06-23 17:58:54 +12:00
G.Ambatte
661872f332 Merge branch 'master' into addEditorThemes-#362 2023-06-23 09:44:18 +12:00
G.Ambatte
46cb2e6b5b Merge branch 'master' into addStyleSanitization-#1437 2023-06-23 09:44:05 +12:00
G.Ambatte
e7224e97ef Merge branch 'master' into addSmartPageBreak-#2289 2023-06-23 09:43:24 +12:00
G.Ambatte
e07d53aa5f Merge branch 'master' into experimentalErrorPage 2023-06-23 09:42:04 +12:00
Víctor Losada Hernández
dbb4476eb4 newline necessary 2023-06-22 23:32:26 +02:00
Víctor Losada Hernández
65f55dfc12 duplicated .page 2023-06-22 23:29:01 +02:00
Víctor Losada Hernández
95322595bf Merge branch 'master' of https://github.com/naturalcrit/homebrewery into FAQ-update 2023-06-22 23:18:44 +02:00
Trevor Buckner
1e004977be Merge pull request #2895 from naturalcrit/dependabot/npm_and_yarn/npm-9.7.2
Bump npm from 9.7.1 to 9.7.2
2023-06-22 15:29:24 -04:00
Trevor Buckner
9110e7cf7e Merge pull request #2894 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.3.1
Bump mongoose from 7.3.0 to 7.3.1
2023-06-22 15:29:17 -04:00
dependabot[bot]
27e8b54528 Bump npm from 9.7.1 to 9.7.2
Bumps [npm](https://github.com/npm/cli) from 9.7.1 to 9.7.2.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.7.1...v9.7.2)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 19:11:53 +00:00
dependabot[bot]
aa31919563 Bump mongoose from 7.3.0 to 7.3.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.3.0 to 7.3.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.3.0...7.3.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 19:11:27 +00:00
Trevor Buckner
7bf3295fc2 Merge pull request #2893 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-jest-27.2.2
Bump eslint-plugin-jest from 27.2.1 to 27.2.2
2023-06-22 15:10:31 -04:00
dependabot[bot]
9fd3f47689 Bump eslint-plugin-jest from 27.2.1 to 27.2.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 27.2.1 to 27.2.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.2.1...v27.2.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 18:33:26 +00:00
Trevor Buckner
0ca7e43d73 Merge pull request #2896 from naturalcrit/extractMarkedSmartypantsIntoPackage
extract smartypants into package
2023-06-22 14:32:01 -04:00
Trevor Buckner
b33b3cd49b extract smartypants into package 2023-06-22 14:31:14 -04:00
G.Ambatte
71c384ee0b Fix tests 2023-06-20 16:45:36 +12:00
G.Ambatte
546b8d5725 Merge branch 'experimentalErrorPage' of https://github.com/G-Ambatte/homebrewery into experimentalErrorPage 2023-06-20 13:45:04 +12:00
G.Ambatte
4d6ac2b142 Update ErrorPage to use basePage/UIPage 2023-06-20 13:45:01 +12:00
G.Ambatte
ce538ebbfd Add errorIndex.json 2023-06-20 13:44:41 +12:00
G.Ambatte
cf17e73dfa Merge branch 'master' into experimentalErrorPage 2023-06-20 11:20:02 +12:00
Trevor Buckner
69ef4d7653 Merge pull request #2888 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.13.0
Bump react-router-dom from 6.12.1 to 6.13.0
2023-06-19 11:03:13 -04:00
Trevor Buckner
c98224f3e4 Merge pull request #2887 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.3.0
Bump mongoose from 7.2.3 to 7.3.0
2023-06-19 11:03:03 -04:00
Trevor Buckner
4f870de68f Merge pull request #2891 from naturalcrit/dependabot/npm_and_yarn/eslint-8.43.0
Bump eslint from 8.42.0 to 8.43.0
2023-06-19 11:02:54 -04:00
Trevor Buckner
2cfee2e8ad Merge pull request #2890 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.8.0
Bump stylelint from 15.7.0 to 15.8.0
2023-06-19 11:02:46 -04:00
G.Ambatte
9e1d53a30c Basic ErrorPage functionality 2023-06-19 21:06:38 +12:00
dependabot[bot]
1fe9f0c8d0 Bump eslint from 8.42.0 to 8.43.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.42.0 to 8.43.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.42.0...v8.43.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 03:57:15 +00:00
dependabot[bot]
adc7233cab Bump stylelint from 15.7.0 to 15.8.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.7.0 to 15.8.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.7.0...15.8.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 03:56:34 +00:00
G.Ambatte
1b2fc746d3 Remove script check from basic Markdown tests 2023-06-17 22:45:09 +12:00
G.Ambatte
b472fc1115 Move script tag sanitization to BrewRenderer 2023-06-17 20:25:15 +12:00
G.Ambatte
a7a47afaae Merge branch 'master' into addStyleSanitization-#1437 2023-06-17 20:09:45 +12:00
G.Ambatte
8c0ca988ae Trim brew.title on UserPage 2023-06-17 19:50:05 +12:00
dependabot[bot]
509c7d8832 Bump react-router-dom from 6.12.1 to 6.13.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.12.1 to 6.13.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.13.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-15 03:57:17 +00:00
dependabot[bot]
caff1d8e2b Bump mongoose from 7.2.3 to 7.3.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.2.3 to 7.3.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.2.3...7.3.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-15 03:57:03 +00:00
G.Ambatte
e06f5e17d9 Relocate from 5ePHB to Blank theme 2023-06-15 13:42:10 +12:00
G.Ambatte
ade61971d0 Remove snippet.params 2023-06-15 11:50:38 +12:00
G.Ambatte
e1a22ed76c Merge branch 'master' into addEditorThemes-#362 2023-06-14 08:39:18 +12:00
Trevor Buckner
6451d79d92 Merge branch 'master' into pr/2417 2023-06-12 22:26:10 -04:00
Trevor Buckner
9202f9c8eb Merge pull request #2881 from naturalcrit/dependabot/npm_and_yarn/marked-5.1.0
Bump marked from 5.0.5 to 5.1.0
2023-06-12 16:42:18 -04:00
Trevor Buckner
097cc220f8 Merge pull request #2882 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.2.3
Bump mongoose from 7.2.2 to 7.2.3
2023-06-12 16:42:07 -04:00
G.Ambatte
7e660aad45 Add styling for columnSplite and pageLine 2023-06-12 20:49:15 +12:00
G.Ambatte
c8df449aac Style custom blocks in editor on dark themes 2023-06-12 19:52:13 +12:00
dependabot[bot]
2e3c10c35b Bump mongoose from 7.2.2 to 7.2.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.2.2 to 7.2.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.2.2...7.2.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 03:57:24 +00:00
dependabot[bot]
a5aeb7dccd Bump marked from 5.0.5 to 5.1.0
Bumps [marked](https://github.com/markedjs/marked) from 5.0.5 to 5.1.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v5.0.5...v5.1.0)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 03:56:39 +00:00
G.Ambatte
7681be2e9c Merge branch 'master' into addEditorThemes-#362 2023-06-10 14:25:23 +12:00
Trevor Buckner
92ff776270 Merge pull request #2877 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.5
Bump @babel/plugin-transform-runtime from 7.22.4 to 7.22.5
2023-06-09 11:11:20 -04:00
dependabot[bot]
bf1fb97789 Bump @babel/plugin-transform-runtime from 7.22.4 to 7.22.5
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.4 to 7.22.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.5/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 15:10:52 +00:00
Trevor Buckner
2cddc2debe Merge pull request #2876 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.5
Bump @babel/preset-env from 7.22.4 to 7.22.5
2023-06-09 11:09:42 -04:00
dependabot[bot]
0d4a1a11c1 Bump @babel/preset-env from 7.22.4 to 7.22.5
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.4 to 7.22.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.5/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 15:04:42 +00:00
Trevor Buckner
aa3cf1d9c1 Merge pull request #2875 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.5
Bump @babel/core from 7.22.1 to 7.22.5
2023-06-09 11:02:39 -04:00
Trevor Buckner
5d0062f610 Merge pull request #2874 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.12.1
Bump react-router-dom from 6.11.2 to 6.12.1
2023-06-09 11:02:28 -04:00
Trevor Buckner
7976917bb9 Merge pull request #2873 from naturalcrit/dependabot/npm_and_yarn/babel/preset-react-7.22.5
Bump @babel/preset-react from 7.22.3 to 7.22.5
2023-06-09 11:02:16 -04:00
Trevor Buckner
023071c874 Merge pull request #2869 from naturalcrit/dependabot/npm_and_yarn/stylelint-config-recess-order-4.2.0
Bump stylelint-config-recess-order from 4.0.0 to 4.2.0
2023-06-09 11:01:03 -04:00
dependabot[bot]
7da42d3742 Bump stylelint-config-recess-order from 4.0.0 to 4.2.0
Bumps [stylelint-config-recess-order](https://github.com/stormwarning/stylelint-config-recess-order) from 4.0.0 to 4.2.0.
- [Release notes](https://github.com/stormwarning/stylelint-config-recess-order/releases)
- [Changelog](https://github.com/stormwarning/stylelint-config-recess-order/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stormwarning/stylelint-config-recess-order/compare/v4.0.0...v4.2.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recess-order
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 15:00:36 +00:00
Trevor Buckner
3269e94757 Merge pull request #2872 from naturalcrit/dependabot/npm_and_yarn/npm-9.7.1
Bump npm from 9.6.7 to 9.7.1
2023-06-09 10:59:26 -04:00
Trevor Buckner
c69f4289ed Merge pull request #2867 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.7.0
Bump stylelint from 15.6.3 to 15.7.0
2023-06-09 10:59:13 -04:00
Trevor Buckner
8752a32626 Merge pull request #2863 from naturalcrit/dependabot/npm_and_yarn/marked-gfm-heading-id-3.0.4
Bump marked-gfm-heading-id from 3.0.3 to 3.0.4
2023-06-09 10:58:54 -04:00
Trevor Buckner
8735d1f222 Merge pull request #2862 from naturalcrit/dependabot/npm_and_yarn/eslint-8.42.0
Bump eslint from 8.41.0 to 8.42.0
2023-06-09 10:58:42 -04:00
Trevor Buckner
21929e676d Merge pull request #2871 from naturalcrit/dependabot/npm_and_yarn/marked-5.0.5
Bump marked from 5.0.4 to 5.0.5
2023-06-09 10:58:30 -04:00
dependabot[bot]
5ca61935a8 Bump @babel/core from 7.22.1 to 7.22.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.1 to 7.22.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 03:57:54 +00:00
dependabot[bot]
10143cec93 Bump react-router-dom from 6.11.2 to 6.12.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.11.2 to 6.12.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.12.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 03:57:22 +00:00
dependabot[bot]
643c8503c0 Bump @babel/preset-react from 7.22.3 to 7.22.5
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.22.3 to 7.22.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.5/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 03:57:04 +00:00
dependabot[bot]
e92d3ecd68 Bump npm from 9.6.7 to 9.7.1
Bumps [npm](https://github.com/npm/cli) from 9.6.7 to 9.7.1.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.6.7...v9.7.1)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-08 03:57:47 +00:00
dependabot[bot]
4f092828ac Bump marked from 5.0.4 to 5.0.5
Bumps [marked](https://github.com/markedjs/marked) from 5.0.4 to 5.0.5.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v5.0.4...v5.0.5)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-08 03:57:08 +00:00
dependabot[bot]
2d4c211483 Bump stylelint from 15.6.3 to 15.7.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.6.3 to 15.7.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.6.3...15.7.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-06 03:56:50 +00:00
Trevor Buckner
7d30abc4d9 Merge pull request #2865 from G-Ambatte/bumpNodeInDocker-#2861
[Docker] - Bump Node from 16.13 to 18
2023-06-05 07:47:29 -04:00
G.Ambatte
1d513f7a0e Bump Node from 16.13 to 18 2023-06-05 20:33:46 +12:00
Trevor Buckner
44922f5261 Merge pull request #2860 from G-Ambatte/fixTestFailure-#2859
Fix test failure
2023-06-05 00:17:05 -04:00
dependabot[bot]
f695cc6948 Bump marked-gfm-heading-id from 3.0.3 to 3.0.4
Bumps [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: marked-gfm-heading-id
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 04:13:33 +00:00
dependabot[bot]
3722387f1f Bump eslint from 8.41.0 to 8.42.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.41.0 to 8.42.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.41.0...v8.42.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 04:13:30 +00:00
Trevor Buckner
8950cb944f Merge pull request #2864 from naturalcrit/dependabot/npm_and_yarn/stylelint-15.6.3
Bump stylelint from 15.6.2 to 15.6.3
2023-06-05 00:12:10 -04:00
dependabot[bot]
66fb70a5f8 Bump stylelint from 15.6.2 to 15.6.3
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.6.2 to 15.6.3.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.6.2...15.6.3)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 03:57:36 +00:00
G.Ambatte
69c242425b Update test output 2023-06-03 14:20:45 +12:00
G.Ambatte
9093f610bd Add params from snippet to function 2023-06-03 14:09:50 +12:00
G.Ambatte
d2b2e69123 Shift Footer generation to snippet 2023-06-03 13:30:32 +12:00
G.Ambatte
052c255068 Lint fixes 2023-06-03 13:23:39 +12:00
G.Ambatte
e6ad8aefde Lint fix 2023-06-03 12:18:22 +12:00
G.Ambatte
43ae80e80d Merge branch 'master' into addSmartPageBreak-#2289 2023-06-03 12:16:18 +12:00
Trevor Buckner
e6e04ad21d Fix changelog.md typos 2023-06-02 17:48:01 -04:00
Trevor Buckner
7be6b913b0 Merge pull request #2858 from naturalcrit/v3.9.0
Up version to v3.9.0
2023-06-02 17:14:05 -04:00
Trevor Buckner
94b7c89252 Up version to v3.9.0 2023-06-02 17:13:45 -04:00
Trevor Buckner
c2e8967ed9 Merge pull request #2857 from naturalcrit/FixSlowSmartypants
Replace SmartyPants plugin with custom
2023-06-02 17:03:30 -04:00
Trevor Buckner
942fdb8095 Replace SmartyPants plugin with custom 2023-06-02 17:02:45 -04:00
Trevor Buckner
95873ac158 Update coverpage.gen.js 2023-06-02 15:01:03 -04:00
Trevor Buckner
3b4b0583cf Merge pull request #2856 from naturalcrit/dependabot/npm_and_yarn/marked-5.0.4
Bump marked from 4.3.0 to 5.0.4
2023-05-31 11:51:45 -04:00
Trevor Buckner
2c9e3d2f2f Update package-lock.json 2023-05-31 11:51:07 -04:00
Trevor Buckner
5fca0a77d3 Merge branch 'dependabot/npm_and_yarn/marked-5.0.4' of https://github.com/naturalcrit/homebrewery into dependabot/npm_and_yarn/marked-5.0.4 2023-05-31 11:50:43 -04:00
Trevor Buckner
2c73e59eb0 Remove deprecated options 2023-05-31 11:14:57 -04:00
Trevor Buckner
f5db5c7bf2 Merge pull request #2755 from 5e-Cleric/Index-snippet
Index Snippet - PHB
2023-05-31 09:33:21 -04:00
Trevor Buckner
37abc38426 Move snippet to "Text Editor" group 2023-05-31 09:33:01 -04:00
dependabot[bot]
855fabb89e Bump marked from 4.3.0 to 5.0.4
Bumps [marked](https://github.com/markedjs/marked) from 4.3.0 to 5.0.4.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v4.3.0...v5.0.4)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-31 13:26:37 +00:00
Trevor Buckner
bc35490ba2 Merge pull request #2855 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.2.2
Bump mongoose from 7.2.1 to 7.2.2
2023-05-31 09:25:20 -04:00
Trevor Buckner
8b5404606e Merge pull request #2854 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.4
Bump @babel/preset-env from 7.22.2 to 7.22.4
2023-05-31 09:25:11 -04:00
dependabot[bot]
c5d3605c11 Bump @babel/preset-env from 7.22.2 to 7.22.4
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.22.2 to 7.22.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-31 13:21:19 +00:00
Trevor Buckner
43ab292391 Merge pull request #2853 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.4
Bump @babel/plugin-transform-runtime from 7.22.2 to 7.22.4
2023-05-31 09:20:27 -04:00
dependabot[bot]
3ed9702ef2 Bump marked from 4.3.0 to 5.0.4
Bumps [marked](https://github.com/markedjs/marked) from 4.3.0 to 5.0.4.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v4.3.0...v5.0.4)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-31 03:57:03 +00:00
dependabot[bot]
755b43179b Bump mongoose from 7.2.1 to 7.2.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.2.1 to 7.2.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.2.1...7.2.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-31 03:56:45 +00:00
Trevor Buckner
66b827ee2f linting 2023-05-30 17:20:17 -04:00
Trevor Buckner
483a1c44ef Merge branch 'master' into pr/2755 2023-05-30 17:18:03 -04:00
Trevor Buckner
47680f07df Change to nested lists, shrink font to match PHB 2023-05-30 17:17:17 -04:00
dependabot[bot]
9e43986d24 Bump @babel/plugin-transform-runtime from 7.22.2 to 7.22.4
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.22.2 to 7.22.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.4/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-30 03:56:54 +00:00
Trevor Buckner
7a198fe8b8 Merge pull request #2850 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.22.2
Bump @babel/plugin-transform-runtime from 7.21.4 to 7.22.2
2023-05-29 00:17:31 -04:00
dependabot[bot]
e3e5cb1dff Bump @babel/plugin-transform-runtime from 7.21.4 to 7.22.2
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.21.4 to 7.22.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.2/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 04:16:23 +00:00
Trevor Buckner
f44ea92d4f Merge pull request #2851 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.22.1
Bump @babel/core from 7.21.8 to 7.22.1
2023-05-29 00:15:32 -04:00
Trevor Buckner
5781b9d177 Merge pull request #2849 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.22.2
Bump @babel/preset-env from 7.21.5 to 7.22.2
2023-05-29 00:15:13 -04:00
dependabot[bot]
817539dfda Bump @babel/preset-env from 7.21.5 to 7.22.2
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.21.5 to 7.22.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.2/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 04:13:21 +00:00
dependabot[bot]
4e083aece8 Bump @babel/core from 7.21.8 to 7.22.1
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.21.8 to 7.22.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.1/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 04:13:19 +00:00
Trevor Buckner
27a12dfa79 Merge pull request #2852 from naturalcrit/dependabot/npm_and_yarn/babel/preset-react-7.22.3
Bump @babel/preset-react from 7.18.6 to 7.22.3
2023-05-29 00:07:31 -04:00
dependabot[bot]
3b5ebf8f60 Bump @babel/preset-react from 7.18.6 to 7.22.3
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.18.6 to 7.22.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.3/packages/babel-preset-react)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 03:58:54 +00:00
Trevor Buckner
daea4419ff Merge pull request #2847 from naturalcrit/FixStylelint
Fix stylelint
2023-05-27 21:34:28 -04:00
Trevor Buckner
3b76a12505 merge with master 2023-05-27 14:11:36 -04:00
Trevor Buckner
dda3ba8215 Merge branch 'master' into FixStylelint 2023-05-27 13:59:17 -04:00
Trevor Buckner
6ea05d8ec2 Tweak rule order, rename custom plugin 2023-05-27 13:58:39 -04:00
Trevor Buckner
71ec9034b7 Change snippet to nested list 2023-05-26 17:17:56 -04:00
Trevor Buckner
86dce0ae24 Merge pull request #2845 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.2.1
Bump mongoose from 7.2.0 to 7.2.1
2023-05-26 17:05:20 -04:00
Trevor Buckner
1ebdf318bf Add some "avoid errors" rules 2023-05-26 03:00:25 -04:00
Trevor Buckner
f05e0db14b Fix single-line detection rule. Linting. 2023-05-26 01:10:49 -04:00
dependabot[bot]
43fd6c451e Bump mongoose from 7.2.0 to 7.2.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.2.0 to 7.2.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.2.0...7.2.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-25 03:56:41 +00:00
Trevor Buckner
e621f2d19b Merge pull request #2839 from naturalcrit/ChangeTabToSpaces
Custom function to use spaces for indent
2023-05-22 22:40:52 -04:00
Trevor Buckner
ca34ca499d Remove duplicate tabs 2023-05-22 22:40:18 -04:00
Trevor Buckner
0715e365f1 Merge pull request #2843 from Gazook89/StringArrayEditor-Unique-ID-Fix
Fix StringArrayEditor unique `key` error
2023-05-22 22:38:48 -04:00
Trevor Buckner
55d265069c Merge pull request #2844 from naturalcrit/FixNodemonWatchfileForBuildScript
Fix redundant build/ properly watch .less
2023-05-22 22:20:35 -04:00
Trevor Buckner
52ee7d9dbf Fix redundant build/ properly watch .less 2023-05-22 22:17:32 -04:00
Gazook89
d0346650c4 add key to <p> in notes 2023-05-22 14:19:23 -05:00
Trevor Buckner
96b26d72fd Merge pull request #2842 from naturalcrit/dependabot/npm_and_yarn/eslint-8.41.0
Bump eslint from 8.40.0 to 8.41.0
2023-05-22 00:02:57 -04:00
Trevor Buckner
d51757b8b9 Merge pull request #2841 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.2.0
Bump mongoose from 7.1.2 to 7.2.0
2023-05-22 00:02:00 -04:00
dependabot[bot]
beccef2685 Bump eslint from 8.40.0 to 8.41.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.40.0 to 8.41.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.40.0...v8.41.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 03:57:58 +00:00
dependabot[bot]
06f74c6b64 Bump mongoose from 7.1.2 to 7.2.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.1.2 to 7.2.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.1.2...7.2.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 03:57:23 +00:00
Trevor Buckner
288b407e3e Turn off smartIndent 2023-05-20 01:32:07 -04:00
Trevor Buckner
57eea5c69f Custom function to use spaces for indent 2023-05-20 01:24:36 -04:00
Trevor Buckner
fbfb92735c Merge branch 'master' into pr/2755 2023-05-19 19:28:14 -04:00
Trevor Buckner
95376db055 Merge pull request #2838 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.1.2
Bump mongoose from 7.1.1 to 7.1.2
2023-05-19 00:21:20 -04:00
Trevor Buckner
01d3ec9d58 Merge pull request #2837 from naturalcrit/dependabot/npm_and_yarn/npm-9.6.7
Bump npm from 9.6.6 to 9.6.7
2023-05-19 00:20:43 -04:00
dependabot[bot]
a1eb09225a Bump mongoose from 7.1.1 to 7.1.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.1.1...7.1.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-19 03:57:46 +00:00
dependabot[bot]
5c2e2edbed Bump npm from 9.6.6 to 9.6.7
Bumps [npm](https://github.com/npm/cli) from 9.6.6 to 9.6.7.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.6.6...v9.6.7)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-19 03:57:09 +00:00
Trevor Buckner
4bb7d143aa Merge pull request #2835 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.11.2
Bump react-router-dom from 6.11.1 to 6.11.2
2023-05-18 00:07:42 -04:00
dependabot[bot]
f5cefc4db4 Bump react-router-dom from 6.11.1 to 6.11.2
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.11.1 to 6.11.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.11.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-18 03:56:49 +00:00
Trevor Buckner
efbde81853 typo 2023-05-17 21:36:29 -04:00
Trevor Buckner
69a18d365a Merge pull request #2828 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.1.1
Bump mongoose from 7.1.0 to 7.1.1
2023-05-17 20:02:41 -04:00
dependabot[bot]
34e73ee69b Bump mongoose from 7.1.0 to 7.1.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.1.0...7.1.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 23:35:01 +00:00
Trevor Buckner
ee1ee801a7 Merge pull request #2834 from naturalcrit/styleLint
Set up Stylelint and add custom plugins
2023-05-17 19:33:47 -04:00
Trevor Buckner
99d441d9ff command line options 2023-05-17 19:31:03 -04:00
Trevor Buckner
d2be324bb0 One more custom plugin 2023-05-17 19:30:50 -04:00
Trevor Buckner
6ceba54631 Fix merge conflict 2023-05-17 18:55:24 -04:00
Trevor Buckner
53e77718e1 Merge branch 'master' into styleLint 2023-05-17 18:54:14 -04:00
Trevor Buckner
0342dfed4c Merge pull request #2833 from naturalcrit/BumpToNode18
Bump node version to 18.16.x
2023-05-17 18:52:29 -04:00
Trevor Buckner
0864f4ced0 Bump node version to 18.16.x 2023-05-17 18:50:40 -04:00
Trevor Buckner
ebd729b78f Set up Stylelint and add custom plugins 2023-05-17 18:48:25 -04:00
Trevor Buckner
32454a3f12 Merge pull request #2711 from 5e-Cleric/back-cover-snippet
Back cover snippet
2023-05-13 23:03:37 -04:00
Trevor Buckner
9781c8e633 Add some randomness to the snippet 2023-05-13 23:01:53 -04:00
Trevor Buckner
8a2aacebeb Add white version of Naturalcrit logo 2023-05-13 22:45:00 -04:00
Trevor Buckner
5889c2f1e0 Tweak CSS sizes and spacing 2023-05-13 22:44:38 -04:00
Trevor Buckner
b135ce2ae9 compress and resize backgroundCover image 2023-05-13 22:36:32 -04:00
Trevor Buckner
8f2a114e1c Add wide version of NodestoCaps font 2023-05-13 22:30:06 -04:00
G.Ambatte
455b364160 Merge branch 'master' into addEditorThemes-#362 2023-05-10 08:40:51 +12:00
Trevor Buckner
11c8446c9c Merge pull request #2823 from naturalcrit/GoogleDriveQueryNextPage
Get next page if GDrive file listing is incomplete
2023-05-09 10:48:16 -04:00
Trevor Buckner
0e1b30eced Get next page if end of files not reached 2023-05-09 10:44:18 -04:00
G.Ambatte
56dbfc032c Merge branch 'master' into addEditorThemes-#362 2023-05-09 10:19:35 +12:00
Trevor Buckner
b8372ebdcc tweak snippet 2023-05-08 14:06:44 -04:00
Trevor Buckner
42fdb0ebb1 Fix build error 2023-05-08 14:06:28 -04:00
Trevor Buckner
b2ebf724f5 Merge pull request #2822 from naturalcrit/dependabot/npm_and_yarn/eslint-8.40.0
Bump eslint from 8.39.0 to 8.40.0
2023-05-08 13:50:55 -04:00
dependabot[bot]
a4bea1c3be Bump eslint from 8.39.0 to 8.40.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.39.0 to 8.40.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.39.0...v8.40.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-08 03:57:06 +00:00
Trevor Buckner
c800195e95 Merge pull request #2819 from naturalcrit/dependabot/npm_and_yarn/marked-extended-tables-1.0.6
Bump marked-extended-tables from 1.0.5 to 1.0.6
2023-05-05 07:09:04 -04:00
dependabot[bot]
26ec222a33 Bump marked-extended-tables from 1.0.5 to 1.0.6
Bumps [marked-extended-tables](https://github.com/calculuschild/marked-extended-tables) from 1.0.5 to 1.0.6.
- [Release notes](https://github.com/calculuschild/marked-extended-tables/releases)
- [Changelog](https://github.com/calculuschild/marked-extended-tables/blob/main/release.config.cjs)
- [Commits](https://github.com/calculuschild/marked-extended-tables/commits/v1.0.6)

---
updated-dependencies:
- dependency-name: marked-extended-tables
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-05 03:56:42 +00:00
Trevor Buckner
618e594acf Merge pull request #2817 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.11.1
Bump react-router-dom from 6.11.0 to 6.11.1
2023-05-04 14:38:41 -04:00
Trevor Buckner
dde500004d Merge pull request #2818 from naturalcrit/dependabot/npm_and_yarn/npm-9.6.6
Bump npm from 9.6.5 to 9.6.6
2023-05-04 13:46:55 -04:00
dependabot[bot]
1cf1750887 Bump npm from 9.6.5 to 9.6.6
Bumps [npm](https://github.com/npm/cli) from 9.6.5 to 9.6.6.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.6.5...v9.6.6)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 03:57:00 +00:00
dependabot[bot]
cbf281f211 Bump react-router-dom from 6.11.0 to 6.11.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.11.0 to 6.11.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.11.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 03:56:31 +00:00
Trevor Buckner
34c73c3d09 Merge pull request #2811 from 5e-Cleric/text-color-change
correct highlight of .cm-comment elements in editor
2023-05-03 12:48:28 -04:00
Trevor Buckner
9d61fc85a0 Merge pull request #2814 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-5.1.0
Bump @googleapis/drive from 5.0.2 to 5.1.0
2023-05-03 12:47:57 -04:00
Trevor Buckner
6825bb3bac Merge pull request #2815 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.21.8
Bump @babel/core from 7.21.5 to 7.21.8
2023-05-03 12:47:49 -04:00
dependabot[bot]
0cb96f6fe6 Bump @babel/core from 7.21.5 to 7.21.8
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.21.5 to 7.21.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-03 03:58:01 +00:00
dependabot[bot]
2b7e0c3fb8 Bump @googleapis/drive from 5.0.2 to 5.1.0
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/5.1.0/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/drive-v5.0.2...5.1.0)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-03 03:57:05 +00:00
Víctor Losada Hernández
38c20430a9 Merge branch 'master' of https://github.com/naturalcrit/homebrewery 2023-05-02 22:39:46 +02:00
Victor Losada Hernandez
2cce7aebfc correct highlight of curly elements 2023-05-02 21:25:00 +02:00
Trevor Buckner
b5508b7a24 Merge pull request #2810 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.21.5
Bump @babel/preset-env from 7.21.4 to 7.21.5
2023-05-01 11:15:47 -04:00
dependabot[bot]
273dfdce40 Bump @babel/preset-env from 7.21.4 to 7.21.5
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.21.4 to 7.21.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.5/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 03:58:10 +00:00
Trevor Buckner
1848dc8182 Merge pull request #2808 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.21.5
Bump @babel/core from 7.21.4 to 7.21.5
2023-04-30 23:58:02 -04:00
Trevor Buckner
6fd26a2d0b Merge pull request #2809 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.11.0
Bump react-router-dom from 6.10.0 to 6.11.0
2023-04-30 23:57:48 -04:00
dependabot[bot]
528efc8b98 Bump react-router-dom from 6.10.0 to 6.11.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.10.0 to 6.11.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.11.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 03:57:04 +00:00
dependabot[bot]
ef50b1966b Bump @babel/core from 7.21.4 to 7.21.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.21.4 to 7.21.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 03:56:47 +00:00
Victor Losada Hernandez
2397f41b52 image change 2023-04-28 23:17:02 +02:00
Victor Losada Hernandez
5554ad9c26 engaging text 2023-04-28 23:13:33 +02:00
Victor Losada Hernandez
f5a07cac44 merge cover gen files 2023-04-28 23:07:02 +02:00
Victor Losada Hernandez
51dfd9a38c merging headache 2023-04-28 22:59:45 +02:00
Victor Losada Hernandez
11da8b1dac Merge master into back cover 2023-04-28 22:57:13 +02:00
Trevor Buckner
22aed68200 Merge branch 'master' into pr/2711 2023-04-28 16:56:49 -04:00
Trevor Buckner
1da329fb78 Merge pull request #2654 from 5e-Cleric/part-cover-snippet
Part cover - PHB + DMG
2023-04-28 16:52:29 -04:00
Trevor Buckner
d455e8c270 Add icon 2023-04-28 16:52:03 -04:00
Trevor Buckner
e235c705ae Move snippet to common CoverPage.gen 2023-04-28 16:51:53 -04:00
Trevor Buckner
f771e24788 Simplify CSS 2023-04-28 16:51:29 -04:00
Trevor Buckner
55941f0318 Merge branch 'master' into pr/2654 2023-04-28 15:39:12 -04:00
Trevor Buckner
ea38540e3b Merge pull request #2799 from naturalcrit/dependabot/npm_and_yarn/eslint-8.39.0
Bump eslint from 8.38.0 to 8.39.0
2023-04-28 15:06:10 -04:00
Trevor Buckner
1500ed071f Merge pull request #2807 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.1.0
Bump mongoose from 7.0.4 to 7.1.0
2023-04-28 15:06:01 -04:00
Trevor Buckner
a568ab3b8a Merge pull request #2806 from G-Ambatte/fixFlyIn-#2790
Stop image movement in Image Masks
2023-04-28 15:05:51 -04:00
dependabot[bot]
3c8660442b Bump mongoose from 7.0.4 to 7.1.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.0.4 to 7.1.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.0.4...7.1.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-28 03:56:59 +00:00
Trevor Buckner
2525fa2a53 Merge pull request #2805 from G-Ambatte/experimentalDockerBuildChanges-#2801
Dockerfile - Change to npm
2023-04-27 13:38:54 -04:00
G.Ambatte
3f7aff587c Remove transition rules from style.less 2023-04-27 21:23:55 +12:00
G.Ambatte
00dd030ee2 Change to npm from yarn 2023-04-27 17:54:30 +12:00
dependabot[bot]
a8179cae7b Bump eslint from 8.38.0 to 8.39.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.38.0 to 8.39.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.38.0...v8.39.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-24 03:56:53 +00:00
Victor Losada Hernandez
86823b43b1 generated quotes, correct small caps 2023-04-23 15:53:35 +02:00
Victor Losada Hernandez
0abfb23ef2 first line difference phb vs dmg 2023-04-23 15:28:43 +02:00
Victor Losada Hernandez
da5d4236b6 initial styling 2023-04-23 15:21:48 +02:00
Victor Losada Hernandez
963236f961 tables within notes & drop caps 2023-04-23 15:11:29 +02:00
Victor Losada Hernandez
2d4a3ec910 landing page update 2023-04-22 15:30:22 +02:00
Trevor Buckner
0425e61be2 Merge pull request #2794 from naturalcrit/dependabot/npm_and_yarn/npm-9.6.5
Bump npm from 9.6.4 to 9.6.5
2023-04-21 09:41:27 -04:00
dependabot[bot]
a2ebb025a2 Bump npm from 9.6.4 to 9.6.5
Bumps [npm](https://github.com/npm/cli) from 9.6.4 to 9.6.5.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.6.4...v9.6.5)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-20 03:56:46 +00:00
Trevor Buckner
a43ea5abb9 Merge pull request #2792 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.0.4
Bump mongoose from 7.0.3 to 7.0.4
2023-04-19 11:14:52 -04:00
Trevor Buckner
1ceb1dccca Merge pull request #2754 from 5e-Cleric/image-monster-block
Image Inside Blocks
2023-04-19 11:14:43 -04:00
Trevor Buckner
d375cdf10b Move rule to the ".block" section 2023-04-19 11:14:29 -04:00
dependabot[bot]
24639f1c29 Bump mongoose from 7.0.3 to 7.0.4
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.0.3 to 7.0.4.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.0.3...7.0.4)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-18 03:57:16 +00:00
Trevor Buckner
62a9901676 Merge pull request #2788 from naturalcrit/TidyNavbarLess
Tidy NavBar Less
2023-04-17 16:18:14 -04:00
Trevor Buckner
c48dccb0d3 spaces to tabs 2023-04-17 16:16:47 -04:00
Victor Losada Hernandez
40afdf18d6 editor width bug q removed 2023-04-15 22:01:00 +02:00
Victor Losada Hernandez
13944d3a76 Log out question removed 2023-04-15 21:41:44 +02:00
Victor Losada Hernandez
65c738d3b2 css cleanup 2023-04-15 21:37:00 +02:00
G.Ambatte
3c168065ee Merge branch 'master' into addEditorThemes-#362 2023-04-16 07:13:39 +12:00
Victor Losada Hernandez
08ee142f6e Upstream master into back cover snippet 2023-04-13 23:08:30 +02:00
Trevor Buckner
891bf528cd Tidy NavBar Less 2023-04-12 17:35:18 -04:00
Trevor Buckner
45b7d7da88 Merge pull request #2785 from naturalcrit/v3.8.0
Update to v3.8.0
2023-04-12 16:13:58 -04:00
Trevor Buckner
f52321dd4b Update to v3.8.0 2023-04-12 16:12:02 -04:00
Trevor Buckner
3b55cd7d88 Downgrade react-frame-component back to 4.1.3 2023-04-12 11:48:19 -04:00
Trevor Buckner
f33b7b21bb Merge pull request #2733 from G-Ambatte/addMetadataToShare-#1679
Add Metadata Nav Item to SharePage
2023-04-11 22:09:10 -04:00
Trevor Buckner
ed6e64af8d Merge branch 'master' into pr/2733 2023-04-11 22:06:40 -04:00
Trevor Buckner
cadbb422a9 Merge pull request #2783 from naturalcrit/FixJestESLint
Fix missing eslint jest dependency
2023-04-11 22:05:55 -04:00
Trevor Buckner
b756a2f026 Fix missing eslint jest dependency 2023-04-11 22:05:32 -04:00
G.Ambatte
cf42520305 Merge branch 'master' into addEditorThemes-#362 2023-04-12 14:05:19 +12:00
Trevor Buckner
c8b8d40863 Adjust userpage z-index to fit nav bar tweaks. 2023-04-11 21:35:18 -04:00
Trevor Buckner
d369cad02c Tweak tag bubbles 2023-04-11 21:29:01 -04:00
Trevor Buckner
d92005a3c2 Merge branch 'addMetadataToShare-#1679' of https://github.com/G-Ambatte/homebrewery into pr/2733 2023-04-11 21:26:21 -04:00
Trevor Buckner
a2430c8744 Tweak size and centering strategy 2023-04-11 21:26:16 -04:00
G.Ambatte
8febaee2a9 Merge branch 'master' into addMetadataToShare-#1679 2023-04-11 08:06:28 +12:00
Trevor Buckner
29fd836965 Lift whole navbar z-index up instead of one section. 2023-04-10 11:31:11 -04:00
Trevor Buckner
ebf9cf9364 Undo change to eslintrc 2023-04-10 10:46:42 -04:00
Trevor Buckner
8b8388391c Shorten logic 2023-04-10 10:45:30 -04:00
Trevor Buckner
ba72f1ab22 Merge pull request #2620 from jeddai/content-negotiation-middleware
Fixes #2595: Add content negotiation middleware
2023-04-10 09:54:48 -04:00
Trevor Buckner
9bb1cac547 Merge pull request #2781 from naturalcrit/dependabot/npm_and_yarn/eslint-8.38.0
Bump eslint from 8.37.0 to 8.38.0
2023-04-10 09:25:54 -04:00
dependabot[bot]
5cf6c9b8bd Bump eslint from 8.37.0 to 8.38.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.37.0 to 8.38.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.37.0...v8.38.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 03:14:34 +00:00
G.Ambatte
4ddee3c2f1 Remove z-index to fix UserPage bug 2023-04-10 10:17:15 +12:00
G.Ambatte
0aac08f276 Move from let to const 2023-04-10 10:16:28 +12:00
G.Ambatte
9690c6dac3 Center metadata window 2023-04-10 09:35:56 +12:00
Victor Losada Hernandez
78ca5f5107 undo isolation, raising image z-index 2023-04-09 15:32:03 +02:00
G.Ambatte
eb7d558c8d Change author names to UserPage links 2023-04-09 23:24:54 +12:00
G.Ambatte
0e226ca8db Add min and max widths 2023-04-09 22:26:15 +12:00
G.Ambatte
14ac098882 Fix no systems/tags/authors mesasges 2023-04-09 21:40:41 +12:00
G.Ambatte
d5dbf46fc4 Fix "No tags" message 2023-04-09 21:33:57 +12:00
G.Ambatte
bc83e1f84d Tweak animation, add alternating bg colors 2023-04-09 21:33:33 +12:00
G.Ambatte
b8e68f9a93 Add animations 2023-04-09 21:01:28 +12:00
G.Ambatte
ebc90c998a Position window correctly when nav bar is thick 2023-04-09 20:31:12 +12:00
G.Ambatte
aa0cc1ebf6 Move Metadata window to title 2023-04-09 13:33:53 +12:00
G.Ambatte
c5bd41acbf Adjust tag styling 2023-04-09 11:00:41 +12:00
G.Ambatte
22b6b6a473 Comment out valid-expect linter rule 2023-04-09 11:00:07 +12:00
G.Ambatte
89ba709789 Merge branch 'master' into addMetadataToShare-#1679 2023-04-08 17:14:39 +12:00
Trevor Buckner
0720677824 Merge branch 'master' into pr/2620 2023-04-07 15:15:08 -04:00
Trevor Buckner
fab4bfae27 Merge pull request #2774 from Gazook89/mustache-syntax-unit-tests
Mustache syntax unit tests
2023-04-07 14:10:53 -04:00
Trevor Buckner
f880c961bd Revert "Update package-lock.json"
This reverts commit ec7c083f90.
2023-04-07 13:29:46 -04:00
Trevor Buckner
ec7c083f90 Update package-lock.json 2023-04-07 13:28:58 -04:00
Trevor Buckner
99984e207f Merge branch 'master' into pr/2774 2023-04-07 13:15:41 -04:00
Trevor Buckner
b5bd28ddd1 Merge pull request #2778 from naturalcrit/dependabot/npm_and_yarn/npm-9.6.4
Bump npm from 9.6.3 to 9.6.4
2023-04-07 11:32:54 -04:00
dependabot[bot]
e9bd80aa0d Bump npm from 9.6.3 to 9.6.4
Bumps [npm](https://github.com/npm/cli) from 9.6.3 to 9.6.4.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.6.3...v9.6.4)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-06 04:06:58 +00:00
Trevor Buckner
89f0c7e127 Small refactor to fix error popup that lost its styling 2023-04-04 23:46:11 -04:00
Trevor Buckner
70295fb227 Revert "Small refactor to fix broken error popup"
This reverts commit 2cb6acc090.
2023-04-04 23:44:23 -04:00
Trevor Buckner
2cb6acc090 Small refactor to fix broken error popup 2023-04-04 23:41:44 -04:00
Gazook89
83fac6a10f Mark failing tests with comments. 2023-04-04 21:13:41 -05:00
G.Ambatte
d5ac237d40 Merge branch 'master' into addEditorThemes-#362 2023-04-05 12:24:56 +12:00
Trevor Buckner
121da67b7a Merge pull request #2776 from naturalcrit/FixTests
Change tests from .remove() to deleteOne()
2023-04-04 18:00:47 -04:00
Trevor Buckner
eaf7b9c4ef Change tests from .remove() to deleteOne() 2023-04-04 17:47:25 -04:00
Gazook89
9e9bf8c6fa Add injection tests 2023-04-04 16:32:59 -05:00
Gazook89
4cfe26b4a9 Add Block tests, structure with Describe() 2023-04-04 16:15:10 -05:00
Gazook89
0e35b99289 remove quotes from rule option object 2023-04-04 16:14:34 -05:00
Gazook89
b32c724c89 remove stack traces from test output 2023-04-04 15:51:29 -05:00
Gazook89
e5377c1939 add and setup jest-expect-message library 2023-04-04 15:01:23 -05:00
G.Ambatte
c666d6acb9 Merge branch 'master' into addEditorThemes-#362 2023-04-05 07:45:03 +12:00
Trevor Buckner
a5e84694c1 Merge pull request #2752 from Gazook89/Injection-Blocks-Take-3
Prevent Injection if preceded by another Injection token
2023-04-04 12:19:13 -04:00
Trevor Buckner
48227eaf71 Remove Console.log and lint 2023-04-04 12:18:57 -04:00
Trevor Buckner
f06d30e4a6 Merge pull request #2770 from G-Ambatte/fixMongooseRemove-#2769
Change Model.remove to Model.deleteOne
2023-04-04 11:51:09 -04:00
Gazook89
333525d9ab Update CI config and package.json scripts 2023-04-03 21:23:39 -05:00
Gazook89
69c283f00f Set Inline unit tests grouped inside a describe 2023-04-03 21:00:59 -05:00
Gazook89
9f17f36a87 add trimReturns() method to strings to trim render output 2023-04-03 20:53:07 -05:00
Gazook89
b948106500 add dedent for Block tests 2023-04-03 20:51:05 -05:00
Gazook89
7000b911e7 change mustache test file name. 2023-04-03 20:46:21 -05:00
G.Ambatte
2869726efd Merge branch 'master' into addEditorThemes-#362 2023-04-04 13:00:04 +12:00
Gazook89
7353e6c7ac Add unit tests for double injection into block and inline 2023-04-03 16:57:29 -05:00
Trevor Buckner
773a9b5c82 Merge pull request #2765 from naturalcrit/dependabot/npm_and_yarn/npm-9.6.3
Bump npm from 9.6.2 to 9.6.3
2023-04-03 11:47:53 -04:00
Trevor Buckner
e2b0b9e5d2 Merge pull request #2773 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.21.4
Bump @babel/plugin-transform-runtime from 7.21.0 to 7.21.4
2023-04-03 11:47:41 -04:00
dependabot[bot]
1c7540edcd Bump npm from 9.6.2 to 9.6.3
Bumps [npm](https://github.com/npm/cli) from 9.6.2 to 9.6.3.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v9.6.2...v9.6.3)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 15:47:29 +00:00
dependabot[bot]
4dc14101bc Bump @babel/plugin-transform-runtime from 7.21.0 to 7.21.4
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.21.0 to 7.21.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.4/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 15:47:17 +00:00
Trevor Buckner
6016a60a3a Merge pull request #2772 from naturalcrit/dependabot/npm_and_yarn/babel/preset-env-7.21.4
Bump @babel/preset-env from 7.20.2 to 7.21.4
2023-04-03 11:46:12 -04:00
Trevor Buckner
ab51a93fb2 Merge pull request #2771 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.21.4
Bump @babel/core from 7.21.3 to 7.21.4
2023-04-03 11:45:59 -04:00
dependabot[bot]
097d9aaacd Bump @babel/preset-env from 7.20.2 to 7.21.4
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.20.2 to 7.21.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 03:57:06 +00:00
dependabot[bot]
d74acd2bdc Bump @babel/core from 7.21.3 to 7.21.4
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.21.3 to 7.21.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.4/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 03:56:49 +00:00
G.Ambatte
dce880610d Change Model.remove to Model.deleteOne 2023-04-02 20:57:03 +12:00
G.Ambatte
ae9a29c28c Merge branch 'master' into addEditorThemes-#362 2023-04-02 17:59:36 +12:00
G.Ambatte
c660f87dff Load from & save to local storage 2023-04-02 17:57:11 +12:00
G.Ambatte
a86c728710 Remove obsolete styling 2023-04-02 16:53:41 +12:00
G.Ambatte
b28e183f95 Remove obsolete dev function 2023-04-02 16:53:30 +12:00
G.Ambatte
dc55880544 Initial theme selector functionality 2023-04-02 16:42:45 +12:00
G.Ambatte
5e9b451e29 Pass current editor theme to SnippetBar as prop 2023-04-02 16:17:50 +12:00
G.Ambatte
977cbeed43 Load available CM themes to global config 2023-04-02 15:17:44 +12:00
G.Ambatte
da6fcb297a Compile list of available themes during build 2023-04-02 15:17:30 +12:00
G.Ambatte
b2546d908a Shift CSS link to CodeEditor render 2023-04-02 13:19:43 +12:00
G.Ambatte
7dd1368c09 Add editorTheme to editor.jsx and downstream 2023-04-02 12:53:26 +12:00
G.Ambatte
51f657d2c5 Add CM Themes to build folder 2023-04-02 12:22:06 +12:00
G.Ambatte
8958238342 Merge branch 'master' into addMetadataToShare-#1679 2023-03-31 15:55:54 +13:00
Trevor Buckner
d1dd5e34bd Merge pull request #2661 from 5e-Cleric/char-fix
U+00D1 and U+00F1 fix
2023-03-30 22:19:44 -04:00
Trevor Buckner
7529a4380b Fix LSB & RSB 2023-03-30 22:17:51 -04:00
Trevor Buckner
1b5b4154ed Merge pull request #2764 from naturalcrit/Tweak-CoverPage-Snippet
Change .coverPage to .frontCover, clean CSS
2023-03-30 17:22:54 -04:00
Trevor Buckner
a1476582b0 Change .coverPage to .frontCover, clean CSS 2023-03-30 17:22:35 -04:00
Trevor Buckner
0fbda91169 Merge pull request #2714 from 5e-Cleric/Inside-Cover-snippet
Inside Cover Snippet
2023-03-30 17:10:29 -04:00
Trevor Buckner
4b6f81ba34 Merge branch 'master' into Inside-Cover-snippet 2023-03-30 17:09:56 -04:00
Trevor Buckner
5cdc1dda64 Small style tweaks 2023-03-30 16:46:09 -04:00
Trevor Buckner
4bf61a063c Remove accidental racism :P 2023-03-30 15:13:29 -04:00
Trevor Buckner
6e99636296 Merge pull request #2760 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.10.0
Bump react-router-dom from 6.9.0 to 6.10.0
2023-03-30 14:41:26 -04:00
dependabot[bot]
8902b237ce Bump react-router-dom from 6.9.0 to 6.10.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.10.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-30 18:40:34 +00:00
Trevor Buckner
1ef18fc53c Merge pull request #2759 from naturalcrit/dependabot/npm_and_yarn/eslint-8.37.0
Bump eslint from 8.36.0 to 8.37.0
2023-03-30 14:40:04 -04:00
dependabot[bot]
ea00c1a5d6 Bump eslint from 8.36.0 to 8.37.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.36.0 to 8.37.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.36.0...v8.37.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-30 18:39:22 +00:00
Trevor Buckner
d49a94498a Merge pull request #2761 from G-Ambatte/bumpNodeVersion-#2756
Update engines to Node 16.13.0
2023-03-30 14:38:04 -04:00
G.Ambatte
591c45f59f Fix Recent Items drop down 2023-03-30 20:19:30 +13:00
G.Ambatte
435eec6e74 Merge branch 'master' into addMetadataToShare-#1679 2023-03-30 20:14:59 +13:00
G.Ambatte
aed29952d6 Fix nav item background transparency & z position 2023-03-30 20:13:01 +13:00
G.Ambatte
527b704ccd Update engines to Node 16.13.0 2023-03-30 19:27:32 +13:00
Trevor Buckner
02bcc9bfb9 Handle multi-line titles. Add Subtitles. 2023-03-28 17:31:26 -04:00
Trevor Buckner
d4b624186f Fix imageMask snippet typo 2023-03-28 17:30:40 -04:00
Trevor Buckner
a58a750b94 Change background image 2023-03-28 17:30:16 -04:00
Trevor Buckner
d793b6f690 Change Icon 2023-03-28 17:29:55 -04:00
Victor Losada Hernandez
d278c52571 Initial draft 2023-03-26 23:28:29 +02:00
Victor Losada Hernandez
1c38d30665 type error 2023-03-25 23:47:25 +01:00
Victor Losada Hernandez
ab058b31b1 icons 2023-03-25 22:56:45 +01:00
Victor Losada Hernandez
cdcd68bc92 upstream master into branch 2023-03-25 22:56:35 +01:00
Victor Losada Hernandez
38a5ebf779 interpoint fix 2023-03-25 22:46:49 +01:00
Victor Losada Hernandez
7926a318d8 special character width fix 2023-03-25 22:40:58 +01:00
Victor Losada Hernandez
370c6ccf73 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into char-fix 2023-03-25 22:23:56 +01:00
Victor Losada Hernandez
2ed669d95e upstream master into part cover 2023-03-25 21:36:56 +01:00
Victor Losada Hernandez
5bce76bcba isolation stacking context 2023-03-25 19:28:32 +01:00
Trevor Buckner
a92f5d0694 Combine .gen files together, add Center mask 2023-03-24 19:06:06 -04:00
Trevor Buckner
5b2aa452c0 Merge branch 'master' into pr/2714 2023-03-24 18:52:50 -04:00
Trevor Buckner
46bc34d527 Merge pull request #2609 from naturalcrit/dependabot/npm_and_yarn/react-frame-component-5.2.6
Bump react-frame-component from 4.1.3 to 5.2.6
2023-03-24 17:41:50 -04:00
Gazook89
6a95ed57ca escape tokenization of injection if preceded by another injection. 2023-03-24 15:15:08 -05:00
Trevor Buckner
97f5a17d10 Merge pull request #2741 from 5e-Cleric/WatercolorImageMaskCenter
Water color image masks part 2 - Center Masks
2023-03-24 14:05:36 -04:00
Trevor Buckner
a106f6f814 Merge pull request #2751 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.0.3
Bump mongoose from 7.0.2 to 7.0.3
2023-03-24 13:56:58 -04:00
Trevor Buckner
1c90b3c4d6 Merge pull request #2749 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-5.0.2
Bump @googleapis/drive from 5.0.1 to 5.0.2
2023-03-24 13:56:45 -04:00
Trevor Buckner
db81d347bd Merge pull request #2750 from naturalcrit/dependabot/npm_and_yarn/dedent-tabs-0.10.3
Bump dedent-tabs from 0.10.2 to 0.10.3
2023-03-24 13:56:34 -04:00
dependabot[bot]
d9423b9d50 Bump mongoose from 7.0.2 to 7.0.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 7.0.2 to 7.0.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/7.0.2...7.0.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 03:58:18 +00:00
dependabot[bot]
220b5df559 Bump dedent-tabs from 0.10.2 to 0.10.3
Bumps [dedent-tabs](https://github.com/adrianjost/dedent-tabs) from 0.10.2 to 0.10.3.
- [Release notes](https://github.com/adrianjost/dedent-tabs/releases)
- [Commits](https://github.com/adrianjost/dedent-tabs/commits)

---
updated-dependencies:
- dependency-name: dedent-tabs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 03:57:47 +00:00
dependabot[bot]
67068221bd Bump @googleapis/drive from 5.0.1 to 5.0.2
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/admin-v5.0.1...drive-v5.0.2)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 03:57:22 +00:00
Victor Losada Hernandez
e28605338b centering + 5 new masks 2023-03-23 23:51:27 +01:00
Victor Losada Hernandez
9870ff369e title variation included 2023-03-23 23:26:15 +01:00
Trevor Buckner
c39a95f1e1 Fix to work with rotation and % offsets 2023-03-23 16:47:42 -04:00
Trevor Buckner
3b5aef7d71 Further snippet tweaks 2023-03-23 16:47:23 -04:00
Trevor Buckner
dc1ef3dd3e Fix snippet 2023-03-23 16:39:32 -04:00
Trevor Buckner
262e79c4df Tweak icon 2023-03-23 16:37:44 -04:00
Trevor Buckner
43b9877fa4 Merge branch 'master' into pr/2741 2023-03-23 15:42:18 -04:00
Trevor Buckner
d25cef0c49 Merge pull request #2625 from G-Ambatte/experimentalWinChocolateyInstall
Windows install script using Chocolatey
2023-03-23 14:24:39 -04:00
Trevor Buckner
bd9dfeb46c Merge branch 'master' into pr/2661 2023-03-23 13:41:55 -04:00
dependabot[bot]
348ec5fd20 Bump react-frame-component from 4.1.3 to 5.2.6
Bumps [react-frame-component](https://github.com/ryanseddon/react-frame-component) from 4.1.3 to 5.2.6.
- [Release notes](https://github.com/ryanseddon/react-frame-component/releases)
- [Commits](https://github.com/ryanseddon/react-frame-component/compare/v4.1.3...v5.2.6)

---
updated-dependencies:
- dependency-name: react-frame-component
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-23 16:51:07 +00:00
Trevor Buckner
038088328e Merge pull request #2748 from naturalcrit/dependabot/npm_and_yarn/marked-4.3.0
Bump marked from 4.2.12 to 4.3.0
2023-03-23 12:49:45 -04:00
Trevor Buckner
5d77dea652 Merge pull request #2658 from G-Ambatte/fixAdminPages-#2657
Fix admin pages #2657
2023-03-23 12:49:15 -04:00
Trevor Buckner
0436235ec3 Merge branch 'master' into pr/2658 2023-03-23 12:28:02 -04:00
Trevor Buckner
6431964807 Merge branch 'master' into pr/2658 2023-03-23 12:24:33 -04:00
Trevor Buckner
bda9b455d9 Merge pull request #2681 from G-Ambatte/fixDivLinks-#2680
[EDITOR] Fix div links #2680
2023-03-23 12:16:27 -04:00
Trevor Buckner
c41b06eee1 Remove duplicate renderer on Marked.parse call 2023-03-23 12:03:30 -04:00
Trevor Buckner
402811fbec Merge branch 'master' into pr/2681 2023-03-23 11:48:22 -04:00
dependabot[bot]
c7758e02a8 Bump marked from 4.2.12 to 4.3.0
Bumps [marked](https://github.com/markedjs/marked) from 4.2.12 to 4.3.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v4.2.12...v4.3.0)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-23 03:57:23 +00:00
Trevor Buckner
92f3fc9ff8 Merge pull request #2745 from 5e-Cleric/script-snippet
Script snippet
2023-03-22 17:44:16 -04:00
Trevor Buckner
f7bd861d9f Move snippet under Tables category 2023-03-22 17:43:41 -04:00
Trevor Buckner
be39a6c7cc lint 2023-03-22 16:59:14 -04:00
Trevor Buckner
c6210280eb Use font-family vs classes. Rename to runeTable 2023-03-22 16:58:32 -04:00
Trevor Buckner
801f66c483 Remove mention of 5e 2023-03-22 16:10:08 -04:00
Trevor Buckner
bdd898f5b6 Fix typo in Iokharic font name 2023-03-22 15:57:38 -04:00
Trevor Buckner
1a87a5543f Merge branch 'master' into pr/2745 2023-03-22 14:11:19 -04:00
G.Ambatte
b24c604597 Merge branch 'master' into addMetadataToShare-#1679 2023-03-22 18:51:49 +13:00
Trevor Buckner
ded29dc390 Merge pull request #2737 from naturalcrit/dependabot/npm_and_yarn/mongoose-7.0.2
Bump mongoose from 6.9.2 to 7.0.2
2023-03-21 16:14:03 -04:00
Trevor Buckner
ab5755e94e Update package-lock.json 2023-03-21 16:13:43 -04:00
Trevor Buckner
eaad46b6bc lint 2023-03-21 16:10:48 -04:00
Trevor Buckner
1ec08bb1fa Update Mongoose calls to not use callbacks. 2023-03-21 16:06:43 -04:00
Trevor Buckner
9dda58991f Merge branch 'dependabot/npm_and_yarn/mongoose-7.0.2' of https://github.com/naturalcrit/homebrewery into dependabot/npm_and_yarn/mongoose-7.0.2 2023-03-21 16:06:01 -04:00
dependabot[bot]
844d2b7a06 Bump mongoose from 6.9.2 to 7.0.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.9.2 to 7.0.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.9.2...7.0.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-21 18:38:37 +00:00
Trevor Buckner
9e2824e0be Merge pull request #2736 from naturalcrit/dependabot/npm_and_yarn/npm-9.6.2
Bump npm from 8.19.3 to 9.6.2
2023-03-21 14:37:03 -04:00
Trevor Buckner
4f5f34c888 Merge pull request #2747 from naturalcrit/RemoveBundledFilesFromCoverageTest
Remove bundled JS from coverage tests
2023-03-21 14:32:10 -04:00
Trevor Buckner
1b3ed2ad70 Remove bundled JS from coverage tests 2023-03-21 14:31:49 -04:00
dependabot[bot]
098de2afd3 Bump npm from 8.19.3 to 9.6.2
Bumps [npm](https://github.com/npm/cli) from 8.19.3 to 9.6.2.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v8.19.3...v9.6.2)

---
updated-dependencies:
- dependency-name: npm
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-21 18:24:58 +00:00
Trevor Buckner
fa762cf32f Merge pull request #2734 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-5.0.1
Bump @googleapis/drive from 4.0.2 to 5.0.1
2023-03-21 14:20:30 -04:00
dependabot[bot]
a4677956f6 Bump @googleapis/drive from 4.0.2 to 5.0.1
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 4.0.2 to 5.0.1.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/run-v4.0.2...admin-v5.0.1)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-21 18:06:03 +00:00
Trevor Buckner
efdc0b072e Merge pull request #2728 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.9.0
Bump react-router-dom from 6.8.2 to 6.9.0
2023-03-21 14:04:43 -04:00
Trevor Buckner
56e7355a0e Merge pull request #2727 from naturalcrit/dependabot/npm_and_yarn/eslint-8.36.0
Bump eslint from 8.35.0 to 8.36.0
2023-03-21 14:03:51 -04:00
Trevor Buckner
ae8e2c9889 Merge pull request #2744 from naturalcrit/dependabot/npm_and_yarn/fs-extra-11.1.1
Bump fs-extra from 11.1.0 to 11.1.1
2023-03-21 14:03:23 -04:00
Trevor Buckner
32543f5aa3 Merge pull request #2746 from MichielDeMey/feature/no-transform-username-navbar
Remove text transform from username
2023-03-21 14:03:04 -04:00
Trevor Buckner
3587511e44 Merge pull request #2735 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.21.3
Bump @babel/core from 7.21.0 to 7.21.3
2023-03-21 13:36:34 -04:00
Trevor Buckner
a8926503b7 Merge pull request #2457 from Gazook89/Language-Attribute
Set Language Attribute of the `.pages` Element
2023-03-21 11:10:18 -04:00
Michiel De Mey
a52ec1c330 Remove text transform from username
Fixes #2731
2023-03-21 16:08:58 +01:00
Trevor Buckner
c2349fb464 Add note to Lang selector 2023-03-21 11:05:26 -04:00
Trevor Buckner
10263cbf7c Add note to Lang selector 2023-03-21 10:38:48 -04:00
Victor Losada Hernandez
6281ed044e font-size corrections 2023-03-21 14:37:04 +01:00
Victor Losada Hernandez
25b5badf90 dropdown icons 2023-03-21 14:17:12 +01:00
dependabot[bot]
d743b72f9c Bump fs-extra from 11.1.0 to 11.1.1
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.1.0 to 11.1.1.
- [Release notes](https://github.com/jprichardson/node-fs-extra/releases)
- [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.1.0...11.1.1)

---
updated-dependencies:
- dependency-name: fs-extra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-21 03:56:45 +00:00
Trevor Buckner
33d8d51956 Tweak combobox style 2023-03-20 14:04:20 -04:00
Trevor Buckner
285b4c3b92 Lift up box to not be covered by Themes selector. 2023-03-20 13:18:20 -04:00
Trevor Buckner
0a7ccfb89e Debounce validation on Lang field 2023-03-20 13:17:51 -04:00
G.Ambatte
db5469699e Move metadata window to be independent of title 2023-03-19 18:42:31 +13:00
G.Ambatte
807ab2a538 Standardize to className 2023-03-19 18:40:38 +13:00
Victor Losada Hernandez
d46736b7e6 update - DMG svg 2023-03-17 00:12:48 +01:00
Victor Losada Hernandez
b041ef921e initial draft 2023-03-16 17:54:19 +01:00
dependabot[bot]
064a92f0da Bump mongoose from 6.9.2 to 7.0.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.9.2 to 7.0.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.9.2...7.0.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-16 03:57:18 +00:00
dependabot[bot]
3e73ae0327 Bump @babel/core from 7.21.0 to 7.21.3
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.21.0 to 7.21.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.3/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-15 03:57:46 +00:00
G.Ambatte
bd4c24df46 Adjust styling for unusual browser widths 2023-03-15 13:46:30 +13:00
G.Ambatte
1126481d53 Add Last Updated field and nudge styling 2023-03-15 11:46:27 +13:00
G.Ambatte
a3f93c2602 Styling updates 2023-03-15 11:06:48 +13:00
G.Ambatte
24564a2750 Shift to title wrapper 2023-03-15 09:17:05 +13:00
G.Ambatte
4505308b81 Merge branch 'master' into addMetadataToShare-#1679 2023-03-15 07:38:17 +13:00
Trevor Buckner
cf99bd9004 Fix unit tests 2023-03-14 12:12:21 -04:00
Trevor Buckner
75d97379f8 Merge branch 'master' into pr/2457 2023-03-14 11:22:00 -04:00
dependabot[bot]
6588863d2d Bump eslint from 8.35.0 to 8.36.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.35.0 to 8.36.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.35.0...v8.36.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-14 15:19:51 +00:00
Trevor Buckner
98ae938b3d Merge pull request #2730 from naturalcrit/RunJestTestsSequentially
Run Tests sequentially
2023-03-14 11:18:10 -04:00
G.Ambatte
ccf44cbe91 Initial functionality pass 2023-03-14 23:01:29 +13:00
Victor Losada Hernandez
54ed9a7d33 initial draft 2023-03-14 08:06:26 +01:00
Trevor Buckner
4ec0107348 Merge pull request #2732 from naturalcrit/Fix_Column-Fill-Auto_on_Legacy_MonsterBlocks
Change monster block to column-fill : balance
2023-03-13 23:27:58 -04:00
Trevor Buckner
8106b2b694 Up version to v3.7.2 2023-03-13 23:25:42 -04:00
Trevor Buckner
c4d26e7ffe Change monster block to column-fill : balance 2023-03-13 23:16:34 -04:00
Trevor Buckner
f148014a93 Make coverage command run in sequence too 2023-03-13 14:48:10 -04:00
Trevor Buckner
0a09cd9c67 Don't test in parallel, raise timeout 2023-03-13 14:34:48 -04:00
Trevor Buckner
3105ee1eac Run Tests sequentially
One possible solution to tests timing out on CI

https://jestjs.io/docs/troubleshooting#tests-are-extremely-slow-on-docker-and-or-continuous-integration-ci-server
2023-03-13 14:16:28 -04:00
dependabot[bot]
2fc1600865 Bump react-router-dom from 6.8.2 to 6.9.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.8.2 to 6.9.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.9.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 03:58:01 +00:00
G.Ambatte
d075b09496 Merge branch 'master' into fixDivLinks-#2680 2023-03-12 22:29:44 +13:00
G.Ambatte
22e275acd8 Merge branch 'master' into fixAdminPages-#2657 2023-03-12 22:28:02 +13:00
G.Ambatte
a5513b359e Merge branch 'master' into experimentalWinChocolateyInstall 2023-03-12 22:26:29 +13:00
Trevor Buckner
30e7c73805 Merge pull request #2717 from naturalcrit/dependabot/npm_and_yarn/jest-29.5.0
Bump jest from 29.4.3 to 29.5.0
2023-03-11 23:56:35 -05:00
Trevor Buckner
e080bf1bde Update changelog.md 2023-03-09 16:17:09 -05:00
dependabot[bot]
37c60feda1 Bump jest from 29.4.3 to 29.5.0
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.3 to 29.5.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.5.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-09 20:47:53 +00:00
Trevor Buckner
aa76252a55 Merge pull request #2722 from naturalcrit/v3.7.1
Up version to v3.7.1
2023-03-09 15:45:41 -05:00
Trevor Buckner
6f3292e994 Merge pull request #2721 from naturalcrit/FixBlurryCoverpageOutlines
Change coverpage text-shadow to filter:drop-shadow
2023-03-09 15:45:13 -05:00
Trevor Buckner
eaa672c4c7 Change coverpage text-shadow to filter:drop-shadow 2023-03-09 15:35:35 -05:00
Trevor Buckner
93ff59f670 Up version to v3.7.1 2023-03-09 15:20:28 -05:00
Gazook89
461487534d add onBlur to lang input to reset to valid 2023-03-08 14:24:15 -06:00
Gazook89
7bef807c41 Remove unnecessary commented code. 2023-03-07 22:08:42 -06:00
Gazook89
2a8eaa654d updated package-lock 2023-03-07 21:55:49 -06:00
Gazook89
29f8f3546c Merge branch 'master' into Language-Attribute 2023-03-07 21:23:23 -06:00
Trevor Buckner
c47fae6061 Merge pull request #2696 from MichielDeMey/feature/trim-google-apis
[Draft] Trimming Google APIs
2023-03-07 14:53:20 -05:00
Trevor Buckner
6ff0999d88 Merge branch 'master' into pr/2696 2023-03-07 14:49:37 -05:00
Trevor Buckner
bfccf833b6 Fix variable name conflict bugs 2023-03-07 14:27:33 -05:00
Michiel De Mey
2a9ac9fa47 Defining default auth at the top 2023-03-07 11:05:11 +01:00
Trevor Buckner
b990af3fc3 Merge pull request #2710 from MichielDeMey/feature/new-google-drive-icon
Updated Google Drive icon
2023-03-06 16:06:04 -05:00
Trevor Buckner
91a31757e5 Merge branch 'master' into feature/new-google-drive-icon 2023-03-06 16:03:19 -05:00
Trevor Buckner
c341bc5db6 Make icon slightly smaller 2023-03-06 16:02:54 -05:00
Trevor Buckner
c88253901a Merge pull request #2127 from lucastucious/v3-fix-note-render
[V3] Fix note render to pdf
2023-03-06 14:12:06 -05:00
Trevor Buckner
164e0a4433 adjust values based on old original box-shadow sizes
Some shadows need to be made bigger to interact with the border-image hanging over the top of the shadow. This just restores those sizes we had before first changing to filter:drop-shadow. See https://github.com/naturalcrit/homebrewery/pull/1577/files
2023-03-06 14:09:59 -05:00
Trevor Buckner
97852c3c03 Merge branch 'master' into pr/2127 2023-03-06 12:54:13 -05:00
Trevor Buckner
4057d7bf84 Merge branch 'master' into pr/2696 2023-03-02 16:48:05 -05:00
Victor Losada Hernandez
33ae652222 format and editable logo 2023-03-02 18:25:23 +01:00
Victor Losada Hernandez
690e797fe5 initial draft 2023-03-02 18:01:44 +01:00
Trevor Buckner
ce2298ddd0 Properly comment line so // doesn't appear in page 2023-03-02 10:54:14 -05:00
Michiel De Mey
bbcf415a30 Fixed vertical alignment 2023-03-02 12:56:47 +01:00
Michiel De Mey
e67fc2f775 Moved inline styling to separate stylesheet 2023-03-02 12:40:48 +01:00
G.Ambatte
cf9dbffe49 Fix title in README 2023-03-02 10:30:13 +13:00
G.Ambatte
c006ab0901 Merge branch 'master' into experimentalWinChocolateyInstall 2023-03-02 10:28:17 +13:00
G.Ambatte
572b92f893 Merge branch 'master' into fixDivLinks-#2680 2023-03-02 10:24:27 +13:00
Victor Losada Hernandez
810a5b295d actual icon 2023-03-01 17:40:15 +01:00
Victor Losada Hernandez
a956f57a56 delete fa-file-c 2023-03-01 17:11:00 +01:00
Victor Losada Hernandez
9b4577c65b Merge upstream 'master' into back-cover-snippet 2023-03-01 17:10:34 +01:00
Victor Losada Hernandez
a5a59ac058 initial draft 2023-03-01 17:04:21 +01:00
Trevor Buckner
cc89ad1c7d Merge pull request #2709 from naturalcrit/Re-remove-layers-from-Blank-Theme
Remove last bits of @Layers. Sigh...
2023-03-01 07:42:23 -05:00
Trevor Buckner
ba11aef038 Remove last bits of @Layers. Sigh... 2023-03-01 07:42:06 -05:00
Michiel De Mey
33f3fb18fa Updated Google Drive icon 2023-03-01 13:38:37 +01:00
Trevor Buckner
240d283536 Merge pull request #2707 from naturalcrit/v3.7.0
Update changelog.md
2023-02-28 22:50:35 -05:00
Trevor Buckner
9a60fe4129 Update changelog.md 2023-02-28 22:50:02 -05:00
Trevor Buckner
6af98cd842 Merge pull request #2706 from naturalcrit/v3.7.0
V3.7.0
2023-02-28 22:36:10 -05:00
Trevor Buckner
b2f64d1094 Update changelog.md 2023-02-28 22:35:46 -05:00
Trevor Buckner
820582067e Merge branch 'master' into v3.7.0 2023-02-28 22:33:35 -05:00
Trevor Buckner
dae1106e50 Tweak icons 2023-02-28 22:33:15 -05:00
Trevor Buckner
239cc4d99e up version to 3.7.0 2023-02-28 22:25:20 -05:00
Trevor Buckner
48cd8bb6f7 Merge pull request #2694 from MichielDeMey/patch-1
Use secure protocol for Homebrewery mug image
2023-02-28 21:53:22 -05:00
Trevor Buckner
480d7d2b5e Merge pull request #2700 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.8.2
Bump react-router-dom from 6.8.1 to 6.8.2
2023-02-28 16:56:32 -05:00
Trevor Buckner
9ea80c0d31 Merge pull request #2698 from naturalcrit/dependabot/npm_and_yarn/eslint-8.35.0
Bump eslint from 8.34.0 to 8.35.0
2023-02-28 16:56:18 -05:00
Trevor Buckner
bd151efd51 Merge pull request #2705 from naturalcrit/DisableLayersFromCoreCSS
Disable @layers on core CSS due to crashing ios
2023-02-28 16:56:08 -05:00
Trevor Buckner
0ac1d1e87a Disable @layers on core CSS due to crashing ios 2023-02-28 16:54:59 -05:00
Trevor Buckner
a626f394df Merge pull request #2695 from MichielDeMey/patch-2
Fixed typo in Jest's modulePaths
2023-02-28 16:33:46 -05:00
Victor Losada Hernandez
7df2d39a6d second markdown fix(sorry) 2023-02-28 22:32:07 +01:00
Trevor Buckner
afa3fb434e Merge pull request #2703 from naturalcrit/Mark-snippets-as-experimental
Add "beta" badge on snippets marked "experimetal"
2023-02-28 16:31:39 -05:00
Victor Losada Hernandez
3cdb15ba79 fix mask 2023-02-28 22:30:45 +01:00
Victor Losada Hernandez
7c09956d7d last draft 2023-02-28 22:27:51 +01:00
Victor Losada Hernandez
63b088762e Merge upstream 'master' into part-cover-snippet 2023-02-28 22:27:37 +01:00
Trevor Buckner
7117d3caed Add "beta" badge on snippets marked "experimetal" 2023-02-28 16:26:23 -05:00
Trevor Buckner
3461c47a63 Merge pull request #2649 from 5e-Cleric/cover-snippet
Cover snippet
2023-02-28 14:08:22 -05:00
Trevor Buckner
4f715a316b Tweak CSS and snippet 2023-02-28 13:17:25 -05:00
Trevor Buckner
7a316060dd Change footnote font 2023-02-28 13:15:30 -05:00
Trevor Buckner
a96f9e2b76 Update Nodesto Font to be slightly more narrow 2023-02-28 13:14:34 -05:00
dependabot[bot]
cc3c429b58 Bump react-router-dom from 6.8.1 to 6.8.2
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.8.1 to 6.8.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.8.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-28 03:56:52 +00:00
dependabot[bot]
35c257ed50 Bump eslint from 8.34.0 to 8.35.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.34.0 to 8.35.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.34.0...v8.35.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 03:57:15 +00:00
Michiel De Mey
a6ed05214a Updated auth 2023-02-26 14:53:26 +01:00
Michiel De Mey
27ea00e9ce Trimming Google APIs 2023-02-26 14:34:23 +01:00
Michiel De Mey
8a6cc3c0aa Fixed typo in Jest's modulePaths 2023-02-26 14:24:21 +01:00
G.Ambatte
23668f15f0 Merge branch 'master' into fixDivLinks-#2680 2023-02-26 14:50:23 +13:00
Victor Losada Hernandez
ac8c79ee63 unit change and has update 2023-02-25 22:39:25 +01:00
Michiel De Mey
9bb628da5a Use secure protocol for Homebrewery mug image
Fixes https://github.com/naturalcrit/homebrewery/issues/2687
2023-02-25 16:30:04 +01:00
Victor Losada Hernandez
5ae61e2c26 reviews plus naturalcrit logo 2023-02-23 23:28:32 +01:00
Trevor Buckner
2e7c8c0cab Remove @layer 2023-02-22 15:34:05 -05:00
Trevor Buckner
ed85e4eb0a Merge branch 'master' into cover-snippet 2023-02-22 15:06:49 -05:00
Trevor Buckner
91a2ce211d Merge branch 'cover-snippet' of https://github.com/5e-Cleric/homebrewery into pr/2649 2023-02-22 15:05:25 -05:00
Trevor Buckner
6e859aec1c Merge branch 'master' into pr/2649 2023-02-22 14:57:34 -05:00
Trevor Buckner
4d7e273f7d Merge pull request #2373 from naturalcrit/WatercolorImageMask
Watercolor image mask
2023-02-22 14:51:48 -05:00
Trevor Buckner
c3d53cfc10 Remove old comments 2023-02-22 14:51:16 -05:00
Trevor Buckner
90d5ac4603 Implement scaling, but not added to snippet 2023-02-22 14:49:11 -05:00
Trevor Buckner
096b3d00fc Fix corner snippet reversed Y position 2023-02-22 14:48:24 -05:00
Trevor Buckner
2a75c702b9 Merge branch 'master' into WatercolorImageMask 2023-02-22 13:06:20 -05:00
Trevor Buckner
c4719f0e0f Merge pull request #2682 from naturalcrit/dependabot/npm_and_yarn/babel/core-7.21.0
Bump @babel/core from 7.20.12 to 7.21.0
2023-02-22 10:04:54 -05:00
Trevor Buckner
fe6223c892 Merge pull request #2685 from naturalcrit/dependabot/npm_and_yarn/body-parser-1.20.2
Bump body-parser from 1.20.1 to 1.20.2
2023-02-22 10:03:27 -05:00
dependabot[bot]
5f01fa1add Bump body-parser from 1.20.1 to 1.20.2
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.1 to 1.20.2.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.1...1.20.2)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-22 03:16:53 +00:00
Trevor Buckner
66c80c3891 Merge pull request #2684 from naturalcrit/undoLayers
Disable @layers for now
2023-02-21 15:36:39 -05:00
Trevor Buckner
767f03fba0 Disable @layers for now
@Layers have too many conflicts with custom CSS styling. Delay until V4 renderer.
2023-02-21 15:36:01 -05:00
dependabot[bot]
62692552b1 Bump @babel/core from 7.20.12 to 7.21.0
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.12 to 7.21.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-21 14:40:42 +00:00
Trevor Buckner
8b3bef02e8 Merge pull request #2676 from naturalcrit/dependabot/npm_and_yarn/mongoose-6.9.2
Bump mongoose from 6.9.1 to 6.9.2
2023-02-21 09:39:54 -05:00
Trevor Buckner
3a6e4ec385 Merge pull request #2683 from naturalcrit/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.21.0
Bump @babel/plugin-transform-runtime from 7.19.6 to 7.21.0
2023-02-21 09:39:20 -05:00
dependabot[bot]
d39148116b Bump @babel/plugin-transform-runtime from 7.19.6 to 7.21.0
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.19.6 to 7.21.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.0/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-21 03:58:12 +00:00
G.Ambatte
81f0670be0 Fix minor version number 2023-02-21 08:15:33 +13:00
G.Ambatte
4484035d75 Add Markdown test 2023-02-21 07:51:18 +13:00
G.Ambatte
f528b55226 Move renderer assignment to options 2023-02-21 07:42:38 +13:00
G.Ambatte
9eb8653dfb Add info to the change log 2023-02-20 21:35:53 +13:00
G.Ambatte
a65c26e806 Increase Jest timeout 2023-02-20 21:35:12 +13:00
G.Ambatte
17525a4f41 Add renderer option to HTML blocks in Markdown 2023-02-20 21:35:00 +13:00
Trevor Buckner
fe5e91c377 Merge pull request #2678 from naturalcrit/v3.6.1
Up version to 3.6.1
2023-02-18 13:57:00 -05:00
Trevor Buckner
512ef78e9e Up version to 3.6.1 2023-02-18 13:56:41 -05:00
Trevor Buckner
4fca81fd3f Merge pull request #2675 from G-Ambatte/fixAuthorDeletion-#2674
Fix author deletion #2674
2023-02-18 13:48:49 -05:00
Trevor Buckner
6a8a2f080c Lint 2023-02-18 13:48:32 -05:00
Trevor Buckner
298a10bc42 Clean up tests 2023-02-18 13:48:02 -05:00
Trevor Buckner
b6a95a2c01 Merge pull request #2677 from naturalcrit/FixDividerBarDots
Override FontAwesome conflict due to @layers
2023-02-18 13:30:32 -05:00
Trevor Buckner
b09a4ea5fa Override FontAwesome conflict due to @layers 2023-02-18 13:30:06 -05:00
G.Ambatte
1fb7fe2487 Add markModified mock function to test spec 2023-02-17 17:43:21 +13:00
G.Ambatte
e751f9a25c Remove mocking function from homebrew.api.js 2023-02-17 17:42:56 +13:00
Trevor Buckner
9e2aec18ad Get Corners fully working with x/y offset and rotate 2023-02-16 23:00:17 -05:00
dependabot[bot]
e8cf3bee34 Bump mongoose from 6.9.1 to 6.9.2
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.9.1 to 6.9.2.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.9.1...6.9.2)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-17 03:56:57 +00:00
G.Ambatte
41db670e63 Add mock markModified when it does not exist 2023-02-17 16:14:33 +13:00
G.Ambatte
74e14ca72a Restore coverage to .gitignore 2023-02-17 16:05:32 +13:00
G.Ambatte
860070b0c2 Remove coverage folder from .gitignore 2023-02-17 15:48:55 +13:00
G.Ambatte
43d1cb12db Add change log entry for v3.6.1 2023-02-17 11:30:16 +13:00
G.Ambatte
2bab0b50d2 Add coverage folder to gitignore 2023-02-17 11:26:29 +13:00
G.Ambatte
4b98c1ac89 Add markModified to fix authors array in DB 2023-02-17 11:26:11 +13:00
Trevor Buckner
d9f5e9d635 Merge pull request #2673 from naturalcrit/dependabot/npm_and_yarn/jest-29.4.3
Bump jest from 29.4.1 to 29.4.3
2023-02-16 15:19:49 -05:00
Trevor Buckner
1ce3e399a8 Merge pull request #2670 from naturalcrit/dependabot/npm_and_yarn/eslint-8.34.0
Bump eslint from 8.33.0 to 8.34.0
2023-02-16 15:19:26 -05:00
Trevor Buckner
4a12ccf2b6 Merge pull request #2669 from naturalcrit/dependabot/npm_and_yarn/googleapis-111.0.0
Bump googleapis from 110.0.0 to 111.0.0
2023-02-16 15:19:14 -05:00
Trevor Buckner
da83e1a252 Merge pull request #2666 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.8.1
Bump react-router-dom from 6.8.0 to 6.8.1
2023-02-16 15:18:31 -05:00
Trevor Buckner
a971dd4713 Merge pull request #2665 from naturalcrit/dependabot/npm_and_yarn/mongoose-6.9.1
Bump mongoose from 6.9.0 to 6.9.1
2023-02-16 15:18:19 -05:00
dependabot[bot]
0a7e25a749 Bump jest from 29.4.1 to 29.4.3
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.1 to 29.4.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.4.3/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 03:57:59 +00:00
dependabot[bot]
c9ee1bc4b0 Bump eslint from 8.33.0 to 8.34.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.33.0 to 8.34.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.33.0...v8.34.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 03:58:32 +00:00
dependabot[bot]
d5c21c5881 Bump googleapis from 110.0.0 to 111.0.0
Bumps [googleapis](https://github.com/googleapis/google-api-nodejs-client) from 110.0.0 to 111.0.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/googleapis-v110.0.0...googleapis-v111.0.0)

---
updated-dependencies:
- dependency-name: googleapis
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 03:57:01 +00:00
Victor Losada Hernandez
3d6842bf86 i forgot to change file extensions 2023-02-11 00:48:52 +01:00
Victor Losada Hernandez
e610194ace custom icon and vectorization of assets 2023-02-11 00:38:27 +01:00
Victor Losada Hernandez
3393e72481 Merge upstream into cover-snippet 2023-02-10 23:11:12 +01:00
G.Ambatte
f644740f60 Merge branch 'master' into experimentalWinChocolateyInstall 2023-02-08 22:43:36 +13:00
Trevor Buckner
0355b52021 Custom icons for image masks in general 2023-02-07 15:36:52 -05:00
Trevor Buckner
c430e5a92b lint 2023-02-07 10:37:33 -05:00
Trevor Buckner
2ac09130a6 Remove switch statement 2023-02-07 10:36:51 -05:00
Trevor Buckner
63346cfd7a Add subsnippets for edge masks 2023-02-07 10:31:29 -05:00
Trevor Buckner
2ea639000b Update Corner snippets to use correct corner 2023-02-07 10:21:29 -05:00
Trevor Buckner
051fdbbc60 Fix snippet hover highlight not full button width 2023-02-07 10:20:43 -05:00
Trevor Buckner
d02fcc9252 Update custom position icons 2023-02-07 09:56:03 -05:00
Victor Losada Hernandez
3d71799469 Merge branch 'master' of https://github.com/naturalcrit/homebrewery 2023-02-07 13:16:06 +01:00
dependabot[bot]
f157b57928 Bump react-router-dom from 6.8.0 to 6.8.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.8.0 to 6.8.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.8.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-07 03:01:39 +00:00
dependabot[bot]
e6318fefb6 Bump mongoose from 6.9.0 to 6.9.1
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.9.0 to 6.9.1.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.9.0...6.9.1)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-07 03:00:46 +00:00
G.Ambatte
dae97946dc Merge branch 'master' into fixAdminPages-#2657 2023-02-07 11:02:28 +13:00
Sean Robertson
a921452c22 Reinstate Jest timeout increase 2023-02-07 10:59:48 +13:00
Sean Robertson
b0954bcd2c Revert CircleCI config changes 2023-02-07 10:56:30 +13:00
Sean Robertson
01f90ea085 Revert Jest test timeout change 2023-02-07 10:55:34 +13:00
Trevor Buckner
33c8291a55 Merge branch 'master' into WatercolorImageMask 2023-02-06 16:25:13 -05:00
Trevor Buckner
270b20aaaf Add position options to corner snippets 2023-02-06 16:25:02 -05:00
Victor Losada Hernandez
0689d3d0b2 fix metadata font 2023-02-04 23:14:51 +01:00
Victor Losada Hernandez
877ee1cc4f Merge branch 'master' of https://github.com/naturalcrit/homebrewery into char-fix 2023-02-04 23:04:51 +01:00
Victor Losada Hernandez
5f26f857d4 Manually adding special characters 2023-02-04 23:01:08 +01:00
Victor Losada Hernandez
f7783aba07 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into part-cover-snippet 2023-02-04 17:23:40 +01:00
Trevor Buckner
7ea3ef8474 Merge pull request #2662 from naturalcrit/CustomSnippetIcons
Custom icons for snippets
2023-02-04 11:10:29 -05:00
Trevor Buckner
a0af588d75 Custom icons 2023-02-04 11:07:04 -05:00
Victor Losada Hernandez
f7dd03c628 U+00D1 and U+00F1 fix 2023-02-04 17:02:36 +01:00
Victor Losada Hernandez
fe402bc211 Merge branch 'master' of https://github.com/naturalcrit/homebrewery 2023-02-04 16:29:34 +01:00
Victor Losada Hernandez
3380befe21 Diff mask for even/odd pages 2023-02-04 12:13:48 +01:00
Victor Losada Hernandez
14507c388e Merge branch 'master' of https://github.com/naturalcrit/homebrewery into part-cover-snippet 2023-02-04 11:53:04 +01:00
G.Ambatte
d4d2356708 Remove npm audit fix 2023-02-04 10:53:19 +13:00
G.Ambatte
6d9a0938ab Add audit fix to CircleCI 2023-02-04 10:50:59 +13:00
G.Ambatte
747bb3c489 Reinstate PostInstall script for testing 2023-02-04 10:47:03 +13:00
G.Ambatte
4a695eda87 Fix outdated method in Admin API 2023-02-03 19:28:20 +13:00
G.Ambatte
208a341f27 Add test coverage report directory to gitignore 2023-02-03 19:09:01 +13:00
G.Ambatte
75a4cff319 Tweak Jest timeout value 2023-02-03 13:58:09 +13:00
G.Ambatte
72e5515830 Tweak CircleCI config 2023-02-03 13:46:52 +13:00
G.Ambatte
e5996db4f7 Merge branch 'master' into fixAdminPages-#2657 2023-02-03 09:52:02 +13:00
Trevor Buckner
6f70994a77 Merge branch 'master' into WatercolorImageMask 2023-02-02 15:49:32 -05:00
Trevor Buckner
9b06380b9c Merge pull request #2656 from naturalcrit/SubSnippets
Add a side menu for sub-snippets
2023-02-02 15:49:10 -05:00
Sean Robertson
d84fe3e5b4 Update changelog.md
Add changes to change log
2023-02-03 09:47:23 +13:00
Sean Robertson
83a62e7133 Update package.json
Update build script
Remove obsolete scripts
2023-02-03 09:44:18 +13:00
Trevor Buckner
5e38ff66da Add a side menu for sub-snippets
Subsnippets can be added to snippets as an additional property "subsnippets" which is an array of more snippets.
2023-02-02 15:29:12 -05:00
Trevor Buckner
5eb1d58059 Add rotation to corners snippet 2023-02-02 11:49:25 -05:00
Trevor Buckner
096e281a6c Rework Corner snippet and CSS to allow free rotation 2023-02-02 11:48:30 -05:00
Trevor Buckner
73f141613e Change classname from imageMask to imageMaskEdge 2023-01-31 17:03:12 -05:00
Trevor Buckner
aee240cf9b remove original text background 2023-01-31 16:00:43 -05:00
Trevor Buckner
7af2e8810a Fix snippet more, add link to imgur image 2023-01-31 16:00:31 -05:00
Trevor Buckner
24031fbfa0 Clarify snippet instructions 2023-01-31 13:33:19 -05:00
Trevor Buckner
b93e9ec95e Comment out Corners snippet for later PR 2023-01-31 13:32:10 -05:00
Trevor Buckner
347d132cde Keep fixing merge 2023-01-31 13:24:29 -05:00
Trevor Buckner
98c7ef9d12 Merge branch 'master' into WatercolorImageMask 2023-01-31 13:18:20 -05:00
Victor Losada Hernandez
5cc654a908 Part cover first draft 2023-01-31 17:11:46 +01:00
Victor Losada Hernandez
dc7e4cd192 Merge branch 'master' of https://github.com/naturalcrit/homebrewery 2023-01-31 15:53:10 +01:00
Trevor Buckner
85b3741df8 Merge pull request #2651 from 5e-Cleric/cloning-fix-2
Thanks @5e-Cleric for this fix!
2023-01-30 17:19:19 -05:00
Trevor Buckner
4260f5197c Update specs to expect a views prop from default brew 2023-01-30 17:15:33 -05:00
Trevor Buckner
f628e1a5ae Use DEFAULT_BREW values instead of setting them here 2023-01-30 17:08:19 -05:00
Trevor Buckner
14bc7e45ab Merge pull request #2619 from 5e-Cleric/readme
Readme update
2023-01-30 14:44:19 -05:00
Trevor Buckner
4668d36a52 typo 2023-01-30 14:40:13 -05:00
Victor Losada Hernandez
7fd7230e15 Merge branch 'master' of https://github.com/naturalcrit/homebrewery 2023-01-30 20:34:15 +01:00
Victor Losada Hernandez
91fc8a1a5e Suggested changes 2023-01-30 20:30:43 +01:00
Victor Losada Hernandez
341b53c603 veracruz to Alkalami 2023-01-30 20:27:15 +01:00
Trevor Buckner
6226f3376a Merge pull request #2604 from naturalcrit/CSS-Layers
Try @Layers to not need `.page` in user style
2023-01-30 12:41:36 -05:00
Trevor Buckner
ed8b0c51af Merge pull request #2653 from naturalcrit/dependabot/npm_and_yarn/eslint-plugin-react-7.32.2
Bump eslint-plugin-react from 7.32.1 to 7.32.2
2023-01-30 12:32:41 -05:00
dependabot[bot]
a19b961b0f Bump eslint-plugin-react from 7.32.1 to 7.32.2
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.32.1 to 7.32.2.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.32.1...v7.32.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 16:45:54 +00:00
Trevor Buckner
f4326616b4 Merge pull request #2652 from naturalcrit/dependabot/npm_and_yarn/eslint-8.33.0
Bump eslint from 8.32.0 to 8.33.0
2023-01-30 11:44:28 -05:00
dependabot[bot]
e8509dbbed Bump eslint from 8.32.0 to 8.33.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.32.0 to 8.33.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.32.0...v8.33.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 03:00:51 +00:00
Victor Losada Hernandez
541109e7b1 fix created, updated published last viewed 2023-01-28 11:47:26 +01:00
Trevor Buckner
625d3f7034 Add note about why we use !important on user page 2023-01-28 01:13:10 -05:00
Victor Losada Hernandez
78554603e8 coverPage initial draft 2023-01-28 00:43:43 +01:00
Víctor Losada Hernández
1ebbd9c8ce Merge pull request #2 from naturalcrit/master
pull from upstream
2023-01-28 00:38:48 +01:00
Trevor Buckner
5bb61a7c3c Fix userpage 2023-01-27 17:09:52 -05:00
Trevor Buckner
3c551daf16 Fix print page 2023-01-27 15:16:16 -05:00
Trevor Buckner
0bf96cb9e2 Add layers to all current themes 2023-01-27 14:57:20 -05:00
Trevor Buckner
bef4d9f41f Merge branch 'master' into CSS-Layers 2023-01-27 14:48:13 -05:00
Trevor Buckner
9ff0789387 Merge pull request #2622 from 5e-Cleric/previews
Theme previews updated
2023-01-27 14:45:47 -05:00
Trevor Buckner
a457058041 Resize dropdown button 2023-01-27 14:45:31 -05:00
Trevor Buckner
6d40e63e96 Merge branch 'master' into pr/2622 2023-01-27 14:26:05 -05:00
Trevor Buckner
964342a13d Merge pull request #2646 from naturalcrit/dependabot/npm_and_yarn/react-router-dom-6.8.0
Bump react-router-dom from 6.7.0 to 6.8.0
2023-01-27 14:04:35 -05:00
Trevor Buckner
9067cbdced Merge pull request #2644 from naturalcrit/dependabot/npm_and_yarn/mongoose-6.9.0
Bump mongoose from 6.8.4 to 6.9.0
2023-01-27 14:04:25 -05:00
Trevor Buckner
c9fd2c63af Merge pull request #2647 from naturalcrit/dependabot/npm_and_yarn/jest-29.4.1
Bump jest from 29.4.0 to 29.4.1
2023-01-27 14:04:16 -05:00
Trevor Buckner
ec8126eb8a Merge pull request #2648 from naturalcrit/FixNodestoFont
Update fonts.less path for Nodesto fonts
2023-01-27 14:04:03 -05:00
Trevor Buckner
6aa1920061 Update fonts.less 2023-01-27 14:02:11 -05:00
dependabot[bot]
07325a7550 Bump jest from 29.4.0 to 29.4.1
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.0 to 29.4.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.4.1/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-27 03:01:43 +00:00
dependabot[bot]
7fa50099a6 Bump react-router-dom from 6.7.0 to 6.8.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.7.0 to 6.8.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.8.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-27 03:00:56 +00:00
Charlie Humphreys
4c42a9e2fc add changelog 2023-01-25 23:27:01 -06:00
Charlie Humphreys
4ae751bf70 Merge branch 'master' into content-negotiation-middleware 2023-01-25 23:01:31 -06:00
Charlie Humphreys
b77c70054a adjust content-negotiation middleware to elvis on the accept header 2023-01-25 23:00:05 -06:00
dependabot[bot]
12b1c41716 Bump mongoose from 6.8.4 to 6.9.0
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.8.4 to 6.9.0.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.8.4...6.9.0)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-26 03:02:15 +00:00
Trevor Buckner
62d193ddd1 Merge pull request #2639 from naturalcrit/dependabot/npm_and_yarn/jest-29.4.0
Bump jest from 29.3.1 to 29.4.0
2023-01-25 11:38:09 -05:00
dependabot[bot]
750c650b69 Bump jest from 29.3.1 to 29.4.0
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.3.1 to 29.4.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.4.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-25 03:01:12 +00:00
Trevor Buckner
70219f1bd4 Merge pull request #2628 from naturalcrit/v3.6.0
Update Version to v3.6.0
2023-01-23 16:02:07 -05:00
G.Ambatte
055773b1c3 Merge branch 'master' into experimentalWinChocolateyInstall 2023-01-23 22:50:30 +13:00
G.Ambatte
c3936d28d9 Add README.WINDOWS.md 2023-01-23 22:50:01 +13:00
G.Ambatte
607a66a8f0 Fix typo 2023-01-23 22:35:35 +13:00
G.Ambatte
658aee8806 Fix titles 2023-01-23 22:31:04 +13:00
G.Ambatte
c60be5d24b Add colors to Script titles 2023-01-23 22:14:03 +13:00
G.Ambatte
3d5a8b5627 Reduced to a single install file 2023-01-23 21:46:08 +13:00
G.Ambatte
d11508886b Add final notes to each install part 2023-01-23 21:13:40 +13:00
G.Ambatte
4bb64a535f Split install script into two parts 2023-01-23 21:00:00 +13:00
G.Ambatte
c956100416 Improve commenting in script 2023-01-23 18:16:06 +13:00
G.Ambatte
458d104866 Fix typo 2023-01-23 18:13:55 +13:00
G.Ambatte
029230e075 Initial commit 2023-01-23 15:33:00 +13:00
Victor Losada Hernandez
0c68e5870b admin privileges detail readme 2023-01-22 15:52:28 +01:00
Charlie Humphreys
82622744a1 Merge branch 'client-server-version-mismatch-middleware' into content-negotiation-middleware 2023-01-21 15:01:22 -06:00
Victor Losada Hernandez
d0dc83cf10 preview images updated 2023-01-21 17:15:50 +01:00
Victor Losada Hernandez
45c7ac4b85 Themes dropdown previews 2023-01-21 17:11:28 +01:00
Trevor Buckner
128b299f25 Ensure getBrew returns an object if undefined 2023-01-21 17:11:28 +01:00
Trevor Buckner
692daa88fc Remove extra console log for getGoogleBrew
App.js already logs the thrown error, so we were getting double logs (and Google errors are long....). This should make the logs a bit easier to sift through.
2023-01-21 17:11:28 +01:00
Trevor Buckner
bd6eb816f2 Only fix stub if we actually found one. 2023-01-21 17:11:28 +01:00
Trevor Buckner
2050028484 If no stub exists, start stub as {}, not undefined
Recent changes to handle bad brew properties (tags as strings, no renderer, etc.) didn't account for the case where an old Google brew is first being stubbed; since no stub exists, there is no object to perform the corrections on, and we crash.
2023-01-21 17:11:28 +01:00
Trevor Buckner
7e4018351d Fix saving issue when tags do not exist
Rare case where tags don't exist at all; gets confused in the step of converting tag strings to arrays
2023-01-21 17:11:28 +01:00
Trevor Buckner
01b03e8683 Enable brew version mismatch checking on server
Was commented out previously to allow users time to update client code so the proper error displays
2023-01-21 17:11:28 +01:00
dependabot[bot]
3538aa6da0 Bump mongoose from 6.8.2 to 6.8.3
Bumps [mongoose](https://github.com/Automattic/mongoose) from 6.8.2 to 6.8.3.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/6.8.2...6.8.3)

---
updated-dependencies:
- dependency-name: mongoose
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-21 17:11:28 +01:00
dependabot[bot]
13eb6cac17 Bump @babel/core from 7.20.7 to 7.20.12
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.7 to 7.20.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.20.12/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-21 17:11:28 +01:00
Charlie Humphreys
8b0203dd7c add content negotiation middleware and tests 2023-01-21 00:48:41 -06:00
Victor Losada Hernandez
6b6e05ca11 Readme update, installation text improved 2023-01-21 00:05:54 +01:00
Trevor Buckner
a22d59475e Try @Layers to not need .page in user style 2023-01-13 17:08:12 -05:00
Trevor Buckner
aa23da6ce4 Move curly CSS up so they don't overwrite styles 2023-01-07 00:25:46 -05:00
Gazook89
76d73e0e02 prevent crash if desired attr is not available. 2022-11-29 12:25:58 -06:00
Gazook89
9e289ad6d1 remove unused require 2022-11-29 12:12:10 -06:00
Gazook89
914a4586b9 set dropdown list scroll to auto 2022-11-29 12:08:52 -06:00
Gazook89
12fe787ab4 allow strings for filterOn 2022-11-29 12:06:38 -06:00
Gazook89
fc7c46cfec add ability to filter options on any number of attributes 2022-11-28 21:39:41 -06:00
Gazook89
8d80f699b6 add 'title' attr to lang options 2022-11-24 23:50:19 -06:00
Gazook89
e1ff34ebaa add placeholder to input 2022-11-24 23:33:04 -06:00
Gazook89
ce732778bb add .value div for consistency and styling 2022-11-24 23:21:47 -06:00
Gazook89
b54d225f11 add autoSuggest option to filter on chosen attribute 2022-11-24 23:08:41 -06:00
Gazook89
fb95039368 edit/add autoSuggest options 2022-11-24 22:51:16 -06:00
Gazook89
60ca9530a3 change height to max-height 2022-11-24 20:03:35 -06:00
Gazook89
70d8491e7c remove comment 2022-11-24 19:56:40 -06:00
Gazook89
a9ff1cded7 add autoSuggest option based on option 'value' 2022-11-24 19:55:18 -06:00
Gazook89
417f9d7291 adjust styling to make individual items more apparent 2022-11-24 11:22:25 -06:00
Gazook89
adb261f8f1 revert change to Themes dropdown 2022-11-23 22:44:17 -06:00
Gazook89
678c1fb3d8 create combobox 2022-11-23 22:34:32 -06:00
Trevor Buckner
e4a9c73f56 Merge branch 'master' into WatercolorImageMask 2022-11-23 15:51:49 -05:00
Gazook89
1818ea1e3b dropdown changes 2022-11-22 12:02:27 -06:00
Gazook89
d4b803205e add a few language tags with subtags 2022-11-20 22:20:22 -06:00
Gazook89
a16f12546a set name attr's on inputs to remove autocomplete 2022-11-20 22:11:46 -06:00
Gazook89
b3343e5981 adjust console log of valid errors. 2022-11-20 12:00:35 -06:00
Gazook89
0061040cb6 add a few more language codes to datalist. 2022-11-20 11:56:35 -06:00
Gazook89
c2d79bedb5 add more robust lang code regexp. 2022-11-20 11:42:01 -06:00
Gazook89
9ce79fbe3f update validation on lang field 2022-11-19 19:41:17 -06:00
Gazook89
806dcb04eb change default to 'en', including if input is left empty 2022-11-19 19:27:27 -06:00
Gazook89
d5ea4c4e77 Merge branch 'master' into Language-Attribute 2022-11-19 11:30:54 -06:00
Gazook89
8ca44653e9 use 'en' as default if no entry in input 2022-10-23 22:33:22 -05:00
Gazook89
0b5d9714c0 remove complicated languageCode regexp 2022-10-23 22:27:12 -05:00
Gazook89
b0110f20d2 add alphabetic sort, add keys, minor changes 2022-10-23 22:05:21 -05:00
Gazook89
9e227dadd2 add placeholder text 2022-10-23 21:42:22 -05:00
Gazook89
a214f27e9c set autocomplete to off 2022-10-23 21:22:57 -05:00
Gazook89
2d3b03a9c3 basically the whole thing 2022-10-23 13:11:12 -05:00
Gazook89
af094474b8 flailing around. 2022-10-21 12:01:19 -05:00
Gazook89
d92d00581a Merge branch 'master' into Language-Attribute 2022-10-20 12:40:49 -05:00
G.Ambatte
c30eb9056a Break up text generation for legibility 2022-10-05 22:11:03 +13:00
G.Ambatte
ee3cd21486 Add to base snippets 2022-10-05 21:29:49 +13:00
G.Ambatte
5de63799c2 Update default footnote text 2022-10-05 21:20:39 +13:00
G.Ambatte
dfa8aea1ec Add newPageWithFooter function 2022-10-05 20:37:05 +13:00
G.Ambatte
8e26161244 Add sanitization of Style content 2022-09-28 17:27:11 +13:00
Trevor Buckner
89c091c630 Add 8 corner images.
Doesn't work well with --rotation but you can just set top,left or whatever. --offset works.
2022-09-27 23:55:24 -04:00
Trevor Buckner
b8d7d1a8e4 Allow rotation and positioning up and down 2022-09-25 21:43:40 -04:00
Gazook89
4dc1a60934 add lang property to brewRender and metadataEditor 2022-09-21 13:25:40 -05:00
Gazook89
bce7cf41af add 'lang' as a brew metadata property 2022-09-21 12:21:32 -05:00
Gazook89
8c6fd3086c add language field in metadata editor 2022-09-21 12:07:07 -05:00
Trevor Buckner
d079985e6c Add checkerboard behind image to show position 2022-09-16 00:30:39 -04:00
Trevor Buckner
aba2746f89 Initial commit 2022-09-15 00:35:35 -04:00
LUCASTUCIOUS
2019d91711 [V3] Fix note render to pdf 2022-04-11 22:12:01 +02:00
220 changed files with 13275 additions and 20812 deletions

View File

@@ -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,10 +45,10 @@ jobs:
test:
docker:
- image: cimg/node:16.11.0
- image: cimg/node:20.8.0
working_directory: ~/homebrewery
parallelism: 4
parallelism: 1
steps:
- attach_workspace:
@@ -61,15 +61,21 @@ jobs:
- run:
name: Test - Basic
command: npm run test:basic
- run:
name: Test - Coverage
command: npm run test:coverage
- run:
name: Test - Mustache Spans
command: npm run test:mustache-span
command: npm run test:mustache-syntax
- run:
name: Test - Definition Lists
command: npm run test:definition-lists
- run:
name: Test - Variables
command: npm run test:variables
- run:
name: Test - Routes
command: npm run test:route
- run:
name: Test - Coverage
command: npm run test:coverage
workflows:
build_and_test:

View File

@@ -11,11 +11,11 @@ module.exports = {
browser : true,
node : true
},
plugins : ['react'],
plugins : ['react', 'jest'],
rules : {
/** Errors **/
'camelcase' : ['error', { properties: 'never' }],
'func-style' : ['error', 'expression', { allowArrowFunctions: true }],
//'func-style' : ['error', 'expression', { allowArrowFunctions: true }],
'no-array-constructor' : 'error',
'no-iterator' : 'error',
'no-nested-ternary' : 'error',
@@ -24,6 +24,7 @@ module.exports = {
'react/jsx-no-bind' : ['error', { allowArrowFunctions: true }],
'react/jsx-uses-react' : 'error',
'react/prefer-es6-class' : ['error', 'never'],
'jest/valid-expect' : ['error', { maxArgs: 3 }],
/** Warnings **/
'max-lines' : ['warn', {

View File

@@ -0,0 +1,103 @@
name: Limit pull requests
description: >
Limit the number of open pull requests to the repository created by a user
author: ZhongRuoyu (from Homebrew repository)
branding:
icon: alert-triangle
color: yellow
inputs:
token:
description: GitHub token
required: false
default: ${{ github.token }}
except-users:
description: The users exempted from the limit, one per line
required: false
# https://docs.github.com/en/graphql/reference/enums#commentauthorassociation
except-author-associations:
description: The author associations exempted from the limit, one per line
required: false
comment-limit:
description: >
Post the comment when the user's number of open pull requests exceeds this
number and `comment` is not empty
required: true
default: "10"
comment:
description: The comment to post when the limit is reached
required: false
close-limit:
description: >
Close the pull request when the user's number of open pull requests
exceeds this number and `close` is set to `true`
required: true
default: "50"
close:
description: Whether to close the pull request when the limit is reached
required: true
default: "false"
runs:
using: composite
steps:
- name: Check the number of pull requests
id: count-pull-requests
run: |
# If the user is exempted, assume they have no pull requests.
if grep -Fiqx '${{ github.actor }}' <<<"$EXCEPT_USERS"; then
echo "::notice::@${{ github.actor }} is exempted from the limit."
echo "count=0" >>"$GITHUB_OUTPUT"
exit 0
fi
if grep -Fiqx '${{ github.event.pull_request.author_association }}' <<<"$EXCEPT_AUTHOR_ASSOCIATIONS"; then
echo "::notice::@{{ github.actor }} is a ${{ github.event.pull_request.author_association }} exempted from the limit."
echo "count=0" >>"$GITHUB_OUTPUT"
exit 0
fi
count="$(
gh api \
--method GET \
--header 'Accept: application/vnd.github+json' \
--header 'X-GitHub-Api-Version: 2022-11-28' \
--field state=open \
--paginate \
'/repos/{owner}/{repo}/pulls' |
jq \
--raw-output \
--arg USER '${{ github.actor }}' \
'map(select(.user.login == $USER)) | length'
)"
echo "::notice::@${{ github.actor }} has $count open pull request(s)."
echo "count=$count" >>"$GITHUB_OUTPUT"
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ inputs.token }}
EXCEPT_USERS: ${{ inputs.except-users }}
EXCEPT_AUTHOR_ASSOCIATIONS: ${{ inputs.except-author-associations }}
shell: bash
- name: Comment on pull request
if: >
fromJSON(steps.count-pull-requests.outputs.count) > fromJSON(inputs.comment-limit) &&
inputs.comment != ''
run: |
gh pr comment '${{ github.event.pull_request.number }}' \
--body="${COMMENT_BODY}"
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ inputs.token }}
COMMENT_BODY: ${{ inputs.comment }}
shell: bash
- name: Close pull request
if: >
fromJSON(steps.count-pull-requests.outputs.count) > fromJSON(inputs.close-limit) &&
inputs.close == 'true'
run: |
gh pr close '${{ github.event.pull_request.number }}'
env:
GH_REPO: ${{ github.repository }}
GH_TOKEN: ${{ inputs.token }}
shell: bash

25
.github/workflows/pr-check.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: PR Check
on: pull_request_target
env:
GH_REPO: ${{ github.repository }}
GH_NO_UPDATE_NOTIFIER: 1
GH_PROMPT_DISABLED: 1
permissions:
contents: read
issues: write
pull-requests: write
statuses: write
jobs:
limit-pull-requests:
if: always() && github.repository_owner == 'Homebrew'
runs-on: ubuntu-latest
steps:
- uses: Homebrew/actions/limit-pull-requests@master
with:
except-users: |
dependabot
comment-limit: 1
comment: |
Hi, thanks for your contribution to the Homebrewery! You already have >=3 open pull requests. Consider completing some of your existing PRs before opening new ones. Thanks!
close-limit: 5
close: false

2
.gitignore vendored
View File

@@ -12,3 +12,5 @@ todo.md
startDB.bat
startMViewer.bat
.vscode
coverage

48
.stylelintrc.json Normal file
View File

@@ -0,0 +1,48 @@
{
"extends": [
"stylelint-config-recess-order",
"stylelint-config-recommended"],
"plugins": [
"stylelint-stylistic",
"./stylelint_plugins/declaration-colon-align.js",
"./stylelint_plugins/declaration-colon-min-space-before",
"./stylelint_plugins/declaration-block-multi-line-min-declarations"
],
"customSyntax": "postcss-less",
"rules": {
"no-descending-specificity" : null,
"at-rule-no-unknown" : null,
"function-no-unknown" : null,
"font-family-no-missing-generic-family-keyword" : null,
"font-weight-notation" : "named-where-possible",
"font-family-name-quotes" : "always-unless-keyword",
"stylistic/indentation" : "tab",
"no-duplicate-selectors" : true,
"stylistic/color-hex-case" : "upper",
"color-hex-length" : "long",
"stylistic/selector-combinator-space-after" : "always",
"stylistic/selector-combinator-space-before" : "always",
"stylistic/selector-attribute-operator-space-before" : "never",
"stylistic/selector-attribute-operator-space-after" : "never",
"stylistic/selector-attribute-brackets-space-inside" : "never",
"selector-attribute-quotes" : "always",
"selector-pseudo-element-colon-notation" : "double",
"stylistic/selector-pseudo-class-parentheses-space-inside" : "never",
"stylistic/block-opening-brace-space-before" : "always",
"naturalcrit/declaration-colon-min-space-before" : 1,
"stylistic/declaration-block-trailing-semicolon" : "always",
"stylistic/declaration-colon-space-after" : "always",
"stylistic/number-leading-zero" : "always",
"function-url-quotes" : ["always", { "except": ["empty"] }],
"function-url-scheme-disallowed-list" : ["data","http"],
"comment-whitespace-inside" : "always",
"stylistic/string-quotes" : "single",
"stylistic/media-feature-range-operator-space-before" : "always",
"stylistic/media-feature-range-operator-space-after" : "always",
"stylistic/media-feature-parentheses-space-inside" : "never",
"stylistic/media-feature-colon-space-before" : "always",
"stylistic/media-feature-colon-space-after" : "always",
"naturalcrit/declaration-colon-align" : true,
"naturalcrit/declaration-block-multi-line-min-declarations": 1
}
}

View File

@@ -1,4 +1,4 @@
FROM node:16.11-alpine
FROM node:18-alpine
RUN apk --no-cache add git
ENV NODE_ENV=docker
@@ -10,11 +10,11 @@ WORKDIR /usr/src/app
# This improves caching so we don't have to download the dependencies every time the code changes
COPY package.json ./
# --ignore-scripts tells yarn not to run postbuild. We run it explicitly later
RUN yarn install --ignore-scripts
RUN npm install --ignore-scripts
# Bundle app source and build application
COPY . .
RUN yarn build
RUN npm run build
EXPOSE 8000
CMD [ "yarn", "start" ]
CMD [ "npm", "start" ]

View File

@@ -21,24 +21,29 @@ below.
First, install three programs that The Homebrewery requires to run and retrieve
updates:
1. install [node](https://nodejs.org/en/)
1. install [node](https://nodejs.org/en/), version v16 or higher.
1. install [mongodb](https://www.mongodb.com/try/download/community) (Community version)
For the easiest installation, follow these steps:
1. In the installer, uncheck the option to run as a service.
1. You can install MongoDB Compass if you want a GUI to view your database documents.
1. If you install any version over 6.0, you will have to install [MongoDB Shell](https://www.mongodb.com/try/download/shell).
1. Go to the C:\ drive and create a folder called "data".
1. Inside the "data" folder, create a new folder called "db".
1. Open a command prompt or other terminal and navigate to your MongoDB install folder (C:\Program Files\Mongo\Server\4.4\bin).
1. Open a command prompt or other terminal and navigate to your MongoDB install folder (C:\Program Files\Mongo\Server\6.0\bin).
1. In the command prompt, run "mongod", which will start up your local database server.
1. While MongoD is running, open a second command prompt and navigate to the MongoDB install folder.
1. In the second command prompt, run "mongo", which allows you to edit the database.
1. Type `use homebrewery` to create The Homebrewery database. You should see `switched to db homebrewery`.
1. Type `db.brews.insert({"title":"test"})` to create a blank document. You should see `WriteResult({ "nInserted" : 1 })`.
1. Search in Windows for "Advanced system settings" and open it.
1. Click "Environment variables", find the "path" variable, and double-click to open it.
1. Click "New" and paste in the path to the MongoDB "bin" folder.
1. Click "OK" three times to close all the windows.
1. In the second command prompt, run "mongo", which allows you to edit the database.
1. Type `use homebrewery` to create The Homebrewery database. You should see `switched to db homebrewery`.
1. Type `db.brews.insertOne({"title":"test"})` to create a blank document. You should see `{
acknowledged: true,
insertedId: ObjectId("63c2fce9e5ac5a94fe2410cf")
}`
1. install [git](https://git-scm.com/downloads) (select the option that allows Git to run from the command prompt).
Checkout the repo ([documentation][github-clone-repo-docs-url]):
@@ -51,11 +56,19 @@ git clone https://github.com/naturalcrit/homebrewery.git
Second, you will need to add the environment variable `NODE_ENV=local` to allow
the project to run locally.
You can set this temporarily in your shell of choice:
You can set this **temporarily** (until you close the terminal) in your shell of choice with admin privileges:
* Windows Powershell: `$env:NODE_ENV="local"`
* Windows CMD: `set NODE_ENV=local`
* Linux / macOS: `export NODE_ENV=local`
If you want to add this variable **permanently** the steps are as follows:
1. Search in Windows for "Advanced system settings" and open it.
1. Click "Environment variables".
1. In System Variables, click "New"
1. Click "New" and write `NODE_ENV` as a name and `local` as the value.
1. Click "OK" three times to close all the windows.
This can be undone at any time if needed.
Third, you will need to install the Node dependencies, compile the app, and run
it using the two commands:
@@ -65,6 +78,13 @@ it using the two commands:
You should now be able to go to [http://localhost:8000](http://localhost:8000)
in your browser and use The Homebrewery offline.
If you had any issue at all, here are some links that may be useful:
- [Course](https://learn.mongodb.com/courses/m103-basic-cluster-administration) on cluster administration, useful for beginners
- [Mongo community forums](https://www.mongodb.com/community/forums/)
- Useful Stack Overflow links for your most probable errors: [1](https://stackoverflow.com/questions/44962540/mongod-and-mongo-commands-not-working-on-windows-10), [2](https://stackoverflow.com/questions/15053893/mongo-command-not-recognized-when-trying-to-connect-to-a-mongodb-server/41507803#41507803), [3](https://stackoverflow.com/questions/51224959/mongo-is-not-recognized-as-an-internal-or-external-command-operable-program-o)
If you still have problems, post in [Our Subreddit](https://www.reddit.com/r/homebrewery/) and we will help you.
### Running the application via Docker
Please see the docs here: [README.DOCKER.md](./README.DOCKER.md)

View File

@@ -1,4 +1,23 @@
```css
.beta {
color : white;
padding : 4px 6px;
line-height : 1em;
background : grey;
border-radius : 12px;
font-family : monospace;
font-size : 10px;
font-weight : 800;
margin-top : -5px;
margin-bottom : -5px;
}
.fac {
height: 1em;
line-height: 2em;
margin-bottom: -0.05cm
}
h5 {
font-size: .35cm !important;
}
@@ -56,12 +75,524 @@ pre {
.page {
padding-bottom: 1.5cm;
}
.varSyntaxTable th:first-of-type {
width:6cm;
}
```
## changelog
For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery).
### Friday 23/01/2023 - v3.6.0
### Monday 18/3/2024 - v3.12.0
{{taskList
##### 5e-Cleric
* [x] Fix language-specific hyphenation on print page
Fixes issue [#3294](https://github.com/naturalcrit/homebrewery/issues/3294)
* [x] Upgrade Font-Awesome to v6.51
* [x] Allow downloaded files to be uploaded via {{openSans **NEW {{fa,fa-plus-square}} → FROM UPLOAD {{fa,fa-upload}}**}}
##### G-Ambatte
* [x] Fix an edge case crash with empty documents
Fixes issue [#3315](https://github.com/naturalcrit/homebrewery/issues/3315)
* [x] Brews on the user page can be searched by tag; clicking a tag adds it to the filter
Fixes issue [#3164](https://github.com/naturalcrit/homebrewery/issues/3164)
* [x] Add *DiceFont* icons {{df,d20-20}} `{{df,icon-name}}`
##### abquintic
* [x] Fix ^super^ and ^^sub^^ highlighting in the text editor
* [x] Add new syntax for multiline Definition Lists:
```
Term
::Definition 1
::Definition 2
with more text
```
produces:
Term
::Definition 1
::Definition 2
with more text
Fixes issue [#2340](https://github.com/naturalcrit/homebrewery/issues/2340)
##### RKuerten :
* [x] Fix monster stat block backgrounds on print page
Fixes issue [#3275](https://github.com/naturalcrit/homebrewery/issues/3275)
* [x] Added new text editor theme: "Darkvision".
##### calculuschild, G-Ambatte, 5e-Cleric
* [x] Codebase and UI cleanup
}}
\page
### Friday 21/2/2024 - v3.11.0
{{taskList
##### Gazook89
* [x] Brew view count no longer increases when viewed by owner
Fixes issue [#3037](https://github.com/naturalcrit/homebrewery/issues/3037)
* [x] Small tweak to PHB H3 sizing
Fixes issue [#2989](https://github.com/naturalcrit/homebrewery/issues/2989)
* [x] Add **Fold/Unfold All** {{fas,fa-compress-alt}} / {{fas,fa-expand-alt}} buttons to editor bar
Fixes issue [#2965](https://github.com/naturalcrit/homebrewery/issues/2965)
##### G-Ambatte
* [x] Share link added to Editor Access error page
Fixes issue [#3086](https://github.com/naturalcrit/homebrewery/issues/3086)
* [x] Add Darkbrewery theme to Editor theme selector {{fas,fa-palette}}
Fixes issue [#3034](https://github.com/naturalcrit/homebrewery/issues/3034)
* [x] Fix Firefox prints with alternating blank pages
Fixes issue [#3115](https://github.com/naturalcrit/homebrewery/issues/3115)
* [x] Admin page working again
Fixes issue [#2657](https://github.com/naturalcrit/homebrewery/issues/2657)
##### 5e-Cleric
* [x] Fix indenting issue with Monster Blocks and italics in Class Feature
Fixes issues [#527](https://github.com/naturalcrit/homebrewery/issues/527),
[#3247](https://github.com/naturalcrit/homebrewery/issues/3247)
* [x] Allow CSS vars in curly syntax to be formatted as strings using single quotes
`{{--customVar:"'a string'"}}`
Fixes issue [#3066](https://github.com/naturalcrit/homebrewery/issues/3066)
* [x] Add *Elderberry Inn* icons {{ei,action}} `{{ei,icon-name}}`
Fixes issue [#3171](https://github.com/naturalcrit/homebrewery/issues/3171)
* [x] New {{openSans **{{fas,fa-keyboard}} FONTS** }} snippets!
Fixes issue [#3171](https://github.com/naturalcrit/homebrewery/issues/3171)
* [x] New page now opens in a new tab
##### abquintic (new contributor!)
* [x] Add ^super^ `^abc^` and ^^sub^^ `^^abc^^` syntax.
Fixes issue [#2171](https://github.com/naturalcrit/homebrewery/issues/2171)
* [x] Add HTML tag assignment to curly syntax `{{tag=value}}`
Fixes issue [1488](https://github.com/naturalcrit/homebrewery/issues/1488)
* [x] {{openSans **Brew → Clone to New**}} now clones tags
Fixes issue [1488](https://github.com/naturalcrit/homebrewery/issues/1488)
##### calculuschild
* [x] Better error messages for "Out of Google Drive Storage" and "Not logged in to edit"
Fixes issues [2510](https://github.com/naturalcrit/homebrewery/issues/2510),
[2975](https://github.com/naturalcrit/homebrewery/issues/2975)
* [x] Brew Variables
}}
\
{{wide
### Brew Variable Syntax
You may already be familiar with `[link](url)` and `![image](url)` synax. We have expanded this to include a third `$[variable](text)` syntax. All three of these syntaxes now share a common set of features:
{{varSyntaxTable
| syntax | description |
|:-------|-------------|
| `[var]:content` | Assigns a variable (must start on a line by itself, and ends at the next blank line) |
| `[var](content)` | Assigns a variable and outputs it (can be inline) |
| `[var]` | Outputs the variable contents as a link, if formatted as a valid link |
| `![var]` | Outputs as an image, if formatted as a valid image |
| `$[var]` | Outputs as Markdown |
| `$[var1 + var2 - 2 * var3]` | Performs math operations and outputs result if all variables are valid numbers |
}}
}}
{{wide,margin-top:0,margin-bottom:0
### Examples
}}
{{wide,columns:2,margin-top:0,margin-bottom:0
```
[first]: Bob
[last]: Jones
My name is $[first] $[last].
```
\column
[first]: Bob
[last]: Jones
My name is $[first] $[last].
}}
{{wide,columns:2,margin-top:0,margin-bottom:0
```
[myTable]:
| h1 | h2 |
|----|----|
| c1 | c2 |
Here is my table:
$[myTable]
```
\column
[myTable]:
| h1 | h2 |
|----|----|
| c1 | c2 |
Here is my table:
$[myTable]
}}
{{wide,columns:2,margin-top:0,margin-bottom:0
```
There are $[TableNum] tables total.
#### Table $[TableNum](1): Horses
#### Table $[TableNum]($[TableNum + 1]): Cows
```
\column
There are $[TableNum] tables in this document. *(note: final value of `$[TableNum]` gets hoisted up if available)*
#### Table $[TableNum](1): Horses
#### Table $[TableNum]($[TableNum + 1]): Cows
}}
\page
### 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 <code>:\:</code>
}}
### Thursday 17/08/2023 - v3.9.2
{{taskList
##### Calculuschild
* [x] Fix links to certain old Google Drive files
Fixes issue [#2917](https://github.com/naturalcrit/homebrewery/issues/2917)
##### G-Ambatte
* [x] Menus now open on click, and internally consistent
Fixes issue [#2702](https://github.com/naturalcrit/homebrewery/issues/2702), [#2782](https://github.com/naturalcrit/homebrewery/issues/2782)
* [x] Add smarter footer snippet
Fixes issue [#2289](https://github.com/naturalcrit/homebrewery/issues/2289)
* [x] Add sanitization in Style editor
Fixes issue [#1437](https://github.com/naturalcrit/homebrewery/issues/1437)
* [x] Rework class table snippets to remove unnecessary randomness
Fixes issue [#2964](https://github.com/naturalcrit/homebrewery/issues/2964)
* [x] Add User Page link to Google Drive file for file owners, add icons for additional storage locations
Fixes issue [#2954](https://github.com/naturalcrit/homebrewery/issues/2954)
* [x] Add default save location selection to Account Page
Fixes issue [#2943](https://github.com/naturalcrit/homebrewery/issues/2943)
##### 5e-Cleric
* [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)
##### Gazook89
* [x] Adjustments to improve mobile viewing
}}
### Wednesday 28/06/2023 - v3.9.1
{{taskList
##### G-Ambatte
* [x] Better error pages with more useful information
Fixes issue [#1924](https://github.com/naturalcrit/homebrewery/issues/1924)
}}
### Friday 02/06/2023 - v3.9.0
{{taskList
##### Calculuschild
* [x] Fix some files not showing up on userpage when user has a large number of brews in Google Drive
Fixes issue [#2408](https://github.com/naturalcrit/homebrewery/issues/2408)
* [x] Pressing tab now indents with spaces instead of tab character; fixes several issues with Markdown lists
Fixes issues [#2092](https://github.com/naturalcrit/homebrewery/issues/2092), [#1556](https://github.com/naturalcrit/homebrewery/issues/1556)
* [x] Rename `naturalCritLogo.svg` to `naturalCritLogoRed.svg`. Those using the {{beta BETA}} coverPage snippet may need to update that text to make the NaturalCrit logo appear again.
##### G-Ambatte
* [x] Fix strange animation of image masks
Fixes issue [#2790](https://github.com/naturalcrit/homebrewery/issues/2790)
##### 5e-Cleric
* [x] New {{openSans **PHB → {{fac,book-part-cover}} PART COVER PAGE** }} snippet for V3!
* [x] New {{openSans **PHB → {{fac,book-back-cover}} BACK COVER PAGE** }} snippet for V3! (Thanks to /u/Kaiburr_Kath-Hound on Reddit for providing some of these resources!)
* [x] New {{openSans **TEXT EDITOR → {{fas,fa-bars}} INDEX** }} snippet for V3!
* [x] Fix highlighting of curly braces inside comments
Fixes issue [#2784](https://github.com/naturalcrit/homebrewery/issues/2784)
}}
\page
### Wednesday 12/04/2023 - v3.8.0
{{taskList
##### calculuschild
* [x] Rename `{{coverPage}}` to `{{frontCover}}`. Those using this {{beta BETA}} feature will need to update that text to make the cover page appear again.
* [x] Several background fixes to test scripts
##### Jeddai
* [X] Add content negotiation to exclude image requests from our API calls
Fixes issue [#2595](https://github.com/naturalcrit/homebrewery/issues/2595)
##### G-Ambatte
* [x] Update server build scripts to fix Admin page
Fixes issues [#2657](https://github.com/naturalcrit/homebrewery/issues/2657)
* [x] Fix internal links inside `<\div>` blocks not receiving the `target=_self` attribute
Fixes issues [#2680](https://github.com/naturalcrit/homebrewery/issues/2680)
* [x] See brew details on `/share` pages by clicking the brew title (author, last update, tags, etc.)
Fixes issues [#1679](https://github.com/naturalcrit/homebrewery/issues/1679)
* [x] Add local Windows install script via Chocolatey
##### 5e-Cleric
* [x] New {{openSans **TABLES → {{fas,fa-language}} RUNE TABLE**}} snippets for V3. Adds an alphabetic script translation table.
* [x] New {{openSans **IMAGES → {{fac,mask-center}} WATERCOLOR CENTER** }} snippets for V3, which adds a stylish watercolor texture to the center of your images!
* [x] New {{openSans **PHB → {{fac,book-inside-cover}} INSIDE COVER PAGE** }} snippet for V3! (Thanks to /u/Kaiburr_Kath-Hound on Reddit for providing some of these resources!)
* [x] Add some missing characters {{font-family:scalySansRemake Ñ ñ ç Ç Ý ý # ^ ¿ ' " ¡ ·}} to the "scalySansRemake" font in V3.
Fixes issues [#2280](https://github.com/naturalcrit/homebrewery/issues/2280)
##### Gazook89
* [x] Add "Language" selector in {{fa,fa-info-circle}} **Properties** menu. Sets the HTML Lang attribute for your brew to better handle hyphenation or spellcheck.
Fixes issues [#1343](https://github.com/naturalcrit/homebrewery/issues/1343)
* [x] Fix a crash when multiple `{injection}` tags appear in sequence
Fixes issues [#2712](https://github.com/naturalcrit/homebrewery/issues/2712)
##### MichielDeMey
* [x] Remove all-caps display on Account button since usernames are case-sensitive.
Fixes issues [#2731](https://github.com/naturalcrit/homebrewery/issues/2731)
}}
### Monday 13/03/2023 - v3.7.2
{{taskList
##### Calculuschild
* [x] Fix wide Monster Stat Blocks not spanning columns on Legacy
}}
### Thursday 09/03/2023 - v3.7.1
{{taskList
##### Lucastucious (new contributor!)
* [x] Changed `filter: drop-shadow` to `box-shadow` on text boxes, making PDF text selectable
Fixes issues [#1569](https://github.com/naturalcrit/homebrewery/issues/1569)
{{note
**NOTE:** If you create your PDF on a computer with an old version of Mac Preview (v10 or older) you may see shadows appear as solid gray.
}}
##### MichielDeMey
* [x] Updated the Google Drive icon
* [x] Backend fix to unit tests failing intermittently
##### Calculuschild
* [x] Fix PDF pixelation on CoverPage text outlines
}}
### Tuesday 28/02/2023 - v3.7.0
{{taskList
{{note
**NOTE:** Some new snippets will now show a {{beta BETA}} tag. Feel free to use them, but be aware we may change how they work depending on your feedback.
}}
##### Calculuschild
* [x] New {{openSans **IMAGES → WATERCOLOR EDGE** {{fac,mask-edge}} }} and {{openSans **WATERCOLOR CORNER** {{fac,mask-corner}} }} snippets for V3, which adds a stylish watercolor texture to the edge of your images! (Thanks to /u/flamableconcrete on Reddit for providing these image masks!)
* [x] Fix site not displaying on iOS devices
##### 5e-Cleric
* [x] New {{openSans **PHB → COVER PAGE** {{fac,book-front-cover}} }} snippet for V3, which adds a stylish coverpage to your brew! (Thanks to /u/Kaiburr_Kath-Hound on Reddit for providing some of these resources!)
##### MichielDeMey (new contribuor!)
* [x] Fix typo in testing scripts
* [x] Fix "mug" image not using HTTPS
Fixes issues [#2687](https://github.com/naturalcrit/homebrewery/issues/2687)
}}
### Saturday 18/02/2023 - v3.6.1
{{taskList
##### G-Ambatte
* [x] Fix users not being removed from Authors list
Fixes issues [#2674](https://github.com/naturalcrit/homebrewery/issues/2674)
}}
### Monday 23/01/2023 - v3.6.0
{{taskList
##### calculuschild
@@ -76,7 +607,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
@@ -86,6 +621,7 @@ Fixes issues [#2583](https://github.com/naturalcrit/homebrewery/issues/2583)
* [x] Fix cloned brews inheriting the parent view count
}}
### Friday 23/12/2022 - v3.5.0
{{taskList
@@ -99,8 +635,6 @@ Fixes issues [#2583](https://github.com/naturalcrit/homebrewery/issues/2583)
Fixes issues [#1987](https://github.com/naturalcrit/homebrewery/issues/1987)
}}
\page
### Saturday 10/12/2022 - v3.4.2
{{taskList
@@ -1043,7 +1577,7 @@ myStyle {color: black}
### Sunday, 29/05/2016 - v2.1.0
- Finally added a syntax for doing spell lists. A bit in-depth about why this took so long. Essentially I'm running out of syntax to use in stardard Markdown. There are too many unique elements in the PHB-style to be mapped. I solved this earlier by stacking certain elements together (eg. an `<hr>` before a `blockquote` turns it into moster state block), but those are getting unweildly. I would like to simply wrap these in `div`s with classes, but unfortunately Markdown stops processing when within HTML blocks. To get around this I wrote my own override to the Markdown parser and lexer to process Markdown within a simple div class wrapper. This should open the door for more unique syntaxes in the future. Big step!
- Override Ctrl+P (and cmd+P) to launch to the print page. Many people try to just print either the editing or share page to get a PDF. While this dones;t make much sense, I do get a ton of issues about it. So now if you try to do this, it'll just bring you imediately to the print page. Everybody wins!
- The onboarding flow has also been confusing a few users (Homepage -> new -> save -> edit page). If you edit the Homepage text now, a Call to Action to save your work will pop-up.
- The onboarding flow has also been confusing a few users (Homepage new save edit page). If you edit the Homepage text now, a Call to Action to save your work will pop-up.
- Added a 'Recently Edited' and 'Recently Viewed' nav item to the edit and share page respectively. Each will remember the last 8 items you edited or viewed and when you viewed it. Makes use of the new title attribute of brews to easy navigatation.
- Paragraphs now indent properly after lists (thanks u/slitjen!)
@@ -1170,4 +1704,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

View File

@@ -0,0 +1,129 @@
const React = require('react');
const createClass = require('create-react-class');
const _ = require('lodash');
const cx = require('classnames');
require('./combobox.less');
const Combobox = createClass({
displayName : 'Combobox',
getDefaultProps : function() {
return {
className : '',
trigger : 'hover',
default : '',
placeholder : '',
autoSuggest : {
clearAutoSuggestOnClick : true,
suggestMethod : 'includes',
filterOn : [] // should allow as array to filter on multiple attributes, or even custom filter
},
};
},
getInitialState : function() {
return {
showDropdown : false,
value : '',
options : [...this.props.options],
inputFocused : false
};
},
componentDidMount : function() {
if(this.props.trigger == 'click')
document.addEventListener('click', this.handleClickOutside);
this.setState({
value : this.props.default
});
},
componentWillUnmount : function() {
if(this.props.trigger == 'click')
document.removeEventListener('click', this.handleClickOutside);
},
handleClickOutside : function(e){
// Close dropdown when clicked outside
if(this.refs.dropdown && !this.refs.dropdown.contains(e.target)) {
this.handleDropdown(false);
}
},
handleDropdown : function(show){
this.setState({
showDropdown : show,
inputFocused : this.props.autoSuggest.clearAutoSuggestOnClick ? show : false
});
},
handleInput : function(e){
e.persist();
this.setState({
value : e.target.value,
inputFocused : false
}, ()=>{
this.props.onEntry(e);
});
},
handleSelect : function(e){
this.setState({
value : e.currentTarget.getAttribute('data-value')
}, ()=>{this.props.onSelect(this.state.value);});
;
},
renderTextInput : function(){
return (
<div className='dropdown-input item'
onMouseEnter={this.props.trigger == 'hover' ? ()=>{this.handleDropdown(true);} : undefined}
onClick= {this.props.trigger == 'click' ? ()=>{this.handleDropdown(true);} : undefined}>
<input
type='text'
onChange={(e)=>this.handleInput(e)}
value={this.state.value || ''}
placeholder={this.props.placeholder}
onBlur={(e)=>{
if(!e.target.checkValidity()){
this.setState({
value : this.props.default
}, ()=>this.props.onEntry(e));
}
}}
/>
</div>
);
},
renderDropdown : function(dropdownChildren){
if(!this.state.showDropdown) return null;
if(this.props.autoSuggest && !this.state.inputFocused){
const suggestMethod = this.props.autoSuggest.suggestMethod;
const filterOn = _.isString(this.props.autoSuggest.filterOn) ? [this.props.autoSuggest.filterOn] : this.props.autoSuggest.filterOn;
const filteredArrays = filterOn.map((attr)=>{
const children = dropdownChildren.filter((item)=>{
if(suggestMethod === 'includes'){
return item.props[attr]?.toLowerCase().includes(this.state.value.toLowerCase());
} else if(suggestMethod === 'startsWith'){
return item.props[attr]?.toLowerCase().startsWith(this.state.value.toLowerCase());
}
});
return children;
});
dropdownChildren = _.uniq(filteredArrays.flat(1));
}
return (
<div className='dropdown-options'>
{dropdownChildren}
</div>
);
},
render : function () {
const dropdownChildren = this.state.options.map((child, i)=>{
const clone = React.cloneElement(child, { onClick: (e)=>this.handleSelect(e) });
return clone;
});
return (
<div className={`dropdown-container ${this.props.className}`}
ref='dropdown'
onMouseLeave={this.props.trigger == 'hover' ? ()=>{this.handleDropdown(false);} : undefined}>
{this.renderTextInput()}
{this.renderDropdown(dropdownChildren)}
</div>
);
}
});
module.exports = Combobox;

View File

@@ -0,0 +1,50 @@
.dropdown-container {
position:relative;
input {
width: 100%;
}
.dropdown-options {
position:absolute;
background-color: white;
z-index: 100;
width: 100%;
border: 1px solid gray;
overflow-y: auto;
max-height: 200px;
&::-webkit-scrollbar {
width: 14px;
}
&::-webkit-scrollbar-track {
background: #ffffff;
}
&::-webkit-scrollbar-thumb {
background-color: #949494;
border-radius: 10px;
border: 3px solid #ffffff;
}
.item {
position:relative;
font-size: 11px;
font-family: Open Sans;
padding: 5px;
cursor: default;
margin: 0 3px;
//border-bottom: 1px solid darkgray;
&:hover {
filter: brightness(120%);
background-color: rgb(163, 163, 163);
}
.detail {
width:100%;
text-align: left;
color: rgb(124, 124, 124);
font-style:italic;
font-size: 9px;
}
}
}
}

View File

@@ -1,9 +1,8 @@
/*eslint max-lines: ["warn", {"max": 300, "skipBlankLines": true, "skipComments": true}]*/
require('./brewRenderer.less');
const React = require('react');
const createClass = require('create-react-class');
const { useState, useRef, useEffect } = React;
const _ = require('lodash');
const cx = require('classnames');
const MarkdownLegacy = require('naturalcrit/markdownLegacy.js');
const Markdown = require('naturalcrit/markdown.js');
@@ -13,227 +12,226 @@ const ErrorBar = require('./errorBar/errorBar.jsx');
const RenderWarnings = require('homebrewery/renderWarnings/renderWarnings.jsx');
const NotificationPopup = require('./notificationPopup/notificationPopup.jsx');
const Frame = require('react-frame-component').default;
const dedent = require('dedent-tabs').default;
const Themes = require('themes/themes.json');
const PAGE_HEIGHT = 1056;
const PPR_THRESHOLD = 50;
const BrewRenderer = createClass({
displayName : 'BrewRenderer',
getDefaultProps : function() {
return {
text : '',
style : '',
renderer : 'legacy',
theme : '5ePHB',
errors : []
};
},
getInitialState : function() {
let pages;
if(this.props.renderer == 'legacy') {
pages = this.props.text.split('\\page');
} else {
pages = this.props.text.split(/^\\page$/gm);
}
const INITIAL_CONTENT = dedent`
<!DOCTYPE html><html><head>
<link href="//use.fontawesome.com/releases/v6.5.1/css/all.css" rel="stylesheet" type="text/css" />
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700" rel="stylesheet" type="text/css" />
<link href='/homebrew/bundle.css' type="text/css" rel='stylesheet' />
<base target=_blank>
</head><body style='overflow: hidden'><div></div></body></html>`;
return {
viewablePageNumber : 0,
height : 0,
isMounted : false,
//v=====----------------------< Brew Page Component >---------------------=====v//
const BrewPage = (props)=>{
props = {
contents : '',
index : 0,
...props
};
return <div className={props.className} id={`p${props.index + 1}`} >
<div className='columnWrapper' dangerouslySetInnerHTML={{ __html: props.contents }} />
</div>;
};
pages : pages,
usePPR : pages.length >= PPR_THRESHOLD,
visibility : 'hidden',
initialContent : `<!DOCTYPE html><html><head>
<link href="//use.fontawesome.com/releases/v5.15.1/css/all.css" rel="stylesheet" />
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700" rel="stylesheet" type="text/css" />
<link href='/homebrew/bundle.css' rel='stylesheet' />
<base target=_blank>
</head><body style='overflow: hidden'><div></div></body></html>`
};
},
height : 0,
lastRender : <div></div>,
componentWillUnmount : function() {
window.removeEventListener('resize', this.updateSize);
},
//v=====--------------------< Brew Renderer Component >-------------------=====v//
const renderedPages = [];
let rawPages = [];
componentDidUpdate : function(prevProps) {
if(prevProps.text !== this.props.text) {
let pages;
if(this.props.renderer == 'legacy') {
pages = this.props.text.split('\\page');
} else {
pages = this.props.text.split(/^\\page$/gm);
}
this.setState({
pages : pages,
usePPR : pages.length >= PPR_THRESHOLD
});
}
},
const BrewRenderer = (props)=>{
props = {
text : '',
style : '',
renderer : 'legacy',
theme : '5ePHB',
lang : '',
errors : [],
currentEditorPage : 0,
...props
};
updateSize : function() {
this.setState({
height : this.refs.main.parentNode.clientHeight,
});
},
const [state, setState] = useState({
viewablePageNumber : 0,
height : PAGE_HEIGHT,
isMounted : false,
visibility : 'hidden',
});
handleScroll : function(e){
const target = e.target;
this.setState((prevState)=>({
viewablePageNumber : Math.floor(target.scrollTop / target.scrollHeight * prevState.pages.length)
const mainRef = useRef(null);
if(props.renderer == 'legacy') {
rawPages = props.text.split('\\page');
} else {
rawPages = props.text.split(/^\\page$/gm);
}
useEffect(()=>{ // Unmounting steps
return ()=>{window.removeEventListener('resize', updateSize);};
}, []);
const updateSize = ()=>{
setState((prevState)=>({
...prevState,
height : mainRef.current.parentNode.clientHeight,
}));
},
};
shouldRender : function(pageText, index){
if(!this.state.isMounted) return false;
const handleScroll = (e)=>{
const target = e.target;
setState((prevState)=>({
...prevState,
viewablePageNumber : Math.floor(target.scrollTop / target.scrollHeight * rawPages.length)
}));
};
const viewIndex = this.state.viewablePageNumber;
if(index == viewIndex - 3) return true;
if(index == viewIndex - 2) return true;
if(index == viewIndex - 1) return true;
if(index == viewIndex) return true;
if(index == viewIndex + 1) return true;
if(index == viewIndex + 2) return true;
if(index == viewIndex + 3) return true;
const isInView = (index)=>{
if(!state.isMounted)
return false;
//Check for style tages
if(pageText.indexOf('<style>') !== -1) return true;
if(index == props.currentEditorPage) //Already rendered before this step
return false;
if(Math.abs(index - state.viewablePageNumber) <= 3)
return true;
return false;
},
};
renderPageInfo : function(){
return <div className='pageInfo' ref='main'>
const sanitizeScriptTags = (content)=>{
return content
?.replace(/<script/ig, '&lt;script')
.replace(/<\/script>/ig, '&lt;/script&gt;')
|| '';
};
const renderPageInfo = ()=>{
return <div className='pageInfo' ref={mainRef}>
<div>
{this.props.renderer}
{props.renderer}
</div>
<div>
{this.state.viewablePageNumber + 1} / {this.state.pages.length}
{state.viewablePageNumber + 1} / {rawPages.length}
</div>
</div>;
},
};
renderPPRmsg : function(){
if(!this.state.usePPR) return;
return <div className='ppr_msg'>
Partial Page Renderer is enabled, because your brew is so large. May affect rendering.
</div>;
},
renderDummyPage : function(index){
const renderDummyPage = (index)=>{
return <div className='phb page' id={`p${index + 1}`} key={index}>
<i className='fas fa-spinner fa-spin' />
</div>;
},
};
renderStyle : function() {
if(!this.props.style) return;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style> ${this.props.style} </style>` }} />;
},
const renderStyle = ()=>{
if(!props.style) return;
const cleanStyle = sanitizeScriptTags(props.style);
//return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style>@layer styleTab {\n${sanitizeScriptTags(props.style)}\n} </style>` }} />;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style> ${cleanStyle} </style>` }} />;
};
renderPage : function(pageText, index){
if(this.props.renderer == 'legacy')
return <div className='phb page' id={`p${index + 1}`} dangerouslySetInnerHTML={{ __html: MarkdownLegacy.render(pageText) }} key={index} />;
else {
pageText += `\n\n&nbsp;\n\\column\n&nbsp;`; //Artificial column break at page end to emulate column-fill:auto (until `wide` is used, when column-fill:balance will reappear)
return (
<div className='page' id={`p${index + 1}`} key={index} >
<div className='columnWrapper' dangerouslySetInnerHTML={{ __html: Markdown.render(pageText) }} />
</div>
);
const renderPage = (pageText, index)=>{
let cleanPageText = sanitizeScriptTags(pageText);
if(props.renderer == 'legacy') {
const html = MarkdownLegacy.render(cleanPageText);
return <BrewPage className='page phb' index={index} key={index} contents={html} />;
} else {
cleanPageText += `\n\n&nbsp;\n\\column\n&nbsp;`; //Artificial column break at page end to emulate column-fill:auto (until `wide` is used, when column-fill:balance will reappear)
const html = Markdown.render(cleanPageText, index);
return <BrewPage className='page' index={index} key={index} contents={html} />;
}
},
};
renderPages : function(){
if(this.state.usePPR){
return _.map(this.state.pages, (page, index)=>{
if(this.shouldRender(page, index) && typeof window !== 'undefined'){
return this.renderPage(page, index);
} else {
return this.renderDummyPage(index);
}
});
}
if(this.props.errors && this.props.errors.length) return this.lastRender;
this.lastRender = _.map(this.state.pages, (page, index)=>{
if(typeof window !== 'undefined') {
return this.renderPage(page, index);
} else {
return this.renderDummyPage(index);
const renderPages = ()=>{
if(props.errors && props.errors.length)
return renderedPages;
if(rawPages.length != renderedPages.length) // Re-render all pages when page count changes
renderedPages.length = 0;
// Render currently-edited page first so cross-page effects (variables, links) can propagate out first
renderedPages[props.currentEditorPage] = renderPage(rawPages[props.currentEditorPage], props.currentEditorPage);
_.forEach(rawPages, (page, index)=>{
if((isInView(index) || !renderedPages[index]) && typeof window !== 'undefined'){
renderedPages[index] = renderPage(page, index); // Render any page not yet rendered, but only re-render those in PPR range
}
});
return this.lastRender;
},
return renderedPages;
};
frameDidMount : function(){ //This triggers when iFrame finishes internal "componentDidMount"
const frameDidMount = ()=>{ //This triggers when iFrame finishes internal "componentDidMount"
setTimeout(()=>{ //We still see a flicker where the style isn't applied yet, so wait 100ms before showing iFrame
this.updateSize();
window.addEventListener('resize', this.updateSize);
this.renderPages(); //Make sure page is renderable before showing
this.setState({
updateSize();
window.addEventListener('resize', updateSize);
renderPages(); //Make sure page is renderable before showing
setState((prevState)=>({
...prevState,
isMounted : true,
visibility : 'visible'
});
}));
}, 100);
},
};
render : function(){
//render in iFrame so broken code doesn't crash the site.
//Also render dummy page while iframe is mounting.
const rendererPath = this.props.renderer == 'V3' ? 'V3' : 'Legacy';
const themePath = this.props.theme ?? '5ePHB';
const baseThemePath = Themes[rendererPath][themePath].baseTheme;
const emitClick = ()=>{ // Allow clicks inside iFrame to interact with dropdowns, etc. from outside
if(!window || !document) return;
document.dispatchEvent(new MouseEvent('click'));
};
return (
<React.Fragment>
{!this.state.isMounted
? <div className='brewRenderer' onScroll={this.handleScroll}>
<div className='pages' ref='pages'>
{this.renderDummyPage(1)}
</div>
const rendererPath = props.renderer == 'V3' ? 'V3' : 'Legacy';
const themePath = props.theme ?? '5ePHB';
const baseThemePath = Themes[rendererPath][themePath].baseTheme;
return (
<>
{/*render dummy page while iFrame is mounting.*/}
{!state.isMounted
? <div className='brewRenderer' onScroll={handleScroll}>
<div className='pages'>
{renderDummyPage(1)}
</div>
: null}
</div>
: null}
<Frame id='BrewRenderer' initialContent={this.state.initialContent}
style={{ width: '100%', height: '100%', visibility: this.state.visibility }}
contentDidMount={this.frameDidMount}>
<div className={'brewRenderer'}
onScroll={this.handleScroll}
style={{ height: this.state.height }}>
{/*render in iFrame so broken code doesn't crash the site.*/}
<Frame id='BrewRenderer' initialContent={INITIAL_CONTENT}
style={{ width: '100%', height: '100%', visibility: state.visibility }}
contentDidMount={frameDidMount}
onClick={()=>{emitClick();}}
>
<div className={'brewRenderer'}
onScroll={handleScroll}
style={{ height: state.height }}>
<ErrorBar errors={this.props.errors} />
<div className='popups'>
<RenderWarnings />
<NotificationPopup />
</div>
<link href={`/themes/${rendererPath}/Blank/style.css`} rel='stylesheet'/>
{baseThemePath &&
<link href={`/themes/${rendererPath}/${baseThemePath}/style.css`} rel='stylesheet'/>
}
<link href={`/themes/${rendererPath}/${themePath}/style.css`} rel='stylesheet'/>
{/* Apply CSS from Style tab and render pages from Markdown tab */}
{this.state.isMounted
&&
<>
{this.renderStyle()}
<div className='pages' ref='pages'>
{this.renderPages()}
</div>
</>
}
<ErrorBar errors={props.errors} />
<div className='popups'>
<RenderWarnings />
<NotificationPopup />
</div>
</Frame>
{this.renderPageInfo()}
{this.renderPPRmsg()}
</React.Fragment>
);
}
});
<link href={`/themes/${rendererPath}/Blank/style.css`} type="text/css" rel='stylesheet'/>
{baseThemePath &&
<link href={`/themes/${rendererPath}/${baseThemePath}/style.css`} type="text/css" rel='stylesheet'/>
}
<link href={`/themes/${rendererPath}/${themePath}/style.css`} type="text/css" rel='stylesheet'/>
{/* Apply CSS from Style tab and render pages from Markdown tab */}
{state.isMounted
&&
<>
{renderStyle()}
<div className='pages' lang={`${props.lang || 'en'}`}>
{renderPages()}
</div>
</>
}
</div>
</Frame>
{renderPageInfo()}
</>
);
};
module.exports = BrewRenderer;

View File

@@ -1,46 +1,66 @@
@import (multiple, less) 'shared/naturalcrit/styles/reset.less';
.brewRenderer{
.brewRenderer {
will-change : transform;
overflow-y : scroll;
.pages{
:where(.pages) {
margin : 30px 0px;
&>.page{
& > :where(.page) {
width : 215.9mm;
height : 279.4mm;
margin-right : auto;
margin-bottom : 30px;
margin-left : auto;
box-shadow : 1px 4px 14px #000;
box-shadow : 1px 4px 14px #000000;
}
}
&::-webkit-scrollbar {
width: 20px;
&:horizontal{
height: 20px;
width:auto;
}
&-thumb {
background: linear-gradient(90deg, #d3c1af 15px, #00000000 15px);
&:horizontal{
background: linear-gradient(0deg, #d3c1af 15px, #00000000 15px);
}
}
&-corner {
visibility: hidden;
}
}
}
.pane{
position : relative;
}
.pageInfo{
.pane { position : relative; }
.pageInfo {
position : absolute;
right : 17px;
bottom : 0;
z-index : 1000;
background-color : #333;
font-size : 10px;
font-weight : 800;
color : white;
background-color : #333333;
div {
display: inline-block;
display : inline-block;
padding : 8px 10px;
&:not(:last-child){
border-right: 1px solid #666;
}
&:not(:last-child) { border-right : 1px solid #666666; }
}
}
.ppr_msg{
.ppr_msg {
position : absolute;
left : 0px;
bottom : 0;
left : 0px;
z-index : 1000;
padding : 8px 10px;
background-color : #333;
font-size : 10px;
font-weight : 800;
color : white;
background-color : #333333;
}

View File

@@ -4,7 +4,7 @@ const createClass = require('create-react-class');
const _ = require('lodash');
const cx = require('classnames'); //Unused variable
const DISMISS_KEY = 'dismiss_notification08-27-22';
const DISMISS_KEY = 'dismiss_notification12-04-23';
const NotificationPopup = createClass({
displayName : 'NotificationPopup',
@@ -25,21 +25,10 @@ const NotificationPopup = createClass({
return (
<>
<li key='psa'>
<em>V3.2.0 Released!</em> <br />
We are happy to announce that after nearly a year of use by our many users,
we are making the V3 render mode the default setting for all new brews.
This mode has become quite popular, and has proven to be stable and powerful.
Of course, we will always keep the option to use the Legacy renderer for any
brew, which can still be accessed from the Properties menu.
</li>
<li key='stubs'>
<em>Change to Google Drive Storage!</em> <br />
We have made a change to the process of tranferring brews between Google
Drive and the Homebrewery storage. Starting now, any time a brew is
transferred, it will keep the same links instead of generating new ones!
We hope this change will help reduce issues where people "lost" their work
by trying to visit old links.
<em>Don't store IMAGES in Google Drive</em><br />
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.
</li>
<li key='googleDriveFolder'>

View File

@@ -10,6 +10,8 @@ const CodeEditor = require('naturalcrit/codeEditor/codeEditor.jsx');
const SnippetBar = require('./snippetbar/snippetbar.jsx');
const MetadataEditor = require('./metadataEditor/metadataEditor.jsx');
const EDITOR_THEME_KEY = 'HOMEBREWERY-EDITOR-THEME';
const SNIPPETBAR_HEIGHT = 25;
const DEFAULT_STYLE_TEXT = dedent`
/*=======--- Example CSS styling ---=======*/
@@ -34,12 +36,14 @@ const Editor = createClass({
onMetaChange : ()=>{},
reportError : ()=>{},
renderer : 'legacy'
editorTheme : 'default',
renderer : 'legacy'
};
},
getInitialState : function() {
return {
view : 'text' //'text', 'style', 'meta'
editorTheme : this.props.editorTheme,
view : 'text' //'text', 'style', 'meta'
};
},
@@ -51,6 +55,13 @@ const Editor = createClass({
this.updateEditorSize();
this.highlightCustomMarkdown();
window.addEventListener('resize', this.updateEditorSize);
const editorTheme = window.localStorage.getItem(EDITOR_THEME_KEY);
if(editorTheme) {
this.setState({
editorTheme : editorTheme
});
}
},
componentWillUnmount : function() {
@@ -70,7 +81,7 @@ const Editor = createClass({
updateEditorSize : function() {
if(this.refs.codeEditor) {
let paneHeight = this.refs.main.parentNode.clientHeight;
paneHeight -= SNIPPETBAR_HEIGHT + 1;
paneHeight -= SNIPPETBAR_HEIGHT;
this.refs.codeEditor.codeMirror.setSize(null, paneHeight);
}
},
@@ -138,9 +149,45 @@ const Editor = createClass({
codeMirror.addLineClass(lineNumber, 'text', 'columnSplit');
}
// definition lists
if(line.includes('::')){
if(/^:*$/.test(line) == true){ return };
const regex = /^([^\n]*?:?\s?)(::[^\n]*)(?:\n|$)/ymd; // the `d` flag, for match indices, throws an ESLint error.
let match;
while ((match = regex.exec(line)) != null){
codeMirror.markText({ line: lineNumber, ch: match.indices[0][0] }, { line: lineNumber, ch: match.indices[0][1] }, { className: 'dl-highlight' });
codeMirror.markText({ line: lineNumber, ch: match.indices[1][0] }, { line: lineNumber, ch: match.indices[1][1] }, { className: 'dt-highlight' });
codeMirror.markText({ line: lineNumber, ch: match.indices[2][0] }, { line: lineNumber, ch: match.indices[2][1] }, { className: 'dd-highlight' });
const ddIndex = match.indices[2][0];
let colons = /::/g;
let colonMatches = colons.exec(match[2]);
if(colonMatches !== null){
codeMirror.markText({ line: lineNumber, ch: colonMatches.index + ddIndex }, { line: lineNumber, ch: colonMatches.index + colonMatches[0].length + ddIndex }, { className: 'dl-colon-highlight'} )
}
}
}
// Subscript & Superscript
if(line.includes('^')) {
let startIndex = line.indexOf('^');
const superRegex = /\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/gy;
const subRegex = /\^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^\^/gy;
while (startIndex >= 0) {
superRegex.lastIndex = subRegex.lastIndex = startIndex;
let isSuper = false;
let match = subRegex.exec(line) || superRegex.exec(line);
if (match) {
isSuper = !subRegex.lastIndex;
codeMirror.markText({ line: lineNumber, ch: match.index }, { line: lineNumber, ch: match.index + match[0].length }, { className: isSuper ? 'superscript' : 'subscript' });
}
startIndex = line.indexOf('^', Math.max(startIndex + 1, subRegex.lastIndex, superRegex.lastIndex));
}
}
// Highlight injectors {style}
if(line.includes('{') && line.includes('}')){
const regex = /(?:^|[^{\n])({(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\2})/gm;
const regex = /(?:^|[^{\n])({(?=((?:[:=](?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':={}\s]*)*))\2})/gm;
let match;
while ((match = regex.exec(line)) != null) {
codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[1]) }, { line: lineNumber, ch: line.indexOf(match[1]) + match[1].length }, { className: 'injection' });
@@ -148,7 +195,7 @@ const Editor = createClass({
}
// Highlight inline spans {{content}}
if(line.includes('{{') && line.includes('}}')){
const regex = /{{(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\1 *|}}/g;
const regex = /{{(?=((?:[:=](?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':={}\s]*)*))\1 *|}}/g;
let match;
let blockCount = 0;
while ((match = regex.exec(line)) != null) {
@@ -167,7 +214,7 @@ const Editor = createClass({
// Highlight block divs {{\n Content \n}}
let endCh = line.length+1;
const match = line.match(/^ *{{(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\1 *$|^ *}}$/);
const match = line.match(/^ *{{(?=((?:[:=](?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':={}\s]*)*))\1 *$|^ *}}$/);
if(match)
endCh = match.index+match[0].length;
codeMirror.markText({ line: lineNumber, ch: 0 }, { line: lineNumber, ch: endCh }, { className: 'block' });
@@ -255,6 +302,13 @@ const Editor = createClass({
this.refs.codeEditor?.updateSize();
},
updateEditorTheme : function(newTheme){
window.localStorage.setItem(EDITOR_THEME_KEY, newTheme);
this.setState({
editorTheme : newTheme
});
},
//Called by CodeEditor after document switch, so Snippetbar can refresh UndoHistory
rerenderParent : function (){
this.forceUpdate();
@@ -269,6 +323,7 @@ const Editor = createClass({
view={this.state.view}
value={this.props.brew.text}
onChange={this.props.onTextChange}
editorTheme={this.state.editorTheme}
rerenderParent={this.rerenderParent} />
</>;
}
@@ -281,6 +336,7 @@ const Editor = createClass({
value={this.props.brew.style ?? DEFAULT_STYLE_TEXT}
onChange={this.props.onStyleChange}
enableFolding={false}
editorTheme={this.state.editorTheme}
rerenderParent={this.rerenderParent} />
</>;
}
@@ -310,6 +366,14 @@ const Editor = createClass({
return this.refs.codeEditor?.undo();
},
foldCode : function(){
return this.refs.codeEditor?.foldAllCode();
},
unfoldCode : function(){
return this.refs.codeEditor?.unfoldAllCode();
},
render : function(){
return (
<div className='editor' ref='main'>
@@ -323,7 +387,12 @@ const Editor = createClass({
theme={this.props.brew.theme}
undo={this.undo}
redo={this.redo}
historySize={this.historySize()} />
foldCode={this.foldCode}
unfoldCode={this.unfoldCode}
historySize={this.historySize()}
currentEditorTheme={this.state.editorTheme}
updateEditorTheme={this.updateEditorTheme}
cursorPos={this.refs.codeEditor?.getCursorPosition() || {}} />
{this.renderEditor()}
</div>

View File

@@ -1,65 +1,95 @@
.editor{
@import 'themes/codeMirror/customEditorStyles.less';
.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{
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{
color : red;
.inline-block:not(.cm-comment) {
font-weight : bold;
color : red;
//font-style: italic;
}
.injection{
.injection:not(.cm-comment) {
font-weight : bold;
color : green;
font-weight : bold;
}
.superscript:not(.cm-comment) {
font-weight : bold;
color : goldenrod;
vertical-align : super;
font-size : 0.9em;
}
.subscript:not(.cm-comment) {
font-weight : bold;
color : rgb(123, 123, 15);
vertical-align : sub;
font-size : 0.9em;
}
.dl-highlight {
&.dl-colon-highlight {
font-weight : bold;
color : #949494;
background : #E5E5E5;
border-radius : 3px;
}
&.dt-highlight { color : rgb(96, 117, 143); }
&.dd-highlight { color : rgb(97, 57, 178); }
}
}
.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; }
}
}

View File

@@ -6,6 +6,7 @@ const _ = require('lodash');
const cx = require('classnames');
const request = require('../../utils/request-middleware.js');
const Nav = require('naturalcrit/nav/nav.jsx');
const Combobox = require('client/components/combobox.jsx');
const StringArrayEditor = require('../stringArrayEditor/stringArrayEditor.jsx');
const Themes = require('themes/themes.json');
@@ -35,9 +36,10 @@ const MetadataEditor = createClass({
authors : [],
systems : [],
renderer : 'legacy',
theme : '5ePHB'
theme : '5ePHB',
lang : 'en'
},
onChange : ()=>{},
onChange : ()=>{},
reportError : ()=>{}
};
},
@@ -76,6 +78,7 @@ const MetadataEditor = createClass({
const errMessage = validationErr.map((err)=>{
return `- ${err}`;
}).join('\n');
callIfExists(e.target, 'setCustomValidity', errMessage);
callIfExists(e.target, 'reportValidity');
}
@@ -111,6 +114,11 @@ const MetadataEditor = createClass({
this.props.onChange(this.props.metadata);
},
handleLanguage : function(languageCode){
this.props.metadata.lang = languageCode;
this.props.onChange(this.props.metadata);
},
handleDelete : function(){
if(this.props.metadata.authors && this.props.metadata.authors.length <= 1){
if(!confirm('Are you sure you want to delete this brew? Because you are the only owner of this brew, the document will be deleted permanently.')) return;
@@ -189,6 +197,10 @@ const MetadataEditor = createClass({
return <div className='item' key={''} onClick={()=>this.handleTheme(theme)} title={''}>
{`${theme.renderer} : ${theme.name}`}
<img src={`/themes/${theme.renderer}/${theme.path}/dropdownTexture.png`}/>
<div className='preview'>
<h6>{`${theme.name}`} preview</h6>
<img src={`/themes/${theme.renderer}/${theme.path}/dropdownPreview.png`}/>
</div>
</div>;
});
};
@@ -198,14 +210,14 @@ const MetadataEditor = createClass({
if(this.props.metadata.renderer == 'legacy') {
dropdown =
<Nav.dropdown className='disabled' trigger='disabled'>
<Nav.dropdown className='disabled value' trigger='disabled'>
<div>
{`Themes are not supported in the Legacy Renderer`} <i className='fas fa-caret-down'></i>
</div>
</Nav.dropdown>;
} else {
dropdown =
<Nav.dropdown trigger='click'>
<Nav.dropdown className='value' trigger='click'>
<div>
{`${_.upperFirst(currentTheme.renderer)} : ${currentTheme.name}`} <i className='fas fa-caret-down'></i>
</div>
@@ -220,6 +232,47 @@ const MetadataEditor = createClass({
</div>;
},
renderLanguageDropdown : function(){
const langCodes = ['en', 'de', 'de-ch', 'fr', 'ja', 'es', 'it', 'sv', 'ru', 'zh-Hans', 'zh-Hant'];
const listLanguages = ()=>{
return _.map(langCodes.sort(), (code, index)=>{
const localName = new Intl.DisplayNames([code], { type: 'language' });
const englishName = new Intl.DisplayNames('en', { type: 'language' });
return <div className='item' title={`${englishName.of(code)}`} key={`${index}`} data-value={`${code}`} data-detail={`${localName.of(code)}`}>
{`${code}`}
<div className='detail'>{`${localName.of(code)}`}</div>
</div>;
});
};
const debouncedHandleFieldChange = _.debounce(this.handleFieldChange, 500);
return <div className='field language'>
<label>language</label>
<div className='value'>
<Combobox trigger='click'
className='language-dropdown'
default={this.props.metadata.lang || ''}
placeholder='en'
onSelect={(value)=>this.handleLanguage(value)}
onEntry={(e)=>{
e.target.setCustomValidity(''); //Clear the validation popup while typing
debouncedHandleFieldChange('lang', e);
}}
options={listLanguages()}
autoSuggest={{
suggestMethod : 'startsWith',
clearAutoSuggestOnClick : true,
filterOn : ['data-value', 'data-detail', 'title']
}}
>
</Combobox>
<small>Sets the HTML Lang property for your brew. May affect hyphenation or spellcheck.</small>
</div>
</div>;
},
renderRenderOptions : function(){
if(!global.enable_v3) return;
@@ -297,6 +350,8 @@ const MetadataEditor = createClass({
</div>
</div>
{this.renderLanguageDropdown()}
{this.renderThemeDropdown()}
{this.renderRenderOptions()}
@@ -311,7 +366,7 @@ const MetadataEditor = createClass({
validators={[(v)=>!this.props.metadata.authors?.includes(v)]}
placeholder='invite author' unique={true}
values={this.props.metadata.invitedAuthors}
notes={['Invited authors are case sensitive.', 'After adding an invited author, send them the edit link. There, they can choose to accept or decline the invitation.']}
notes={['Invited author usernames are case sensitive.', 'After adding an invited author, send them the edit link. There, they can choose to accept or decline the invitation.']}
onChange={(e)=>this.handleFieldChange('invitedAuthors', e)}/>
<hr/>

View File

@@ -2,7 +2,7 @@
.metadataEditor{
position : absolute;
z-index : 10000;
z-index : 5;
box-sizing : border-box;
width : 100%;
padding : 25px;
@@ -35,13 +35,16 @@
flex-direction: column;
flex: 5 0 200px;
gap: 10px;
}
.field{
display : flex;
flex-wrap : wrap;
width : 100%;
min-width : 200px;
position : relative;
&>label{
width : 80px;
font-size : 11px;
@@ -58,6 +61,9 @@
}
input[type='text'], textarea {
border : 1px solid gray;
&:focus {
outline: 1px solid #444;
}
}
&.thumbnail{
height : 1.4em;
@@ -89,9 +95,15 @@
}
}
&.language .language-dropdown {
max-width : 150px;
z-index : 200;
}
small {
font-size : 0.6em;
font-style : italic;
font-size : 0.6em;
font-style : italic;
line-height : 1.4em;
display : inline-block;
}
}
@@ -159,9 +171,8 @@
font-size : 13.33px;
.navDropdownContainer {
background-color : white;
width : 100%;
position : relative;
z-index : 500;
z-index : 100;
&.disabled {
font-style :italic;
font-style : italic;
@@ -182,24 +193,51 @@
}
.navDropdown {
box-shadow : 0px 5px 10px rgba(0, 0, 0, 0.3);
position : absolute;
width : 100%;
position : absolute;
width : 100%;
.item {
padding : 3px 3px;
border-top : 1px solid rgb(118, 118, 118);
position : relative;
overflow : hidden;
padding : 3px 3px;
border-top : 1px solid rgb(118, 118, 118);
position : relative;
overflow : visible;
background-color : white;
.preview {
display : flex;
flex-direction: column;
background : #ccc;
border-radius : 5px;
box-shadow : 0 0 5px black;
width : 200px;
color :black;
position : absolute;
top : 0;
right : 0;
opacity : 0;
transition : opacity 250ms ease;
z-index : 1;
overflow :hidden;
h6 {
font-weight : 900;
padding-inline:1em;
padding-block :.5em;
border-bottom :2px solid hsl(0,0%,40%);
}
}
&:hover {
background-color : @blue;
color : white;
color : white;
}
img {
mask-image : linear-gradient(90deg, transparent, black 20%);
&:hover > .preview {
opacity: 1;
}
>img {
mask-image : linear-gradient(90deg, transparent, black 20%);
-webkit-mask-image : linear-gradient(90deg, transparent, black 20%);
position : absolute;
left : ~"max(100px, 100% - 300px)";
top : 0px;
position : absolute;
right : 0;
top : 0px;
width : 50%;
height : 100%;
}
}
}

View File

@@ -23,9 +23,9 @@ module.exports = {
}
}
],
language : [
lang : [
(value)=>{
return new RegExp(/[a-z]{2,3}(-.*)?/).test(value || '') === false ? 'Invalid language code.' : null;
return new RegExp(/^([a-zA-Z]{2,3})(-[a-zA-Z]{4})?(-(?:[0-9]{3}|[a-zA-Z]{2}))?$/).test(value) === false && (value.length > 0) ? 'Invalid language code.' : null;
}
]
};

View File

@@ -1,3 +1,4 @@
/*eslint max-lines: ["warn", {"max": 250, "skipBlankLines": true, "skipComments": true}]*/
require('./snippetbar.less');
const React = require('react');
const createClass = require('create-react-class');
@@ -15,8 +16,10 @@ ThemeSnippets['V3_5eDMG'] = require('themes/V3/5eDMG/snippets.js');
ThemeSnippets['V3_Journal'] = require('themes/V3/Journal/snippets.js');
ThemeSnippets['V3_Blank'] = require('themes/V3/Blank/snippets.js');
const execute = function(val, brew){
if(_.isFunction(val)) return val(brew);
const EditorThemes = require('build/homebrew/codeMirror/editorThemes.json');
const execute = function(val, props){
if(_.isFunction(val)) return val(props);
return val;
};
@@ -24,23 +27,28 @@ const Snippetbar = createClass({
displayName : 'SnippetBar',
getDefaultProps : function() {
return {
brew : {},
view : 'text',
onViewChange : ()=>{},
onInject : ()=>{},
onToggle : ()=>{},
showEditButtons : true,
renderer : 'legacy',
undo : ()=>{},
redo : ()=>{},
historySize : ()=>{}
brew : {},
view : 'text',
onViewChange : ()=>{},
onInject : ()=>{},
onToggle : ()=>{},
showEditButtons : true,
renderer : 'legacy',
undo : ()=>{},
redo : ()=>{},
historySize : ()=>{},
foldCode : ()=>{},
unfoldCode : ()=>{},
updateEditorTheme : ()=>{},
cursorPos : {}
};
},
getInitialState : function() {
return {
renderer : this.props.renderer,
snippets : []
renderer : this.props.renderer,
themeSelector : false,
snippets : []
};
},
@@ -66,6 +74,7 @@ const Snippetbar = createClass({
}
},
mergeCustomizer : function(valueA, valueB, key) {
if(key == 'snippets') {
const result = _.reverse(_.unionBy(_.reverse(valueB), _.reverse(valueA), 'name')); // Join snippets together, with preference for the current theme over the base theme
@@ -94,6 +103,33 @@ const Snippetbar = createClass({
this.props.onInject(injectedText);
},
toggleThemeSelector : function(e){
if(e.target.tagName != 'SELECT'){
this.setState({
themeSelector : !this.state.themeSelector
});
}
},
changeTheme : function(e){
if(e.target.value == this.props.currentEditorTheme) return;
this.props.updateEditorTheme(e.target.value);
this.setState({
showThemeSelector : false,
});
},
renderThemeSelector : function(){
return <div className='themeSelector'>
<select value={this.props.currentEditorTheme} onChange={this.changeTheme} >
{EditorThemes.map((theme, key)=>{
return <option key={key} value={theme}>{theme}</option>;
})}
</select>
</div>;
},
renderSnippetGroups : function(){
const snippets = this.state.snippets.filter((snippetGroup)=>snippetGroup.view === this.props.view);
@@ -105,6 +141,7 @@ const Snippetbar = createClass({
snippets={snippetGroup.snippets}
key={snippetGroup.groupName}
onSnippetClick={this.handleSnippetClick}
cursorPos={this.props.cursorPos}
/>;
});
},
@@ -112,6 +149,22 @@ const Snippetbar = createClass({
renderEditorButtons : function(){
if(!this.props.showEditButtons) return;
let foldButtons;
if(this.props.view == 'text'){
foldButtons =
<>
<div className={`editorTool foldAll ${this.props.foldCode ? 'active' : ''}`}
onClick={this.props.foldCode} >
<i className='fas fa-compress-alt' />
</div>
<div className={`editorTool unfoldAll ${this.props.unfoldCode ? 'active' : ''}`}
onClick={this.props.unfoldCode} >
<i className='fas fa-expand-alt' />
</div>
</>
}
return <div className='editors'>
<div className={`editorTool undo ${this.props.historySize.undo ? 'active' : ''}`}
onClick={this.props.undo} >
@@ -121,6 +174,14 @@ const Snippetbar = createClass({
onClick={this.props.redo} >
<i className='fas fa-redo' />
</div>
<div className='divider'></div>
{foldButtons}
<div className={`editorTool editorTheme ${this.state.themeSelector ? 'active' : ''}`}
onClick={this.toggleThemeSelector} >
<i className='fas fa-palette' />
{this.state.themeSelector && this.renderThemeSelector()}
</div>
<div className='divider'></div>
<div className={cx('text', { selected: this.props.view === 'text' })}
onClick={()=>this.props.onViewChange('text')}>
@@ -163,15 +224,23 @@ const SnippetGroup = createClass({
onSnippetClick : function(){},
};
},
handleSnippetClick : function(snippet){
this.props.onSnippetClick(execute(snippet.gen, this.props.brew));
handleSnippetClick : function(e, snippet){
e.stopPropagation();
this.props.onSnippetClick(execute(snippet.gen, this.props));
},
renderSnippets : function(){
return _.map(this.props.snippets, (snippet)=>{
return <div className='snippet' key={snippet.name} onClick={()=>this.handleSnippetClick(snippet)}>
renderSnippets : function(snippets){
return _.map(snippets, (snippet)=>{
return <div className='snippet' key={snippet.name} onClick={(e)=>this.handleSnippetClick(e, snippet)}>
<i className={snippet.icon} />
{snippet.name}
<span className='name'title={snippet.name}>{snippet.name}</span>
{snippet.experimental && <span className='beta'>beta</span>}
{snippet.subsnippets && <>
<i className='fas fa-caret-right'></i>
<div className='dropdown side'>
{this.renderSnippets(snippet.subsnippets)}
</div></>}
</div>;
});
},
@@ -182,9 +251,8 @@ const SnippetGroup = createClass({
<span className='groupName'>{this.props.groupName}</span>
</div>
<div className='dropdown'>
{this.renderSnippets()}
{this.renderSnippets(this.props.snippets)}
</div>
</div>;
},
});

View File

@@ -1,113 +1,192 @@
@import (less) './client/icons/customIcons.less';
@import (less) '././././themes/fonts/5e/fonts.less';
.snippetBar{
.snippetBar {
@menuHeight : 25px;
position : relative;
height : @menuHeight;
background-color : #ddd;
.editors{
color : black;
background-color : #DDDDDD;
.editors {
position : absolute;
display : flex;
top : 0px;
right : 0px;
height : @menuHeight;
width : 125px;
display : flex;
justify-content : space-between;
&>div{
height : @menuHeight;
height : @menuHeight;
& > div {
width : @menuHeight;
cursor : pointer;
height : @menuHeight;
line-height : @menuHeight;
text-align : center;
&:hover,&.selected{
background-color : #999;
}
&.text{
cursor : pointer;
&:hover,&.selected { background-color : #999999; }
&.text {
.tooltipLeft('Brew Editor');
}
&.style{
&.style {
.tooltipLeft('Style Editor');
}
&.meta{
&.meta {
.tooltipLeft('Properties');
}
&.undo{
&.undo {
.tooltipLeft('Undo');
font-size : 0.75em;
color : grey;
&.active{
color : black;
}
&.active { color : inherit; }
}
&.redo{
&.redo {
.tooltipLeft('Redo');
font-size : 0.75em;
color : grey;
&.active{
color : black;
&.active { color : inherit; }
}
&.foldAll {
.tooltipLeft('Fold All');
font-size : 0.75em;
color : inherit;
}
&.unfoldAll {
.tooltipLeft('Unfold All');
font-size : 0.75em;
color : inherit;
}
&.editorTheme {
.tooltipLeft('Editor Themes');
font-size : 0.75em;
color : black;
&.active {
position : relative;
background-color : #999999;
}
}
&.divider {
background: linear-gradient(#000, #000) no-repeat center/1px 100%;
width: 5px;
&:hover{
background-color: inherit;
}
width : 5px;
background : linear-gradient(currentColor, currentColor) no-repeat center/1px 100%;
&:hover { background-color : inherit; }
}
}
.themeSelector {
position : absolute;
top : 25px;
right : 0;
z-index : 10;
display : flex;
align-items : center;
justify-content : center;
width : 170px;
height : inherit;
background-color : inherit;
}
}
.snippetBarButton{
height : @menuHeight;
line-height : @menuHeight;
.snippetBarButton {
display : inline-block;
height : @menuHeight;
padding : 0px 5px;
font-weight : 800;
font-size : 0.625em;
font-weight : 800;
line-height : @menuHeight;
text-transform : uppercase;
cursor : pointer;
&:hover, &.selected{
background-color : #999;
}
i{
vertical-align : middle;
&:hover, &.selected { background-color : #999999; }
i {
margin-right : 3px;
font-size : 1.4em;
vertical-align : middle;
}
}
.toggleMeta{
position : absolute;
top : 0px;
right : 0px;
border-left : 1px solid black;
.tooltipLeft("Edit Brew Properties");
.toggleMeta {
position : absolute;
top : 0px;
right : 0px;
border-left : 1px solid black;
.tooltipLeft('Edit Brew Properties');
}
.snippetGroup{
border-right : 1px solid black;
&:hover{
.dropdown{
visibility : visible;
}
.snippetGroup {
border-right : 1px solid currentColor;
&:hover {
& > .dropdown { visibility : visible; }
}
.dropdown{
.dropdown {
position : absolute;
top : 100%;
visibility : hidden;
z-index : 1000;
margin-left : -5px;
padding : 0px;
background-color : #ddd;
.snippet{
margin-left : -5px;
visibility : hidden;
background-color : #DDDDDD;
.snippet {
position : relative;
display : flex;
align-items : center;
min-width : max-content;
padding : 5px;
font-size : 10px;
cursor : pointer;
.animate(background-color);
padding : 5px;
cursor : pointer;
font-size : 10px;
i{
i {
height : 1.2em;
margin-right : 8px;
font-size : 1.2em;
min-width: 25px;
text-align: center;
& ~ i {
margin-right : 0;
margin-left : 5px;
}
/* Fonts */
&.font {
height : auto;
&::before {
font-size : 1em;
content : 'ABC';
}
&.OpenSans {font-family : 'OpenSans';}
&.CodeBold {font-family : 'CodeBold';}
&.CodeLight {font-family : 'CodeLight';}
&.ScalySansRemake {font-family : 'ScalySansRemake';}
&.BookInsanityRemake {font-family : 'BookInsanityRemake';}
&.MrEavesRemake {font-family : 'MrEavesRemake';}
&.SolberaImitationRemake {font-family : 'SolberaImitationRemake';}
&.ScalySansSmallCapsRemake {font-family : 'ScalySansSmallCapsRemake';}
&.WalterTurncoat {font-family : 'WalterTurncoat';}
&.Lato {font-family : 'Lato';}
&.Courier {font-family : 'Courier';}
&.NodestoCapsCondensed {font-family : 'NodestoCapsCondensed';}
&.Overpass {font-family : 'Overpass';}
&.Davek {font-family : 'Davek';}
&.Iokharic {font-family : 'Iokharic';}
&.Rellanic {font-family : 'Rellanic';}
&.TimesNewRoman {font-family : 'Times New Roman';}
}
}
&:hover{
background-color : #999;
.name { margin-right : auto; }
.beta {
align-self : center;
padding : 4px 6px;
margin-left : 5px;
font-family : monospace;
line-height : 1em;
color : white;
background : grey;
border-radius : 12px;
}
&:hover {
background-color : #999999;
& > .dropdown {
visibility : visible;
&.side {
top : 0%;
left : 100%;
margin-left : 0;
box-shadow : -1px 1px 2px 0px #999999;
}
}
}
}
}
}
}
}

View File

@@ -140,7 +140,7 @@ const StringArrayEditor = createClass({
</div>
</div>
{this.props.notes ? this.props.notes.map((n)=><p><small>{n}</small></p>) : null}
{this.props.notes ? this.props.notes.map((n, index)=><p key={index}><small>{n}</small></p>) : null}
</div>
</div>;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

View File

@@ -0,0 +1,8 @@
<svg viewBox="0 0 87.3 78" xmlns="http://www.w3.org/2000/svg">
<path d="m6.6 66.85 3.85 6.65c.8 1.4 1.95 2.5 3.3 3.3l13.75-23.8h-27.5c0 1.55.4 3.1 1.2 4.5z" fill="#0066da"/>
<path d="m43.65 25-13.75-23.8c-1.35.8-2.5 1.9-3.3 3.3l-25.4 44a9.06 9.06 0 0 0 -1.2 4.5h27.5z" fill="#00ac47"/>
<path d="m73.55 76.8c1.35-.8 2.5-1.9 3.3-3.3l1.6-2.75 7.65-13.25c.8-1.4 1.2-2.95 1.2-4.5h-27.502l5.852 11.5z" fill="#ea4335"/>
<path d="m43.65 25 13.75-23.8c-1.35-.8-2.9-1.2-4.5-1.2h-18.5c-1.6 0-3.15.45-4.5 1.2z" fill="#00832d"/>
<path d="m59.8 53h-32.3l-13.75 23.8c1.35.8 2.9 1.2 4.5 1.2h50.8c1.6 0 3.15-.45 4.5-1.2z" fill="#2684fc"/>
<path d="m73.4 26.5-12.7-22c-.8-1.4-1.95-2.5-3.3-3.3l-13.75 23.8 16.15 28h27.45c0-1.55-.4-3.1-1.2-4.5z" fill="#ffba00"/>
</svg>

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -9,7 +9,7 @@ const EditPage = require('./pages/editPage/editPage.jsx');
const UserPage = require('./pages/userPage/userPage.jsx');
const SharePage = require('./pages/sharePage/sharePage.jsx');
const NewPage = require('./pages/newPage/newPage.jsx');
//const ErrorPage = require('./pages/errorPage/errorPage.jsx');
const ErrorPage = require('./pages/errorPage/errorPage.jsx');
const PrintPage = require('./pages/printPage/printPage.jsx');
const AccountPage = require('./pages/accountPage/accountPage.jsx');
@@ -47,6 +47,7 @@ const Homebrew = createClass({
editId : null,
createdAt : null,
updatedAt : null,
lang : ''
}
};
},
@@ -75,8 +76,9 @@ const Homebrew = createClass({
<Route path='/print' element={<WithRoute el={PrintPage} />} />
<Route path='/changelog' element={<WithRoute el={SharePage} brew={this.props.brew} />} />
<Route path='/faq' element={<WithRoute el={SharePage} brew={this.props.brew} />} />
<Route path='/account' element={<WithRoute el={AccountPage} brew={this.props.brew} uiItems={this.props.brew.uiItems} />} />
<Route path='/account' element={<WithRoute el={AccountPage} brew={this.props.brew} accountDetails={this.props.brew.accountDetails} />} />
<Route path='/legacy' element={<WithRoute el={HomePage} brew={this.props.brew} />} />
<Route path='/error' element={<WithRoute el={ErrorPage} brew={this.props.brew} />} />
<Route path='/' element={<WithRoute el={HomePage} brew={this.props.brew} />} />
<Route path='/*' element={<WithRoute el={HomePage} brew={this.props.brew} />} />
</Routes>

View File

@@ -15,6 +15,23 @@
}
&.listPage .content {
overflow-y : scroll;
&::-webkit-scrollbar {
width: 20px;
&:horizontal{
height: 20px;
width:auto;
}
&-thumb {
background: linear-gradient(90deg, #d3c1af 15px, #00000000 15px);
&:horizontal{
background: linear-gradient(0deg, #d3c1af 15px, #00000000 15px);
}
}
&-corner {
visibility: hidden;
}
}
}
}
}

View File

@@ -63,7 +63,7 @@ const Account = createClass({
if(global.account){
return <Nav.dropdown>
<Nav.item
className='account'
className='account username'
color='orange'
icon='fas fa-user'
>

View File

@@ -21,10 +21,11 @@ const ErrorNavItem = createClass({
this.props.parent.setState(state);
};
const error = this.props.error;
const response = error.response;
const status = response.status;
const message = response.body?.message;
const error = this.props.error;
const response = error.response;
const status = response.status;
const HBErrorCode = response.body?.HBErrorCode;
const message = response.body?.message;
let errMsg = '';
try {
errMsg += `${error.toString()}\n\n`;
@@ -40,7 +41,9 @@ const ErrorNavItem = createClass({
{message ?? 'Conflict: please refresh to get latest changes'}
</div>
</Nav.item>;
} else if(status === 412) {
}
if(status === 412) {
return <Nav.item className='save error' icon='fas fa-exclamation-triangle'>
Oops!
<div className='errorContainer' onClick={clearError}>
@@ -48,6 +51,36 @@ const ErrorNavItem = createClass({
</div>
</Nav.item>;
}
if(HBErrorCode === '04') {
return <Nav.item className='save error' icon='fas fa-exclamation-triangle'>
Oops!
<div className='errorContainer' onClick={clearError}>
You are no longer signed in as an author of
this brew! Were you signed out from a different
window? Visit our log in page, then try again!
<br></br>
<a target='_blank' rel='noopener noreferrer'
href={`https://www.naturalcrit.com/login?redirect=${window.location.href}`}>
<div className='confirm'>
Sign In
</div>
</a>
<div className='deny'>
Not Now
</div>
</div>
</Nav.item>;
}
if(response.body?.errors?.[0].reason == 'storageQuotaExceeded') {
return <Nav.item className='save error' icon='fas fa-exclamation-triangle'>
Oops!
<div className='errorContainer' onClick={clearError}>
Can't save because your Google Drive seems to be full!
</div>
</Nav.item>;
}
if(response.req.url.match(/^\/api.*Google.*$/m)){
return <Nav.item className='save error' icon='fas fa-exclamation-triangle'>
@@ -57,6 +90,7 @@ const ErrorNavItem = createClass({
expired! Visit our log in page to sign out
and sign back in with Google,
then try saving again!
<br></br>
<a target='_blank' rel='noopener noreferrer'
href={`https://www.naturalcrit.com/login?redirect=${window.location.href}`}>
<div className='confirm'>
@@ -82,4 +116,4 @@ const ErrorNavItem = createClass({
}
});
module.exports = ErrorNavItem;
module.exports = ErrorNavItem;

View File

@@ -1,77 +1,75 @@
.navItem {
&.error {
position : relative;
background-color : @red;
}
.navItem.error {
position : relative;
background-color : @red;
}
.errorContainer{
animation-name: glideDown;
animation-duration: 0.4s;
position : absolute;
top : 100%;
left : 50%;
z-index : 1000;
width : 140px;
padding : 3px;
color : white;
.errorContainer{
animation-name: glideDown;
animation-duration: 0.4s;
position : absolute;
top : 100%;
left : 50%;
z-index : 1000;
width : 140px;
padding : 3px;
color : white;
background-color : #333;
border : 3px solid #444;
border-radius : 5px;
transform : translate(-50% + 3px, 10px);
text-align : center;
font-size : 10px;
font-weight : 800;
text-transform : uppercase;
a{
color : @teal;
}
&:before {
content: "";
width: 0px;
height: 0px;
position: absolute;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid transparent;
border-bottom: 10px solid #444;
left: 53px;
top: -23px;
}
&:after {
content: "";
width: 0px;
height: 0px;
position: absolute;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid transparent;
border-bottom: 10px solid #333;
left: 53px;
top: -19px;
}
.deny {
width : 48%;
margin : 1px;
padding : 5px;
background-color : #333;
border : 3px solid #444;
border-radius : 5px;
transform : translate(-50% + 3px, 10px);
text-align : center;
font-size : 10px;
font-weight : 800;
text-transform : uppercase;
a{
color : @teal;
}
&:before {
content: "";
width: 0px;
height: 0px;
position: absolute;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid transparent;
border-bottom: 10px solid #444;
left: 53px;
top: -23px;
}
&:after {
content: "";
width: 0px;
height: 0px;
position: absolute;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid transparent;
border-bottom: 10px solid #333;
left: 53px;
top: -19px;
}
.deny {
width : 48%;
margin : 1px;
padding : 5px;
background-color : #333;
display : inline-block;
border-left : 1px solid #666;
.animate(background-color);
&:hover{
background-color : red;
}
}
.confirm {
width : 48%;
margin : 1px;
padding : 5px;
background-color : #333;
display : inline-block;
color : white;
.animate(background-color);
&:hover{
background-color : teal;
}
display : inline-block;
border-left : 1px solid #666;
.animate(background-color);
&:hover{
background-color : red;
}
}
}
.confirm {
width : 48%;
margin : 1px;
padding : 5px;
background-color : #333;
display : inline-block;
color : white;
.animate(background-color);
&:hover{
background-color : teal;
}
}
}

View File

@@ -0,0 +1,90 @@
const React = require('react');
const createClass = require('create-react-class');
const _ = require('lodash');
const Moment = require('moment');
const Nav = require('naturalcrit/nav/nav.jsx');
const MetadataNav = createClass({
displayName : 'MetadataNav',
getDefaultProps : function() {
return {
};
},
getInitialState : function() {
return {
showMetaWindow : false
};
},
componentDidMount : function() {
},
toggleMetaWindow : function(){
this.setState((prevProps)=>({
showMetaWindow : !prevProps.showMetaWindow
}));
},
getAuthors : function(){
if(!this.props.brew.authors || this.props.brew.authors.length == 0) return 'No authors';
return <>
{this.props.brew.authors.map((author, idx, arr)=>{
const spacer = arr.length - 1 == idx ? <></> : <span>, </span>;
return <span key={idx}><a className='userPageLink' href={`/user/${author}`}>{author}</a>{spacer}</span>;
})}
</>;
},
getTags : function(){
if(!this.props.brew.tags || this.props.brew.tags.length == 0) return 'No tags';
return <>
{this.props.brew.tags.map((tag, idx)=>{
return <span className='tag' key={idx}>{tag}</span>;
})}
</>;
},
getSystems : function(){
if(!this.props.brew.systems || this.props.brew.systems.length == 0) return 'No systems';
return this.props.brew.systems.join(', ');
},
renderMetaWindow : function(){
return <div className={`window ${this.state.showMetaWindow ? 'active' : 'inactive'}`}>
<div className='row'>
<h4>Description</h4>
<p>{this.props.brew.description || 'No description.'}</p>
</div>
<div className='row'>
<h4>Authors</h4>
<p>{this.getAuthors()}</p>
</div>
<div className='row'>
<h4>Tags</h4>
<p>{this.getTags()}</p>
</div>
<div className='row'>
<h4>Systems</h4>
<p>{this.getSystems()}</p>
</div>
<div className='row'>
<h4>Updated</h4>
<p>{Moment(this.props.brew.updatedAt).fromNow()}</p>
</div>
</div>;
},
render : function(){
return <Nav.item icon='fas fa-info-circle' color='grey' className='metadata'
onClick={()=>this.toggleMetaWindow()}>
{this.props.children}
{this.renderMetaWindow()}
</Nav.item>;
}
});
module.exports = MetadataNav;

View File

@@ -1,190 +1,351 @@
@import 'naturalcrit/styles/colors.less';
@navbarHeight : 28px;
@keyframes pinkColoring {
//from {color: white;}
//to {color: red;}
0% {color: pink;}
50% {color: pink;}
75% {color: red;}
100% {color: pink;}
}
.homebrew nav{
.homebrewLogo{
.animate(color);
font-family : CodeBold;
font-size : 12px;
color : white;
div{
margin-top : 2px;
margin-bottom : -2px;
}
&:hover{
color : @blue;
}
}
.editTitle.navItem{
padding : 2px 12px;
input{
width : 250px;
margin : 0;
padding : 2px;
background-color : #444;
font-family : 'Open Sans', sans-serif;
font-size : 12px;
font-weight : 800;
color : white;
text-align : center;
border : 1px solid @blue;
outline : none;
}
.charCount{
display : inline-block;
vertical-align : bottom;
margin-left : 8px;
color : #666;
text-align : right;
&.max{
color : @red;
}
}
}
.brewTitle.navItem{
font-size : 12px;
font-weight : 800;
color : white;
text-align : center;
text-transform : initial;
}
.save-menu {
.dropdown {
z-index: 1000;
}
.navItem i.fa-power-off {
color : red;
&.active {
color : rgb(0, 182, 52);
filter : drop-shadow(0 0 2px rgba(0, 182, 52, 0.765))
}
}
}
.patreon.navItem{
border-left : 1px solid #666;
border-right : 1px solid #666;
&:hover i {
color: red;
}
i{
.animate(color);
animation-name: pinkColoring;
animation-duration: 2s;
color: pink;
}
}
.recent.navItem {
position : relative;
.dropdown{
position : absolute;
top : 28px;
left : 0px;
z-index : 10000;
width : 100%;
overflow : hidden auto;
max-height : ~"calc(100vh - 28px)";
scrollbar-color : #666 #333;
scrollbar-width : thin;
h4{
display : block;
box-sizing : border-box;
padding : 5px 0px;
background-color : #333;
font-size : 0.8em;
color : #bbb;
text-align : center;
border-top : 1px solid #888;
&:nth-of-type(1){ background-color: darken(@teal, 20%); }
&:nth-of-type(2){ background-color: darken(@purple, 30%); }
}
.item{
#backgroundColorsHover;
.animate(background-color);
position : relative;
display : block;
box-sizing : border-box;
padding : 8px 5px 13px;
background-color : #333;
color : white;
text-decoration : none;
border-top : 1px solid #888;
overflow : clip;
.clear{
display : none;
position : absolute;
top : 50%;
transform : translateY(-50%);
right : 0px;
width : 20px;
height : 100%;
background-color : #333;
opacity : 70%;
border-radius : 3px;
&:hover {
opacity : 100%;
}
i {
text-align : center;
font-size : 10px;
margin : 0;
height :100%;
width :100%;
}
}
&:hover{
background-color : @blue;
.clear{
display : grid;
place-content : center;
}
}
.title{
display : inline-block;
overflow : hidden;
width : 100%;
text-overflow : ellipsis;
white-space : nowrap;
}
.time{
position : absolute;
right : 2px;
bottom : 2px;
font-size : 0.7em;
color : #888;
}
}
}
}
.warning.navItem{
position : relative;
background-color : @orange;
color : white;
&:hover>.dropdown{
visibility : visible;
}
.dropdown{
position : absolute;
display : block;
top : 28px;
left : 0px;
visibility : hidden;
z-index : 10000;
box-sizing : border-box;
width : 100%;
padding : 13px 5px;
background-color : #333;
text-align : center;
}
}
.account.navItem{
min-width: 100px;
}
}
@import 'naturalcrit/styles/colors.less';
@navbarHeight : 28px;
@keyframes pinkColoring {
0% { color : pink; }
50% { color : pink; }
75% { color : red; }
100% { color : pink; }
}
@keyframes glideDropDown {
0% {
background-color : #333333;
opacity : 0;
transform : translate(0px, -100%);
}
100% {
background-color : #333333;
opacity : 1;
transform : translate(0px, 0px);
}
}
.homebrew nav {
background-color : #333333;
.navContent {
position : relative;
z-index : 2;
display : flex;
justify-content : space-between;
}
.navSection {
display : flex;
align-items : center;
&:last-child .navItem { border-left : 1px solid #666666; }
}
// "NaturalCrit" logo
.navLogo {
display : block;
margin-top : 0px;
margin-right : 8px;
margin-left : 8px;
color : white;
text-decoration : none;
&:hover {
.name { color : @orange; }
svg { fill : @orange; }
}
svg {
height : 13px;
margin-right : 0.2em;
cursor : pointer;
fill : white;
}
span.name {
font-family : 'CodeLight';
font-size : 15px;
span.crit { font-family : 'CodeBold'; }
small {
font-family : 'Open Sans';
font-size : 0.3em;
font-weight : 800;
text-transform : uppercase;
}
}
}
.navItem {
#backgroundColorsHover;
.animate(background-color);
padding : 8px 12px;
font-size : 10px;
font-weight : 800;
line-height : 13px;
color : white;
text-decoration : none;
text-transform : uppercase;
cursor : pointer;
background-color : #333333;
i {
float : right;
margin-left : 5px;
font-size : 13px;
}
&.patreon {
border-right : 1px solid #666666;
border-left : 1px solid #666666;
&:hover i { color : red; }
i {
color : pink;
.animate(color);
animation-name : pinkColoring;
animation-duration : 2s;
}
}
&.editTitle { // this is not needed at all currently - you used to be able to edit the title via the navbar.
padding : 2px 12px;
input {
width : 250px;
padding : 2px;
margin : 0;
font-family : 'Open Sans', sans-serif;
font-size : 12px;
font-weight : 800;
color : white;
text-align : center;
background-color : transparent;
border : 1px solid @blue;
outline : none;
}
.charCount {
display : inline-block;
margin-left : 8px;
color : #666666;
text-align : right;
vertical-align : bottom;
&.max { color : @red; }
}
}
&.brewTitle {
flex-grow : 1;
font-size : 12px;
font-weight : 800;
color : white;
text-align : center;
text-transform : initial;
background-color : transparent;
}
// "The Homebrewery" logo
&.homebrewLogo {
.animate(color);
font-family : 'CodeBold';
font-size : 12px;
color : white;
div {
margin-top : 2px;
margin-bottom : -2px;
}
&:hover { color : @blue; }
}
&.metadata {
position : relative;
display : flex;
flex-grow : 1;
align-items : center;
height : 100%;
padding : 0;
i { margin-right : 10px;}
.window {
position : absolute;
bottom : 0;
left : 50%;
z-index : -1;
display : flex;
flex-flow : row wrap;
align-content : baseline;
justify-content : flex-start;
width : 440px;
max-height : ~'calc(100vh - 28px)';
padding : 0 10px 5px;
margin : 0 auto;
background-color : #333333;
border : 3px solid #444444;
border-top : unset;
border-radius : 0 0 5px 5px;
box-shadow : inset 0 7px 9px -7px #111111;
transition : transform 0.4s, opacity 0.4s;
&.active {
opacity : 1;
transform : translateX(-50%) translateY(100%);
}
&.inactive {
opacity : 0;
transform : translateX(-50%) translateY(0%);
}
.row {
display : flex;
flex-flow : row wrap;
width : 100%;
h4 {
box-sizing : border-box;
display : block;
flex-basis : 20%;
flex-grow : 1;
min-width : 76px;
padding : 5px 0;
color : #BBBBBB;
text-align : center;
}
p {
flex-basis : 80%;
flex-grow : 1;
padding : 5px 0;
font-family : 'Open Sans', sans-serif;
font-size : 10px;
font-weight : normal;
text-transform : initial;
.tag {
display : inline-block;
padding : 2px;
margin : 2px 2px;
background-color : #444444;
border : 2px solid grey;
border-radius : 5px;
}
a.userPageLink {
color : white;
text-decoration : none;
&:hover { text-decoration : underline; }
}
}
&:nth-of-type(even) { background-color : #555555; }
}
}
}
&.warning {
position : relative;
color : white;
background-color : @orange;
&:hover > .dropdown { visibility : visible; }
.dropdown {
position : absolute;
top : 28px;
left : 0;
z-index : 10000;
box-sizing : border-box;
display : block;
width : 100%;
padding : 13px 5px;
text-align : center;
visibility : hidden;
background-color : #333333;
}
}
&.account {
min-width : 100px;
&.username { text-transform : none;}
}
}
.navDropdownContainer {
position : relative;
.navDropdown {
position: absolute;
top: 28px;
right: 0px;
z-index: 10000;
width: max-content;
min-width:100%;
max-height: calc(100vh - 28px);
overflow: hidden auto;
display: flex;
flex-direction: column;
align-items: flex-end;
.navItem {
position : relative;
display : flex;
justify-content : space-between;
align-items : center;
width : 100%;
border : 1px solid #888888;
border-bottom : 0;
animation-name : glideDropDown;
animation-duration : 0.4s;
}
}
&.recent {
position : relative;
.navDropdown .navItem {
#backgroundColorsHover;
.animate(background-color);
position : relative;
box-sizing : border-box;
display : block;
max-width : 15em;
max-height : ~'calc(100vh - 28px)';
padding : 8px 5px 13px;
overflow : hidden auto;
color : white;
text-decoration : none;
background-color : #333333;
border-top : 1px solid #888888;
scrollbar-color : #666666 #333333;
scrollbar-width : thin;
.clear {
position : absolute;
top : 50%;
right : 0;
display : none;
width : 20px;
height : 100%;
background-color : #333333;
border-radius : 3px;
opacity : 70%;
transform : translateY(-50%);
&:hover { opacity : 100%; }
i {
width : 100%;
height : 100%;
margin : 0;
font-size : 10px;
text-align : center;
}
}
&:hover {
background-color : @blue;
.clear {
display : grid;
place-content : center;
}
}
.title {
display : inline-block;
width : 100%;
overflow : hidden auto;
text-overflow : ellipsis;
white-space : nowrap;
}
.time {
position : absolute;
right : 2px;
bottom : 2px;
font-size : 0.7em;
color : #888888;
}
&.header {
box-sizing : border-box;
display : block;
padding : 5px 0;
color : #BBBBBB;
text-align : center;
background-color : #333333;
border-top : 1px solid #888888;
&:nth-of-type(1) { background-color : darken(@teal, 20%); }
&:nth-of-type(2) { background-color : darken(@purple, 30%); }
}
}
}
}
}
// this should likely be refactored into .navDropdownContainer
.save-menu {
.dropdown { z-index : 1000; }
.navItem i.fa-power-off {
color : red;
&.active {
color : rgb(0, 182, 52);
filter : drop-shadow(0 0 2px rgba(0, 182, 52, 0.765));
}
}
}

View File

@@ -1,11 +1,64 @@
const React = require('react');
const _ = require('lodash');
const Nav = require('naturalcrit/nav/nav.jsx');
const { splitTextStyleAndMetadata } = require('../../../shared/helpers.js'); // Importing the function from helpers.js
module.exports = function(props){
return <Nav.item
href='/new'
color='purple'
icon='fas fa-plus-square'>
new
</Nav.item>;
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);
}
};
return (
<Nav.dropdown>
<Nav.item
className='new'
color='purple'
icon='fa-solid fa-plus-square'>
new
</Nav.item>
<Nav.item
className='fromBlank'
href='/new'
newTab={true}
color='purple'
icon='fa-solid fa-file'>
from blank
</Nav.item>
<Nav.item
className='fromFile'
color='purple'
icon='fa-solid fa-upload'
onClick={() => { document.getElementById('uploadTxt').click(); }}>
<input id="uploadTxt" className='newFromLocal' type="file" onChange={handleFileChange} style={{ display: 'none' }} />
from file
</Nav.item>
</Nav.dropdown>
);
};
module.exports = NewBrew;

View File

@@ -121,6 +121,7 @@ const RecentItems = createClass({
removeItem : function(url, evt){
evt.preventDefault();
evt.stopPropagation();
let edited = JSON.parse(localStorage.getItem(EDIT_KEY) || '[]');
let viewed = JSON.parse(localStorage.getItem(VIEW_KEY) || '[]');
@@ -139,11 +140,11 @@ const RecentItems = createClass({
},
renderDropdown : function(){
if(!this.state.showDropdown) return null;
// if(!this.state.showDropdown) return null;
const makeItems = (brews)=>{
return _.map(brews, (brew, i)=>{
return <a href={brew.url} className='item' key={`${brew.id}-${i}`} target='_blank' rel='noopener noreferrer' title={brew.title || '[ no title ]'}>
return <a className='navItem' href={brew.url} key={`${brew.id}-${i}`} target='_blank' rel='noopener noreferrer' title={brew.title || '[ no title ]'}>
<span className='title'>{brew.title || '[ no title ]'}</span>
<span className='time'>{Moment(brew.ts).fromNow()}</span>
<div className='clear' title='Remove from Recents' onClick={(e)=>{this.removeItem(`${brew.url}`, e);}}><i className='fas fa-times'></i></div>
@@ -151,25 +152,25 @@ const RecentItems = createClass({
});
};
return <div className='dropdown'>
return <>
{(this.props.showEdit && this.props.showView) ?
<h4>edited</h4> : null }
<Nav.item className='header'>edited</Nav.item> : null }
{this.props.showEdit ?
makeItems(this.state.edit) : null }
{(this.props.showEdit && this.props.showView) ?
<h4>viewed</h4> : null }
<Nav.item className='header'>viewed</Nav.item> : null }
{this.props.showView ?
makeItems(this.state.view) : null }
</div>;
</>;
},
render : function(){
return <Nav.item icon='fas fa-history' color='grey' className='recent'
onMouseEnter={()=>this.handleDropdown(true)}
onMouseLeave={()=>this.handleDropdown(false)}>
{this.props.text}
return <Nav.dropdown className='recent'>
<Nav.item icon='fas fa-history' color='grey' >
{this.props.text}
</Nav.item>
{this.renderDropdown()}
</Nav.item>;
</Nav.dropdown>;
}
});

View File

@@ -1,74 +1,82 @@
const React = require('react');
const createClass = require('create-react-class');
const _ = require('lodash');
const cx = require('classnames');
const React = require('react');
const moment = require('moment');
const UIPage = require('../basePages/uiPage/uiPage.jsx');
const Nav = require('naturalcrit/nav/nav.jsx');
const Navbar = require('../../navbar/navbar.jsx');
const RecentNavItem = require('../../navbar/recent.navitem.jsx').both;
const Account = require('../../navbar/account.navitem.jsx');
const NewBrew = require('../../navbar/newbrew.navitem.jsx');
const HelpNavItem = require('../../navbar/help.navitem.jsx');
const NaturalCritIcon = require('naturalcrit/svg/naturalcrit.svg.jsx');
const AccountPage = createClass({
displayName : 'AccountPage',
getDefaultProps : function() {
return {
brew : {},
uiItems : {}
};
},
getInitialState : function() {
return {
uiItems : this.props.uiItems
};
},
let SAVEKEY = '';
renderNavItems : function() {
return <Navbar>
<Nav.section>
<NewBrew />
<HelpNavItem />
<RecentNavItem />
<Account />
</Nav.section>
</Navbar>;
},
const AccountPage = (props)=>{
// destructure props and set state for save location
const { accountDetails, brew } = props;
const [saveLocation, setSaveLocation] = React.useState('');
renderUiItems : function() {
return <>
<div className='dataGroup'>
<h1>Account Information <i className='fas fa-user'></i></h1>
<p><strong>Username: </strong> {this.props.uiItems.username || 'No user currently logged in'}</p>
<p><strong>Last Login: </strong> {moment(this.props.uiItems.issued).format('dddd, MMMM Do YYYY, h:mm:ss a ZZ') || '-'}</p>
</div>
<div className='dataGroup'>
<h3>Homebrewery Information <NaturalCritIcon /></h3>
<p><strong>Brews on Homebrewery: </strong> {this.props.uiItems.mongoCount}</p>
</div>
<div className='dataGroup'>
<h3>Google Information <i className='fab fa-google-drive'></i></h3>
<p><strong>Linked to Google: </strong> {this.props.uiItems.googleId ? 'YES' : 'NO'}</p>
{this.props.uiItems.googleId &&
<p>
<strong>Brews on Google Drive: </strong> {this.props.uiItems.googleCount ?? <>Unable to retrieve files - <a href='https://github.com/naturalcrit/homebrewery/discussions/1580'>follow these steps to renew your Google credentials.</a></>}
</p>
}
</div>
</>;
},
// initialize save location from local storage based on user id
React.useEffect(()=>{
if(!saveLocation && accountDetails.username) {
SAVEKEY = `HOMEBREWERY-DEFAULT-SAVE-LOCATION-${accountDetails.username}`;
// if no SAVEKEY in local storage, default save location to Google Drive if user has Google account.
let saveLocation = window.localStorage.getItem(SAVEKEY);
saveLocation = saveLocation ?? (accountDetails.googleId ? 'GOOGLE-DRIVE' : 'HOMEBREWERY');
setActiveSaveLocation(saveLocation);
}
}, []);
render : function(){
return <UIPage brew={this.props.brew}>
{this.renderUiItems()}
</UIPage>;
}
});
const setActiveSaveLocation = (newSelection)=>{
if(saveLocation === newSelection) return;
window.localStorage.setItem(SAVEKEY, newSelection);
setSaveLocation(newSelection);
};
// todo: should this be a set of radio buttons (well styled) since it's either/or choice?
const renderSaveLocationButton = (name, key, shouldRender = true)=>{
if(!shouldRender) return null;
return (
<button className={saveLocation === key ? 'active' : ''} onClick={()=>{setActiveSaveLocation(key);}}>
{name}
</button>
);
};
// render the entirety of the account page content
const renderAccountPage = ()=>{
return (
<>
<div className='dataGroup'>
<h1>Account Information <i className='fas fa-user'></i></h1>
<p><strong>Username: </strong>{accountDetails.username || 'No user currently logged in'}</p>
<p><strong>Last Login: </strong>{moment(accountDetails.issued).format('dddd, MMMM Do YYYY, h:mm:ss a ZZ') || '-'}</p>
</div>
<div className='dataGroup'>
<h3>Homebrewery Information <NaturalCritIcon /></h3>
<p><strong>Brews on Homebrewery: </strong>{accountDetails.mongoCount}</p>
</div>
<div className='dataGroup'>
<h3>Google Information <i className='fab fa-google-drive'></i></h3>
<p><strong>Linked to Google: </strong>{accountDetails.googleId ? 'YES' : 'NO'}</p>
{accountDetails.googleId && (
<p>
<strong>Brews on Google Drive: </strong>{accountDetails.googleCount ?? (
<>
Unable to retrieve files - <a href='https://github.com/naturalcrit/homebrewery/discussions/1580'>follow these steps to renew your Google credentials.</a>
</>
)}
</p>
)}
</div>
<div className='dataGroup'>
<h4>Default Save Location</h4>
{renderSaveLocationButton('Homebrewery', 'HOMEBREWERY')}
{renderSaveLocationButton('Google Drive', 'GOOGLE-DRIVE', accountDetails.googleId)}
</div>
</>
);
};
// return the account page inside the base layout wrapper (with navbar etc).
return (
<UIPage brew={brew}>
{renderAccountPage()}
</UIPage>);
};
module.exports = AccountPage;

View File

@@ -6,7 +6,8 @@ const cx = require('classnames');
const moment = require('moment');
const request = require('../../../../utils/request-middleware.js');
const googleDriveIcon = require('../../../../googleDrive.png');
const googleDriveIcon = require('../../../../googleDrive.svg');
const homebreweryIcon = require('../../../../thumbnail.png');
const dedent = require('dedent-tabs').default;
const BrewItem = createClass({
@@ -19,7 +20,8 @@ const BrewItem = createClass({
authors : [],
stubbed : true
},
reportError : ()=>{}
updateListFilter : ()=>{},
reportError : ()=>{}
};
},
@@ -43,6 +45,10 @@ const BrewItem = createClass({
});
},
updateFilter : function(type, term){
this.props.updateListFilter(type, term);
},
renderDeleteBrewLink : function(){
if(!this.props.brew.editId) return;
@@ -90,11 +96,17 @@ const BrewItem = createClass({
</a>;
},
renderGoogleDriveIcon : function(){
if(!this.props.brew.googleId) return;
renderStorageIcon : function(){
if(this.props.brew.googleId) {
return <span title={this.props.brew.webViewLink ? 'Your Google Drive Storage': 'Another User\'s Google Drive Storage'}>
<a href={this.props.brew.webViewLink} target='_blank'>
<img className='googleDriveIcon' src={googleDriveIcon} alt='googleDriveIcon' />
</a>
</span>;
}
return <span>
<img className='googleDriveIcon' src={googleDriveIcon} alt='googleDriveIcon' />
return <span title='Homebrewery Storage'>
<img className='homebreweryIcon' src={homebreweryIcon} alt='homebreweryIcon' />
</span>;
},
@@ -102,6 +114,9 @@ const BrewItem = createClass({
const brew = this.props.brew;
if(Array.isArray(brew.tags)) { // temporary fix until dud tags are cleaned
brew.tags = brew.tags?.filter((tag)=>tag); //remove tags that are empty strings
brew.tags.sort((a, b)=>{
return a.indexOf(':') - b.indexOf(':') != 0 ? a.indexOf(':') - b.indexOf(':') : a.toLowerCase().localeCompare(b.toLowerCase());
});
}
const dateFormatString = 'YYYY-MM-DD HH:mm:ss';
@@ -118,17 +133,21 @@ const BrewItem = createClass({
<div className='info'>
{brew.tags?.length ? <>
<div className='brewTags' title={`Tags:\n${brew.tags.join('\n')}`}>
<div className='brewTags' title={`${brew.tags.length} tags:\n${brew.tags.join('\n')}`}>
<i className='fas fa-tags'/>
{brew.tags.map((tag, idx)=>{
const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/);
return <span key={idx} className={matches[1]}>{matches[2]}</span>;
return <span key={idx} className={matches[1]} onClick={()=>{this.updateFilter(tag);}}>{matches[2]}</span>;
})}
</div>
</> : <></>
}
<span title={`Authors:\n${brew.authors?.join('\n')}`}>
<i className='fas fa-user'/> {brew.authors?.join(', ')}
<i className='fas fa-user'/> {brew.authors?.map((author, index)=>(
<>
<a key={index} href={`/user/${author}`}>{author}</a>
{index < brew.authors.length - 1 && ', '}
</>))}
</span>
<br />
<span title={`Last viewed: ${moment(brew.lastViewed).local().format(dateFormatString)}`}>
@@ -144,7 +163,7 @@ const BrewItem = createClass({
Last updated: ${moment(brew.updatedAt).local().format(dateFormatString)}`}>
<i className='fas fa-sync-alt' /> {moment(brew.updatedAt).fromNow()}
</span>
{this.renderGoogleDriveIcon()}
{this.renderStorageIcon()}
</div>
<div className='links'>

View File

@@ -48,6 +48,10 @@
&>span{
margin-right : 12px;
line-height : 1.5em;
a {
color:inherit;
}
}
}
.brewTags span {
@@ -59,6 +63,41 @@
white-space: nowrap;
display: inline-block;
font-weight: bold;
border-color: currentColor;
cursor : pointer;
&:before {
font-family: 'Font Awesome 5 Free';
font-size: 12px;
margin-right: 3px;
}
&.type {
background-color: #0080003b;
color: #008000;
&:before{
content: '\f0ad';
}
}
&.group {
background-color: #5050503b;
color: #000000;
&:before{
content: '\f500';
}
}
&.meta {
background-color: #0000803b;
color: #000080;
&:before{
content: '\f05a';
}
}
&.system {
background-color: #8000003b;
color: #800000;
&:before{
content: '\f518';
}
}
}
&:hover{
.links{
@@ -94,8 +133,15 @@
}
}
.googleDriveIcon {
height : 20px;
height : 18px;
padding : 0px;
margin : -5px;
}
.homebreweryIcon {
mix-blend-mode : darken;
height : 24px;
position : relative;
top : 5px;
left : -5px;
}
}

View File

@@ -36,6 +36,7 @@ const ListPage = createClass({
return {
filterString : this.props.query?.filter || '',
filterTags : [],
sortType : this.props.query?.sort || null,
sortDir : this.props.query?.dir || null,
query : this.props.query,
@@ -82,14 +83,14 @@ const ListPage = createClass({
if(!brews || !brews.length) return <div className='noBrews'>No Brews.</div>;
return _.map(brews, (brew, idx)=>{
return <BrewItem brew={brew} key={idx} reportError={this.props.reportError}/>;
return <BrewItem brew={brew} key={idx} reportError={this.props.reportError} updateListFilter={ (tag)=>{ this.updateUrl(this.state.filterString, this.state.sortType, this.state.sortDir, tag); }}/>;
});
},
sortBrewOrder : function(brew){
if(!brew.title){brew.title = 'No Title';}
const mapping = {
'alpha' : _.deburr(brew.title.toLowerCase()),
'alpha' : _.deburr(brew.title.trim().toLowerCase()),
'created' : moment(brew.createdAt).format(),
'updated' : moment(brew.updatedAt).format(),
'views' : brew.views,
@@ -136,13 +137,33 @@ const ListPage = createClass({
return;
},
updateUrl : function(filterTerm, sortType, sortDir){
updateUrl : function(filterTerm, sortType, sortDir, filterTag=''){
const url = new URL(window.location.href);
const urlParams = new URLSearchParams(url.search);
urlParams.set('sort', sortType);
urlParams.set('dir', sortDir);
let filterTags = urlParams.getAll('tag');
if(filterTag != '') {
if(filterTags.findIndex((tag)=>{return tag.toLowerCase()==filterTag.toLowerCase();}) == -1){
filterTags.push(filterTag);
} else {
filterTags = filterTags.filter((tag)=>{ return tag.toLowerCase() != filterTag.toLowerCase(); });
}
}
urlParams.delete('tag');
// Add tags to URL in the order they were clicked
filterTags.forEach((tag)=>{ urlParams.append('tag', tag); });
// Sort tags before updating state
filterTags.sort((a, b)=>{
return a.indexOf(':') - b.indexOf(':') != 0 ? a.indexOf(':') - b.indexOf(':') : a.toLowerCase().localeCompare(b.toLowerCase());
});
this.setState({
filterTags
});
if(!filterTerm)
urlParams.delete('filter');
else
@@ -166,6 +187,16 @@ const ListPage = createClass({
</div>;
},
renderTagsOptions : function(){
if(this.state.filterTags?.length == 0) return;
return <div className='tags-container'>
{_.map(this.state.filterTags, (tag, idx)=>{
const matches = tag.match(/^(?:([^:]+):)?([^:]+)$/);
return <span key={idx} className={matches[1]} onClick={()=>{ this.updateUrl(this.state.filterString, this.state.sortType, this.state.sortDir, tag); }}>{matches[2]}</span>;
})}
</div>;
},
renderSortOptions : function(){
return <div className='sort-container'>
<h6>Sort by :</h6>
@@ -176,9 +207,6 @@ const ListPage = createClass({
{/* {this.renderSortOption('Latest', 'latest')} */}
{this.renderFilterOption()}
</div>;
},
@@ -186,14 +214,28 @@ const ListPage = createClass({
const testString = _.deburr(this.state.filterString).toLowerCase();
brews = _.filter(brews, (brew)=>{
// Filter by user entered text
const brewStrings = _.deburr([
brew.title,
brew.description,
brew.tags].join('\n')
.toLowerCase());
return brewStrings.includes(testString);
const filterTextTest = brewStrings.includes(testString);
// Filter by user selected tags
let filterTagTest = true;
if(this.state.filterTags.length > 0){
filterTagTest = Array.isArray(brew.tags) && this.state.filterTags?.every((tag)=>{
return brew.tags.findIndex((brewTag)=>{
return brewTag.toLowerCase() == tag.toLowerCase();
}) >= 0;
});
}
return filterTextTest && filterTagTest;
});
return _.orderBy(brews, (brew)=>{ return this.sortBrewOrder(brew); }, this.state.sortDir);
},
@@ -219,12 +261,15 @@ const ListPage = createClass({
render : function(){
return <div className='listPage sitePage'>
<link href='/themes/V3/5ePHB/style.css' rel='stylesheet'/>
{/*<style>@layer V3_5ePHB, bundle;</style>*/}
<link href='/themes/V3/Blank/style.css' type="text/css" rel='stylesheet'/>
<link href='/themes/V3/5ePHB/style.css' type="text/css" rel='stylesheet'/>
{this.props.navItems}
{this.renderSortOptions()}
{this.renderTagsOptions()}
<div className='content V3'>
<div className='phb page'>
<div className='page'>
{this.renderBrewCollection(this.state.brewCollection)}
</div>
</div>

View File

@@ -2,22 +2,24 @@
.noColumns(){
column-count : auto;
column-fill : auto;
column-gap : auto;
column-gap : normal;
column-width : auto;
-webkit-column-count : auto;
-moz-column-count : auto;
-webkit-column-width : auto;
-moz-column-width : auto;
-webkit-column-gap : auto;
-moz-column-gap : auto;
-webkit-column-gap : normal;
-moz-column-gap : normal;
height : auto;
min-height : 279.4mm;
margin : 20px auto;
contain : unset;
}
.listPage{
.content{
.phb{
.noColumns();
height : auto;
min-height : 279.4mm;
margin : 20px auto;
z-index : 1;
.page{
.noColumns() !important; //Needed to override PHB Theme since this is on a lower @layer
&::after{
display : none;
}
@@ -51,7 +53,7 @@
}
}
}
.sort-container{
.sort-container {
font-family : 'Open Sans', sans-serif;
position : sticky;
top : 0;
@@ -63,7 +65,7 @@
border-bottom : 1px solid #666;
color : white;
text-align : center;
z-index : 500;
z-index : 1;
display : flex;
justify-content : center;
align-items : baseline;
@@ -123,4 +125,66 @@
}
.tags-container {
height : 30px;
background-color : #555;
border-top : 1px solid #666;
border-bottom : 1px solid #666;
color : white;
display : flex;
justify-content : center;
align-items : center;
column-gap : 15px;
row-gap : 5px;
flex-wrap : wrap;
span {
font-family : 'Open Sans', sans-serif;
font-size : 11px;
font-weight : bold;
border : 1px solid;
border-radius : 3px;
padding : 3px;
cursor : pointer;
color: #dfdfdf;
&:before {
font-family: 'Font Awesome 5 Free';
font-size: 12px;
margin-right: 3px;
}
&:after {
content: '\f00d';
font-family: 'Font Awesome 5 Free';
font-size: 12px;
margin-left: 3px;
}
&.type {
background-color: #008000;
border-color: #00a000;
&:before{
content: '\f0ad';
}
}
&.group {
background-color: #505050;
border-color: #000000;
&:before{
content: '\f500';
}
}
&.meta {
background-color: #000080;
border-color: #0000a0;
&:before{
content: '\f05a';
}
}
&.system {
background-color: #800000;
border-color: #a00000;
&:before{
content: '\f518';
}
}
}
}
}

View File

@@ -1,47 +1,69 @@
.uiPage{
.content{
overflow-y : hidden;
width : 90vw;
background-color: #f0f0f0;
font-family: 'Open Sans';
margin-left: auto;
margin-right: auto;
margin-top: 25px;
padding: 2% 4%;
font-size: 0.8em;
line-height: 1.8em;
.dataGroup{
padding: 6px 20px 15px;
border: 2px solid black;
border-radius: 5px;
margin: 5px 0px;
}
h1, h2, h3, h4{
font-weight: 900;
text-transform: uppercase;
margin: 0.5em 30% 0.25em 0;
border-bottom: 2px solid slategrey;
}
h1 {
font-size: 2em;
border-bottom: 2px solid darkslategrey;
margin-bottom: 0.5em;
margin-right: 0;
}
h2 {
font-size: 1.75em;
}
h3 {
font-size: 1.5em;
svg {
width: 19px;
.homebrew {
.uiPage.sitePage {
.content {
width : ~"min(90vw, 1000px)";
padding : 2% 4%;
margin-top : 25px;
margin-right : auto;
margin-left : auto;
overflow-y : scroll;
font-family : 'Open Sans';
font-size : 0.8em;
line-height : 1.8em;
background-color : #F0F0F0;
.dataGroup {
padding : 6px 20px 15px;
margin : 5px 0px;
border : 2px solid black;
border-radius : 5px;
button {
background-color : transparent;
border : 1px solid black;
border-radius : 5px;
width : 125px;
color : black;
margin-right : 5px;
&.active {
background-color: #0007;
color: white;
&:before {
content: '\f00c';
font-family: 'FONT AWESOME 5 FREE';
margin-right: 5px;
}
}
}
}
h1, h2, h3, h4 {
width : 100%;
margin : 0.5em 30% 0.25em 0;
font-weight : 900;
text-transform : uppercase;
border-bottom : 2px solid slategrey;
}
h1 {
margin-right : 0;
margin-bottom : 0.5em;
font-size : 2em;
border-bottom : 2px solid darkslategrey;
}
h2 { font-size : 1.75em; }
h3 {
font-size : 1.5em;
svg { width : 19px; }
}
h4 { font-size : 1.25em; }
strong { font-weight : bold; }
em { font-style : italic; }
ul {
padding-left : 1.25em;
list-style : square;
}
.blank {
height : 1em;
margin-top : 0;
& + * { margin-top : 0; }
}
}
h4 {
font-size: 1.25em;
}
strong {
font-weight: bold;
}
}
}
}

View File

@@ -24,8 +24,7 @@ const Markdown = require('naturalcrit/markdown.js');
const { DEFAULT_BREW_LOAD } = require('../../../../server/brewDefaults.js');
const googleDriveActive = require('../../googleDrive.png');
const googleDriveInactive = require('../../googleDriveMono.png');
const googleDriveIcon = require('../../googleDrive.svg');
const SAVE_TIMEOUT = 3000;
@@ -51,7 +50,8 @@ const EditPage = createClass({
url : '',
autoSave : true,
autoSaveWarning : false,
unsavedTime : new Date()
unsavedTime : new Date(),
currentEditorPage : 0
};
},
savedBrew : null,
@@ -92,7 +92,7 @@ const EditPage = createClass({
if(!(e.ctrlKey || e.metaKey)) return;
const S_KEY = 83;
const P_KEY = 80;
if(e.keyCode == S_KEY) this.save();
if(e.keyCode == S_KEY) this.trySave(true);
if(e.keyCode == P_KEY) window.open(`/print/${this.processShareId()}?dialog=true`, '_blank').focus();
if(e.keyCode == P_KEY || e.keyCode == S_KEY){
e.stopPropagation();
@@ -110,9 +110,10 @@ const EditPage = createClass({
if(htmlErrors.length) htmlErrors = Markdown.validate(text);
this.setState((prevState)=>({
brew : { ...prevState.brew, text: text },
isPending : true,
htmlErrors : htmlErrors
brew : { ...prevState.brew, text: text },
isPending : true,
htmlErrors : htmlErrors,
currentEditorPage : this.refs.editor.getCurrentPage() - 1 //Offset index since Marked starts pages at 0
}), ()=>{if(this.state.autoSave) this.trySave();});
},
@@ -138,13 +139,14 @@ const EditPage = createClass({
return !_.isEqual(this.state.brew, this.savedBrew);
},
trySave : function(){
trySave : function(immediate=false){
if(!this.debounceSave) this.debounceSave = _.debounce(this.save, SAVE_TIMEOUT);
if(this.hasChanges()){
this.debounceSave();
} else {
this.debounceSave.cancel();
}
if(immediate) this.debounceSave.flush();
},
handleGoogleClick : function(){
@@ -222,10 +224,7 @@ const EditPage = createClass({
renderGoogleDriveIcon : function(){
return <Nav.item className='googleDriveStorage' onClick={this.handleGoogleClick}>
{this.state.saveGoogle
? <img src={googleDriveActive} alt='googleDriveActive'/>
: <img src={googleDriveInactive} alt='googleDriveInactive'/>
}
<img src={googleDriveIcon} className={this.state.saveGoogle ? '' : 'inactive'} alt='Google Drive icon'/>
{this.state.confirmGoogleTransfer &&
<div className='errorContainer' onClick={this.closeAlerts}>
@@ -258,6 +257,15 @@ const EditPage = createClass({
</div>
</div>
}
{this.state.alertTrashedGoogleBrew &&
<div className='errorContainer' onClick={this.closeAlerts}>
This brew is currently in your Trash folder on Google Drive!<br />If you want to keep it, make sure to move it before it is deleted permanently!<br />
<div className='confirm'>
OK
</div>
</div>
}
</Nav.item>;
},
@@ -339,16 +347,6 @@ const EditPage = createClass({
const shareLink = this.processShareId();
return <Navbar>
{this.state.alertTrashedGoogleBrew &&
<div className='errorContainer' onClick={this.closeAlerts}>
This brew is currently in your Trash folder on Google Drive!<br />If you want to keep it, make sure to move it before it is deleted permanently!<br />
<div className='confirm'>
OK
</div>
</div>
}
<Nav.section>
<Nav.item className='brewTitle'>{this.state.brew.title}</Nav.item>
</Nav.section>
@@ -402,7 +400,15 @@ const EditPage = createClass({
reportError={this.errorReported}
renderer={this.state.brew.renderer}
/>
<BrewRenderer text={this.state.brew.text} style={this.state.brew.style} renderer={this.state.brew.renderer} theme={this.state.brew.theme} errors={this.state.htmlErrors} />
<BrewRenderer
text={this.state.brew.text}
style={this.state.brew.style}
renderer={this.state.brew.renderer}
theme={this.state.brew.theme}
errors={this.state.htmlErrors}
lang={this.state.brew.lang}
currentEditorPage={this.state.currentEditorPage}
/>
</SplitPane>
</div>
</div>;

View File

@@ -18,8 +18,12 @@
position : relative;
}
.googleDriveStorage img{
height : 20px;
height : 18px;
padding : 0px;
margin : -5px;
&.inactive {
filter: grayscale(1);
}
}
}

View File

@@ -4,44 +4,37 @@ const createClass = require('create-react-class');
const _ = require('lodash');
const cx = require('classnames');
const Nav = require('naturalcrit/nav/nav.jsx');
const Navbar = require('../../navbar/navbar.jsx');
const PatreonNavItem = require('../../navbar/patreon.navitem.jsx');
const RecentNavItem = require('../../navbar/recent.navitem.jsx').both;
const HelpNavItem = require('../../navbar/help.navitem.jsx');
const UIPage = require('../basePages/uiPage/uiPage.jsx');
const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx');
const Markdown = require('../../../../shared/naturalcrit/markdown.js');
const ErrorIndex = require('./errors/errorIndex.js');
const ErrorPage = createClass({
displayName : 'ErrorPage',
getDefaultProps : function() {
return {
ver : '0.0.0',
errorId : ''
errorId : '',
text : '# Oops \n We could not find a brew with that id. **Sorry!**',
error : {}
};
},
text : '# Oops \n We could not find a brew with that id. **Sorry!**',
render : function(){
return <div className='errorPage sitePage'>
<Navbar ver={this.props.ver}>
<Nav.section>
<Nav.item className='errorTitle'>
Crit Fail!
</Nav.item>
</Nav.section>
const errorText = ErrorIndex(this.props)[this.props.brew.HBErrorCode.toString()] || '';
<Nav.section>
<PatreonNavItem />
<HelpNavItem />
<RecentNavItem />
</Nav.section>
</Navbar>
<div className='content'>
<BrewRenderer text={this.text} />
return <UIPage brew={{ title: 'Crit Fail!' }}>
<div className='dataGroup'>
<div className='errorTitle'>
<h1>{`Error ${this.props.brew.status || '000'}`}</h1>
<h4>{this.props.brew.text || 'No error text'}</h4>
</div>
<hr />
<div dangerouslySetInnerHTML={{ __html: Markdown.render(errorText) }} />
</div>
</div>;
</UIPage>;
}
});

View File

@@ -1,5 +1,13 @@
.errorPage{
.errorTitle{
background-color: @orange;
.homebrew {
.uiPage.sitePage {
.errorTitle {
//background-color: @orange;
color : #D02727;
text-align : center;
}
.content {
h1, h2, h3, h4 { border-bottom : none; }
hr { border-bottom : 2px solid slategrey; }
}
}
}

View File

@@ -0,0 +1,153 @@
const dedent = require('dedent-tabs').default;
const loginUrl = 'https://www.naturalcrit.com/login';
const errorIndex = (props)=>{
return {
// Default catch all
'00' : dedent`
## An unknown error occurred!
We aren't sure what happened, but our server wasn't able to find what you
were looking for.`,
// General Google load error
'01' : dedent`
## An error occurred while retrieving this brew from Google Drive!
Google reported an error while attempting to retrieve a brew from this link.`,
// Google Drive - 404 : brew deleted or access denied
'02' : dedent`
## We can't find this brew in Google Drive!
This file was saved on Google Drive, but this link doesn't work anymore.
${props.brew.authors?.length > 0
? `Note that this brew belongs to the Homebrewery account **${props.brew.authors[0]}**,
${props.brew.account
? `which is
${props.brew.authors[0] == props.brew.account
? `your account.`
: `not your account (you are currently signed in as **${props.brew.account}**).`
}`
: 'and you are not currently signed in to any account.'
}`
: ''
}
The Homebrewery cannot delete files from Google Drive on its own, so there
are three most likely possibilities:
:
- **The Google Drive files may have been accidentally deleted.** Look in
the Google Drive account that owns this brew (or ask the owner to do so),
and make sure the Homebrewery folder is still there, and that it holds your brews
as text files.
- **You may have changed the sharing settings for your files.** If the files
are still on Google Drive, change all of them to be shared *with everyone who has
the link* so the Homebrewery can access them.
- **The Google Account may be closed.** Google may have removed the account
due to inactivity or violating a Google policy. Make sure the owner can
still access Google Drive normally and upload/download files to it.
:
If the file isn't found, Google Drive usually puts your file in your Trash folder for
30 days. Assuming the trash hasn't been emptied yet, it might be worth checking.
You can also find the Activity tab on the right side of the Google Drive page, which
shows the recent activity on Google Drive. This can help you pin down the exact date
the brew was deleted or moved, and by whom.
:
If the brew still isn't found, some people have had success asking Google to recover
accidentally deleted files at this link:
https://support.google.com/drive/answer/1716222?hl=en&ref_topic=7000946.
At the bottom of the page there is a button that says *Send yourself an Email*
and you will receive instructions on how to request the files be restored.
:
Also note, if you prefer not to use your Google Drive for storage, you can always
change the storage location of a brew by clicking the Google drive icon by the
brew title and choosing *transfer my brew to/from Google Drive*.`,
// User is not Authors list
'03' : dedent`
## Current signed-in user does not have editor access to this brew.
If you believe you should have access to this brew, ask one of its authors to invite you
as an author by opening the Edit page for the brew, viewing the {{fa,fa-info-circle}}
**Properties** tab, and adding your username to the "invited authors" list. You can
then try to access this document again.
:
**Brew Title:** ${props.brew.brewTitle || 'Unable to show title'}
**Current Authors:** ${props.brew.authors?.map((author)=>{return `[${author}](/user/${author})`;}).join(', ') || 'Unable to list authors'}
[Click here to be redirected to the brew's share page.](/share/${props.brew.shareId})`,
// User is not signed in; must be a user on the Authors List
'04' : dedent`
## Sign-in required to edit this brew.
You must be logged in to one of the accounts listed as an author of this brew.
User is not logged in. Please log in [here](${loginUrl}).
:
**Brew Title:** ${props.brew.brewTitle || 'Unable to show title'}
**Current Authors:** ${props.brew.authors?.map((author)=>{return `[${author}](/user/${author})`;}).join(', ') || 'Unable to list authors'}
[Click here to be redirected to the brew's share page.](/share/${props.brew.shareId})`,
// Brew load error
'05' : dedent`
## No Homebrewery document could be found.
The server could not locate the Homebrewery document. It was likely deleted by
its owner.
:
**Requested access:** ${props.brew.accessType}
**Brew ID:** ${props.brew.brewId}`,
// Brew save error
'06' : dedent`
## Unable to save Homebrewery document.
An error occurred wil attempting to save the Homebrewery document.`,
// Brew delete error
'07' : dedent`
## Unable to delete Homebrewery document.
An error occurred while attempting to remove the Homebrewery document.
:
**Brew ID:** ${props.brew.brewId}`,
// Author delete error
'08' : dedent`
## Unable to remove user from Homebrewery document.
An error occurred while attempting to remove the user from the Homebrewery document author list!
:
**Brew ID:** ${props.brew.brewId}`,
// Brew locked by Administrators error
'100' : dedent`
## This brew has been locked.
Please contact the Administrators to unlock this document.
:
**Brew ID:** ${props.brew.brewId}
**Brew Title:** ${props.brew.brewTitle}`,
};
};
module.exports = errorIndex;

View File

@@ -31,9 +31,10 @@ const HomePage = createClass({
},
getInitialState : function() {
return {
brew : this.props.brew,
welcomeText : this.props.brew.text,
error : undefined
brew : this.props.brew,
welcomeText : this.props.brew.text,
error : undefined,
currentEditorPage : 0
};
},
handleSave : function(){
@@ -53,7 +54,8 @@ const HomePage = createClass({
},
handleTextChange : function(text){
this.setState((prevState)=>({
brew : { ...prevState.brew, text: text }
brew : { ...prevState.brew, text: text },
currentEditorPage : this.refs.editor.getCurrentPage() - 1 //Offset index since Marked starts pages at 0
}));
},
renderNavbar : function(){
@@ -85,7 +87,12 @@ const HomePage = createClass({
renderer={this.state.brew.renderer}
showEditButtons={false}
/>
<BrewRenderer text={this.state.brew.text} style={this.state.brew.style} renderer={this.state.brew.renderer}/>
<BrewRenderer
text={this.state.brew.text}
style={this.state.brew.style}
renderer={this.state.brew.renderer}
currentEditorPage={this.state.currentEditorPage}
/>
</SplitPane>
</div>

View File

@@ -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.
@@ -36,7 +36,7 @@ After clicking the "Print" item in the navbar a new page will open and a print d
If you want to save ink or have a monochrome printer, add the **PRINT → {{fas,fa-tint}} Ink Friendly** snippet to your brew!
}}
![homebrew mug](http://i.imgur.com/hMna6G0.png) {position:absolute,bottom:20px,left:130px,width:220px}
![homebrew mug](https://i.imgur.com/hMna6G0.png) {position:absolute,bottom:20px,left:130px,width:220px}
{{artist,bottom:160px,left:100px
##### Homebrew Mug
@@ -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
<a href='https://discord.gg/by3deKx' target='_blank'><img src='/assets/discordOfManyThings.svg' alt='Discord of Many Things Logo' title='Discord of Many Things Logo' style='width:50px; float: right; padding-left: 10px;'/></a>
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 <a href='https://discord.gg/by3deKx' target='_blank' title='Discord of Many Things'>Discord of Many Things</a> is another great resource to connect with fellow homebrewers for help and feedback.
[![Discord](/assets/discordOfManyThings.svg){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
<a href='https://discord.gg/by3deKx' target='_blank' title='Discord of Many Things' style='color: black;'><img src='/assets/discord.png' style='height:30px'/></a>
<a href='https://github.com/naturalcrit/homebrewery' target='_blank' title='Github' style='color: black; padding-left: 5px;'><img src='/assets/github.png' style='height:30px'/></a>
<a href='https://patreon.com/NaturalCrit' target='_blank' title='Patreon' style='color: black; padding-left: 5px;'><img src='/assets/patreon.png' style='height:30px'/></a>
<a href='https://www.reddit.com/r/homebrewery/' target='_blank' title='Reddit' style='color: black; padding-left: 5px;'><img src='/assets/reddit.png' style='height:30px'/></a>
[![Discord](/assets/discord.png){height:30px}](https://discord.gg/by3deKx)
[![Github](/assets/github.png){height:30px}](https://github.com/naturalcrit/homebrewery)
[![Patreon](/assets/patreon.png){height:30px}](https://patreon.com/NaturalCrit)
[![Reddit](/assets/reddit.png){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 `<span></span>` and `<div></div>` with `{{ }}` for a cleaner custom formatting. Inline spans and block elements can be created and given ID's and Classes, as well as css properties, each of which are comma separated with no spaces. Use double quotes if a value requires spaces. Spans and Blocks start the same:
Standard Markdown lacks several equivalences to HTML. Hence, we have introduced `{{ }}` as a replacement for `<span></span>` and `<div></div>` for a cleaner custom formatting. Inline spans and block elements can be created and given ID's and Classes, as well as CSS properties, each of which are comma separated with no spaces. Use double quotes if a value requires spaces. Spans and Blocks start the same:
#### Span
My favorite author is {{pen,#author,color:orange,font-family:"trebuchet ms" Brandon Sanderson}}. The orange text has a class of `pen`, an id of `author`, is colored orange, and given a new font. The first space outside of quotes marks the beginning of the content.
@@ -126,16 +132,18 @@ A blank line can be achieved with a run of one or more `:` alone on a line. More
::
Much nicer than `<br><br><br><br><br>`
### Definition Lists
**Example** :: V3 uses HTML *definition lists* to create "lists" with hanging indents.
### Column Breaks
Column and page breaks with `\column` and `\page`.
\column
### Tables
Tables now allow column & row spanning between cells. This is included in some updated snippets, but a simplified example is given below.
@@ -163,13 +171,13 @@ Using *Curly Injection* you can assign an id, classes, or inline CSS properties
![alt-text](https://s-media-cache-ak0.pinimg.com/736x/4a/81/79/4a8179462cfdf39054a418efd4cb743e.jpg) {width:100px,border:"2px solid",border-radius:10px}
\* *When using Imgur-hosted images, use the "direct link", which can be found when you click into your image in the Imgur interace.*
\* *When using Imgur-hosted images, use the "direct link", which can be found when you click into your image in the Imgur interface.*
## Snippets
Homebrewery comes with a series of *code snippets* found at the top of the editor pane that make it easy to create brews as quickly as possible. Just set your cursor where you want the code to appear in the editor pane, choose a snippet, and make the adjustments you need.
## Style Editor Panel
{{fa,fa-paint-brush}} Technically released prior to v3 but still new to many users, check out the new **Style Editor** located on the right side of the Snippet bar. This editor accepts CSS for styling without requiring `<style>` tags-- anything that would have gone inside style tags before can now be placed here, and snippets that insert CSS styles are now located on that tab.
{{fa,fa-paint-brush}} Usually overlooked or unused by some users, the **Style Editor** tab is located on the right side of the Snippet bar. This editor accepts CSS for styling without requiring `<style>` tags-- anything that would have gone inside style tags before can now be placed here, and snippets that insert CSS styles are now located on that tab.
{{pageNumber 2}}
{{footnote PART 2 | BORING STUFF}}

View File

@@ -20,9 +20,10 @@ const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx');
const { DEFAULT_BREW } = require('../../../../server/brewDefaults.js');
const BREWKEY = 'homebrewery-new';
const BREWKEY = 'homebrewery-new';
const STYLEKEY = 'homebrewery-new-style';
const METAKEY = 'homebrewery-new-meta';
const METAKEY = 'homebrewery-new-meta';
let SAVEKEY;
const NewPage = createClass({
@@ -37,11 +38,12 @@ const NewPage = createClass({
const brew = this.props.brew;
return {
brew : brew,
isSaving : false,
saveGoogle : (global.account && global.account.googleId ? true : false),
error : null,
htmlErrors : Markdown.validate(brew.text)
brew : brew,
isSaving : false,
saveGoogle : (global.account && global.account.googleId ? true : false),
error : null,
htmlErrors : Markdown.validate(brew.text),
currentEditorPage : 0
};
},
@@ -61,16 +63,21 @@ const NewPage = createClass({
// brew.description = metaStorage?.description || this.state.brew.description;
brew.renderer = metaStorage?.renderer ?? brew.renderer;
brew.theme = metaStorage?.theme ?? brew.theme;
this.setState({
brew : brew
});
brew.lang = metaStorage?.lang ?? brew.lang;
}
SAVEKEY = `HOMEBREWERY-DEFAULT-SAVE-LOCATION-${global.account?.username || ''}`;
const saveStorage = localStorage.getItem(SAVEKEY) || 'HOMEBREWERY';
this.setState({
brew : brew,
saveGoogle : (saveStorage == 'GOOGLE-DRIVE' && this.state.saveGoogle)
});
localStorage.setItem(BREWKEY, brew.text);
if(brew.style)
localStorage.setItem(STYLEKEY, brew.style);
localStorage.setItem(METAKEY, JSON.stringify({ 'renderer': brew.renderer, 'theme': brew.theme }));
localStorage.setItem(METAKEY, JSON.stringify({ 'renderer': brew.renderer, 'theme': brew.theme, 'lang': brew.lang }));
},
componentWillUnmount : function() {
document.removeEventListener('keydown', this.handleControlKeys);
@@ -98,8 +105,9 @@ const NewPage = createClass({
if(htmlErrors.length) htmlErrors = Markdown.validate(text);
this.setState((prevState)=>({
brew : { ...prevState.brew, text: text },
htmlErrors : htmlErrors
brew : { ...prevState.brew, text: text },
htmlErrors : htmlErrors,
currentEditorPage : this.refs.editor.getCurrentPage() - 1 //Offset index since Marked starts pages at 0
}));
localStorage.setItem(BREWKEY, text);
},
@@ -114,13 +122,16 @@ const NewPage = createClass({
handleMetaChange : function(metadata){
this.setState((prevState)=>({
brew : { ...prevState.brew, ...metadata },
}));
localStorage.setItem(METAKEY, JSON.stringify({
// 'title' : this.state.brew.title,
// 'description' : this.state.brew.description,
'renderer' : this.state.brew.renderer,
'theme' : this.state.brew.theme
}));
}), ()=>{
localStorage.setItem(METAKEY, JSON.stringify({
// 'title' : this.state.brew.title,
// 'description' : this.state.brew.description,
'renderer' : this.state.brew.renderer,
'theme' : this.state.brew.theme,
'lang' : this.state.brew.lang
}));
});
;
},
save : async function(){
@@ -211,7 +222,15 @@ const NewPage = createClass({
onMetaChange={this.handleMetaChange}
renderer={this.state.brew.renderer}
/>
<BrewRenderer text={this.state.brew.text} style={this.state.brew.style} renderer={this.state.brew.renderer} theme={this.state.brew.theme} errors={this.state.htmlErrors}/>
<BrewRenderer
text={this.state.brew.text}
style={this.state.brew.style}
renderer={this.state.brew.renderer}
theme={this.state.brew.theme}
errors={this.state.htmlErrors}
lang={this.state.brew.lang}
currentEditorPage={this.state.currentEditorPage}
/>
</SplitPane>
</div>
</div>;

View File

@@ -21,7 +21,8 @@ const PrintPage = createClass({
brew : {
text : '',
style : '',
renderer : 'legacy'
renderer : 'legacy',
lang : ''
}
};
},
@@ -32,7 +33,8 @@ const PrintPage = createClass({
text : this.props.brew.text || '',
style : this.props.brew.style || undefined,
renderer : this.props.brew.renderer || 'legacy',
theme : this.props.brew.theme || '5ePHB'
theme : this.props.brew.theme || '5ePHB',
lang : this.props.brew.lang || 'en'
}
};
},
@@ -49,7 +51,8 @@ const PrintPage = createClass({
text : brewStorage,
style : styleStorage,
renderer : metaStorage?.renderer || 'legacy',
theme : metaStorage?.theme || '5ePHB'
theme : metaStorage?.theme || '5ePHB',
lang : metaStorage?.lang || 'en'
}
};
});
@@ -60,7 +63,8 @@ const PrintPage = createClass({
renderStyle : function() {
if(!this.state.brew.style) return;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style> ${this.state.brew.style} </style>` }} />;
//return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style>@layer styleTab {\n${this.state.brew.style}\n} </style>` }} />;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style>\n${this.state.brew.style}\n</style>` }} />;
},
renderPages : function(){
@@ -92,14 +96,14 @@ const PrintPage = createClass({
return <div>
<Meta name='robots' content='noindex, nofollow' />
<link href={`/themes/${rendererPath}/Blank/style.css`} rel='stylesheet'/>
<link href={`/themes/${rendererPath}/Blank/style.css`} type="text/css" rel='stylesheet'/>
{baseThemePath &&
<link href={`/themes/${rendererPath}/${baseThemePath}/style.css`} rel='stylesheet'/>
<link href={`/themes/${rendererPath}/${baseThemePath}/style.css`} type="text/css" rel='stylesheet'/>
}
<link href={`/themes/${rendererPath}/${themePath}/style.css`} rel='stylesheet'/>
<link href={`/themes/${rendererPath}/${themePath}/style.css`} type="text/css" rel='stylesheet'/>
{/* Apply CSS from Style tab */}
{this.renderStyle()}
<div className='pages' ref='pages'>
<div className='pages' ref='pages' lang={this.state.brew.lang}>
{this.renderPages()}
</div>
</div>;

View File

@@ -5,6 +5,7 @@ const { Meta } = require('vitreum/headtags');
const Nav = require('naturalcrit/nav/nav.jsx');
const Navbar = require('../../navbar/navbar.jsx');
const MetadataNav = require('../../navbar/metadata.navitem.jsx');
const PrintLink = require('../../navbar/print.navitem.jsx');
const RecentNavItem = require('../../navbar/recent.navitem.jsx').both;
const Account = require('../../navbar/account.navitem.jsx');
@@ -50,8 +51,10 @@ const SharePage = createClass({
return <div className='sharePage sitePage'>
<Meta name='robots' content='noindex, nofollow' />
<Navbar>
<Nav.section>
<Nav.item className='brewTitle'>{this.props.brew.title}</Nav.item>
<Nav.section className='titleSection'>
<MetadataNav brew={this.props.brew}>
<Nav.item className='brewTitle'>{this.props.brew.title}</Nav.item>
</MetadataNav>
</Nav.section>
<Nav.section>

View File

@@ -1,4 +1,8 @@
.sharePage{
.navContent .navSection.titleSection {
flex-grow: 1;
justify-content: center;
}
.content{
overflow-y : hidden;
}

1
client/icons/Davek.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 791.04 953.29"><title>Davek</title><g id="Layer_2" data-name="Layer 2"><g id="Davek"><path d="M178.41,13.46a19.33,19.33,0,0,0-4.71,5.38q8.07,6.07,13.46,6.07a8.27,8.27,0,0,0,4.71-1.35,130.23,130.23,0,0,0,16.83-7.07,74.55,74.55,0,0,1,18.85-6.39h2.7q8.07,0,14.81,8.74a944.19,944.19,0,0,0,95.6,4.72q19.5,0,38.37-.67,69.33-2,139.68-5.72t139.7-5.06q16.82-.64,34.34-.66,50.49,0,98.29,3.36-17.5,12.12-22.55,31.64t-5,33.66q.64,22.89.66,45.1,0,47.13-3.36,97-6.07,74.05-9.78,148.11t-5,146.09v17.51a766.1,766.1,0,0,0,8.75,118.48,38.57,38.57,0,0,0-4,17.51,30.94,30.94,0,0,0,.67,6.06q2,12.12,3.36,23.22c.9,7.42,1.57,14.92,2,22.55v3.37a57.93,57.93,0,0,1-3.36,19.52c.43,4.5.67,8.77.67,12.8a260.65,260.65,0,0,1-2.7,37,344.26,344.26,0,0,0-4,52.52,133.5,133.5,0,0,0,8.09,45.44q8.07,22.57,33,36.68-6.06,8.78-20.19,8.77H762.1c-4.5-.45-8.53-.69-12.12-.69a78.11,78.11,0,0,0-21.54,2.7,579.1,579.1,0,0,0-63.64,3.71q-33.31,3.71-67.65,6.39t-68.66,3.37h-4a188.05,188.05,0,0,1-59.92-9.43q20.19-4,39.06-23.22t20.19-47.46q11.44-22.21,11.45-49.82a320.44,320.44,0,0,1,3.36-49.15q-9.45-4.69-10.09-8.75v-2.7a73,73,0,0,1,.66-8.74,105.81,105.81,0,0,0,3.37-12.8,7.49,7.49,0,0,0,.68-3.37q0-4.7-4.05-10.09c.45-4.93.69-10.1.69-15.48a311.71,311.71,0,0,0-3.37-46.45,207.31,207.31,0,0,1-1.35-24.25,274.58,274.58,0,0,1,4-45.1l15.5,6.73q-3.37-17.49-3.37-41.07,0-24.89,8.75-44.44a27.73,27.73,0,0,0,2-9.43,15.32,15.32,0,0,0-3.36-10.09,60.75,60.75,0,0,1-10.1-15.48l-7.39,6.73q2.67-47.79,8.74-99,3.35-33.63,3.37-65.29,0-14.81-.69-29a205.09,205.09,0,0,1-4-41.74,190.26,190.26,0,0,1,2-26.92q4-37,14.81-67.33a25.14,25.14,0,0,1-2.68-11.43,31.13,31.13,0,0,1,.66-6.07V140q0-6.72-8.74-10.09-3.37-16.83-5.73-31.3T521.07,77.41q-55.2,2.7-115.78,4.71-19.55.7-39.72.69-38.38,0-74.06-2.7c-5.4,4.5-8.08,9.21-8.08,14.14v1.34a41.5,41.5,0,0,0,4.37,15.49q3.7,7.4,7.4,15.16a35,35,0,0,1,3.71,15.13q32.31,34.35,64,68.68a335.89,335.89,0,0,1,51.83,73.38q13.46,7.4,18.51,17.49t10.11,19.87q5.06,9.78,10.1,18.85t16.5,11.78v12.12a194.5,194.5,0,0,1-37.38-4q-20.52-4-40.73-6.73a114.48,114.48,0,0,0-17.49-1.35,97.2,97.2,0,0,0-20.2,2q-17.52,4.05-31,20.19-16.84-1.35-27.27-9.75a76.13,76.13,0,0,1-17.51-20.2q-7.06-11.76-14.47-24.9a79.77,79.77,0,0,0-18.84-22.57A305.87,305.87,0,0,1,177.73,237q-28.29-33.67-54.54-69T68,99.31A381.16,381.16,0,0,0,0,38.37q12.79,0,22.89-9.75A190.69,190.69,0,0,1,44.76,10.44Q56.54,2,68.66,0H72Q82.8,0,97,10.76Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 428.05 941.17"><title>Iokharic</title><g id="Layer_2" data-name="Layer 2"><g id="Iokharic"><path d="M334.76,909.61V259.3l2.74-89.18c3.43,0,6.18-8.23,7.55-24.69,3.43,0,7.55-8.92,13.72-27.44,13-11,19.89-21.27,19.89-31.56,0-13-5.48-20.58-17.15-23.32l-30.87,2.74H320.36c-21.27,13-39.79,22.64-56.94,27.44h-37c-11.67,0-26.76,7.55-46,22q-12.34,0-30.86,16.46c-10.29,0-40.48,26.75-91.93,80.95,0,8.23-6.17,21.26-18.52,38.41l-3.43,15.78v41.84L67.23,343c2.74,0,9.6,6.86,19.89,19.9,24,18.52,36.36,30.86,36.36,38.41l-12.35,10.29H105c-24.7-15.78-45.28-32.93-62.43-52.13L15.78,316.92,0,266.85c3.43-17.84,7.55-29.5,13.72-35v-11c0-18.52,7.55-39.79,22-63.8,0-9.6,8.23-21.27,24.7-34.3,0-9.6,15.77-26.07,46.64-50.08,19.9-16.46,46-28.12,76.83-35,5.49-6.86,21.27-14.41,46.65-21.95C238,5.49,251.07,0,270.28,0h137.2c8.91,0,15.77,8.23,20.57,24V40.47l-5.48,8.23V166c0,17.15-7.55,31.55-21.95,43.22v41.15l-2.75,24.7q0,9.26,24.7,30.87v38.41c0,10.29-4.81,19.9-15.09,28.82h-6.86V558.39c0,55.57-4.81,97.41-15.1,124.16-4.8,2.75-7.54,19.21-9.6,48.71l2.74,17.15-2.74,76.14v30.19q0,32.93-32.93,86.43C337.5,937.74,334.76,926.76,334.76,909.61Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 527.7 940.25"><title>Rellanic</title><g id="Layer_2" data-name="Layer 2"><g id="Rellanic"><path d="M527.7,5.45q-3.83,19.65-15,30.56a129.61,129.61,0,0,1-26.46,19.64q-9.84,6.56-31.66,15.28-19.63,7.65-31.64,16.38Q380.33,103.69,342.16,108a468.46,468.46,0,0,1-54,3.28q-15.83,0-30.56-1.1a53.19,53.19,0,0,0-20.19-6.55H217.74q-7.12,1.11-21.29,1.1a51.67,51.67,0,0,1-20.18-4.36q8.72,19.65,25.63,29.46,14.19,8.74,28.38,29.47a634.05,634.05,0,0,1,98.78,90.58l91.12,103.69a65.1,65.1,0,0,0-.54,8.19,42.47,42.47,0,0,0,.54,7.09c.73,1.82,1.27,3.29,1.64,4.37q7.08,8.75,10.92,12,1.62,1.1,12.55,14.19a14,14,0,0,1,3.27,6.55,9.75,9.75,0,0,1,1.1,4.37,9.62,9.62,0,0,1-1.1,4.36q35.46,43.66,51.3,89.5,3.25,9.82,5.45,19.64a288.59,288.59,0,0,1,10.37,68.75v8.19a296,296,0,0,1-9.81,76.94q-7.12,27.3-24,77.5L418,831.65Q383,872,344.88,899.31a243.27,243.27,0,0,1-90.59,38.19,179.84,179.84,0,0,1-31.64,2.75q-38.78,0-81.87-15.84A293.78,293.78,0,0,1,78,886.22a312.61,312.61,0,0,1-51.85-48,300.52,300.52,0,0,0-18-46.94,60.18,60.18,0,0,1-4.92-13.64,82.36,82.36,0,0,1-2.19-19.11,104.89,104.89,0,0,1,.56-10.91,176.12,176.12,0,0,1-1.64-24,199.79,199.79,0,0,1,2.72-32.74Q5.45,663,5.45,645a103.71,103.71,0,0,0-.54-10.92,242.44,242.44,0,0,1,50.74-67.66,646.83,646.83,0,0,0,57.86-61.12q11.44-10.89,25.09-13.1A88.3,88.3,0,0,1,163.71,489q14.17-1.11,29.46-1.1a108.11,108.11,0,0,0,28.38-7.63q17.44,8.75,27.29,12a124.47,124.47,0,0,1,28.38,13.1q8.71,4.38,23.46,17.46,9.29,9.86,17.47,28.38,7.07,12,9.27,21.83a35.16,35.16,0,0,1,1.64,9.83V585a80.23,80.23,0,0,1-8.73,27.28q-8.2,14.19-18,22.93a166.18,166.18,0,0,1-19.65,19.64q-13.1,8.74-20.72,13.1l-7.65-4.37v-1.64q0-12,6.55-18-8.17-6.55-10.36-10.92l-2.18-8.73c0-2.18-.74-5.81-2.19-10.91v-3.29a38,38,0,0,0-3.82-7.63,196.53,196.53,0,0,0-33.84-40.39Q185.53,542.43,162.61,537a163.71,163.71,0,0,0-50.75,9.81q-25.08,8.76-32.2,36Q67.12,615.56,67.13,654.3a256,256,0,0,0,3.26,39.83,176.75,176.75,0,0,0,5.47,28.38Q88.37,770,122.78,812a452.22,452.22,0,0,0,103.13,58.94,153.57,153.57,0,0,0,107,5.45q25.63-12,37.66-27.28,13.62-14.21,23.46-34.93,10.36-18.57,20.2-39.29Q426.72,753.05,437.1,740q3.27-44.76,5.47-61.12a228.17,228.17,0,0,0,3.26-38.21,213.15,213.15,0,0,0-1.64-26.19,245.3,245.3,0,0,0-8.17-48q-2.2-8.17-4.93-16.36-9.27-30.55-34.92-61.12a70,70,0,0,0-2.18-18,29.12,29.12,0,0,0-4.37-10.37,175.28,175.28,0,0,0-17.46-29.48l-18.55-27.27q-12-16.38-16.38-28.38a282.35,282.35,0,0,1-27.81-28.37q-20.22-26.2-24-31.66Q269,295.76,260.29,286q-10.92-12-31.1-25.11-36.56-31.65-79.12-70.94-45.31-39.28-88.41-66.58-14.74-8.17-17.46-16.9a16.93,16.93,0,0,0-.54-3.83V99.87q0-8.73,6.54-19.11A102.47,102.47,0,0,1,63.3,61.12q9.27-9.82,12.56-18.56a223.6,223.6,0,0,1,38.73-3.27,271,271,0,0,1,40.93,3.27A367.15,367.15,0,0,0,215,47.48c6.91,0,13.64-.17,20.2-.56a45,45,0,0,0,21.27,5.47q17.44,0,25.65-1.1h22.93a77.75,77.75,0,0,1,24,7.65,114,114,0,0,1,27.82-3.29H364q27.25,2.2,39.29,2.19,16.34,0,36.55-5.45,19.1-6.55,27.83-22.93h2.72A20.48,20.48,0,0,0,484.58,24c2.17-4.71,6.17-7.09,12-7.09a26.6,26.6,0,0,1,4.92.54v-.54c0-1.08.72-3.46,2.19-7.11a36.74,36.74,0,0,1,6-6.54C512.57,1.1,515.12,0,517.32,0,521,0,524.41,1.82,527.7,5.45Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 541.53217 512"
version="1.1"
id="back-cover-icon"
sodipodi:docname="book-front-cover.svg"
width="541.53217"
height="512"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs22131" />
<sodipodi:namedview
id="namedview22129"
pagecolor="#ffffff"
bordercolor="#111111"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.39257813"
inkscape:cx="-263.64179"
inkscape:cy="444.49751"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg22127" />
<!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<g id="g20308" transform="matrix(3.7795276,0,0,3.7795276,-201.76367,-251.58203)">
<path id="rect20232" d="M95.1,66.6h-8.5c-4.7,0-8.5,3.8-8.5,8.5v21.4c3.5-0.4,7.4-0.5,12-0.5c0.7,0,0.6,0,1.2,0
c0-2.4,0-4.2,0.3-6.2c0.3-2.2,2.2-5.8,3.5-7c0.9-0.9,3-3.2,7-3.7c1-0.1,2-0.1,2.8,0c2.6,0.3,4.6,1.6,6.1,2.6
c3.9,2.7,7.4,6.4,14.8,13.8c6.3,6.3,9.8,9.8,12,12.4c1.1,1.3,2.1,2.4,2.9,4c0.9,1.7,1.4,4.2,1.4,5.6c0,1.4-0.5,4-1.4,5.6
c-0.9,1.6-1.8,2.7-2.9,4c-2.2,2.6-5.6,6-11.8,12.2c-3.8,3.8-7.4,7.3-10.2,9.9c-1.4,1.3-2.6,2.4-3.6,3.3c-0.5,0.4-1,0.8-1.5,1.2
c-0.3,0.2-0.5,0.4-1,0.7s-0.7,0.7-2.8,1.2c-4.3,1.1-6.3,0.4-9.4-1.3c-0.5-0.3-1.9-0.9-3.3-2.6c-1.4-1.7-2.1-3.7-2.4-5.1
c-0.5-2.4-0.5-4.3-0.6-7.2c-3.9,0-6,0.1-6.5,0.1c-0.5,0.1,0.2-0.2-1.2,0.5c-1.7,0.8-3.6,2.8-4.4,4.5c-0.3,0.8-0.5,1-0.6,6.6
c-0.1,2.2-0.2,4.3-0.4,6c0,0.3-0.1,0.6-0.1,0.8v1.9c0,4.7,3.8,8.5,8.5,8.5v16.9c-4.7,0-8.5,3.8-8.5,8.5c0,4.7,3.8,8.5,8.5,8.5h8.5
h76.2c14,0,25.4-11.4,25.4-25.4V92c0-14-11.4-25.4-25.4-25.4L95.1,66.6z M171.3,168.2c4.7,0,8.5,3.8,8.5,8.5c0,4.7-3.8,8.5-8.5,8.5
h-67.7v-16.9L171.3,168.2L171.3,168.2z"/>
<path id="path20297" d="M63.4,158c1.8,1.6,4.5,1.9,5.5,0.7c0.3-0.4,0.7-4,0.8-8.1c0.2-5.9,0.5-7.9,1.4-10c1.7-3.7,4.9-7,8.6-8.9
c3.1-1.5,3.6-1.6,11.7-1.6h8.5l0.3,7.6c0.3,7.5,0.3,7.7,1.7,8.5c0.8,0.5,2.1,0.7,2.8,0.5c0.8-0.2,7.4-6.4,14.9-13.9
c12.4-12.4,13.5-13.7,13.5-15.5c0-1.8-1.1-3.1-13.8-15.7c-14.7-14.7-15.4-15.2-18-12.7c-1,1-1.1,1.9-1.1,7.6c0,3.6-0.2,6.9-0.3,7.4
c-0.3,0.8-1.7,0.9-9.8,0.9c-15.6,0-21.1,1.7-27.9,8.5c-6.5,6.5-8.8,12-8.8,21.1c0,4.7,0.3,6.8,1.3,9.8
C56.2,148.6,60.7,155.7,63.4,158L63.4,158z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 541.53217 512"
version="1.1"
id="front-cover-icon"
sodipodi:docname="book-front-cover.svg"
width="541.53217"
height="512"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs22131" />
<sodipodi:namedview
id="namedview22129"
pagecolor="#ffffff"
bordercolor="#111111"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.39257813"
inkscape:cx="-263.64179"
inkscape:cy="444.49751"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg22127" />
<!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<g
id="g20308"
transform="matrix(3.7795276,0,0,3.7795276,-201.76367,-251.58203)">
<path
id="rect20232"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:17.9;stroke-linejoin:bevel;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
d="m 78.783305,66.564412 c -14.022889,0 -25.4,11.377111 -25.4,25.4 v 84.666668 c 0,14.02289 11.377111,25.4 25.4,25.4 h 76.199995 8.46667 c 4.68312,0 8.46667,-3.78355 8.46667,-8.46667 0,-4.68311 -3.78355,-8.46666 -8.46667,-8.46666 v -16.93334 c 4.68312,0 8.46667,-3.78355 8.46667,-8.46666 v -1.9327 c -0.0322,-0.27545 -0.0652,-0.54693 -0.0946,-0.83923 -0.17511,-1.74441 -0.30542,-3.81626 -0.37672,-6.02909 -0.18285,-5.67612 -0.29322,-5.86808 -0.63459,-6.62698 -0.74838,-1.66366 -2.65792,-3.64941 -4.38681,-4.49844 -1.41973,-0.69716 -0.72585,-0.45434 -1.20923,-0.51934 -0.47548,-0.0639 -2.54581,-0.13856 -6.47454,-0.14056 -0.0907,2.9929 -0.0862,4.81682 -0.58601,7.244 -0.28023,1.36071 -0.97957,3.42078 -2.40812,5.10356 -1.42519,1.67884 -2.81498,2.35811 -3.28145,2.61896 -3.14428,1.76375 -5.09549,2.43427 -9.41597,1.33997 -2.05224,-0.5197 -2.32631,-0.92288 -2.76159,-1.19527 -0.43528,-0.27239 -0.71007,-0.47684 -0.97461,-0.67593 -0.52909,-0.39816 -0.97871,-0.77171 -1.48622,-1.20664 -1.015,-0.86987 -2.20927,-1.95397 -3.6096,-3.26182 -2.80065,-2.61568 -6.38094,-6.09226 -10.18335,-9.90844 -6.19117,-6.21357 -9.5466,-9.59164 -11.7874,-12.16412 -1.1204,-1.28623 -2.03413,-2.38181 -2.90576,-4.03127 -0.87162,-1.64948 -1.40664,-4.21493 -1.40664,-5.61103 0,-1.4012 0.54783,-3.99366 1.42989,-5.64668 0.88206,-1.65304 1.8039,-2.74855 2.94142,-4.04679 2.27504,-2.59646 5.70131,-6.03358 12.03699,-12.369267 7.37691,-7.376888 10.87768,-11.090687 14.75208,-13.810527 1.45289,-1.019939 3.46378,-2.249133 6.08386,-2.580204 0.87337,-0.110323 1.8133,-0.120299 2.82412,0.0098 4.0433,0.520471 6.12413,2.832857 7.01973,3.728454 1.29782,1.297845 3.1373,4.826955 3.46852,7.049182 0.29817,2.00025 0.26393,3.770666 0.25993,6.212541 0.57954,0.0034 0.50388,0.0217 1.17564,0.0217 4.54211,0 8.44363,0.111537 11.991,0.50953 v -21.41004 c 0,-4.683115 -3.78355,-8.466667 -8.46667,-8.466667 h -8.46667 z m 0,101.599998 h 67.733335 v 16.93334 H 78.783305 c -4.683115,0 -8.466667,-3.78357 -8.466667,-8.46667 0,-4.68313 3.783552,-8.46667 8.466667,-8.46667 z" />
<path
style="color:#000000;fill:#000000;stroke-width:17.9;stroke-linejoin:round;-inkscape-stroke:none;paint-order:stroke markers fill"
d="m 186.69094,157.95633 c 2.67243,-2.24871 7.17957,-9.39389 8.63888,-13.69528 1.03796,-3.05942 1.31928,-5.13546 1.33362,-9.84167 0.0278,-9.1246 -2.25302,-14.5915 -8.79325,-21.07662 -6.8535,-6.79576 -12.35348,-8.46107 -27.94423,-8.46107 -8.05417,0 -9.45684,-0.12924 -9.75203,-0.89852 -0.18964,-0.49417 -0.34479,-3.81715 -0.34479,-7.384389 0,-5.728497 -0.13266,-6.618534 -1.13607,-7.621956 -2.57777,-2.57775 -3.29907,-2.07141 -18.02212,12.651595 -12.64444,12.64444 -13.78771,13.94921 -13.78771,15.73575 0,1.78396 1.13629,3.08846 13.49078,15.48766 7.47518,7.50224 14.10644,13.69554 14.8715,13.88928 0.78576,0.19902 2.0096,-0.002 2.84016,-0.46789 1.42969,-0.80092 1.46523,-0.97351 1.74346,-8.46583 l 0.28402,-7.64825 h 8.52049 c 8.16738,0 8.65373,0.0655 11.73586,1.579 3.72428,1.82893 6.9202,5.12058 8.60236,8.86006 0.94352,2.09748 1.22898,4.1112 1.41901,10.01012 0.13083,4.06143 0.49647,7.70394 0.81253,8.09446 0.94895,1.17251 3.64241,0.80611 5.48753,-0.74645 z"
id="path20297" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 704.00001 512"
version="1.1"
id="svg22127"
sodipodi:docname="book-inside-cover.svg"
width="704"
height="512"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
inkscape:export-filename="InsideCover3.png"
inkscape:export-xdpi="300"
inkscape:export-ydpi="300"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs22131" />
<sodipodi:namedview
id="namedview22129"
pagecolor="#ffffff"
bordercolor="#111111"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.47274833"
inkscape:cx="83.55397"
inkscape:cy="178.74204"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg22127" />
<!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<path
id="path2161-6"
style="color:#000000;fill:#000000;stroke-width:1;-inkscape-stroke:none;paint-order:stroke fill markers"
d="M 208,0 C 147.0078,0 94.429433,14.25071 60.367188,26.66992 23.520854,39.96036 0,76.16076 0,112.95896 v 317.8321 c 0,59.8499 56.949847,92.6546 107.47266,76.6035 l -0.1543,0.049 c 26.46715,-8.335 74.84649,-18.3965 100.68164,-18.3965 17.25807,0 61.31688,10.6183 85.14453,18.8438 l 0.0508,0.018 0.0527,0.018 c 19.82627,6.5858 40.84117,4.9222 58.99804,-3.0762 18.04267,7.8799 38.84257,9.6126 58.33594,3.1328 l 0.13672,-0.045 0.13672,-0.047 c 23.88445,-8.0588 67.88646,-18.8437 85.14453,-18.8437 25.83515,0 74.22549,10.0266 100.68164,18.3964 l 0.1543,0.049 0.15625,0.049 C 647.13371,523.05316 704,490.64216 704,430.79226 v -317.8321 c 0,-36.8274 -23.49583,-72.8235 -60.00977,-86.25583 l -0.16015,-0.0606 -0.16211,-0.0566 C 609.79193,14.33005 557.11269,0.0012 496,0.0012 434.5671,0.0012 387.12553,14.01354 352,34.94261 316.87446,14.01344 269.4331,0.0012 208,0.0012 Z m 0,32.00977 c 58.3999,0 103.40004,18.89469 123,33.63279 3.3,2.4564 5,6.4246 5,10.3926 v 356.5508 c 0,10.7702 -11.70041,18.2326 -22.40039,14.6426 -26.59996,-8.9751 -71.69966,-22.2012 -105.59961,-22.2012 -38.49993,0 -88.40045,11.4317 -119.900391,21.3516 C 76.799621,449.96896 64,442.03166 64,430.78906 V 80.94726 C 64,69.51586 70.799631,58.93546 82.099609,54.87306 110.29956,44.57516 157.50009,32.00977 208,32.00977 Z m 288,0 c 50.49991,0 97.70044,12.56619 125.90039,22.76949 C 633.20037,58.93616 640,69.51586 640,80.94726 v 349.8418 c 0,11.2426 -12.79963,19.0854 -24.09961,15.5899 -31.49995,-9.9199 -81.40046,-21.3516 -119.90039,-21.3516 -33.89995,0 -78.99966,13.2261 -105.59961,22.2012 C 379.60041,450.81856 368,443.35616 368,432.58596 V 76.03516 c 0,-3.968 1.60001,-7.9362 5,-10.3926 19.59997,-14.7381 64.6001,-33.63279 123,-33.63279 z M 335.52734,45.75386 c -0.1289,0.093 -0.23137,0.2032 -0.35937,0.2969 -0.198,0.1477 -0.428,0.2796 -0.625,0.4278 z m 33.67969,0.5372 0.24805,0.1875 c -0.0427,-0.033 -0.0937,-0.061 -0.13672,-0.094 -0.0393,-0.03 -0.0713,-0.064 -0.11133,-0.094 z" />
<path
style="color:#000000;fill:#000000;fill-opacity:1;stroke-width:1;-inkscape-stroke:none"
d="m 206.76992,184 c -36.98368,0 -73.07301,9.2343 -94.76923,16.9066 v 185.1887 c 27.62799,-7.7405 62.70503,-15.0804 94.76923,-15.0804 28.33376,0 58.16312,7.6425 81.23077,14.806 V 203.0154 C 273.60322,195.1776 243.44241,184 206.76992,184 Z"
id="path4372-8"
sodipodi:nodetypes="sccsccs" />
<path
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:63.9999;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 255.99995,122.53007 c -31.8285,-15.342 -80.43462,-15.4137 -112,0"
id="path2371-6"
sodipodi:nodetypes="cc" />
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 704.00001 512"
version="1.1"
id="svg22127"
sodipodi:docname="book-part-cover.svg"
width="704"
height="512"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
inkscape:export-filename="InsideCover3.png"
inkscape:export-xdpi="300"
inkscape:export-ydpi="300"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs22131" />
<sodipodi:namedview
id="namedview22129"
pagecolor="#ffffff"
bordercolor="#111111"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.6685671"
inkscape:cx="299.8951"
inkscape:cy="80.021886"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg22127" />
<!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
<path
id="path2161-6"
style="color:#000000;fill:#000000;stroke-width:1;-inkscape-stroke:none;paint-order:stroke fill markers"
d="M 208,0 C 147.0078,0 94.429433,14.25071 60.367188,26.66992 23.520854,39.96036 0,76.16076 0,112.95896 v 317.8321 c 0,59.8499 56.949847,92.6546 107.47266,76.6035 l -0.1543,0.049 c 26.46715,-8.335 74.84649,-18.3965 100.68164,-18.3965 17.25807,0 61.31688,10.6183 85.14453,18.8438 l 0.0508,0.018 0.0527,0.018 c 19.82627,6.5858 40.84117,4.9222 58.99804,-3.0762 18.04267,7.8799 38.84257,9.6126 58.33594,3.1328 l 0.13672,-0.045 0.13672,-0.047 c 23.88445,-8.0588 67.88646,-18.8437 85.14453,-18.8437 25.83515,0 74.22549,10.0266 100.68164,18.3964 l 0.1543,0.049 0.15625,0.049 C 647.13371,523.05316 704,490.64216 704,430.79226 v -317.8321 c 0,-36.8274 -23.49583,-72.8235 -60.00977,-86.25583 l -0.16015,-0.0606 -0.16211,-0.0566 C 609.79193,14.33005 557.11269,0.0012 496,0.0012 434.5671,0.0012 387.12553,14.01354 352,34.94261 316.87446,14.01344 269.4331,0.0012 208,0.0012 Z m 0,32.00977 c 58.3999,0 103.40004,18.89469 123,33.63279 3.3,2.4564 5,6.4246 5,10.3926 v 356.5508 c 0,10.7702 -11.70041,18.2326 -22.40039,14.6426 -26.59996,-8.9751 -71.69966,-22.2012 -105.59961,-22.2012 -38.49993,0 -88.40045,11.4317 -119.900391,21.3516 C 76.799621,449.96896 64,442.03166 64,430.78906 V 80.94726 C 64,69.51586 70.799631,58.93546 82.099609,54.87306 110.29956,44.57516 157.50009,32.00977 208,32.00977 Z m 288,0 c 50.49991,0 97.70044,12.56619 125.90039,22.76949 C 633.20037,58.93616 640,69.51586 640,80.94726 v 349.8418 c 0,11.2426 -12.79963,19.0854 -24.09961,15.5899 -31.49995,-9.9199 -81.40046,-21.3516 -119.90039,-21.3516 -33.89995,0 -78.99966,13.2261 -105.59961,22.2012 C 379.60041,450.81856 368,443.35616 368,432.58596 V 76.03516 c 0,-3.968 1.60001,-7.9362 5,-10.3926 19.59997,-14.7381 64.6001,-33.63279 123,-33.63279 z M 335.52734,45.75386 c -0.1289,0.093 -0.23137,0.2032 -0.35937,0.2969 -0.198,0.1477 -0.428,0.2796 -0.625,0.4278 z m 33.67969,0.5372 0.24805,0.1875 c -0.0427,-0.033 -0.0937,-0.061 -0.13672,-0.094 -0.0393,-0.03 -0.0713,-0.064 -0.11133,-0.094 z" />
<path
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:64;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 417.64553,213.53304 c 88.71546,-18.9285 95.50522,-18.6158 172.79707,0.054"
id="path2371-8"
sodipodi:nodetypes="cc" />
<path
id="path2315"
style="stroke-width:67.6532;stroke-linejoin:bevel;paint-order:stroke markers fill;stop-color:#000000"
inkscape:transform-center-x="-3.4164388e-06"
inkscape:transform-center-y="-8.443352"
d="m 505.27489,52.89544 25.98603,52.6535 58.10652,8.4434 -42.04628,40.985 9.92578,57.8717 -51.97205,-27.3234 -51.97204,27.3234 9.92578,-57.8717 -42.04627,-40.985 58.10651,-8.4434 z" />
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1,57 @@
.fac {
display : inline-block;
}
.position-top-left {
content: url('../icons/position-top-left.svg');
}
.position-top-right {
content: url('../icons/position-top-right.svg');
}
.position-bottom-left {
content: url('../icons/position-bottom-left.svg');
}
.position-bottom-right {
content: url('../icons/position-bottom-right.svg');
}
.position-top {
content: url('../icons/position-top.svg');
}
.position-right {
content: url('../icons/position-right.svg');
}
.position-bottom {
content: url('../icons/position-bottom.svg');
}
.position-left {
content: url('../icons/position-left.svg');
}
.mask-edge {
content: url('../icons/mask-edge.svg');
}
.mask-corner {
content: url('../icons/mask-corner.svg');
}
.mask-center {
content: url('../icons/mask-center.svg');
}
.book-front-cover {
content: url('../icons/book-front-cover.svg');
}
.book-back-cover {
content: url('../icons/book-back-cover.svg');
}
.book-inside-cover {
content: url('../icons/book-inside-cover.svg');
}
.book-part-cover {
content: url('../icons/book-part-cover.svg');
}
.davek {
content: url('../icons/Davek.svg');
}
.rellanic {
content: url('../icons/Rellanic.svg');
}
.iokharic {
content: url('../icons/Iokharic.svg');
}

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="mask-center.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139"><pattern
inkscape:collect="always"
xlink:href="#Strips1_1"
id="pattern3077"
patternTransform="matrix(23.13193,-23.131931,19.25517,19.25517,18.091544,-20.306833)" /><pattern
inkscape:collect="always"
patternUnits="userSpaceOnUse"
width="2"
height="1"
patternTransform="translate(0,0) scale(10,10)"
id="Strips1_1"
inkscape:stockid="Stripes 1:1"><rect
style="fill:black;stroke:none"
x="0"
y="-0.5"
width="1"
height="2"
id="rect2097" /></pattern></defs><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.67711183"
inkscape:cx="31.75251"
inkscape:cy="260.66595"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="M 48,-5.2e-6 C 21.40803,-5.2e-6 1.98e-5,21.408025 1.98e-5,47.999995 V 464 C 1.98e-5,490.59197 21.40803,512 48,512 h 352 c 26.59198,0 48,-21.40803 48,-48 V 47.999995 C 448,21.408025 426.59198,-5.2e-6 400,-5.2e-6 Z M 64,63.999995 H 384 V 448 H 64 Z" /><rect
style="fill:url(#pattern3077);fill-opacity:1;stroke:#000000;stroke-width:48;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206"
width="176"
height="240"
x="136.00002"
y="136"
rx="48"
ry="48" /></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="mask-corner.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139"><pattern
inkscape:collect="always"
xlink:href="#Strips1_1"
id="pattern3077"
patternTransform="matrix(23.131931,-23.131931,19.25517,19.25517,26.214281,-26.952711)" /><pattern
inkscape:collect="always"
patternUnits="userSpaceOnUse"
width="2"
height="1"
patternTransform="translate(0,0) scale(10,10)"
id="Strips1_1"
inkscape:stockid="Stripes 1:1"><rect
style="fill:black;stroke:none"
x="0"
y="-0.5"
width="1"
height="2"
id="rect2097" /></pattern></defs><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.95758074"
inkscape:cx="275.17262"
inkscape:cy="306.50157"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="M 48,-5.2e-6 C 21.40803,-5.2e-6 1.98e-5,21.408025 1.98e-5,47.999995 V 464 C 1.98e-5,490.59197 21.40803,512 48,512 h 352 c 26.59198,0 48,-21.40803 48,-48 V 47.999995 C 448,21.408025 426.59198,-5.2e-6 400,-5.2e-6 Z M 64,63.999995 H 384 V 448 H 64 Z" /><rect
style="fill:url(#pattern3077);fill-opacity:1;stroke:#000000;stroke-width:48;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206"
width="208"
height="240"
x="32.000011"
y="32.000011"
rx="48"
ry="48" /></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="mask-edge.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139"><pattern
inkscape:collect="always"
xlink:href="#Strips1_1"
id="pattern3077"
patternTransform="matrix(23.131931,-23.13193,19.25517,19.25517,26.214281,-26.952711)" /><pattern
inkscape:collect="always"
patternUnits="userSpaceOnUse"
width="2"
height="1"
patternTransform="translate(0,0) scale(10,10)"
id="Strips1_1"
inkscape:stockid="Stripes 1:1"><rect
style="fill:black;stroke:none"
x="0"
y="-0.5"
width="1"
height="2"
id="rect2097" /></pattern></defs><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.95758074"
inkscape:cx="231.31209"
inkscape:cy="171.78708"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="M 48,-5.2e-6 C 21.40803,-5.2e-6 1.98e-5,21.408025 1.98e-5,47.999995 V 464 C 1.98e-5,490.59197 21.40803,512 48,512 h 352 c 26.59198,0 48,-21.40803 48,-48 V 47.999995 C 448,21.408025 426.59198,-5.2e-6 400,-5.2e-6 Z M 64,63.999995 H 384 V 448 H 64 Z" /><rect
style="fill:url(#pattern3077);fill-opacity:1;stroke:#000000;stroke-width:48;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206"
width="208"
height="447.99997"
x="32.000011"
y="32.000011"
rx="48"
ry="48" /><rect
style="fill:#000000;fill-opacity:1;stroke-width:47.9999;stroke-linejoin:round;stroke-dasharray:none;paint-order:fill markers stroke;stop-color:#000000"
id="rect4640"
width="48"
height="512"
x="216"
y="0" /></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-bottom-left.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.70792086"
inkscape:cx="174.45453"
inkscape:cy="325.60137"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="m 48,511.99998 c -26.59197,0 -48.00000035682677,-21.40803 -48.00000035682677,-48 v -416 C -3.5682677e-7,21.40801 21.40803,-1.9692461e-5 48,-1.9692461e-5 h 352 c 26.59198,0 48,21.408029692461 48,47.999999692461 v 416 c 0,26.59197 -21.40802,48 -48,48 z m 16,-64 h 320 v -384 H 64 Z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206"
width="208"
height="240"
x="-3.5682677e-07"
y="-512"
rx="48"
ry="48"
transform="scale(1,-1)" /></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-bottom-right.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.70792086"
inkscape:cx="174.45453"
inkscape:cy="325.60137"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="m 400,511.99998 c 26.59197,0 48,-21.40803 48,-48 v -416 C 448,21.40801 426.59197,-1.9692461e-5 400,-1.9692461e-5 H 48 C 21.40802,-1.9692461e-5 -3.5682677e-7,21.40801 -3.5682677e-7,47.99998 v 416 c 0,26.59197 21.40802035682677,48 48.00000035682677,48 z m -16,-64 H 64 v -384 h 320 z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206"
width="208"
height="240"
x="-448"
y="-512"
rx="48"
ry="48"
transform="scale(-1)" /></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-bottom.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="1.0011513"
inkscape:cx="273.18549"
inkscape:cy="216.25103"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201-2"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="m 48,512.00004 c -26.5919,0 -48,-21.4081 -48,-48 V 47.999996 C 0,21.408026 21.4081,-3.8146973e-6 48,-3.8146973e-6 h 352 c 26.592,0 48,21.4080298146973 48,47.9999998146973 V 464.00004 c 0,26.5919 -21.408,48 -48,48 z m 16,-64 H 384 V 63.999996 H 64 Z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30.0001;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206-8"
width="447.99997"
height="240"
x="1.40625e-05"
y="-512.00006"
rx="48"
ry="48"
transform="scale(1,-1)" /></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-left.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.70792086"
inkscape:cx="164.56642"
inkscape:cy="243.6713"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201-0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="M 48,0 C 21.4081,0 0,21.40803 0,48 v 416 c 0,26.59197 21.4081,48 48,48 h 352.0001 c 26.5919,0 48,-21.40803 48,-48 V 48 c 0,-26.59197 -21.4081,-48 -48,-48 z M 64,64 H 384.0001 V 448 H 64 Z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206-2"
width="208"
height="512.00006"
x="7.0762391e-05"
y="-8.8710935e-05"
rx="48"
ry="48.000004" /></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-right.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.70792086"
inkscape:cx="164.56642"
inkscape:cy="243.6713"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201-0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="m 400.0001,0 c 26.5919,0 48,21.40803 48,48 v 416 c 0,26.59197 -21.4081,48 -48,48 H 48 C 21.4081,512 0,490.59197 0,464 V 48 C 0,21.40803 21.4081,0 48,0 Z m -16,64 H 64 v 384 h 320.0001 z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206-2"
width="208"
height="512.00006"
x="-448.00003"
y="-8.8710935e-05"
rx="48"
ry="48.000004"
transform="scale(-1,1)" /></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-top-left.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.70792086"
inkscape:cx="174.45453"
inkscape:cy="325.60137"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="M 48,0 C 21.40803,0 0,21.40803 0,48 v 416 c 0,26.59197 21.40803,48 48,48 h 352 c 26.59198,0 48,-21.40803 48,-48 V 48 C 448,21.40803 426.59198,0 400,0 Z M 64,64 H 384 V 448 H 64 Z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206"
width="208"
height="240"
x="-3.5682677e-07"
y="-1.9692461e-05"
rx="48"
ry="48" /></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-top-right.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="0.70792086"
inkscape:cx="174.45453"
inkscape:cy="325.60137"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="m 400,0 c 26.59197,0 48,21.40803 48,48 v 416 c 0,26.59197 -21.40803,48 -48,48 H 48 C 21.40802,512 -3.5682677e-7,490.59197 -3.5682677e-7,464 V 48 C -3.5682677e-7,21.40803 21.40802,0 48,0 Z M 384,64 H 64 v 384 h 320 z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206"
width="208"
height="240"
x="-448"
y="-1.9692461e-05"
rx="48"
ry="48"
transform="scale(-1,1)" /></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 448 512"
version="1.1"
id="svg135"
sodipodi:docname="position-top.svg"
width="448"
height="512"
xml:space="preserve"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs139" /><sodipodi:namedview
id="namedview137"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
showguides="false"
inkscape:zoom="1.0011513"
inkscape:cx="273.18549"
inkscape:cy="216.25103"
inkscape:window-width="1920"
inkscape:window-height="991"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="svg135" /><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
id="rect12201-2"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
d="M 48,0 C 21.4081,0 0,21.4081 0,48 v 416.00004 c 0,26.59197 21.4081,48 48,48 h 352 c 26.592,0 48,-21.40803 48,-48 V 48 C 448,21.4081 426.592,0 400,0 Z M 64,64 H 384 V 448.00004 H 64 Z" /><rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:30.0001;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke;stop-color:#000000"
id="rect12206-8"
width="447.99997"
height="240"
x="1.40625e-05"
y="-3.8146973e-06"
rx="48"
ry="48" /></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -11,9 +11,10 @@ const template = async function(name, title='', props = {}){
return `<!DOCTYPE html>
<html>
<head>
<link href="//use.fontawesome.com/releases/v5.15.1/css/all.css" rel="stylesheet" />
<meta name="viewport" content="width=device-width, initial-scale=1, height=device-height, interactive-widget=resizes-visual" />
<link href="//use.fontawesome.com/releases/v6.5.1/css/all.css" rel="stylesheet" type="text/css" />
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700" rel="stylesheet" type="text/css" />
<link href=${`/${name}/bundle.css`} rel='stylesheet' />
<link href=${`/${name}/bundle.css`} type="text/css" rel='stylesheet' />
<link rel="icon" href="/assets/favicon.ico" type="image/x-icon" />
${ogMetaTags}
<meta name="twitter:card" content="summary">

29
faq.md
View File

@@ -62,16 +62,13 @@ pre {
```
# FAQ
{{wide Updated Oct. 11, 2021}}
{{wide Updated Apr. 15, 2023}}
### The site is down for me! Anyone else?
You can check the site status here: [Everyone or Just Me](https://downforeveryoneorjustme.com/homebrewery.naturalcrit.com)
### How do I log out?
Go to https://homebrewery.naturalcrit.com/login, and hit the "*logout*" link.
### Why am I getting an error when trying to save, and my account is linked to Google?
@@ -105,7 +102,7 @@ The best way to avoid this is to leave space at the end of a column equal to one
### Why do I need to manually create a new page? Why doesn't text flow between pages?
A Homebrewery document is at it's core an HTML & CSS document, and currently limited by the specs of those technologies. It is currently not possible to flow content from inside one box ("page") to the inside of another box. It seems likely that someday CSS will add this capability, and if/when that happens, Homebrewery will adopt it as soon as possible.
A Homebrewery document is at its core an HTML & CSS document, and currently limited by the specs of those technologies. It is currently not possible to flow content from inside one box ("page") to the inside of another box. It seems likely that someday CSS will add this capability, and if/when that happens, Homebrewery will adopt it as soon as possible.
### Where do I get images?
The Homebrewery does not provide images for use besides some page elements and example images for snippets. You will need to find your own images for use and be sure you are following the appropriate license requirements.
@@ -120,26 +117,6 @@ The fonts used were originally created for use with the English language, though
### Whenever I click on the "Get PDF" button, instead of getting a download, it opens Print Preview in another tab.
Yes, this is by design. In the print preview, select "Save as PDF" as the Destination, and then click "Save". There will be a normal download dialog where you can save your brew as a PDF.
### The preview window is suddenly gone, I can only see the editor side of the Homebrewery (or the other way around).
1. Press `CTRL`+`SHIFT`+`i` (or right-click and select "Inspect") while in the Homebrewery.
2. Expand...
```
- `body`
- `main`
- `div class="homebrew"`
- `div class="editPage page"`
- `div class="content"`
- `div class="splitPane"`
```
There you will find 3 divs: `div class="pane" [...]`, `div class="divider" [...]`, and `div class="pane" [...]`.
The `class="pane"` looks similar to this: `div class="pane" data-reactid="36" style="flex: 0 0 auto; width: 925px;"`.
Change whatever stands behind width: to something smaller than your display width.
### I have white borders on the bottom/sides of the print preview.
The Homebrewery paper size and your print paper size do not match.
@@ -149,4 +126,4 @@ The Homebrewery defaults to creating US Letter page sizes. If you are printing
### Typing `#### Adhesion` in the text editor doesn't show the header at all in the completed page?
Your ad-blocking software is mistakenly assuming your text to be an ad. Whitelist homebrewery.naturalcrit.com in your ad-blocking software.
Your ad-blocking software is mistakenly assuming your text to be an ad. Whitelist homebrewery.naturalcrit.com in your ad-blocking software.

43
install/README.WINDOWS.md Normal file
View File

@@ -0,0 +1,43 @@
# Windows Installation Instructions
## Before Installing
These instructions assume that you are installing to a completely new, fresh Windows 10 installation. As such, some steps may not be necessary if you are installing to an existing Windows 10 instance.
## Installation instructions
1. Download the installation script from https://raw.githubusercontent.com/naturalcrit/homebrewery/master/install/windows/install.ps1.
2. Run Powershell as an Administrator.
a. Click the Start menu or press the Windows key.
b. Type `powershell` into the Search box.
c. Right click on the Powershell app and select "Run As Administrator".
d. Click YES in the prompt that appears.
3. Change the script execution policy.
a. Run the Powershell command `Set-ExecutionPolicy Bypass -Scope Process`.
b. Allow the change to be made - press Y at the prompt that appears.
4. Run the installation script.
a. Navigate to the location of the script, e.g. `cd C:\Users\ExampleUser\Downloads`.
b. Start the script - `.\install.ps1`
5. Once the script has completed, it will start the Homebrewery server. This will normally cause a Network Access prompt for NodeJS - if this appears, click "Allow".
**NOTE:** At this time, the script **ONLY** installs HomeBrewery. It does **NOT** install the NaturalCrit login system, as that is currently a completely separate project.
---
### Testing
These installation instructions have been tested on the following Ubuntu releases:
- *Windows 10 Home - OS Build 19045.2546*
## Final Notes
While this installation process works successfully at the time of writing (January 23, 2023), it relies on all of the Node.JS packages used in the HomeBrewery project retaining their cross-platform capabilities to continue to function. This is one of the inherent advantages of Node.JS, but it is by no means guaranteed and as such, functionality or even installation may fail without warning at some point in the future.
Regards,
G
January 23, 2023

View File

@@ -13,7 +13,7 @@ npm install
npm audit fix
npm run postinstall
cp freebsd/rc.d/homebrewery /usr/local/etc/rc.d/
cp install/freebsd/rc.d/homebrewery /usr/local/etc/rc.d/
chmod +x /usr/local/etc/rc.d/homebrewery
sysrc homebrewery_enable=YES

View File

@@ -0,0 +1,51 @@
Write-Host Homebrewery Install -BackgroundColor Black -ForegroundColor Yellow
Write-Host =================== -BackgroundColor Black -ForegroundColor Yellow
Write-Host Install Chocolatey -BackgroundColor Black -ForegroundColor Yellow
Write-Host Instructions from https://chocolate.org/install -BackgroundColor Black -ForegroundColor Yellow
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Write-Host Install Node JS v16.11.1 -BackgroundColor Black -ForegroundColor Yellow
choco install nodejs --version=16.11.1 -y
Write-Host Install MongoDB v 4.4.4 -BackgroundColor Black -ForegroundColor Yellow
choco install mongodb --version=4.4.4 -y
Write-Host Install GIT -BackgroundColor Black -ForegroundColor Yellow
choco install git -y
Write-Host Refresh Environment -BackgroundColor Black -ForegroundColor Yellow
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
Update-SessionEnvironment
Write-Host Create Homebrewery directory - C:\Homebrewery -BackgroundColor Black -ForegroundColor Yellow
mkdir C:\Hombrewery
cd C:\Hombrewery
Write-Host Download Homebrewery project files -BackgroundColor Black -ForegroundColor Yellow
git clone https://github.com/naturalcrit/homebrewery.git
Write-Host Install Homebrewery files -BackgroundColor Black -ForegroundColor Yellow
cd homebrewery
npm install
npm audit fix
Write-Host Set install type to 'local' -BackgroundColor Black -ForegroundColor Yellow
[System.Environment]::SetEnvironmentVariable('NODE_ENV', 'local')
Write-Host INSTALL COMPLETE -BackgroundColor Black -ForegroundColor Yellow
Write-Host To start Homebrewery in the future, open a terminal in the Homebrewery directory and run npm start -BackgroundColor Black -ForegroundColor Yellow
Write-Host ================================================================================================== -BackgroundColor Black -ForegroundColor Yellow
Write-Host Start Homebrewery -BackgroundColor Black -ForegroundColor Yellow
npm start

22767
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,10 @@
{
"name": "homebrewery",
"description": "Create authentic looking D&D homebrews using only markdown",
"version": "3.6.0",
"version": "3.12.0",
"engines": {
"node": "16.11.x"
"npm": "^10.2.x",
"node": "^20.8.x"
},
"repository": {
"type": "git",
@@ -12,23 +13,29 @@
"scripts": {
"dev": "node scripts/dev.js",
"quick": "node scripts/quick.js",
"build": "node scripts/buildHomebrew.js",
"buildall": "node scripts/buildHomebrew.js && node scripts/buildAdmin.js",
"build": "node scripts/buildHomebrew.js && node scripts/buildAdmin.js",
"builddev": "node scripts/buildHomebrew.js --dev",
"lint": "eslint --fix **/*.{js,jsx}",
"lint:dry": "eslint **/*.{js,jsx}",
"stylelint": "stylelint --fix **/*.{less}",
"stylelint:dry": "stylelint **/*.less",
"circleci": "npm test && eslint **/*.{js,jsx} --max-warnings=0",
"verify": "npm run lint && npm test",
"test": "jest",
"test": "jest --runInBand",
"test:api-unit": "jest server/*.spec.js --verbose",
"test:coverage": "jest --coverage --silent",
"test:coverage": "jest --coverage --silent --runInBand",
"test:dev": "jest --verbose --watch",
"test:basic": "jest tests/markdown/basic.test.js --verbose",
"test:mustache-span": "jest tests/markdown/mustache-span.test.js --verbose",
"test:variables": "jest tests/markdown/variables.test.js --verbose",
"test:mustache-syntax": "jest '.*(mustache-syntax).*' --verbose --noStackTrace",
"test:mustache-syntax:inline": "jest '.*(mustache-syntax).*' -t '^Inline:.*' --verbose --noStackTrace",
"test:mustache-syntax:block": "jest '.*(mustache-syntax).*' -t '^Block:.*' --verbose --noStackTrace",
"test:mustache-syntax:injection": "jest '.*(mustache-syntax).*' -t '^Injection:.*' --verbose --noStackTrace",
"test:definition-lists": "jest tests/markdown/definition-lists.test.js --verbose --noStackTrace",
"test:route": "jest tests/routes/static-pages.test.js --verbose",
"phb": "node scripts/phb.js",
"prod": "set NODE_ENV=production && npm run build",
"postinstall": "npm run buildall",
"postinstall": "npm run build",
"start": "node server.js"
},
"author": "stolksdorf",
@@ -37,26 +44,32 @@
"build/*"
],
"jest": {
"testTimeout": 15000,
"testTimeout": 30000,
"modulePaths": [
"mode_modules",
"node_modules",
"shared",
"server"
],
"coverageThreshold" : {
"global" : {
"statements" : 25,
"branches" : 10,
"functions" : 22,
"lines" : 25
"coveragePathIgnorePatterns": [
"build/*"
],
"coverageThreshold": {
"global": {
"statements": 25,
"branches": 10,
"functions": 22,
"lines": 25
},
"server/homebrew.api.js" : {
"statements" : 65,
"branches" : 50,
"functions" : 60,
"lines" : 70
"server/homebrew.api.js": {
"statements": 65,
"branches": 50,
"functions": 60,
"lines": 70
}
}
},
"setupFilesAfterEnv": [
"jest-expect-message"
]
},
"babel": {
"presets": [
@@ -68,45 +81,54 @@
]
},
"dependencies": {
"@babel/core": "^7.20.12",
"@babel/plugin-transform-runtime": "^7.19.6",
"@babel/preset-env": "^7.19.4",
"@babel/preset-react": "^7.18.6",
"body-parser": "^1.20.1",
"classnames": "^2.3.2",
"@babel/core": "^7.24.4",
"@babel/plugin-transform-runtime": "^7.24.3",
"@babel/preset-env": "^7.24.4",
"@babel/preset-react": "^7.24.1",
"@googleapis/drive": "^8.7.0",
"body-parser": "^1.20.2",
"classnames": "^2.5.1",
"codemirror": "^5.65.6",
"cookie-parser": "^1.4.6",
"create-react-class": "^15.7.0",
"dedent-tabs": "^0.10.2",
"express": "^4.18.2",
"dedent-tabs": "^0.10.3",
"expr-eval": "^2.0.2",
"express": "^4.19.2",
"express-async-handler": "^1.2.0",
"express-static-gzip": "2.1.7",
"fs-extra": "11.1.0",
"googleapis": "110.0.0",
"fs-extra": "11.2.0",
"js-yaml": "^4.1.0",
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
"marked": "4.2.12",
"marked-extended-tables": "^1.0.5",
"marked": "11.2.0",
"marked-extended-tables": "^1.0.8",
"marked-gfm-heading-id": "^3.1.3",
"marked-smartypants-lite": "^1.0.2",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.29.4",
"mongoose": "^6.8.4",
"moment": "^2.30.1",
"mongoose": "^8.3.1",
"nanoid": "3.3.4",
"nconf": "^0.12.0",
"npm": "^8.10.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-frame-component": "4.1.3",
"react-router-dom": "6.7.0",
"nconf": "^0.12.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-frame-component": "^4.1.3",
"react-router-dom": "6.22.3",
"sanitize-filename": "1.6.3",
"superagent": "^6.1.0",
"superagent": "^8.1.2",
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
},
"devDependencies": {
"eslint": "^8.32.0",
"eslint-plugin-react": "^7.32.1",
"jest": "^29.2.2",
"supertest": "^6.3.3"
"eslint": "^8.57.0",
"eslint-plugin-jest": "^28.2.0",
"eslint-plugin-react": "^7.34.1",
"jest": "^29.7.0",
"jest-expect-message": "^1.1.3",
"postcss-less": "^6.0.0",
"stylelint": "^15.11.0",
"stylelint-config-recess-order": "^4.6.0",
"stylelint-config-recommended": "^13.0.0",
"stylelint-stylistic": "^0.4.3",
"supertest": "^6.3.4"
}
}

View File

@@ -21,6 +21,7 @@ const transforms = {
const build = async ({ bundle, render, ssr })=>{
const css = await lessTransform.generate({ paths: './shared' });
//css = `@layer bundle {\n${css}\n}`;
await fs.outputFile('./build/homebrew/bundle.css', css);
await fs.outputFile('./build/homebrew/bundle.js', bundle);
await fs.outputFile('./build/homebrew/ssr.js', ssr);
@@ -72,6 +73,7 @@ fs.emptyDirSync('./build');
themeData.path = dir;
themes.V3[dir] = (themeData);
fs.copy(`./themes/V3/${dir}/dropdownTexture.png`, `./build/themes/V3/${dir}/dropdownTexture.png`);
fs.copy(`./themes/V3/${dir}/dropdownPreview.png`, `./build/themes/V3/${dir}/dropdownPreview.png`);
const src = `./themes/V3/${dir}/style.less`;
((outputDirectory)=>{
less.render(fs.readFileSync(src).toString(), {
@@ -95,6 +97,28 @@ fs.emptyDirSync('./build');
// Move assets
await fs.copy('./themes/fonts', './build/fonts');
await fs.copy('./themes/assets', './build/assets');
await fs.copy('./client/icons', './build/icons');
//v==---------------------------MOVE CM EDITOR THEMES -----------------------------==v//
const editorThemesBuildDir = './build/homebrew/cm-themes';
await fs.copy('./node_modules/codemirror/theme', editorThemesBuildDir);
await fs.copy('./themes/codeMirror/customThemes', editorThemesBuildDir);
editorThemeFiles = fs.readdirSync(editorThemesBuildDir);
const editorThemeFile = './themes/codeMirror/editorThemes.json';
if(fs.existsSync(editorThemeFile)) fs.rmSync(editorThemeFile);
const stream = fs.createWriteStream(editorThemeFile, { flags: 'a' });
stream.write('[\n"default"');
for (themeFile of editorThemeFiles) {
stream.write(`,\n"${themeFile.slice(0, -4)}"`);
}
stream.write('\n]\n');
stream.end();
await fs.copy('./themes/codeMirror', './build/homebrew/codeMirror');
//v==----------------------------- BUNDLE PACKAGES --------------------------------==v//
@@ -130,12 +154,14 @@ fs.emptyDirSync('./build');
// build(bundles);
//
})().catch(console.error);
//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
ext : 'js json' // Extensions to watch (only .js/.json by default)
//watch : ['./server', './themes'], // Watch additional folders if needed
});
}
//In development set up a watch server and livereload
if(isDev){
livereload('./build');
watchFile('./server.js', {
watch : ['./client', './server', './themes'] // Watch additional folders if you want
});
}
})().catch(console.error);

View File

@@ -26,7 +26,6 @@
"codemirror/addon/edit/trailingspace.js",
"codemirror/addon/selection/active-line.js",
"moment",
"superagent",
"marked"
"superagent"
]
}

View File

@@ -7,6 +7,14 @@ DB.connect(config).then(()=>{
// before launching server
const PORT = process.env.PORT || config.get('web_port') || 8000;
server.app.listen(PORT, ()=>{
console.log(`server on port: ${PORT}`);
const reset = '\x1b[0m'; // Reset to default style
const bright = '\x1b[1m'; // Bright (bold) style
const cyan = '\x1b[36m'; // Cyan color
const underline = '\x1b[4m'; // Underlined style
console.log(`\n\tserver started at: ${new Date().toLocaleString()}`);
console.log(`\tserver on port: ${PORT}`);
console.log(`\t${bright + cyan}Open in browser: ${reset}${underline + bright + cyan}http://localhost:${PORT}${reset}\n\n`)
});
});

View File

@@ -16,7 +16,7 @@ const mw = {
.status(401)
.send('Authorization Required');
}
const [username, password] = new Buffer(req.get('authorization').split(' ').pop(), 'base64')
const [username, password] = Buffer.from(req.get('authorization').split(' ').pop(), 'base64')
.toString('ascii')
.split(':');
if(process.env.ADMIN_USER === username && process.env.ADMIN_PASS === password){
@@ -26,85 +26,124 @@ const mw = {
}
};
/* Search for brews that are older than 3 days and that are shorter than a tweet */
const junkBrewQuery = HomebrewModel.find({
'$where' : 'this.text.length < 140',
createdAt : {
$lt : Moment().subtract(30, 'days').toDate()
}
}).limit(100).maxTime(60000);
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 }
];
/* Search for brews that aren't compressed (missing the compressed text field) */
const uncompressedBrewQuery = HomebrewModel.find({
'text' : { '$exists': true }
}).lean().limit(10000).select('_id');
// Search for up to 100 brews that have not been viewed or updated in 30 days and are shorter than 140 bytes
router.get('/admin/cleanup', mw.adminOnly, (req, res)=>{
junkBrewQuery.exec((err, objs)=>{
if(err) return res.status(500).send(err);
return res.json({ count: objs.length });
});
HomebrewModel.aggregate(junkBrewPipeline).option({ maxTimeMS: 60000 })
.then((objs)=>res.json({ count: objs.length }))
.catch((error)=>{
console.error(error);
res.status(500).json({ error: 'Internal Server Error' });
});
});
/* Removes all empty brews that are older than 3 days and that are shorter than a tweet */
// Delete up to 100 brews that have not been viewed or updated in 30 days and are shorter than 140 bytes
router.post('/admin/cleanup', mw.adminOnly, (req, res)=>{
junkBrewQuery.remove().exec((err, objs)=>{
if(err) return res.status(500).send(err);
return res.json({ count: objs.length });
});
HomebrewModel.aggregate(junkBrewPipeline).option({ maxTimeMS: 60000 })
.then((docs)=>{
const ids = docs.map((doc)=>doc._id);
return HomebrewModel.deleteMany({ _id: { $in: ids } });
}).then((result)=>{
res.json({ count: result.deletedCount });
}).catch((error)=>{
console.error(error);
res.status(500).json({ error: 'Internal Server Error' });
});
});
/* Searches for matching edit or share id, also attempts to partial match */
router.get('/admin/lookup/:id', mw.adminOnly, (req, res, next)=>{
HomebrewModel.findOne({ $or : [
{ editId: { '$regex': req.params.id, '$options': 'i' } },
{ shareId: { '$regex': req.params.id, '$options': 'i' } },
] }).exec((err, brew)=>{
return res.json(brew);
router.get('/admin/lookup/:id', mw.adminOnly, async (req, res, next)=>{
HomebrewModel.findOne({
$or : [
{ editId: { $regex: req.params.id, $options: 'i' } },
{ shareId: { $regex: req.params.id, $options: 'i' } },
]
}).exec()
.then((brew)=>{
if(!brew) // No document found
return res.status(404).json({ error: 'Document not found' });
else
return res.json(brew);
})
.catch((err)=>{
console.error(err);
return res.status(500).json({ error: 'Internal Server Error' });
});
});
/* Find 50 brews that aren't compressed yet */
router.get('/admin/finduncompressed', mw.adminOnly, (req, res)=>{
uncompressedBrewQuery.exec((err, objs)=>{
if(err) return res.status(500).send(err);
objs = objs.map((obj)=>{return obj._id;});
return res.json({ count: objs.length, ids: objs });
});
const query = uncompressedBrewQuery.clone();
query.exec()
.then((objs)=>{
const ids = objs.map((obj)=>obj._id);
res.json({ count: ids.length, ids });
})
.catch((err)=>{
console.error(err);
res.status(500).send(err.message || 'Internal Server Error');
});
});
/* Compresses the "text" field of a brew to binary */
router.put('/admin/compress/:id', (req, res)=>{
HomebrewModel.get({ _id: req.params.id })
HomebrewModel.findOne({ _id: req.params.id })
.then((brew)=>{
brew.textBin = zlib.deflateRawSync(brew.text); // Compress brew text to binary before saving
brew.text = undefined; // Delete the non-binary text field since it's not needed anymore
if(!brew)
return res.status(404).send('Brew not found');
brew.save((err, obj)=>{
if(err) throw err;
return res.status(200).send(obj);
});
if(brew.text) {
brew.textBin = brew.textBin || zlib.deflateRawSync(brew.text); //Don't overwrite textBin if exists
brew.text = undefined;
}
return brew.save();
})
.then((obj)=>res.status(200).send(obj))
.catch((err)=>{
console.log(err);
return res.status(500).send('Error while saving');
console.error(err);
res.status(500).send('Error while saving');
});
});
router.get('/admin/stats', mw.adminOnly, (req, res)=>{
HomebrewModel.count({}, (err, count)=>{
router.get('/admin/stats', mw.adminOnly, async (req, res)=>{
try {
const totalBrewsCount = await HomebrewModel.countDocuments({});
const publishedBrewsCount = await HomebrewModel.countDocuments({ published: true });
return res.json({
totalBrews : count
totalBrews : totalBrewsCount,
totalPublishedBrews : publishedBrewsCount
});
});
} catch (error) {
console.error(error);
return res.status(500).json({ error: 'Internal Server Error' });
}
});
router.get('/admin', mw.adminOnly, (req, res)=>{
templateFn('admin', {
url : req.originalUrl
})
.then((page)=>res.send(page))
.catch((err)=>res.sendStatus(500));
.then((page)=>res.send(page))
.catch((err)=>res.sendStatus(500));
});
module.exports = router;

View File

@@ -1,4 +1,4 @@
/*eslint max-lines: ["warn", {"max": 400, "skipBlankLines": true, "skipComments": true}]*/
/*eslint max-lines: ["warn", {"max": 500, "skipBlankLines": true, "skipComments": true}]*/
// Set working directory to project root
process.chdir(`${__dirname}/..`);
@@ -17,21 +17,8 @@ const asyncHandler = require('express-async-handler');
const { DEFAULT_BREW } = require('./brewDefaults.js');
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']));
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 } = require('../shared/helpers.js');
const sanitizeBrew = (brew, accessType)=>{
brew._id = undefined;
@@ -43,8 +30,7 @@ const sanitizeBrew = (brew, accessType)=>{
};
app.use('/', serveCompressedStaticAssets(`build`));
//app.use(express.static(`${__dirname}/build`));
app.use(require('./middleware/content-negotiation.js'));
app.use(require('body-parser').json({ limit: '25mb' }));
app.use(require('cookie-parser')());
app.use(require('./forcessl.mw.js'));
@@ -225,6 +211,7 @@ app.get('/user/:username', async (req, res, next)=>{
'pageCount',
'description',
'authors',
'lang',
'published',
'views',
'shareId',
@@ -257,6 +244,7 @@ app.get('/user/:username', async (req, res, next)=>{
brew.pageCount = googleBrews[match].pageCount;
brew.renderer = googleBrews[match].renderer;
brew.version = googleBrews[match].version;
brew.webViewLink = googleBrews[match].webViewLink;
googleBrews.splice(match, 1);
}
}
@@ -267,6 +255,9 @@ app.get('/user/:username', async (req, res, next)=>{
}
req.brews = _.map(brews, (brew)=>{
// Clean up brew data
brew.title = brew.title?.trim();
brew.description = brew.description?.trim();
return sanitizeBrew(brew, ownAccount ? 'edit' : 'share');
});
@@ -294,8 +285,16 @@ app.get('/edit/:id', asyncHandler(getBrew('edit')), (req, res, next)=>{
app.get('/new/:id', asyncHandler(getBrew('share')), (req, res, next)=>{
sanitizeBrew(req.brew, 'share');
splitTextStyleAndMetadata(req.brew);
req.brew.views = 0;
req.brew.title = `CLONE - ${req.brew.title}`;
const brew = {
shareId : req.brew.shareId,
title : `CLONE - ${req.brew.title}`,
text : req.brew.text,
style : req.brew.style,
renderer : req.brew.renderer,
theme : req.brew.theme,
tags : req.brew.tags
};
req.brew = _.defaults(brew, DEFAULT_BREW);
req.ogMeta = { ...defaultMetaTags,
title : 'New',
@@ -316,14 +315,17 @@ app.get('/share/:id', asyncHandler(getBrew('share')), asyncHandler(async (req, r
type : 'article'
};
if(req.params.id.length > 12 && !brew._id) {
const googleId = req.params.id.slice(0, -12);
const shareId = req.params.id.slice(-12);
await GoogleActions.increaseView(googleId, shareId, 'share', brew)
.catch((err)=>{next(err);});
} else {
await HomebrewModel.increaseView({ shareId: brew.shareId });
}
// increase visitor view count, do not include visits by author(s)
if(!brew.authors.includes(req.account?.username)){
if(req.params.id.length > 12 && !brew._id) {
const googleId = brew.googleId;
const shareId = brew.shareId;
await GoogleActions.increaseView(googleId, shareId, 'share', brew)
.catch((err)=>{next(err);});
} else {
await HomebrewModel.increaseView({ shareId: brew.shareId });
}
};
sanitizeBrew(req.brew, 'share');
splitTextStyleAndMetadata(req.brew);
return next();
@@ -370,7 +372,7 @@ app.get('/account', asyncHandler(async (req, res, next)=>{
console.log(err);
});
data.uiItems = {
data.accountDetails = {
username : req.account.username,
issued : req.account.issued,
googleId : Boolean(req.account.googleId),
@@ -390,7 +392,6 @@ app.get('/account', asyncHandler(async (req, res, next)=>{
return next();
}));
const nodeEnv = config.get('node_env');
const isLocalEnvironment = config.get('local_environments').includes(nodeEnv);
// Local only
@@ -407,8 +408,7 @@ if(isLocalEnvironment){
//Render the page
const templateFn = require('./../client/template.js');
app.use(asyncHandler(async (req, res, next)=>{
const renderPage = async (req, res)=>{
// Create configuration object
const configuration = {
local : isLocalEnvironment,
@@ -417,7 +417,7 @@ app.use(asyncHandler(async (req, res, next)=>{
};
const props = {
version : require('./../package.json').version,
url : req.originalUrl,
url : req.customUrl || req.originalUrl,
brew : req.brew,
brews : req.brews,
googleBrews : req.googleBrews,
@@ -431,15 +431,20 @@ app.use(asyncHandler(async (req, res, next)=>{
const page = await templateFn('homebrew', title, props)
.catch((err)=>{
console.log(err);
return res.sendStatus(500);
});
return page;
};
//Send rendered page
app.use(asyncHandler(async (req, res, next)=>{
const page = await renderPage(req, res);
if(!page) return;
res.send(page);
}));
//v=====----- Error-Handling Middleware -----=====v//
//Format Errors so all fields will be sent
const replaceErrors = (key, value)=>{
//Format Errors as plain objects so all fields will appear in the string sent
const formatErrors = (key, value)=>{
if(value instanceof Error) {
const error = {};
Object.getOwnPropertyNames(value).forEach(function (key) {
@@ -451,13 +456,39 @@ const replaceErrors = (key, value)=>{
};
const getPureError = (error)=>{
return JSON.parse(JSON.stringify(error, replaceErrors));
return JSON.parse(JSON.stringify(error, formatErrors));
};
app.use((err, req, res, next)=>{
const status = err.status || 500;
app.use(async (err, req, res, next)=>{
err.originalUrl = req.originalUrl;
console.error(err);
res.status(status).send(getPureError(err));
if(err.originalUrl?.startsWith('/api/')) {
// console.log('API error');
res.status(err.status || err.response?.status || 500).send(err);
return;
}
// console.log('non-API error');
const status = err.status || err.code || 500;
req.ogMeta = { ...defaultMetaTags,
title : 'Error Page',
description : 'Something went wrong!'
};
req.brew = {
...err,
title : 'Error - Something went wrong!',
text : err.errors?.map((error)=>{return error.message;}).join('\n\n') || err.message || 'Unknown error!',
status : status,
HBErrorCode : err.HBErrorCode ?? '00',
pureError : getPureError(err)
};
req.customUrl= '/error';
const page = await renderPage(req, res);
if(!page) return;
res.send(page);
});
app.use((req, res)=>{

View File

@@ -15,7 +15,9 @@ const DEFAULT_BREW = {
authors : [],
tags : [],
systems : [],
lang : 'en',
thumbnail : '',
views : 0,
published : false,
pageCount : 1,
gDrive : false,

View File

@@ -27,8 +27,8 @@ const disconnect = async ()=>{
};
const connect = async (config)=>{
return await Mongoose.connect(getMongoDBURL(config),
{ retryWrites: false }, handleConnectionError);
return await Mongoose.connect(getMongoDBURL(config), { retryWrites: false })
.catch((error)=>handleConnectionError(error));
};
module.exports = {

View File

@@ -1,28 +1,30 @@
/* eslint-disable max-lines */
const _ = require('lodash');
const { google } = require('googleapis');
const googleDrive = require('@googleapis/drive');
const { nanoid } = require('nanoid');
const token = require('./token.js');
const config = require('./config.js');
let serviceAuth;
if(!config.get('service_account')){
console.log('No Google Service Account in config files - Google Drive integration will not be available.');
const reset = '\x1b[0m'; // Reset to default style
const yellow = '\x1b[33m'; // yellow color
console.warn(`\n${yellow}No Google Service Account in config files - Google Drive integration will not be available.${reset}`);
} else {
const keys = typeof(config.get('service_account')) == 'string' ?
JSON.parse(config.get('service_account')) :
config.get('service_account');
try {
serviceAuth = google.auth.fromJSON(keys);
serviceAuth = googleDrive.auth.fromJSON(keys);
serviceAuth.scopes = ['https://www.googleapis.com/auth/drive'];
} catch (err) {
console.warn(err);
console.log('Please make sure the Google Service Account is set up properly in your config files.');
console.warn('Please make sure the Google Service Account is set up properly in your config files.');
}
}
google.options({ auth: serviceAuth || config.get('google_api_key') });
const defaultAuth = serviceAuth || config.get('google_api_key');
const GoogleActions = {
@@ -33,7 +35,7 @@ const GoogleActions = {
throw (err);
}
const oAuth2Client = new google.auth.OAuth2(
const oAuth2Client = new googleDrive.auth.OAuth2(
config.get('google_client_id'),
config.get('google_client_secret'),
'/auth/google/redirect'
@@ -60,7 +62,7 @@ const GoogleActions = {
},
getGoogleFolder : async (auth)=>{
const drive = google.drive({ version: 'v3', auth });
const drive = googleDrive.drive({ version: 'v3', auth });
fileMetadata = {
'name' : 'Homebrewery',
@@ -97,25 +99,33 @@ const GoogleActions = {
},
listGoogleBrews : async (auth)=>{
const drive = google.drive({ version: 'v3', auth });
const drive = googleDrive.drive({ version: 'v3', auth });
const obj = await drive.files.list({
pageSize : 1000,
fields : 'nextPageToken, files(id, name, description, createdTime, modifiedTime, properties)',
q : 'mimeType != \'application/vnd.google-apps.folder\' and trashed = false'
})
.catch((err)=>{
console.log(`Error Listing Google Brews`);
console.error(err);
throw (err);
//TODO: Should break out here, but continues on for some reason.
});
const fileList = [];
let NextPageToken = '';
if(!obj.data.files.length) {
do {
const obj = await drive.files.list({
pageSize : 1000,
pageToken : NextPageToken || '',
fields : 'nextPageToken, files(id, name, description, createdTime, modifiedTime, properties, webViewLink)',
q : 'mimeType != \'application/vnd.google-apps.folder\' and trashed = false'
})
.catch((err)=>{
console.log(`Error Listing Google Brews`);
console.error(err);
throw (err);
//TODO: Should break out here, but continues on for some reason.
});
fileList.push(...obj.data.files);
NextPageToken = obj.data.nextPageToken;
} while (NextPageToken);
if(!fileList.length) {
console.log('No files found.');
}
const brews = obj.data.files.map((file)=>{
const brews = fileList.map((file)=>{
return {
text : '',
shareId : file.properties.shareId,
@@ -129,14 +139,17 @@ const GoogleActions = {
description : file.description,
views : parseInt(file.properties.views),
published : file.properties.published ? file.properties.published == 'true' : false,
systems : []
systems : [],
lang : file.properties.lang,
thumbnail : file.properties.thumbnail,
webViewLink : file.webViewLink
};
});
return brews;
},
updateGoogleBrew : async (brew)=>{
const drive = google.drive({ version: 'v3' });
const drive = googleDrive.drive({ version: 'v3', auth: defaultAuth });
await drive.files.update({
fileId : brew.googleId,
@@ -149,7 +162,8 @@ const GoogleActions = {
editId : brew.editId || nanoid(12),
pageCount : brew.pageCount,
renderer : brew.renderer || 'legacy',
isStubbed : true
isStubbed : true,
lang : brew.lang || 'en'
}
},
media : {
@@ -167,7 +181,7 @@ const GoogleActions = {
},
newGoogleBrew : async (auth, brew)=>{
const drive = google.drive({ version: 'v3', auth });
const drive = googleDrive.drive({ version: 'v3', auth });
const media = {
mimeType : 'text/plain',
@@ -187,7 +201,8 @@ const GoogleActions = {
pageCount : brew.pageCount,
renderer : brew.renderer || 'legacy',
isStubbed : true,
version : 1
version : 1,
lang : brew.lang || 'en'
}
};
@@ -218,7 +233,7 @@ const GoogleActions = {
},
getGoogleBrew : async (id, accessId, accessType)=>{
const drive = google.drive({ version: 'v3' });
const drive = googleDrive.drive({ version: 'v3', auth: defaultAuth });
const obj = await drive.files.get({
fileId : id,
@@ -231,9 +246,9 @@ const GoogleActions = {
if(obj) {
if(accessType == 'edit' && obj.data.properties.editId != accessId){
throw ('Edit ID does not match');
throw ({ message: 'Edit ID does not match' });
} else if(accessType == 'share' && obj.data.properties.shareId != accessId){
throw ('Share ID does not match');
throw ({ message: 'Share ID does not match' });
}
const file = await drive.files.get({
@@ -255,6 +270,7 @@ const GoogleActions = {
description : obj.data.description,
systems : obj.data.properties.systems ? obj.data.properties.systems.split(',') : [],
authors : [],
lang : obj.data.properties.lang,
published : obj.data.properties.published ? obj.data.properties.published == 'true' : false,
trashed : obj.data.trashed,
@@ -274,7 +290,7 @@ const GoogleActions = {
},
deleteGoogleBrew : async (auth, id, accessId)=>{
const drive = google.drive({ version: 'v3', auth });
const drive = googleDrive.drive({ version: 'v3', auth });
const obj = await drive.files.get({
fileId : id,
@@ -300,7 +316,7 @@ const GoogleActions = {
},
increaseView : async (id, accessId, accessType, brew)=>{
const drive = google.drive({ version: 'v3' });
const drive = googleDrive.drive({ version: 'v3', auth: defaultAuth });
await drive.files.update({
fileId : brew.googleId,

View File

@@ -27,8 +27,13 @@ const api = {
// If the id is longer than 12, then it's a google id + the edit id. This splits the longer id up.
if(id.length > 12) {
googleId = id.slice(0, -12);
id = id.slice(-12);
if(id.length >= (33 + 12)) { // googleId is minimum 33 chars (may increase)
googleId = id.slice(0, -12); // current editId is 12 chars
} else { // old editIds used to be 10 chars;
googleId = id.slice(0, -10); // if total string is too short, must be old brew
console.log('Old brew, using 10-char Id');
}
id = id.slice(googleId.length);
}
return { id, googleId };
},
@@ -49,6 +54,10 @@ const api = {
});
stub = stub?.toObject();
if(stub?.lock?.locked && accessType != 'edit') {
throw { HBErrorCode: '100', code: stub.lock.code, message: stub.lock.message, brewId: stub.shareId, brewTitle: stub.title };
}
// If there is a google id, try to find the google brew
if(!stubOnly && (googleId || stub?.googleId)) {
let googleError;
@@ -57,7 +66,14 @@ const api = {
googleError = err;
});
// Throw any error caught while attempting to retrieve Google brew.
if(googleError) throw googleError;
if(googleError) {
const reason = googleError.errors?.[0].reason;
if(reason == 'notFound') {
throw { ...googleError, HBErrorCode: '02', authors: stub?.authors, account: req.account?.username };
} else {
throw { ...googleError, HBErrorCode: '01' };
}
}
// Combine the Homebrewery stub with the google brew, or if the stub doesn't exist just use the google brew
stub = stub ? _.assign({ ...api.excludeStubProps(stub), stubbed: true }, api.excludeGoogleProps(googleBrew)) : googleBrew;
}
@@ -65,14 +81,16 @@ const api = {
const isAuthor = stub?.authors?.includes(req.account?.username);
const isInvited = stub?.invitedAuthors?.includes(req.account?.username);
if(accessType === 'edit' && (authorsExist && !(isAuthor || isInvited))) {
throw `The current logged in user does not have editor access to this brew.
If you believe you should have access to this brew, ask the file owner to invite you as an author by opening the brew, viewing the Properties tab, and adding your username to the "invited authors" list. You can then try to access this document again.`;
const accessError = { name: 'Access Error', status: 401 };
if(req.account){
throw { ...accessError, message: 'User is not an Author', HBErrorCode: '03', authors: stub.authors, brewTitle: stub.title, shareId: stub.shareId};
}
throw { ...accessError, message: 'User is not logged in', HBErrorCode: '04', authors: stub.authors, brewTitle: stub.title, shareId: stub.shareId};
}
// If after all of that we still don't have a brew, throw an exception
if(!stub && !stubOnly) {
throw 'Brew not found in Homebrewery database or Google Drive';
throw { name: 'BrewLoad Error', message: 'Brew not found', status: 404, HBErrorCode: '05', accessType: accessType, brewId: id };
}
// Clean up brew: fill in missing fields with defaults / fix old invalid values
@@ -139,6 +157,9 @@ If you believe you should have access to this brew, ask the file owner to invite
brew.text = api.mergeBrewText(brew);
_.defaults(brew, DEFAULT_BREW);
brew.title = brew.title.trim();
brew.description = brew.description.trim();
},
newGoogleBrew : async (account, brew, res)=>{
const oAuth2Client = GoogleActions.authCheck(account, res);
@@ -181,7 +202,7 @@ If you believe you should have access to this brew, ask the file owner to invite
saved = await newHomebrew.save()
.catch((err)=>{
console.error(err, err.toString(), err.stack);
throw `Error while creating new brew, ${err.toString()}`;
throw { name: 'BrewSave Error', message: `Error while creating new brew, ${err.toString()}`, status: 500, HBErrorCode: '06' };
});
if(!saved) return;
saved = saved.toObject();
@@ -203,6 +224,8 @@ If you believe you should have access to this brew, ask the file owner to invite
const { saveToGoogle, removeFromGoogle } = req.query;
let afterSave = async ()=>true;
brew.title = brew.title.trim();
brew.description = brew.description.trim() || '';
brew.text = api.mergeBrewText(brew);
if(brew.googleId && removeFromGoogle) {
@@ -283,10 +306,13 @@ If you believe you should have access to this brew, ask the file owner to invite
try {
await api.getBrew('edit')(req, res, ()=>{});
} catch (err) {
const { id, googleId } = api.getId(req);
console.warn(`No google brew found for id ${googleId}, the stub with id ${id} will be deleted.`);
await HomebrewModel.deleteOne({ editId: id });
return next();
// Only if the error code is HBErrorCode '02', that is, Google returned "404 - Not Found"
if(err.HBErrorCode == '02') {
const { id, googleId } = api.getId(req);
console.warn(`No google brew found for id ${googleId}, the stub with id ${id} will be deleted.`);
await HomebrewModel.deleteOne({ editId: id });
return next();
}
}
let brew = req.brew;
@@ -305,10 +331,10 @@ If you believe you should have access to this brew, ask the file owner to invite
if(brew.authors.length === 0) {
// Delete brew if there are no authors left
await brew.remove()
await HomebrewModel.deleteOne({ _id: brew._id })
.catch((err)=>{
console.error(err);
throw { status: 500, message: 'Error while removing' };
throw { name: 'BrewDelete Error', message: 'Error while removing', status: 500, HBErrorCode: '07', brewId: brew._id };
});
} else {
if(shouldDeleteGoogleBrew) {
@@ -317,11 +343,10 @@ If you believe you should have access to this brew, ask the file owner to invite
brew.textBin = zlib.deflateRawSync(brew.text);
brew.text = undefined;
}
// Otherwise, save the brew with updated author list
brew.markModified('authors'); //Mongo will not properly update arrays without markModified()
await brew.save()
.catch((err)=>{
throw { status: 500, message: err };
throw { name: 'BrewAuthorDelete Error', message: err, status: 500, HBErrorCode: '08', brewId: brew._id };
});
}
}

View File

@@ -10,7 +10,7 @@ describe('Tests for api', ()=>{
let modelBrew;
let saveFunc;
let removeFunc;
let markModifiedFunc;
let saved;
beforeEach(()=>{
@@ -19,16 +19,16 @@ describe('Tests for api', ()=>{
saved = { ...this, _id: '1' };
return saved;
});
removeFunc = jest.fn(async function() {});
markModifiedFunc = jest.fn(()=>true);
modelBrew = (brew)=>({
...brew,
save : saveFunc,
remove : removeFunc,
toObject : function() {
save : saveFunc,
markModified : markModifiedFunc,
toObject : function() {
delete this.save;
delete this.toObject;
delete this.remove;
delete this.markModified;
return this;
}
});
@@ -58,6 +58,7 @@ describe('Tests for api', ()=>{
description : 'this is a description',
tags : ['something', 'fun'],
systems : ['D&D 5e'],
lang : 'en',
renderer : 'v3',
theme : 'phb',
published : true,
@@ -71,7 +72,8 @@ describe('Tests for api', ()=>{
lastViewed : new Date(),
version : 1,
pageCount : 1,
textBin : ''
textBin : '',
views : 0
};
googleBrew = {
...hbBrew,
@@ -109,21 +111,32 @@ describe('Tests for api', ()=>{
expect(googleId).toEqual('12345');
});
it('should return id and google id from params', ()=>{
it('should return 12-char id and google id from params', ()=>{
const { id, googleId } = api.getId({
params : {
id : '123456789012abcdefghijkl'
id : '123456789012345678901234567890123abcdefghijkl'
}
});
expect(googleId).toEqual('123456789012345678901234567890123');
expect(id).toEqual('abcdefghijkl');
expect(googleId).toEqual('123456789012');
});
it('should return 10-char id and google id from params', ()=>{
const { id, googleId } = api.getId({
params : {
id : '123456789012345678901234567890123abcdefghij'
}
});
expect(googleId).toEqual('123456789012345678901234567890123');
expect(id).toEqual('abcdefghij');
});
});
describe('getBrew', ()=>{
const toBrewPromise = (brew)=>new Promise((res)=>res({ toObject: ()=>brew }));
const notFoundError = 'Brew not found in Homebrewery database or Google Drive';
const notFoundError = { HBErrorCode: '05', message: 'Brew not found', name: 'BrewLoad Error', status: 404, accessType: 'share', brewId: '1' };
it('returns middleware', ()=>{
const getFn = api.getBrew('share');
@@ -181,7 +194,7 @@ describe('Tests for api', ()=>{
expect(next).toHaveBeenCalled();
});
it('throws if invalid author', async ()=>{
it('throws if not logged in as author', async ()=>{
api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
model.get = jest.fn(()=>toBrewPromise({ title: 'test brew', authors: ['a'] }));
@@ -195,9 +208,24 @@ describe('Tests for api', ()=>{
err = e;
}
expect(err).toEqual(`The current logged in user does not have editor access to this brew.
expect(err).toEqual({ HBErrorCode: '04', message: 'User is not logged in', name: 'Access Error', status: 401, brewTitle: 'test brew', authors: ['a'] });
});
If you believe you should have access to this brew, ask the file owner to invite you as an author by opening the brew, viewing the Properties tab, and adding your username to the "invited authors" list. You can then try to access this document again.`);
it('throws if logged in as invalid author', async ()=>{
api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
model.get = jest.fn(()=>toBrewPromise({ title: 'test brew', authors: ['a'] }));
const fn = api.getBrew('edit', true);
const req = { brew: {}, account: { username: 'b' } };
let err;
try {
await fn(req, null, null);
} catch (e) {
err = e;
}
expect(err).toEqual({ HBErrorCode: '03', message: 'User is not an Author', name: 'Access Error', status: 401, brewTitle: 'test brew', authors: ['a'] });
});
it('does not throw if no authors', async ()=>{
@@ -250,6 +278,7 @@ If you believe you should have access to this brew, ask the file owner to invite
pageCount : 1,
published : false,
renderer : 'legacy',
lang : 'en',
shareId : undefined,
systems : [],
tags : [],
@@ -261,13 +290,26 @@ If you believe you should have access to this brew, ask the file owner to invite
gDrive : false,
style : undefined,
trashed : false,
updatedAt : undefined
updatedAt : undefined,
views : 0
});
expect(next).toHaveBeenCalled();
expect(api.getId).toHaveBeenCalledWith(req);
expect(model.get).toHaveBeenCalledWith({ shareId: '1' });
expect(google.getGoogleBrew).toHaveBeenCalledWith('2', '1', 'share');
});
it('access is denied to a locked brew', async()=>{
const lockBrew = { title: 'test brew', shareId: '1', lock: { locked: true, code: 404, message: 'brew locked' } };
model.get = jest.fn(()=>toBrewPromise(lockBrew));
api.getId = jest.fn(()=>({ id: '1', googleId: undefined }));
const fn = api.getBrew('share', false);
const req = { brew: {} };
const next = jest.fn();
await expect(fn(req, null, next)).rejects.toEqual({ 'HBErrorCode': '100', 'brewId': '1', 'brewTitle': 'test brew', 'code': 404, 'message': 'brew locked' });
});
});
describe('mergeBrewText', ()=>{
@@ -442,6 +484,7 @@ brew`);
pageCount : 1,
published : false,
renderer : 'V3',
lang : 'en',
shareId : expect.any(String),
style : undefined,
systems : [],
@@ -452,7 +495,8 @@ brew`);
thumbnail : '',
title : 'asdf',
trashed : false,
updatedAt : undefined
updatedAt : undefined,
views : 0
});
});
@@ -499,6 +543,7 @@ brew`);
pageCount : undefined,
published : false,
renderer : undefined,
lang : 'en',
shareId : expect.any(String),
googleId : expect.any(String),
style : undefined,
@@ -510,7 +555,8 @@ brew`);
thumbnail : '',
title : 'asdf',
trashed : false,
updatedAt : undefined
updatedAt : undefined,
views : 0
});
});
@@ -537,7 +583,7 @@ brew`);
describe('deleteBrew', ()=>{
it('should handle case where fetching the brew returns an error', async ()=>{
api.getBrew = jest.fn(()=>async ()=>{ throw 'err'; });
api.getBrew = jest.fn(()=>async ()=>{ throw { message: 'err', HBErrorCode: '02' }; });
api.getId = jest.fn(()=>({ id: '1', googleId: '2' }));
model.deleteOne = jest.fn(async ()=>{});
const next = jest.fn(()=>{});
@@ -557,13 +603,14 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
const req = {};
await api.deleteBrew(req, res);
expect(api.getBrew).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).toHaveBeenCalled();
expect(model.deleteOne).toHaveBeenCalled();
});
it('should throw on delete error', async ()=>{
@@ -575,7 +622,7 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
removeFunc = jest.fn(async ()=>{ throw 'err'; });
model.deleteOne = jest.fn(async ()=>{ throw 'err'; });
const req = {};
let err;
@@ -588,7 +635,7 @@ brew`);
expect(err).not.toBeUndefined();
expect(api.getBrew).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).toHaveBeenCalled();
expect(model.deleteOne).toHaveBeenCalled();
});
it('should delete when one author', async ()=>{
@@ -600,13 +647,14 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
const req = { account: { username: 'test' } };
await api.deleteBrew(req, res);
expect(api.getBrew).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).toHaveBeenCalled();
expect(model.deleteOne).toHaveBeenCalled();
});
it('should remove one author when multiple present', async ()=>{
@@ -618,13 +666,15 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
const req = { account: { username: 'test' } };
await api.deleteBrew(req, res);
expect(api.getBrew).toHaveBeenCalled();
expect(markModifiedFunc).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).not.toHaveBeenCalled();
expect(model.deleteOne).not.toHaveBeenCalled();
expect(saveFunc).toHaveBeenCalled();
expect(saved.authors).toEqual(['test2']);
});
@@ -638,6 +688,7 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
saveFunc = jest.fn(async ()=>{ throw 'err'; });
const req = { account: { username: 'test' } };
@@ -651,7 +702,7 @@ brew`);
expect(err).not.toBeUndefined();
expect(api.getBrew).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).not.toHaveBeenCalled();
expect(model.deleteOne).not.toHaveBeenCalled();
expect(saveFunc).toHaveBeenCalled();
});
@@ -664,6 +715,7 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
api.deleteGoogleBrew = jest.fn(async ()=>true);
const req = { account: { username: 'test' } };
@@ -671,7 +723,7 @@ brew`);
expect(api.getBrew).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).toHaveBeenCalled();
expect(model.deleteOne).toHaveBeenCalled();
expect(api.deleteGoogleBrew).toHaveBeenCalled();
});
@@ -684,6 +736,7 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
api.deleteGoogleBrew = jest.fn(async ()=>{
throw 'err';
});
@@ -693,7 +746,7 @@ brew`);
expect(api.getBrew).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).toHaveBeenCalled();
expect(model.deleteOne).toHaveBeenCalled();
expect(api.deleteGoogleBrew).toHaveBeenCalled();
});
@@ -706,14 +759,16 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
api.deleteGoogleBrew = jest.fn(async ()=>true);
const req = { account: { username: 'test' } };
await api.deleteBrew(req, res);
expect(api.getBrew).toHaveBeenCalled();
expect(markModifiedFunc).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).not.toHaveBeenCalled();
expect(model.deleteOne).not.toHaveBeenCalled();
expect(api.deleteGoogleBrew).toHaveBeenCalled();
expect(saveFunc).toHaveBeenCalled();
expect(saved.authors).toEqual(['test2']);
@@ -731,6 +786,7 @@ brew`);
req.brew = brew;
});
model.findOne = jest.fn(async ()=>modelBrew(brew));
model.deleteOne = jest.fn(async ()=>{});
api.deleteGoogleBrew = jest.fn(async ()=>true);
const req = { account: { username: 'test2' } };
@@ -738,7 +794,7 @@ brew`);
expect(api.getBrew).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).not.toHaveBeenCalled();
expect(model.deleteOne).not.toHaveBeenCalled();
expect(api.deleteGoogleBrew).not.toHaveBeenCalled();
expect(saveFunc).toHaveBeenCalled();
expect(saved.authors).toEqual(['test']);

View File

@@ -15,6 +15,7 @@ const HomebrewSchema = mongoose.Schema({
description : { type: String, default: '' },
tags : [String],
systems : [String],
lang : { type: String, default: 'en' },
renderer : { type: String, default: '' },
authors : [String],
invitedAuthors : [String],
@@ -39,30 +40,24 @@ HomebrewSchema.statics.increaseView = async function(query) {
return brew;
};
HomebrewSchema.statics.get = function(query, fields=null){
return new Promise((resolve, reject)=>{
Homebrew.find(query, fields, null, (err, brews)=>{
if(err || !brews.length) return reject('Can not find brew');
if(!_.isNil(brews[0].textBin)) { // Uncompress zipped text field
unzipped = zlib.inflateRawSync(brews[0].textBin);
brews[0].text = unzipped.toString();
}
return resolve(brews[0]);
});
});
HomebrewSchema.statics.get = async function(query, fields=null){
const brew = await Homebrew.findOne(query, fields).orFail()
.catch((error)=>{throw 'Can not find brew';});
if(!_.isNil(brew.textBin)) { // Uncompress zipped text field
unzipped = zlib.inflateRawSync(brew.textBin);
brew.text = unzipped.toString();
}
return brew;
};
HomebrewSchema.statics.getByUser = function(username, allowAccess=false, fields=null){
return new Promise((resolve, reject)=>{
const query = { authors: username, published: true };
if(allowAccess){
delete query.published;
}
Homebrew.find(query, fields).lean().exec((err, brews)=>{ //lean() converts results to JSObjects
if(err) return reject('Can not find brew');
return resolve(brews);
});
});
HomebrewSchema.statics.getByUser = async function(username, allowAccess=false, fields=null){
const query = { authors: username, published: true };
if(allowAccess){
delete query.published;
}
const brews = await Homebrew.find(query, fields).lean().exec() //lean() converts results to JSObjects
.catch((error)=>{throw 'Can not find brews';});
return brews;
};
const Homebrew = mongoose.model('Homebrew', HomebrewSchema);

View File

@@ -0,0 +1,12 @@
module.exports = (req, res, next)=>{
const isImageRequest = req.get('Accept')?.split(',')
?.filter((h)=>!h.includes('q='))
?.every((h)=>/image\/.*/.test(h));
if(isImageRequest) {
return res.status(406).send({
message : 'Request for image at this URL is not supported'
});
}
next();
};

View File

@@ -0,0 +1,41 @@
const contentNegotiationMiddleware = require('./content-negotiation.js');
describe('content-negotiation-middleware', ()=>{
let request;
let response;
let next;
beforeEach(()=>{
request = {
get : function(key) {
return this[key];
}
};
response = {
status : jest.fn(()=>response),
send : jest.fn(()=>{})
};
next = jest.fn();
});
it('should return 406 on image request', ()=>{
contentNegotiationMiddleware({
Accept : 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
...request
}, response);
expect(response.status).toHaveBeenLastCalledWith(406);
expect(response.send).toHaveBeenCalledWith({
message : 'Request for image at this URL is not supported'
});
});
it('should call next on non-image request', ()=>{
contentNegotiationMiddleware({
Accept : 'text,image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
...request
}, response, next);
expect(next).toHaveBeenCalled();
});
});

22
shared/helpers.js Normal file
View File

@@ -0,0 +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);
}
};
module.exports = {
splitTextStyleAndMetadata
};

View File

@@ -7,7 +7,7 @@ const cx = require('classnames');
const closeTag = require('./close-tag');
let CodeMirror;
if(typeof navigator !== 'undefined'){
if(typeof window !== 'undefined'){
CodeMirror = require('codemirror');
//Language Modes
@@ -49,7 +49,8 @@ const CodeEditor = createClass({
value : '',
wrap : true,
onChange : ()=>{},
enableFolding : true
enableFolding : true,
editorTheme : 'default'
};
},
@@ -91,19 +92,30 @@ const CodeEditor = createClass({
} else {
this.codeMirror.setOption('foldOptions', false);
}
if(prevProps.editorTheme !== this.props.editorTheme){
this.codeMirror.setOption('theme', this.props.editorTheme);
}
},
buildEditor : function() {
this.codeMirror = CodeMirror(this.refs.editor, {
lineNumbers : true,
lineWrapping : this.props.wrap,
indentWithTabs : true,
indentWithTabs : false,
tabSize : 2,
smartIndent : false,
historyEventDelay : 250,
scrollPastEnd : true,
extraKeys : {
'Tab' : this.indent,
'Shift-Tab' : this.dedent,
'Ctrl-B' : this.makeBold,
'Cmd-B' : this.makeBold,
'Shift-Ctrl-=' : this.makeSuper,
'Shift-Cmd-=' : this.makeSuper,
'Ctrl-=' : this.makeSub,
'Cmd-=' : this.makeSub,
'Ctrl-I' : this.makeItalic,
'Cmd-I' : this.makeItalic,
'Ctrl-U' : this.makeUnderline,
@@ -156,6 +168,7 @@ const CodeEditor = createClass({
autoCloseTags : true,
styleActiveLine : true,
showTrailingSpace : false,
theme : this.props.editorTheme
// specialChars : / /,
// specialCharPlaceholder : function(char) {
// const el = document.createElement('span');
@@ -171,6 +184,19 @@ const CodeEditor = createClass({
this.updateSize();
},
indent : function () {
const cm = this.codeMirror;
if(cm.somethingSelected()) {
cm.execCommand('indentMore');
} else {
cm.execCommand('insertSoftTab');
}
},
dedent : function () {
this.codeMirror.execCommand('indentLess');
},
makeHeader : function (number) {
const selection = this.codeMirror.getSelection();
const header = Array(number).fill('#').join('');
@@ -197,6 +223,25 @@ const CodeEditor = createClass({
}
},
makeSuper : function() {
const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '^' && selection.slice(-1) === '^';
this.codeMirror.replaceSelection(t ? selection.slice(1, -1) : `^${selection}^`, 'around');
if(selection.length === 0){
const cursor = this.codeMirror.getCursor();
this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 1 });
}
},
makeSub : function() {
const selection = this.codeMirror.getSelection(), t = selection.slice(0, 2) === '^^' && selection.slice(-2) === '^^';
this.codeMirror.replaceSelection(t ? selection.slice(2, -2) : `^^${selection}^^`, 'around');
if(selection.length === 0){
const cursor = this.codeMirror.getCursor();
this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 2 });
}
},
makeNbsp : function() {
this.codeMirror.replaceSelection('&nbsp;', 'end');
},
@@ -390,7 +435,10 @@ const CodeEditor = createClass({
//----------------------//
render : function(){
return <div className='codeEditor' ref='editor' style={this.props.style}/>;
return <>
<link href={`../homebrew/cm-themes/${this.props.editorTheme}.css`} type="text/css" rel='stylesheet' />
<div className='codeEditor' ref='editor' style={this.props.style}/>
</>;
}
});

View File

@@ -9,18 +9,31 @@
}
.codeEditor{
@media screen and (pointer : coarse) {
font-size : 16px;
}
.CodeMirror-foldmarker {
font-family: inherit;
text-shadow: none;
font-weight: 600;
color: grey;
}
}
.sourceMoveFlash .CodeMirror-line{
animation-name: sourceMoveAnimation;
animation-duration: 0.4s;
}
.CodeMirror-vscrollbar {
&::-webkit-scrollbar {
width: 20px;
}
&::-webkit-scrollbar-thumb {
width: 20px;
background: linear-gradient(90deg, #858585 15px, #808080 15px);
}
}
//.cm-tab {
// background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAQAAACOs/baAAAARUlEQVR4nGJgIAG8JkXxUAcCtDWemcGR1lY4MvgzCEKY7jSBjgxBDAG09UEQzAe0AMwMHrSOAwEGRtpaMIwAAAAA//8DAG4ID9EKs6YqAAAAAElFTkSuQmCC) no-repeat right;
//}

View File

@@ -2,7 +2,42 @@
const _ = require('lodash');
const Marked = require('marked');
const MarkedExtendedTables = require('marked-extended-tables');
const { markedSmartypantsLite: MarkedSmartypantsLite } = require('marked-smartypants-lite');
const { gfmHeadingId: MarkedGFMHeadingId } = require('marked-gfm-heading-id');
const MathParser = require('expr-eval').Parser;
const renderer = new Marked.Renderer();
const tokenizer = new Marked.Tokenizer();
//Limit math features to simple items
const mathParser = new MathParser({
operators : {
// These default to true, but are included to be explicit
add : true,
subtract : true,
multiply : true,
divide : true,
power : true,
round : true,
floor : true,
ceil : true,
sin : false, cos : false, tan : false, asin : false, acos : false,
atan : false, sinh : false, cosh : false, tanh : false, asinh : false,
acosh : false, atanh : false, sqrt : false, cbrt : false, log : false,
log2 : false, ln : false, lg : false, log10 : false, expm1 : false,
log1p : false, abs : false, trunc : false, join : false, sum : false,
'-' : false, '+' : false, exp : false, not : false, length : false,
'!' : false, sign : false, random : false, fac : false, min : false,
max : false, hypot : false, pyt : false, pow : false, atan2 : false,
'if' : false, gamma : false, roundTo : false, map : false, fold : false,
filter : false, indexOf : false,
remainder : false, factorial : false,
comparison : false, concatenate : false,
logical : false, assignment : false,
array : false, fndef : false
}
});
//Processes the markdown within an HTML block if it's just a class-wrapper
renderer.html = function (html) {
@@ -26,13 +61,40 @@ renderer.paragraph = function(text){
return `<p>${text}</p>\n`;
};
//Fix local links in the Preview iFrame to link inside the frame
renderer.link = function (href, title, text) {
let self = false;
if(href[0] == '#') {
self = true;
}
href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
if(href === null) {
return text;
}
let out = `<a href="${escape(href)}"`;
if(title) {
out += ` title="${title}"`;
}
if(self) {
out += ' target="_self"';
}
out += `>${text}</a>`;
return out;
};
// Disable default reflink behavior, as it steps on our variables extension
tokenizer.def = function () {
return undefined;
};
const mustacheSpans = {
name : 'mustacheSpans',
level : 'inline', // Is this a block-level or inline-level tokenizer?
start(src) { return src.match(/{{[^{]/)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
const completeSpan = /^{{[^\n]*}}/; // Regex for the complete token
const inlineRegex = /{{(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\1 *|}}/g;
const inlineRegex = /{{(?=((?:[:=](?:"['\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"=':{}\s]*)*))\1 *|}}/g;
const match = completeSpan.exec(src);
if(match) {
//Find closing delimiter
@@ -43,7 +105,7 @@ const mustacheSpans = {
let delim;
while (delim = inlineRegex.exec(match[0])) {
if(!tags) {
tags = ` ${processStyleTags(delim[0].substring(2))}`;
tags = `${processStyleTags(delim[0].substring(2))}`;
endTags = delim[0].length;
}
if(delim[0].startsWith('{{')) {
@@ -82,7 +144,7 @@ const mustacheDivs = {
start(src) { return src.match(/\n *{{[^{]/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
const completeBlock = /^ *{{[^\n}]* *\n.*\n *}}/s; // Regex for the complete token
const blockRegex = /^ *{{(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\1 *$|^ *}}$/gm;
const blockRegex = /^ *{{(?=((?:[:=](?:"['\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"=':{}\s]*)*))\1 *$|^ *}}$/gm;
const match = completeBlock.exec(src);
if(match) {
//Find closing delimiter
@@ -93,8 +155,8 @@ const mustacheDivs = {
let delim;
while (delim = blockRegex.exec(match[0])?.[0].trim()) {
if(!tags) {
tags = ` ${processStyleTags(delim.substring(2))}`;
endTags = delim.length;
tags = `${processStyleTags(delim.substring(2))}`;
endTags = delim.length + src.indexOf(delim);
}
if(delim.startsWith('{{')) {
blockCount++;
@@ -130,14 +192,14 @@ const mustacheInjectInline = {
level : 'inline',
start(src) { return src.match(/ *{[^{\n]/)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
const inlineRegex = /^ *{(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\1}/g;
const inlineRegex = /^ *{(?=((?:[:=](?:"['\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"=':{}\s]*)*))\1}/g;
const match = inlineRegex.exec(src);
if(match) {
const lastToken = tokens[tokens.length - 1];
if(!lastToken)
if(!lastToken || lastToken.type == 'mustacheInjectInline')
return false;
const tags = ` ${processStyleTags(match[1])}`;
const tags = `${processStyleTags(match[1])}`;
lastToken.originalType = lastToken.type;
lastToken.type = 'mustacheInjectInline';
lastToken.tags = tags;
@@ -165,15 +227,15 @@ const mustacheInjectBlock = {
level : 'block',
start(src) { return src.match(/\n *{[^{\n]/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
const inlineRegex = /^ *{(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\1}/ym;
const inlineRegex = /^ *{(?=((?:[:=](?:"['\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"=':{}\s]*)*))\1}/ym;
const match = inlineRegex.exec(src);
if(match) {
const lastToken = tokens[tokens.length - 1];
if(!lastToken)
if(!lastToken || lastToken.type == 'mustacheInjectBlock')
return false;
lastToken.originalType = 'mustacheInjectBlock';
lastToken.tags = ` ${processStyleTags(match[1])}`;
lastToken.tags = `${processStyleTags(match[1])}`;
return {
type : 'mustacheInjectBlock', // Should match "name" above
raw : match[0], // Text to consume from the source
@@ -204,10 +266,38 @@ const mustacheInjectBlock = {
}
};
const definitionLists = {
name : 'definitionLists',
const superSubScripts = {
name : 'superSubScript',
level : 'inline',
start(src) { return src.match(/\^/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
const superRegex = /^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^/m;
const subRegex = /^\^\^(?!\s)(?=([^\n\^]*[^\s\^]))\1\^\^/m;
let isSuper = false;
let match = subRegex.exec(src);
if(!match){
match = superRegex.exec(src);
if(match)
isSuper = true;
}
if(match?.length) {
return {
type : 'superSubScript', // Should match "name" above
raw : match[0], // Text to consume from the source
tag : isSuper ? 'sup' : 'sub',
tokens : this.lexer.inlineTokens(match[1])
};
}
},
renderer(token) {
return `<${token.tag}>${this.parser.parseInline(token.tokens)}</${token.tag}>`;
}
};
const definitionListsSingleLine = {
name : 'definitionListsSingleLine',
level : 'block',
start(src) { return src.match(/^.*?::.*/m)?.index; }, // Hint to Marked.js to stop and check for a match
start(src) { return src.match(/\n[^\n]*?::[^\n]*/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym;
let match;
@@ -222,7 +312,7 @@ const definitionLists = {
}
if(definitions.length) {
return {
type : 'definitionLists',
type : 'definitionListsSingleLine',
raw : src.slice(0, endIndex),
definitions
};
@@ -236,33 +326,302 @@ const definitionLists = {
}
};
Marked.use({ extensions: [mustacheSpans, mustacheDivs, mustacheInjectInline, definitionLists] });
Marked.use(MarkedExtendedTables());
Marked.use(mustacheInjectBlock);
Marked.use({ smartypants: true });
//Fix local links in the Preview iFrame to link inside the frame
renderer.link = function (href, title, text) {
let self = false;
if(href[0] == '#') {
self = true;
const definitionListsMultiLine = {
name : 'definitionListsMultiLine',
level : 'block',
start(src) { return src.match(/\n[^\n]*\n::/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) {
const regex = /(\n?\n?(?!::)[^\n]+?(?=\n::))|\n::(.(?:.|\n)*?(?=(?:\n::)|(?:\n\n)|$))/y;
let match;
let endIndex = 0;
const definitions = [];
while (match = regex.exec(src)) {
if(match[1]) {
if(this.lexer.blockTokens(match[1].trim())[0]?.type !== 'paragraph') // DT must not be another block-level token besides <p>
break;
definitions.push({
dt : this.lexer.inlineTokens(match[1].trim()),
dds : []
});
}
if(match[2] && definitions.length) {
definitions[definitions.length - 1].dds.push(
this.lexer.inlineTokens(match[2].trim().replace(/\s/g, ' '))
);
}
endIndex = regex.lastIndex;
}
if(definitions.length) {
return {
type : 'definitionListsMultiLine',
raw : src.slice(0, endIndex),
definitions
};
}
},
renderer(token) {
let returnVal = `<dl>`;
token.definitions.forEach((def)=>{
const dds = def.dds.map((s)=>{
return `\n<dd>${this.parser.parseInline(s).trim()}</dd>`;
}).join('');
returnVal += `<dt>${this.parser.parseInline(def.dt)}</dt>${dds}\n`;
});
returnVal = returnVal.trim();
return `${returnVal}</dl>`;
}
href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
if(href === null) {
return text;
}
let out = `<a href="${escape(href)}"`;
if(title) {
out += ` title="${title}"`;
}
if(self) {
out += ' target="_self"';
}
out += `>${text}</a>`;
return out;
};
//v=====--------------------< Variable Handling >-------------------=====v// 242 lines
const replaceVar = function(input, hoist=false, allowUnresolved=false) {
const regex = /([!$]?)\[((?!\s*\])(?:\\.|[^\[\]\\])+)\]/g;
const match = regex.exec(input);
const prefix = match[1];
const label = match[2];
//v=====--------------------< HANDLE MATH >-------------------=====v//
const mathRegex = /[a-z]+\(|[+\-*/^()]/g;
const matches = label.split(mathRegex);
const mathVars = matches.filter((match)=>isNaN(match))?.map((s)=>s.trim()); // Capture any variable names
let replacedLabel = label;
if(prefix[0] == '$' && mathVars?.[0] !== label.trim()) {// If there was mathy stuff not captured, let's do math!
mathVars?.forEach((variable)=>{
const foundVar = lookupVar(variable, globalPageNumber, hoist);
if(foundVar && foundVar.resolved && foundVar.content && !isNaN(foundVar.content)) // Only subsitute math values if fully resolved, not empty strings, and numbers
replacedLabel = replacedLabel.replaceAll(variable, foundVar.content);
});
try {
return mathParser.evaluate(replacedLabel);
} catch (error) {
return undefined; // Return undefined if invalid math result
}
}
//^=====--------------------< HANDLE MATH >-------------------=====^//
const foundVar = lookupVar(label, globalPageNumber, hoist);
if(!foundVar || (!foundVar.resolved && !allowUnresolved))
return undefined; // Return undefined if not found, or parially-resolved vars are not allowed
// url or <url> "title" or 'title' or (title)
const linkRegex = /^([^<\s][^\s]*|<.*?>)(?: ("(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\((?:\\\(|\\\)|[^()])*\)))?$/m;
const linkMatch = linkRegex.exec(foundVar.content);
const href = linkMatch ? linkMatch[1] : null; //TODO: TRIM OFF < > IF PRESENT
const title = linkMatch ? linkMatch[2]?.slice(1, -1) : null;
if(!prefix[0] && href) // Link
return `[${label}](${href}${title ? ` "${title}"` : ''})`;
if(prefix[0] == '!' && href) // Image
return `![${label}](${href} ${title ? ` "${title}"` : ''})`;
if(prefix[0] == '$') // Variable
return foundVar.content;
};
const lookupVar = function(label, index, hoist=false) {
while (index >= 0) {
if(globalVarsList[index]?.[label] !== undefined)
return globalVarsList[index][label];
index--;
}
if(hoist) { //If normal lookup failed, attempt hoisting
index = Object.keys(globalVarsList).length; // Move index to start from last page
while (index >= 0) {
if(globalVarsList[index]?.[label] !== undefined)
return globalVarsList[index][label];
index--;
}
}
return undefined;
};
const processVariableQueue = function() {
let resolvedOne = true;
let finalLoop = false;
while (resolvedOne || finalLoop) { // Loop through queue until no more variable calls can be resolved
resolvedOne = false;
for (const item of varsQueue) {
if(item.type == 'text')
continue;
if(item.type == 'varDefBlock') {
const regex = /[!$]?\[((?!\s*\])(?:\\.|[^\[\]\\])+)\]/g;
let match;
let resolved = true;
let tempContent = item.content;
while (match = regex.exec(item.content)) { // regex to find variable calls
const value = replaceVar(match[0], true);
if(value == undefined)
resolved = false;
else
tempContent = tempContent.replaceAll(match[0], value);
}
if(resolved == true || item.content != tempContent) {
resolvedOne = true;
item.content = tempContent;
}
globalVarsList[globalPageNumber][item.varName] = {
content : item.content,
resolved : resolved
};
if(resolved)
item.type = 'resolved';
}
if(item.type == 'varCallBlock' || item.type == 'varCallInline') {
const value = replaceVar(item.content, true, finalLoop); // final loop will just use the best value so far
if(value == undefined)
continue;
resolvedOne = true;
item.content = value;
item.type = 'text';
}
}
varsQueue = varsQueue.filter((item)=>item.type !== 'resolved'); // Remove any fully-resolved variable definitions
if(finalLoop)
break;
if(!resolvedOne)
finalLoop = true;
}
varsQueue = varsQueue.filter((item)=>item.type !== 'varDefBlock');
};
function MarkedVariables() {
return {
hooks : {
preprocess(src) {
const codeBlockSkip = /^(?: {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+|^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})(?:[^\n]*)(?:\n|$)(?:|(?:[\s\S]*?)(?:\n|$))(?: {0,3}\2[~`]* *(?=\n|$))|`[^`]*?`/;
const blockDefRegex = /^[!$]?\[((?!\s*\])(?:\\.|[^\[\]\\])+)\]:(?!\() *((?:\n? *[^\s].*)+)(?=\n+|$)/; //Matches 3, [4]:5
const blockCallRegex = /^[!$]?\[((?!\s*\])(?:\\.|[^\[\]\\])+)\](?=\n|$)/; //Matches 6, [7]
const inlineDefRegex = /([!$]?\[((?!\s*\])(?:\\.|[^\[\]\\])+)\])\(([^\n]+)\)/; //Matches 8, 9[10](11)
const inlineCallRegex = /[!$]?\[((?!\s*\])(?:\\.|[^\[\]\\])+)\](?!\()/; //Matches 12, [13]
// Combine regexes and wrap in parens like so: (regex1)|(regex2)|(regex3)|(regex4)
const combinedRegex = new RegExp([codeBlockSkip, blockDefRegex, blockCallRegex, inlineDefRegex, inlineCallRegex].map((s)=>`(${s.source})`).join('|'), 'gm');
let lastIndex = 0;
let match;
while ((match = combinedRegex.exec(src)) !== null) {
// Format any matches into tokens and store
if(match.index > lastIndex) { // Any non-variable stuff
varsQueue.push(
{ type : 'text',
varName : null,
content : src.slice(lastIndex, match.index)
});
}
if(match[1]) {
varsQueue.push(
{ type : 'text',
varName : null,
content : match[0]
});
}
if(match[3]) { // Block Definition
const label = match[4] ? match[4].trim().replace(/\s+/g, ' ') : null; // Trim edge spaces and shorten blocks of whitespace to 1 space
const content = match[5] ? match[5].trim().replace(/[ \t]+/g, ' ') : null; // Trim edge spaces and shorten blocks of whitespace to 1 space
varsQueue.push(
{ type : 'varDefBlock',
varName : label,
content : content
});
}
if(match[6]) { // Block Call
const label = match[7] ? match[7].trim().replace(/\s+/g, ' ') : null; // Trim edge spaces and shorten blocks of whitespace to 1 space
varsQueue.push(
{ type : 'varCallBlock',
varName : label,
content : match[0]
});
}
if(match[8]) { // Inline Definition
const label = match[10] ? match[10].trim().replace(/\s+/g, ' ') : null; // Trim edge spaces and shorten blocks of whitespace to 1 space
let content = match[11] ? match[11].trim().replace(/\s+/g, ' ') : null; // Trim edge spaces and shorten blocks of whitespace to 1 space
// In case of nested (), find the correct matching end )
let level = 0;
let i;
for (i = 0; i < content.length; i++) {
if(content[i] === '\\') {
i++;
} else if(content[i] === '(') {
level++;
} else if(content[i] === ')') {
level--;
if(level < 0)
break;
}
}
if(i > -1) {
combinedRegex.lastIndex = combinedRegex.lastIndex - (content.length - i);
content = content.slice(0, i).trim().replace(/\s+/g, ' ');
}
varsQueue.push(
{ type : 'varDefBlock',
varName : label,
content : content
});
varsQueue.push(
{ type : 'varCallInline',
varName : label,
content : match[9]
});
}
if(match[12]) { // Inline Call
const label = match[13] ? match[13].trim().replace(/\s+/g, ' ') : null; // Trim edge spaces and shorten blocks of whitespace to 1 space
varsQueue.push(
{ type : 'varCallInline',
varName : label,
content : match[0]
});
}
lastIndex = combinedRegex.lastIndex;
}
if(lastIndex < src.length) {
varsQueue.push(
{ type : 'text',
varName : null,
content : src.slice(lastIndex)
});
}
processVariableQueue();
const output = varsQueue.map((item)=>item.content).join('');
varsQueue = []; // Must clear varsQueue because custom HTML renderer uses Marked.parse which will preprocess again without clearing the array
return output;
}
}
};
};
//^=====--------------------< Variable Handling >-------------------=====^//
Marked.use(MarkedVariables());
Marked.use({ extensions: [definitionListsMultiLine, definitionListsSingleLine, superSubScripts, mustacheSpans, mustacheDivs, mustacheInjectInline] });
Marked.use(mustacheInjectBlock);
Marked.use({ renderer: renderer, tokenizer: tokenizer, mangle: false });
Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite());
const nonWordAndColonTest = /[^\w:]/g;
const cleanUrl = function (sanitize, base, href) {
if(sanitize) {
@@ -311,12 +670,6 @@ const escape = function (html, encode) {
return html;
};
const sanatizeScriptTags = (content)=>{
return content
.replace(/<script/ig, '&lt;script')
.replace(/<\/script>/ig, '&lt;/script&gt;');
};
const tagTypes = ['div', 'span', 'a'];
const tagRegex = new RegExp(`(${
_.map(tagTypes, (type)=>{
@@ -330,27 +683,43 @@ const voidTags = new Set([
]);
const processStyleTags = (string)=>{
//split tags up. quotes can only occur right after colons.
//split tags up. quotes can only occur right after : or =.
//TODO: can we simplify to just split on commas?
const tags = string.match(/(?:[^, ":]+|:(?:"[^"]*"|))+/g);
const tags = string.match(/(?:[^, ":=]+|[:=](?:"[^"]*"|))+/g);
if(!tags) return '"';
const id = _.remove(tags, (tag)=>tag.startsWith('#')).map((tag)=>tag.slice(1))[0];
const classes = _.remove(tags, (tag)=>(!tag.includes(':')) && (!tag.includes('=')));
const attributes = _.remove(tags, (tag)=>(tag.includes('='))).map((tag)=>tag.replace(/="?([^"]*)"?/g, '="$1"'));
const styles = tags?.length ? tags.map((tag)=>tag.replace(/:"?([^"]*)"?/g, ':$1;').trim()) : [];
const id = _.remove(tags, (tag)=>tag.startsWith('#')).map((tag)=>tag.slice(1))[0];
const classes = _.remove(tags, (tag)=>!tag.includes(':'));
const styles = tags.map((tag)=>tag.replace(/:"?([^"]*)"?/g, ':$1;'));
return `${classes.join(' ')}" ${id ? `id="${id}"` : ''} ${styles.length ? `style="${styles.join(' ')}"` : ''}`;
return `${classes?.length ? ` ${classes.join(' ')}` : ''}"` +
`${id ? ` id="${id}"` : ''}` +
`${styles?.length ? ` style="${styles.join(' ')}"` : ''}` +
`${attributes?.length ? ` ${attributes.join(' ')}` : ''}`;
};
const globalVarsList = {};
let varsQueue = [];
let globalPageNumber = 0;
module.exports = {
marked : Marked,
render : (rawBrewText)=>{
render : (rawBrewText, pageNumber=1)=>{
globalVarsList[pageNumber] = {}; //Reset global links for current page, to ensure values are parsed in order
varsQueue = []; //Could move into MarkedVariables()
globalPageNumber = pageNumber;
rawBrewText = rawBrewText.replace(/^\\column$/gm, `\n<div class='columnSplit'></div>\n`)
.replace(/^(:+)$/gm, (match)=>`${`<div class='blank'></div>`.repeat(match.length)}\n`);
return Marked.parse(
sanatizeScriptTags(rawBrewText),
{ renderer: renderer }
);
const opts = Marked.defaults;
rawBrewText = opts.hooks.preprocess(rawBrewText);
const tokens = Marked.lexer(rawBrewText, opts);
Marked.walkTokens(tokens, opts.walkTokens);
const html = Marked.parser(tokens, opts);
return opts.hooks.postprocess(html);
},
validate : (rawBrewText)=>{

View File

@@ -90,12 +90,6 @@ const escape = function (html, encode) {
return html;
};
const sanatizeScriptTags = (content)=>{
return content
.replace(/<script/ig, '&lt;script')
.replace(/<\/script>/ig, '&lt;/script&gt;');
};
const tagTypes = ['div', 'span', 'a'];
const tagRegex = new RegExp(`(${
_.map(tagTypes, (type)=>{
@@ -113,7 +107,7 @@ module.exports = {
marked : Markdown,
render : (rawBrewText)=>{
return Markdown(
sanatizeScriptTags(rawBrewText),
rawBrewText,
{ renderer: renderer }
);
},

View File

@@ -1,5 +1,6 @@
require('./nav.less');
require('client/homebrew/navbar/navbar.less');
const React = require('react');
const { useState, useRef, useEffect } = React;
const createClass = require('create-react-class');
const _ = require('lodash');
const cx = require('classnames');
@@ -29,7 +30,7 @@ const Nav = {
section : createClass({
displayName : 'Nav.section',
render : function(){
return <div className='navSection'>
return <div className={`navSection ${this.props.className ?? ''}`}>
{this.props.children}
</div>;
}
@@ -71,64 +72,49 @@ const Nav = {
}
}),
dropdown : createClass({
displayName : 'Nav.dropdown',
getDefaultProps : function() {
return {
trigger : 'hover'
};
},
getInitialState : function() {
return {
showDropdown : false
};
},
componentDidMount : function() {
if(this.props.trigger == 'click')
document.addEventListener('click', this.handleClickOutside);
},
componentWillUnmount : function() {
if(this.props.trigger == 'click')
document.removeEventListener('click', this.handleClickOutside);
},
handleClickOutside : function(e){
// Close dropdown when clicked outside
if(this.refs.dropdown && !this.refs.dropdown.contains(e.target)) {
this.handleDropdown(false);
}
},
handleDropdown : function(show){
this.setState({
showDropdown : show
});
},
renderDropdown : function(dropdownChildren){
if(!this.state.showDropdown) return null;
dropdown : function dropdown(props) {
props = Object.assign({}, props, {
trigger : 'hover click'
});
return (
<div className='navDropdown'>
{dropdownChildren}
</div>
);
},
render : function () {
const dropdownChildren = React.Children.map(this.props.children, (child, i)=>{
// Ignore the first child
if(i < 1) return;
return child;
});
return (
<div className={`navDropdownContainer ${this.props.className}`}
ref='dropdown'
onMouseEnter={this.props.trigger == 'hover' ? ()=>{this.handleDropdown(true);} : undefined}
onClick= {this.props.trigger == 'click' ? ()=>{this.handleDropdown(true);} : undefined}
onMouseLeave={this.props.trigger == 'hover' ? ()=>{this.handleDropdown(false);} : undefined}>
{this.props.children[0] || this.props.children /*children is not an array when only one child*/}
{this.renderDropdown(dropdownChildren)}
</div>
);
const myRef = useRef(null);
const [showDropdown, setShowDropdown] = useState(false);
useEffect(()=>{
document.addEventListener('click', handleClickOutside);
return ()=>{
document.removeEventListener('click', handleClickOutside);
};
}, []);
function handleClickOutside(e) {
// Close dropdown when clicked outside
if(!myRef.current?.contains(e.target)) {
handleDropdown(false);
}
}
})
function handleDropdown(show) {
setShowDropdown(show ?? !showDropdown);
}
const dropdownChildren = React.Children.map(props.children, (child, i)=>{
if(i < 1) return;
return child;
});
return (
<div className={`navDropdownContainer ${props.className ?? ''}`}
ref={myRef}
onMouseEnter = { props.trigger.includes('hover') ? ()=>handleDropdown(true) : undefined }
onMouseLeave = { props.trigger.includes('hover') ? ()=>handleDropdown(false) : undefined }
onClick = { props.trigger.includes('click') ? ()=>handleDropdown(true) : undefined }
>
{props.children[0] || props.children /*children is not an array when only one child*/}
{showDropdown && <div className='navDropdown'>{dropdownChildren}</div>}
</div>
);
}
};

View File

@@ -1,94 +0,0 @@
@import '../styles/colors';
@keyframes glideDropDown {
0% {transform : translate(0px, -100%);
opacity : 0;
background-color: #333;}
100% {transform : translate(0px, 0px);
opacity : 1;
background-color: #333;}
}
nav{
background-color : #333;
.navContent{
position : relative;
display : flex;
justify-content : space-between;
}
.navSection{
display : flex;
align-items : center;
}
.navLogo{
display : block;
margin-top : 0px;
margin-right : 8px;
margin-left : 8px;
color : white;
text-decoration : none;
&:hover{
.name{ color : @orange; }
svg{ fill : @orange }
}
svg{
height : 13px;
margin-right : 0.2em;
cursor : pointer;
fill : white;
}
span.name{
font-family : 'CodeLight';
font-size : 15px;
span.crit{
font-family : 'CodeBold';
}
small{
font-family : 'Open Sans';
font-size : 0.3em;
font-weight : 800;
text-transform : uppercase;
}
}
}
.navItem{
#backgroundColorsHover;
.animate(background-color);
padding : 8px 12px;
cursor : pointer;
background-color : #333;
font-size : 10px;
font-weight : 800;
color : white;
text-decoration : none;
text-transform : uppercase;
line-height : 13px;
i{
margin-left : 5px;
font-size : 13px;
float : right;
}
}
.navSection:last-child .navItem{
border-left : 1px solid #666;
}
.navDropdownContainer{
position: relative;
.navDropdown {
position : absolute;
top : 28px;
left : 0px;
z-index : 10000;
width : 100%;
.navItem{
animation-name: glideDropDown;
animation-duration: 0.4s;
position : relative;
display : block;
width : 100%;
vertical-align : middle;
padding : 8px 5px;
border : 1px solid #888;
border-bottom : 0;
}
}
}
}

View File

@@ -61,7 +61,8 @@ const SplitPane = createClass({
return result;
},
handleUp : function(){
handleUp : function(e){
e.preventDefault();
if(this.state.isDragging){
this.props.onDragFinish(this.state.currentDividerPos);
window.localStorage.setItem(this.props.storageKey, this.state.currentDividerPos);
@@ -78,6 +79,7 @@ const SplitPane = createClass({
handleMove : function(e){
if(!this.state.isDragging) return;
e.preventDefault();
const newSize = this.limitPosition(e.pageX);
this.setState({
currentDividerPos : newSize,
@@ -122,7 +124,7 @@ const SplitPane = createClass({
renderDivider : function(){
return <>
{this.renderMoveArrows()}
<div className='divider' onMouseDown={this.handleDown} >
<div className='divider' onPointerDown={this.handleDown} >
<div className='dots'>
<i className='fas fa-circle' />
<i className='fas fa-circle' />
@@ -133,7 +135,7 @@ const SplitPane = createClass({
},
render : function(){
return <div className='splitPane' onMouseMove={this.handleMove} onMouseUp={this.handleUp}>
return <div className='splitPane' onPointerMove={this.handleMove} onPointerUp={this.handleUp}>
<Pane
ref='pane1'
width={this.state.currentDividerPos}

View File

@@ -11,6 +11,7 @@
flex : 1;
}
.divider{
touch-action : none;
display : table;
height : 100%;
width : 15px;
@@ -22,7 +23,7 @@
vertical-align : middle;
text-align : center;
i{
display : block;
display : block !important;
margin : 10px 0px;
font-size : 6px;
color : #666;

View File

@@ -0,0 +1,58 @@
const stylelint = require('stylelint');
const { isNumber } = require('stylelint/lib/utils/validateTypes');
const { report, ruleMessages, validateOptions } = stylelint.utils;
const ruleName = 'naturalcrit/declaration-block-multi-line-min-declarations';
const messages = ruleMessages(ruleName, {
expected : (decls)=>`Rule with ${decls} declaration${decls == 1 ? '' : 's'} should be single line`,
});
module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOption, secondaryOptionObject, context) {
return function lint(postcssRoot, postcssResult) {
const validOptions = validateOptions(
postcssResult,
ruleName,
{
actual : primaryOption,
possible : [isNumber],
}
);
if(!validOptions) { //If the options are invalid, don't lint
return;
}
const isAutoFixing = Boolean(context.fix);
postcssRoot.walkRules((rule)=>{ //Iterate CSS rules
//Apply rule only if all children are decls (no further nested rules)
if(rule.nodes.length > primaryOption || !rule.nodes.every((node)=>node.type === 'decl')) {
return;
}
//Ignore if already one line
if(!rule.nodes.some((node)=>node.raws.before.includes('\n')) && !rule.raws.after.includes('\n'))
return;
if(isAutoFixing) { //We are in “fix” mode
rule.each((decl)=>{
decl.raws.before = ' ';
});
rule.raws.after = ' ';
} else {
report({
ruleName,
result : postcssResult,
message : messages.expected(rule.nodes.length), // Build the reported message
node : rule, // Specify the reported node
word : rule.selector, // Which exact word caused the error? This positions the error properly
});
}
});
};
});
module.exports.ruleName = ruleName;
module.exports.messages = messages;

Some files were not shown because too many files have changed in this diff Show More