1600 Commits

Author SHA1 Message Date
Philip Molares 2f34e0d778 refactor(frontend): remove revision revert button
We did not implement this functionality yet and won't for some time so in order for HedgeDoc 2 to become release ready, this button will be removed.

Fixes #6478

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-14 01:10:56 +02:00
Philip Molares e852bef113 fix(frontend): wrong notification key
The notification key 'editor.modal.permissions.error' was meant to be used with the ErrorToI18nKeyMapper as a base
which gets different suffixes added depending on the error code and not as a normal error code by itself.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-13 23:59:37 +02:00
Erik Michelson 82467ed76a feat(frontend-api): show error message to user on rate-limit exceeded
Fixes #6472

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-05-13 23:06:02 +02:00
Erik Michelson 2d10b7cfff feat(editor): show notification on permission revoke + redirect
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-05-13 22:09:10 +02:00
Philip Molares fb87cee9c2 fix(frontend): redirect user to DEFAULT_FALLBACK_URL when permissions update fails after PERMISSIONS_UPDATED message
Fixes #6475

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-13 22:09:10 +02:00
Philip Molares f9077d7ff5 refactor(frontend): export DEFAULT_FALLBACK_URL
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-13 22:09:10 +02:00
Erik Michelson 89e441597d refactor(commons): frontmatter validator uses zod and allows custom options
The frontmatter validator was still the one left place that used Joi instead
of the now widely used zod in HedgeDoc. Since zod can do validation, coercion
and providing types based on the schema, the code could be drastically reduced
compared to the old frontmatter validator.

At the same time, the validator is now less strict. Custom fields are still
allowed for people that want to add their own frontmatter tags which are
unrelated to HedgeDoc. Furthermore, we now allow the complete set of
RevealOptions for the slideOptions key instead of only a few handpicked
ones.

