Compare commits

...

23 Commits

Author SHA1 Message Date
Elian Doran
25563c6687 chore(release): prepare for v0.99.5 2025-11-11 22:16:13 +02:00
Elian Doran
48608adbd3 Merge branch 'hotfix' of https://github.com/TriliumNext/Trilium into hotfix 2025-11-11 15:33:00 +02:00
Elian Doran
362ecba98d fix(popup_editor): drag indicator not visible (closes #7686) 2025-11-11 15:32:59 +02:00
Elian Doran
a13892da66 refactor(popup_editor): different handling for z-index 2025-11-11 15:32:18 +02:00
Elian Doran
e8dc19a1a6 chore(forge): display logs when building for flatpak 2025-11-11 13:49:00 +02:00
Elian Doran
cc326547d1 Merge branch 'hotfix' of github.com:TriliumNext/Trilium into hotfix 2025-11-11 13:41:22 +02:00
Elian Doran
a45b147462 fix(flatpak): global shortcuts not working (closes #7563) 2025-11-11 13:41:18 +02:00
Elian Doran
4e73f20165 fix(flatpak): system tray missing 2025-11-11 13:37:35 +02:00
Elian Doran
80c77eeb18 fix(ribbon): "Open attribute list" shortcut not focusing (closes #7463) 2025-11-11 12:20:16 +02:00
Elian Doran
c30282fbd0 Merge branch 'hotfix' of https://github.com/TriliumNext/Trilium into hotfix 2025-11-11 11:24:47 +02:00
Elian Doran
7b8f1ed6ec fix(collections/calendar): unable to drag to/from all-day (closes #7685) 2025-11-11 11:24:45 +02:00
Elian Doran
118e11c3fd edited notes: better sql like statement (#7681) 2025-11-10 21:16:29 +02:00
Elian Doran
b54765113e fix(ci): wrong dir for arm64 2025-11-10 19:10:55 +02:00
Elian Doran
ed08893996 chore(ci): disable fail-fast for matrix 2025-11-10 19:05:41 +02:00
Elian Doran
20286d53c8 feat(ci): test server on ARM as well 2025-11-10 18:56:04 +02:00
Elian Doran
9c1a34fe7c fix(ci): proper port 2025-11-10 18:30:03 +02:00
Elian Doran
e70c6b69b8 fix(ci): set proper environment variables for playwright 2025-11-10 18:20:35 +02:00
Elian Doran
9b69b0ad0d fix(server): use right packaged version 2025-11-10 17:51:04 +02:00
Elian Doran
3776c40b8d chore(ci): add playwright testing to the server 2025-11-10 17:25:39 +02:00
Elian Doran
c7369bc9b3 fix(print): copy to clipboard button visible 2025-11-10 14:26:24 +02:00
Adorian Doran
b741662fde style/empty note: fix alignment 2025-11-10 14:17:49 +02:00
Adorian Doran
624610b17c close #7668 2025-11-10 14:17:44 +02:00
Adorian Doran
de004bd8ba fix #7667 2025-11-10 14:17:37 +02:00
22 changed files with 197 additions and 88 deletions

View File

@@ -4,6 +4,7 @@ on:
push:
branches:
- main
- hotfix
paths-ignore:
- "apps/website/**"
pull_request:
@@ -13,8 +14,24 @@ permissions:
contents: read
jobs:
main:
runs-on: ubuntu-latest
e2e:
strategy:
fail-fast: false
matrix:
include:
- name: linux-x64
os: ubuntu-22.04
arch: x64
- name: linux-arm64
os: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.os }}
name: E2E tests on ${{ matrix.name }}
env:
TRILIUM_DOCKER: 1
TRILIUM_PORT: 8082
TRILIUM_DATA_DIR: "${{ github.workspace }}/apps/server/spec/db"
TRILIUM_INTEGRATION_TEST: memory
steps:
- uses: actions/checkout@v5
with:
@@ -29,9 +46,34 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile
- run: pnpm exec playwright install --with-deps
- run: pnpm --filter server-e2e e2e
- name: Install Playwright browsers
run: pnpm exec playwright install --with-deps
- name: Build the server
uses: ./.github/actions/build-server
with:
os: linux
arch: ${{ matrix.arch }}
- name: Unpack and start the server
run: |
version=$(node --eval "console.log(require('./package.json').version)")
file=$(find ./upload -name '*.tar.xz' -print -quit)
name=$(basename "$file" .tar.xz)
mkdir -p ./server-dist
tar -xvf "$file" -C ./server-dist
server_dir="./server-dist/TriliumNotes-Server-$version-linux-${{ matrix.arch }}"
if [ ! -d "$server_dir" ]; then
echo Missing dir.
exit 1
fi
cd "$server_dir"
"./trilium.sh" &
sleep 10
- name: Server end-to-end tests
run: pnpm --filter server-e2e e2e
- name: Upload test report
if: failure()
@@ -39,3 +81,7 @@ jobs:
with:
name: e2e report
path: apps/server-e2e/test-output
- name: Kill the server
if: always()
run: pkill -f trilium || true

View File

@@ -1,6 +1,6 @@
{
"name": "@triliumnext/client",
"version": "0.99.4",
"version": "0.99.5",
"description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)",
"private": true,
"license": "AGPL-3.0-only",

View File

@@ -24,7 +24,9 @@ export async function formatCodeBlocks($container: JQuery<HTMLElement>) {
continue;
}
applyCopyToClipboardButton($(codeBlock));
if (glob.device !== "print") {
applyCopyToClipboardButton($(codeBlock));
}
if (syntaxHighlightingEnabled) {
applySingleBlockSyntaxHighlight($(codeBlock), normalizedMimeType);

View File

@@ -2045,7 +2045,7 @@ body.zen .title-row .icon-action,
body.zen .promoted-attributes-widget,
body.zen .floating-buttons-children > *:not(.bx-edit-alt),
body.zen .action-button,
body.zen .note-list-widget:not(.full-height) {
body.zen .note-split:not(.type-book) .note-list-widget {
display: none !important;
}

View File

@@ -498,7 +498,7 @@ li.dropdown-item a.dropdown-item-button:focus-visible {
transition: background-color 200ms ease-out;
}
:root .note-list .note-book-card:active {
:root .note-list.grid-view .note-book-card:active {
transform: scale(.98);
}

View File

@@ -123,8 +123,12 @@
*/
/* The container */
div.note-detail-empty {
max-width: 70%;
.note-split.empty-note {
--max-content-width: 70%;
}
.note-split.empty-note div.note-detail {
margin: 50px auto;
}

View File

@@ -58,8 +58,6 @@ export async function changeEvent(note: FNote, { startDate, endDate, startTime,
startAttribute = note.getAttributes("label").filter(attr => attr.name == "calendar:startTime").shift()?.value||"startTime";
endAttribute = note.getAttributes("label").filter(attr => attr.name == "calendar:endTime").shift()?.value||"endTime";
if (startTime && endTime) {
setAttribute(note, "label", startAttribute, startTime);
setAttribute(note, "label", endAttribute, endTime);
}
setAttribute(note, "label", startAttribute, startTime);
setAttribute(note, "label", endAttribute, endTime);
}

View File

@@ -8,6 +8,11 @@ import TypeWidget from "../type_widgets/type_widget.js";
const TPL = /*html*/`\
<div class="popup-editor-dialog modal fade mx-auto" tabindex="-1" role="dialog">
<style>
/** Reduce the z-index of modals so that ckeditor popups are properly shown on top of it. */
body.popup-editor-open > .modal-backdrop { z-index: 998; }
body.popup-editor-open .popup-editor-dialog { z-index: 999; }
body.popup-editor-open .ck-clipboard-drop-target-line { z-index: 1000; }
body.desktop .modal.popup-editor-dialog .modal-dialog {
max-width: 75vw;
}
@@ -137,11 +142,6 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
}
$dialog.on("shown.bs.modal", async () => {
// Reduce the z-index of modals so that ckeditor popups are properly shown on top of it.
// The backdrop instance is not shared so it's OK to make a one-off modification.
$("body > .modal-backdrop").css("z-index", "998");
$dialog.css("z-index", "999");
await this.handleEventInChildren("activeContextChanged", { noteContext: this.noteContext });
this.setVisibility(true);
await this.handleEventInChildren("focusOnDetail", { ntxId: this.noteContext.ntxId });
@@ -162,9 +162,12 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
if (visible) {
$bodyItems.fadeIn();
this.$modalHeader.children().show();
document.body.classList.add("popup-editor-open");
} else {
$bodyItems.hide();
this.$modalHeader.children().hide();
document.body.classList.remove("popup-editor-open");
}
}

View File

@@ -52,7 +52,7 @@ export default class NoteWrapperWidget extends FlexContainer<BasicWidget> {
const note = this.noteContext?.note;
if (!note) {
this.$widget.addClass("bgfx");
this.$widget.addClass("bgfx empty-note");
return;
}

View File

@@ -27,15 +27,16 @@ interface CKEditorOpts {
onClick?: (e: MouseEvent, pos?: ModelPosition | null) => void;
onKeyDown?: (e: KeyboardEvent) => void;
onBlur?: () => void;
onInitialized?: (editorInstance: CKTextEditor) => void;
}
export default function CKEditor({ apiRef, currentValue, editor, config, disableNewlines, disableSpellcheck, onChange, onClick, ...restProps }: CKEditorOpts) {
export default function CKEditor({ apiRef, currentValue, editor, config, disableNewlines, disableSpellcheck, onChange, onClick, onInitialized, ...restProps }: CKEditorOpts) {
const editorContainerRef = useRef<HTMLDivElement>(null);
const textEditorRef = useRef<CKTextEditor>(null);
useImperativeHandle(apiRef, () => {
return {
focus() {
editorContainerRef.current?.focus();
textEditorRef.current?.editing.view.focus();
textEditorRef.current?.model.change((writer) => {
const documentRoot = textEditorRef.current?.editing.model.document.getRoot();
if (documentRoot) {
@@ -83,6 +84,8 @@ export default function CKEditor({ apiRef, currentValue, editor, config, disable
if (currentValue) {
textEditor.setData(currentValue);
}
onInitialized?.(textEditor);
});
}, []);

View File

@@ -238,11 +238,6 @@ export default function AttributeEditor({ api, note, componentId, notePath, ntxI
}
});
// Focus on show.
useEffect(() => {
setTimeout(() => editorRef.current?.focus(), 0);
}, []);
// Interaction with CKEditor.
useLegacyImperativeHandlers(useMemo(() => ({
loadReferenceLinkTitle: async ($el: JQuery<HTMLElement>, href: string) => {
@@ -363,6 +358,7 @@ export default function AttributeEditor({ api, note, componentId, notePath, ntxI
}}
onKeyDown={() => attributeDetailWidget.hide()}
onBlur={() => save()}
onInitialized={() => editorRef.current?.focus()}
disableNewlines disableSpellcheck
/>

View File

@@ -108,6 +108,8 @@ const config: ForgeConfig = {
"--share=network",
// System notifications with libnotify
"--talk-name=org.freedesktop.Notifications",
// System tray
"--talk-name=org.kde.StatusNotifierWatcher"
],
modules: [
{

View File

@@ -1,6 +1,6 @@
{
"name": "@triliumnext/desktop",
"version": "0.99.4",
"version": "0.99.5",
"description": "Build your personal knowledge base with Trilium Notes",
"private": true,
"main": "src/main.ts",
@@ -16,7 +16,7 @@
"build": "tsx scripts/build.ts",
"start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 ELECTRON_IS_DEV=0 electron dist",
"electron-forge:make": "pnpm build && electron-forge make dist",
"electron-forge:make-flatpak": "pnpm build && electron-forge make dist --targets=@electron-forge/maker-flatpak",
"electron-forge:make-flatpak": "pnpm build && DEBUG=* electron-forge make dist --targets=@electron-forge/maker-flatpak",
"electron-forge:package": "pnpm build && electron-forge package dist",
"electron-forge:start": "pnpm build && electron-forge start dist",
"e2e": "pnpm build && cross-env TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=8082 TRILIUM_DATA_DIR=data-e2e ELECTRON_IS_DEV=0 playwright test"

View File

@@ -39,11 +39,16 @@ async function main() {
app.commandLine.appendSwitch("disable-smooth-scrolling");
}
// Electron 36 crashes with "Using GTK 2/3 and GTK 4 in the same process is not supported" on some distributions.
// See https://github.com/electron/electron/issues/46538 for more info.
if (process.platform === "linux") {
app.setName(PRODUCT_NAME);
// Electron 36 crashes with "Using GTK 2/3 and GTK 4 in the same process is not supported" on some distributions.
// See https://github.com/electron/electron/issues/46538 for more info.
app.commandLine.appendSwitch("gtk-version", "3");
// Enable global shortcuts in Flatpak
// the app runs in a Wayland session.
app.commandLine.appendSwitch("enable-features", "GlobalShortcutsPortal");
}
// Quit when all windows are closed, except on macOS. There, it's common

View File

@@ -1,6 +1,6 @@
{
"name": "@triliumnext/server",
"version": "0.99.4",
"version": "0.99.5",
"description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.",
"private": true,
"main": "./src/main.ts",

View File

@@ -20,10 +20,10 @@ fi
# Debug output
echo "Selected Arch: $ARCH"
# Set Node.js version and architecture-specific filename
NODE_VERSION=22.16.0
script_dir=$(realpath $(dirname $0))
# Set Node.js version and architecture-specific filename
NODE_VERSION=$(cat "../../.nvmrc")
BUILD_DIR="$script_dir/../dist"
DIST_DIR="$script_dir/../out"

View File

@@ -159,7 +159,7 @@ function getEditedNotesOnDate(req: Request) {
SELECT noteId FROM notes
WHERE
(notes.dateCreated LIKE :date OR notes.dateModified LIKE :date)
AND (noteId NOT LIKE '_%')
AND (notes.noteId NOT LIKE '\\_%' ESCAPE '\\')
UNION ALL
SELECT noteId FROM revisions
WHERE revisions.dateCreated LIKE :date

View File

@@ -1,6 +1,6 @@
{
"formatVersion": 2,
"appVersion": "0.99.3",
"appVersion": "0.99.4",
"files": [
{
"isClone": false,
@@ -61,6 +61,32 @@
"attachments": [],
"dirFileName": "Release Notes",
"children": [
{
"isClone": false,
"noteId": "7HKMTjmopLcM",
"notePath": [
"hD3V4hiu2VW4",
"7HKMTjmopLcM"
],
"title": "v0.99.5",
"notePosition": 10,
"prefix": null,
"isExpanded": false,
"type": "text",
"mime": "text/html",
"attributes": [
{
"type": "relation",
"name": "template",
"value": "wyurrlcDl416",
"isInheritable": false,
"position": 60
}
],
"format": "markdown",
"dataFileName": "v0.99.5.md",
"attachments": []
},
{
"isClone": false,
"noteId": "RMBaNYPsRpIr",
@@ -69,7 +95,7 @@
"RMBaNYPsRpIr"
],
"title": "v0.99.4",
"notePosition": 10,
"notePosition": 20,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -95,7 +121,7 @@
"yuroLztFfpu5"
],
"title": "v0.99.3",
"notePosition": 20,
"notePosition": 30,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -121,7 +147,7 @@
"z207sehwMJ6C"
],
"title": "v0.99.2",
"notePosition": 30,
"notePosition": 40,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -147,7 +173,7 @@
"WGQsXq2jNyTi"
],
"title": "v0.99.1",
"notePosition": 40,
"notePosition": 50,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -173,7 +199,7 @@
"cyw2Yue9vXf3"
],
"title": "v0.99.0",
"notePosition": 50,
"notePosition": 60,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -199,7 +225,7 @@
"QOJwjruOUr4k"
],
"title": "v0.98.1",
"notePosition": 60,
"notePosition": 70,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -225,7 +251,7 @@
"PLUoryywi0BC"
],
"title": "v0.98.0",
"notePosition": 70,
"notePosition": 80,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -251,7 +277,7 @@
"lvOuiWsLDv8F"
],
"title": "v0.97.2",
"notePosition": 80,
"notePosition": 90,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -277,7 +303,7 @@
"OtFZ6Nd9vM3n"
],
"title": "v0.97.1",
"notePosition": 90,
"notePosition": 100,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -303,7 +329,7 @@
"SJZ5PwfzHSQ1"
],
"title": "v0.97.0",
"notePosition": 100,
"notePosition": 110,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -329,7 +355,7 @@
"mYXFde3LuNR7"
],
"title": "v0.96.0",
"notePosition": 110,
"notePosition": 120,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -355,7 +381,7 @@
"jthwbL0FdaeU"
],
"title": "v0.95.0",
"notePosition": 120,
"notePosition": 130,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -381,7 +407,7 @@
"7HGYsJbLuhnv"
],
"title": "v0.94.1",
"notePosition": 130,
"notePosition": 140,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -407,7 +433,7 @@
"Neq53ujRGBqv"
],
"title": "v0.94.0",
"notePosition": 140,
"notePosition": 150,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -433,7 +459,7 @@
"VN3xnce1vLkX"
],
"title": "v0.93.0",
"notePosition": 150,
"notePosition": 160,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -451,7 +477,7 @@
"WRaBfQqPr6qo"
],
"title": "v0.92.7",
"notePosition": 160,
"notePosition": 170,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -477,7 +503,7 @@
"a2rwfKNmUFU1"
],
"title": "v0.92.6",
"notePosition": 170,
"notePosition": 180,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -495,7 +521,7 @@
"fEJ8qErr0BKL"
],
"title": "v0.92.5-beta",
"notePosition": 180,
"notePosition": 190,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -513,7 +539,7 @@
"kkkZQQGSXjwy"
],
"title": "v0.92.4",
"notePosition": 190,
"notePosition": 200,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -531,7 +557,7 @@
"vAroNixiezaH"
],
"title": "v0.92.3-beta",
"notePosition": 200,
"notePosition": 210,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -549,7 +575,7 @@
"mHEq1wxAKNZd"
],
"title": "v0.92.2-beta",
"notePosition": 210,
"notePosition": 220,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -567,7 +593,7 @@
"IykjoAmBpc61"
],
"title": "v0.92.1-beta",
"notePosition": 220,
"notePosition": 230,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -585,7 +611,7 @@
"dq2AJ9vSBX4Y"
],
"title": "v0.92.0-beta",
"notePosition": 230,
"notePosition": 240,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -603,7 +629,7 @@
"3a8aMe4jz4yM"
],
"title": "v0.91.6",
"notePosition": 240,
"notePosition": 250,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -621,7 +647,7 @@
"8djQjkiDGESe"
],
"title": "v0.91.5",
"notePosition": 250,
"notePosition": 260,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -639,7 +665,7 @@
"OylxVoVJqNmr"
],
"title": "v0.91.4-beta",
"notePosition": 260,
"notePosition": 270,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -657,7 +683,7 @@
"tANGQDvnyhrj"
],
"title": "v0.91.3-beta",
"notePosition": 270,
"notePosition": 280,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -675,7 +701,7 @@
"hMoBfwSoj1SC"
],
"title": "v0.91.2-beta",
"notePosition": 280,
"notePosition": 290,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -693,7 +719,7 @@
"a2XMSKROCl9z"
],
"title": "v0.91.1-beta",
"notePosition": 290,
"notePosition": 300,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -711,7 +737,7 @@
"yqXFvWbLkuMD"
],
"title": "v0.90.12",
"notePosition": 300,
"notePosition": 310,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -729,7 +755,7 @@
"veS7pg311yJP"
],
"title": "v0.90.11-beta",
"notePosition": 310,
"notePosition": 320,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -747,7 +773,7 @@
"sq5W9TQxRqMq"
],
"title": "v0.90.10-beta",
"notePosition": 320,
"notePosition": 330,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -765,7 +791,7 @@
"yFEGVCUM9tPx"
],
"title": "v0.90.9-beta",
"notePosition": 330,
"notePosition": 340,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -783,7 +809,7 @@
"o4wAGqOQuJtV"
],
"title": "v0.90.8",
"notePosition": 340,
"notePosition": 350,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -816,7 +842,7 @@
"i4A5g9iOg9I0"
],
"title": "v0.90.7-beta",
"notePosition": 350,
"notePosition": 360,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -834,7 +860,7 @@
"ThNf2GaKgXUs"
],
"title": "v0.90.6-beta",
"notePosition": 360,
"notePosition": 370,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -852,7 +878,7 @@
"G4PAi554kQUr"
],
"title": "v0.90.5-beta",
"notePosition": 370,
"notePosition": 380,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -879,7 +905,7 @@
"zATRobGRCmBn"
],
"title": "v0.90.4",
"notePosition": 380,
"notePosition": 390,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -897,7 +923,7 @@
"sCDLf8IKn3Iz"
],
"title": "v0.90.3",
"notePosition": 390,
"notePosition": 400,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -915,7 +941,7 @@
"VqqyBu4AuTjC"
],
"title": "v0.90.2-beta",
"notePosition": 400,
"notePosition": 410,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -933,7 +959,7 @@
"RX3Nl7wInLsA"
],
"title": "v0.90.1-beta",
"notePosition": 410,
"notePosition": 420,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -951,7 +977,7 @@
"GyueACukPWjk"
],
"title": "v0.90.0-beta",
"notePosition": 420,
"notePosition": 430,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -969,7 +995,7 @@
"kzjHexDTTeVB"
],
"title": "v0.48",
"notePosition": 430,
"notePosition": 440,
"prefix": null,
"isExpanded": false,
"type": "text",
@@ -1036,7 +1062,7 @@
"wyurrlcDl416"
],
"title": "Release Template",
"notePosition": 440,
"notePosition": 450,
"prefix": null,
"isExpanded": false,
"type": "text",

View File

@@ -0,0 +1,24 @@
# v0.99.5
> [!NOTE]
> If you are interested in an [official mobile application](https://oss.issuehunt.io/r/TriliumNext/Trilium/issues/7447)  ([#7447](https://github.com/TriliumNext/Trilium/issues/7447)) or [multi-user support](https://oss.issuehunt.io/r/TriliumNext/Trilium/issues/4956) ([#4956](https://github.com/TriliumNext/Trilium/issues/4956)), consider offering financial support via IssueHunt (see links).
> [!IMPORTANT]
> If you enjoyed this release, consider showing a token of appreciation by:
>
> * Pressing the “Star” button on [GitHub](https://github.com/TriliumNext/Trilium) (top-right).
> * Considering a one-time or recurrent donation to the [lead developer](https://github.com/eliandoran) via [GitHub Sponsors](https://github.com/sponsors/eliandoran) or [PayPal](https://paypal.me/eliandoran).
## 🐞 Bugfixes
* [List view: weird animation + hard to toggle collapse/expand deeper nested subnotes](https://github.com/TriliumNext/Trilium/issues/7667) by @adoriandoran
* Code block “Copy to clipboard button” visible while printing.
* Packaged server .zip build not working due to wrong Node.js version.
* Not all changed notes are displayed in day note by @contributor
* [Calendar view drag-and-drop issue](https://github.com/TriliumNext/Trilium/issues/7685)
* ["Open attribute list" shortcut does not focus the attribute list](https://github.com/TriliumNext/Trilium/issues/7463)
* [Global shortcuts and system tray icon sometimes not shown under Wayland in Flatpak](https://github.com/TriliumNext/Trilium/issues/7563)
* [Quick edit text drag indicator missing](https://github.com/TriliumNext/Trilium/issues/7686)
## ✨ Improvements
* [Show collections grid and list views in zen mode](https://github.com/TriliumNext/Trilium/issues/7668) by @adoriandoran

View File

@@ -1,6 +1,6 @@
{
"name": "@triliumnext/source",
"version": "0.99.4",
"version": "0.99.5",
"description": "Build your personal knowledge base with Trilium Notes",
"directories": {
"doc": "docs"

View File

@@ -1,6 +1,6 @@
{
"name": "@triliumnext/commons",
"version": "0.99.4",
"version": "0.99.5",
"description": "Shared library between the clients (e.g. browser, Electron) and the server, mostly for type definitions and utility methods.",
"private": true,
"type": "module",