diff --git a/README-ZH_CN.md b/README-ZH_CN.md
index a31caa2a1..47d93a3da 100644
--- a/README-ZH_CN.md
+++ b/README-ZH_CN.md
@@ -1,6 +1,6 @@
# Trilium Notes
-[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md)
+[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://github.com/zadam/trilium/wiki/Screenshot-tour)以快速了解:
diff --git a/README.ja.md b/README.ja.md
new file mode 100644
index 000000000..621e3e0ff
--- /dev/null
+++ b/README.ja.md
@@ -0,0 +1,83 @@
+# Trilium Notes
+
+[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
+
+Trilium Notes は、大規模な個人知識ベースの構築に焦点を当てた、階層型ノートアプリケーションです。概要は[スクリーンショット](https://github.com/zadam/trilium/wiki/Screenshot-tour)をご覧ください:
+
+
+
+ウクライナは現在、ロシアの侵略から自国を守っています。[ウクライナ軍や人道的な慈善団体への寄付](https://standforukraine.com/)をご検討ください。
+
+
+
+
+
](https://flathub.org/apps/details/com.github.zadam.trilium)
+
+## 📝 ドキュメント
+
+[ドキュメントページの全リストはwikiをご覧ください。](https://github.com/zadam/trilium/wiki/)
+
+また、[個人的な知識基盤のパターン](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base)を読むと、 Trilium の使い方のヒントを得ることができます。
+
+## 💻 コントリビュート
+
+ブラウザベースの開発環境を使用
+
+[](https://gitpod.io/#https://github.com/zadam/trilium)
+
+または、ローカルにクローンして実行
+```
+npm install
+npm run start-server
+```
+
+## 📢 シャウトアウト
+
+* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - 市場で最高の WYSIWYG エディター、非常にインタラクティブで聞き上手なチーム
+* [FancyTree](https://github.com/mar10/fancytree) - 真の競争相手がいない、非常に機能豊富なツリーライブラリです。 Trilium Notes は、これなしでは成り立たないでしょう。
+* [CodeMirror](https://github.com/codemirror/CodeMirror) - 膨大な数の言語をサポートするコードエディタ
+* [jsPlumb](https://github.com/jsplumb/jsplumb) - 競合のないビジュアルコネクティビティライブラリです。[関係図](https://github.com/zadam/trilium/wiki/Relation-map)、[リンク図](https://github.com/zadam/trilium/wiki/Link-map)で使用。
+
+## 🤝 サポート
+
+GitHub スポンサー、[PayPal](https://paypal.me/za4am)もしくは Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2) にて Trilium をサポートすることができます。
+
+## 🔑 ライセンス
+
+このプログラムはフリーソフトウェアです:フリーソフトウェア財団が発行した GNU Affero General Public License のバージョン3、またはそれ以降のバージョンのいずれかに従って、再配布および/または改変することができます。
diff --git a/README.md b/README.md
index d2806af64..d8cd45f14 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Trilium Notes
-[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md)
+[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. See [screenshots](https://github.com/zadam/trilium/wiki/Screenshot-tour) for quick overview:
@@ -76,7 +76,7 @@ npm run start-server
## 🤝 Support
-You can support Trilum using GitHub Sponsors, [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
+You can support Trilium using GitHub Sponsors, [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
## 🔑 License
diff --git a/README.ru.md b/README.ru.md
index 794e6c4b2..f79341e79 100644
--- a/README.ru.md
+++ b/README.ru.md
@@ -1,6 +1,6 @@
# Trilium Notes
-[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md)
+[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Trilium Notes – это приложение для заметок с иерархической структурой, ориентированное на создание больших персональных баз знаний. Для быстрого ознакомления посмотрите [скриншот-тур](https://github.com/zadam/trilium/wiki/Screenshot-tour):
diff --git a/db/migrations/0212__delete_all_attributes_of_named_notes.js b/db/migrations/0212__delete_all_attributes_of_named_notes.js
index 47ddb9114..d90f25e44 100644
--- a/db/migrations/0212__delete_all_attributes_of_named_notes.js
+++ b/db/migrations/0212__delete_all_attributes_of_named_notes.js
@@ -2,12 +2,18 @@ module.exports = () => {
const cls = require("../../src/services/cls");
const beccaLoader = require("../../src/becca/becca_loader");
const becca = require("../../src/becca/becca");
+ const log = require("../../src/services/log");
cls.init(() => {
beccaLoader.load();
const hidden = becca.getNote("_hidden");
+ if (!hidden) {
+ log.info("MIGRATION 212: no _hidden note, skipping.");
+ return;
+ }
+
for (const noteId of hidden.getSubtreeNoteIds({includeHidden: true})) {
if (noteId.startsWith("_")) { // is "named" note
const note = becca.getNote(noteId);
diff --git a/images/icon-black.svg b/images/icon-black.svg
new file mode 100644
index 000000000..f3427da82
--- /dev/null
+++ b/images/icon-black.svg
@@ -0,0 +1,12 @@
+
+
+
\ No newline at end of file
diff --git a/images/icon-color.svg b/images/icon-color.svg
new file mode 100644
index 000000000..bd266dab6
--- /dev/null
+++ b/images/icon-color.svg
@@ -0,0 +1,12 @@
+
+
+
\ No newline at end of file
diff --git a/images/icon-grey.svg b/images/icon-grey.svg
new file mode 100644
index 000000000..92bc0906e
--- /dev/null
+++ b/images/icon-grey.svg
@@ -0,0 +1,12 @@
+
+
+
\ No newline at end of file
diff --git a/package.json b/package.json
index 43660dd14..4000930f5 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "trilium",
"productName": "Trilium Notes",
"description": "Trilium Notes",
- "version": "0.59.2",
+ "version": "0.59.3",
"license": "AGPL-3.0-only",
"main": "electron.js",
"bin": {
diff --git a/src/becca/becca_loader.js b/src/becca/becca_loader.js
index 9ac087d44..fb9f6d3df 100644
--- a/src/becca/becca_loader.js
+++ b/src/becca/becca_loader.js
@@ -70,7 +70,9 @@ function reload() {
}
function postProcessEntityUpdate(entityName, entity) {
- if (entityName === 'branches') {
+ if (entityName === 'notes') {
+ noteUpdated(entity);
+ } else if (entityName === 'branches') {
branchUpdated(entity);
} else if (entityName === 'attributes') {
attributeUpdated(entity);
@@ -161,6 +163,15 @@ function branchDeleted(branchId) {
delete becca.branches[branch.branchId];
}
+function noteUpdated(entity) {
+ const note = becca.notes[entity.noteId];
+
+ if (note) {
+ // type / mime could have been changed, and they are present in flatTextCache
+ note.flatTextCache = null;
+ }
+}
+
function branchUpdated(branch) {
const childNote = becca.notes[branch.noteId];
diff --git a/src/public/app/entities/fnote.js b/src/public/app/entities/fnote.js
index cb0629836..a3afc4ad2 100644
--- a/src/public/app/entities/fnote.js
+++ b/src/public/app/entities/fnote.js
@@ -719,7 +719,14 @@ class FNote {
});
// attrs are not resorted if position changes after initial load
- promotedAttrs.sort((a, b) => a.position < b.position ? -1 : 1);
+ promotedAttrs.sort((a, b) => {
+ if (a.noteId === b.noteId) {
+ return a.position < b.position ? -1 : 1;
+ } else {
+ // inherited promoted attributes should stay grouped: https://github.com/zadam/trilium/issues/3761
+ return a.noteId < b.noteId ? -1 : 1;
+ }
+ });
return promotedAttrs;
}
diff --git a/src/public/app/menus/context_menu.js b/src/public/app/menus/context_menu.js
index ba42cc345..19b5f6433 100644
--- a/src/public/app/menus/context_menu.js
+++ b/src/public/app/menus/context_menu.js
@@ -99,11 +99,16 @@ class ContextMenu {
const $item = $("