Fixes #5946

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-13 21:05:08 +02:00
Philip Molares 016ec6fd90 fix(frontend): only show register infos when links are configured
Docker / build-and-push (backend) (push) Has been cancelled
Docker / build-and-push (frontend) (push) Has been cancelled
E2E Tests / backend-sqlite (push) Has been cancelled
E2E Tests / backend-mariadb (push) Has been cancelled
E2E Tests / backend-postgres (push) Has been cancelled
Lint and check format / Lint files and check formatting (push) Has been cancelled
REUSE Compliance Check / reuse (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Static Analysis / Njsscan code scanning (push) Has been cancelled
Static Analysis / CodeQL analysis (javascript) (push) Has been cancelled
Run tests & build / Test and build with NodeJS 24 (push) Has been cancelled
Fixes #6469

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-09 13:36:09 +02:00
Erik Michelson 033e627bab fix(frontend): updates to test files after linting changes
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-05-09 13:05:59 +02:00
Erik Michelson 8988e3868f fix(frontend): accessibility issues and other linting problems
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-05-09 13:05:59 +02:00
Erik Michelson 50d0585ccb fix(frontend): buggy imports and type definitions due to TS-linting
These problems were detected by type-aware linting

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-05-09 13:05:59 +02:00
Erik Michelson faaea84a73 chore(lint): enable TypeScript linting in frontend
oxlint now includes support for TypeScript-aware linting by using
the oxlint-tsgolint package. While this increases the chance of
finding bugs early, it requires a few changes to the TypeScript
configuration, especially the explicit declaration of CSS imports
and changing the moduleResolution to bundler mode.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-05-09 13:05:59 +02:00
Philip Molares 45f526bf8b fix(editor): don't show error if alias is empty
Fixes #6480

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-03 20:24:04 +02:00
Philip Molares 1d3cac4d84 fix(editor): add explanation to publicly visible switch
Fixes #6479

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-05-03 20:17:16 +02:00
Philip Molares 1eb9ee2385 fix(readOnly): untangle edit button from toc button
Docker / build-and-push (backend) (push) Has been cancelled
Docker / build-and-push (frontend) (push) Has been cancelled
E2E Tests / backend-sqlite (push) Has been cancelled
E2E Tests / backend-mariadb (push) Has been cancelled
E2E Tests / backend-postgres (push) Has been cancelled
Lint and check format / Lint files and check formatting (push) Has been cancelled
REUSE Compliance Check / reuse (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Static Analysis / Njsscan code scanning (push) Has been cancelled
Static Analysis / CodeQL analysis (javascript) (push) Has been cancelled
Run tests & build / Test and build with NodeJS 24 (push) Has been cancelled
Fixes #6485

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-30 01:19:37 +02:00
Philip Molares 473fac6885 fix(readOnly): make image lightbox usable
Fixes #6486

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-30 01:00:12 +02:00
Philip Molares 1d00334019 fix(translation): change noteDeleted error message
Mention the explore page instead of the history page

Fixes #6483

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-30 00:11:14 +02:00
Philip Molares 22288891f7 chore: change history to explore page
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-30 00:11:14 +02:00
Philip Molares 4db2f354de fix(editor): remove changing color from pin sidebar entry
Instead of a changing color, we now use a chaning icon.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-29 22:50:11 +02:00
Philip Molares 1a56e3ad15 fix(editor): use setNotePinStatus instead of setPinnedState
This method updates the backend and changes the redux state in one call, instead of just calling the backend.
With this the state get's updated, and the user see that they pinned a note immediately.

Fixes #6484

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-29 22:50:11 +02:00
Philip Molares 6b226a0f7a fix(explore): make navigation and search sticky
The navigation and the search box will now always be at the top of the page when scrolling

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-29 22:21:00 +02:00
Philip Molares 98db62f196 fix(explore): rework metadata box allignment
The box with username, and last edit is now always 12 rem wide and looks more even that way

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-29 22:21:00 +02:00
Philip Molares 8729fb207b fix(explore): add extra margin to endMessage of infinity scroll
This way the message doesn't seem so squeezed in

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-29 22:21:00 +02:00
Philip Molares d60a67ee33 fix(explore): always keep the notes list as high as two entries
This prevents problems with the dropdown menu creating a scroll bar

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-29 22:21:00 +02:00
Philip Molares c81dd893e7 fix(login): redirect correctly after login / registration
Docker / build-and-push (backend) (push) Has been cancelled
Docker / build-and-push (frontend) (push) Has been cancelled
E2E Tests / backend-sqlite (push) Has been cancelled
E2E Tests / backend-mariadb (push) Has been cancelled
E2E Tests / backend-postgres (push) Has been cancelled
Lint and check format / Lint files and check formatting (push) Has been cancelled
REUSE Compliance Check / reuse (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Static Analysis / Njsscan code scanning (push) Has been cancelled
Static Analysis / CodeQL analysis (javascript) (push) Has been cancelled
Run tests & build / Test and build with NodeJS 24 (push) Has been cancelled
We had two different approcaches to the redirect after the login / registration.
Because of this there were race conditions, and we sometimes got stuck on the redirect page.

Fixes #6467

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-04-23 23:54:56 +02:00
Erik Michelson 5b026c052a fix(csrf): refresh token after user has deleted their account
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-04-09 21:47:30 +02:00
Nicolai Søborg 3c18898e47 Image: use relative url
Embedding the full URL into the notes is a bit anoying if you want to
change hostname (or e.g. hosting from a local IP). Using the relative
URL should work in all(?) cases afaik.

I would also like to remove that `additionalUrlText` argument, which is
a bit confusing (not sure it works as intended?). It is only used in
file `use-on-image-upload-from-renderer.ts` - and not sure it even is
set to anything

Signed-off-by: Nicolai Søborg <git@xn--sb-lka.org>
2026-04-09 21:29:57 +02:00
Erik Michelson 84852c22be feat(editor): add button to open current note in read-only/slides mode
Docker / build-and-push (backend) (push) Has been cancelled
Docker / build-and-push (frontend) (push) Has been cancelled
E2E Tests / backend-sqlite (push) Has been cancelled
E2E Tests / backend-mariadb (push) Has been cancelled
E2E Tests / backend-postgres (push) Has been cancelled
Lint and check format / Lint files and check formatting (push) Has been cancelled
REUSE Compliance Check / reuse (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Static Analysis / Njsscan code scanning (push) Has been cancelled
Static Analysis / CodeQL analysis (javascript) (push) Has been cancelled
Run tests & build / Test and build with NodeJS 24 (push) Has been cancelled
Co-authored-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-03-25 22:47:22 +01:00
Erik Michelson 0720534d7e fix(logout): refresh CSRF token after logout
Since the CSRF token is stored in the session, which is invalidated
on logout, we need to fetch a new token after logout.
Otherwise the client would require a full page reload to obtain a
new token.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-03-25 21:56:55 +01:00
Philip Molares e16d5d5349 fix(frontend): remove lowercaseUsername from UsernamePasswordLogin component
We don't use this functionality anymore

Co-authored-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-03-25 20:15:11 +01:00
renovate[bot] c52b83ae58 fix(deps): update dependency dompurify to v3.3.2 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 12:55:24 +01:00
renovate[bot] 8d606b3b4b fix(deps): update dependency @dicebear/core to v9.4.1 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-24 12:54:04 +01:00
Erik Michelson 29f60f1d9b fix(aliases): verify alias regex in frontend and backend
Co-authored-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-03-24 12:49:12 +01:00
Philip Molares 2a2bd92265 feat(alias): allow mixed case aliases
Aliases should be saved as is, but in the search we should use like

Co-authored-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2026-03-24 12:49:12 +01:00
renovate[bot] d99c311f3b fix(deps): update dependency yjs to v13.6.29
Docker / build-and-push (backend) (push) Has been cancelled
Docker / build-and-push (frontend) (push) Has been cancelled
Deploy HD2 docs to Netlify / Deploys to netlify (push) Has been cancelled
E2E Tests / backend-sqlite (push) Has been cancelled
E2E Tests / backend-mariadb (push) Has been cancelled
E2E Tests / backend-postgres (push) Has been cancelled
Lint and check format / Lint files and check formatting (push) Has been cancelled
REUSE Compliance Check / reuse (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Static Analysis / Njsscan code scanning (push) Has been cancelled
Static Analysis / CodeQL analysis (javascript) (push) Has been cancelled
Run tests & build / Test and build with NodeJS 24 (push) Has been cancelled
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 12:36:14 +01:00
renovate[bot] a1ced25475 fix(deps): update dependency mermaid to v11.12.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 12:35:15 +01:00
renovate[bot] 85498bacf8 chore(deps): update testing-library
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 12:33:02 +01:00
renovate[bot] b9498adca1 fix(deps): update dependency react-infinite-scroll-component to v6.1.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 12:20:19 +01:00
renovate[bot] 1f6eeecaaa fix(deps): update dependency @dicebear/identicon to v9.4.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 01:33:51 +01:00
renovate[bot] 536d782ff2 fix(deps): update dependency i18next-browser-languagedetector to v8.2.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 01:33:38 +01:00
renovate[bot] 687d3b9bf4 fix(deps): update dependency @dicebear/core to v9.4.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 01:27:22 +01:00
renovate[bot] e5833cf04b fix(deps): update dependency ws to v8.19.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 00:43:22 +01:00
renovate[bot] e2d1e3e28c fix(deps): update dependency sass to v1.97.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 00:29:37 +01:00
renovate[bot] e6d432ce6b fix(deps): update dependency abcjs to v6.6.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 00:23:03 +01:00
renovate[bot] 0db43b10c9 fix(deps): update dependency emoji-picker-element to v1.29.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 00:20:46 +01:00
renovate[bot] 350d4bffc1 chore(deps): update node.js to v24.14.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 00:18:00 +01:00
renovate[bot] 35056110ef fix(deps): update dependency @orama/orama to v3.1.18
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 00:00:51 +01:00
renovate[bot] 3aad984644 fix(deps): update dependency katex to v0.16.33
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-03 23:58:29 +01:00
Erik Michelson 34e4172cb9 feat(editor): scroll to heading/element linked in URL fragment
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-02-18 23:19:32 +01:00
Erik Michelson f57e12b85f feat(editor): add own undo/redo stack per user
This uses the yjs undo-manager and some keybindings for
CodeMirror to call that manager. The undo-manager ensures
to only undo or redo changes of the current user.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2026-02-18 19:37:08 +01:00