zadam / trilium

Build your personal knowledge base with Trilium Notes
GNU Affero General Public License v3.0
27.2k stars 1.9k forks source link

(Bug report) 0.60.1-beta #bookmarkFolder not working #4016

Closed jwhonce closed 1 year ago

jwhonce commented 1 year ago

Trilium Version

0.60.1-beta

What operating system are you using?

Other Linux

What is your setup?

Local + server sync

Operating System Version

Fedora 38

Description

Client installed from flatpak-beta.

Following https://github.com/zadam/trilium/wiki/Bookmarks I created a Bookmarks note. I applied the following Owned Attributes: #bookmarkFolder #iconClass="bx bx-bookmark-heart" #bookmarked additionally I toggled Bookmark in Basic Properties to on. As expected a note launcher was created.

Then I went to another note and toggled it's Bookmark Basic Properties I expected the GUI to present this note as a child of the Bookmarks note. The GUI just added another note launcher.

Error logs

I can email an unabridged version of this log if needed. 4328 lines seemed too much for this widget.

08:44:33.557 Table counts: notes: 377, note_revisions: 174, branches: 430, attributes: 625, etapi_tokens: 1 08:53:28.846 204 PUT /api/notes/a8HgbbZnvHlg/attributes with 0 bytes took 1ms 08:55:23.238 204 PUT /api/notes/a8HgbbZnvHlg/attributes with 0 bytes took 0ms 08:55:26.490 Marking branches _lbBookmarks_a8HgbbZnvHlg as deleted 08:55:26.492 Ensured note 'a8HgbbZnvHlg' is NOT in parent note '_lbBookmarks' 08:55:26.493 200 PUT /api/notes/a8HgbbZnvHlg/toggle-in-parent/_lbBookmarks/false with 16 bytes took 4ms 08:55:32.268 204 PUT /api/branches/root_iQ60RiZe1giQ/expanded/1 with 0 bytes took 1ms 08:55:34.288 Sync ZDYWefRmPX: Pushing 1 sync changes in 18ms 08:55:37.248 200 GET /api/search-templates with 16 bytes took 1ms 08:55:37.249 200 POST /api/tree/load with 6522 bytes took 0ms 08:55:37.251 200 GET /api/search-templates with 16 bytes took 1ms 08:55:39.612 200 GET /api/notes/dENrmn3oCESS with 912 bytes took 0ms 08:55:39.613 200 GET /api/note-map/dENrmn3oCESS/backlink-count with 11 bytes took 0ms 08:55:44.482 Ensured note 'dENrmn3oCESS' is in parent note '_lbBookmarks' with prefix 'null' 08:55:44.482 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/true with 234 bytes took 1ms 08:55:51.190 Marking branches _lbBookmarks_dENrmn3oCESS as deleted 08:55:51.190 Ensured note 'dENrmn3oCESS' is NOT in parent note '_lbBookmarks' 08:55:51.192 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/false with 16 bytes took 3ms 08:56:34.296 Sync W3ld3EsGG6: Pushing 1 sync changes in 22ms 08:56:55.181 200 GET /api/special-notes/days/2023-06-09 with 298 bytes took 8ms 08:56:55.216 200 GET /api/edited-notes/2023-06-09 with 2 bytes took 1ms 08:56:55.217 200 GET /api/edited-notes/2023-06-09 with 2 bytes took 0ms 08:56:55.218 200 GET /api/notes/MXifNo7LI94S with 1218 bytes took 0ms 08:56:55.219 200 GET /api/note-map/MXifNo7LI94S/backlink-count with 11 bytes took 0ms 08:56:55.220 204 PUT /api/branches/root_grwMMHTqNg0Y/expanded/1 with 0 bytes took 1ms 08:56:55.227 204 PUT /api/branches/grwMMHTqNg0Y_0mJA1jfFVNJn/expanded/1 with 0 bytes took 1ms 08:56:55.263 204 PUT /api/branches/0mJA1jfFVNJn_SoTWD46jnCzg/expanded/1 with 0 bytes took 0ms 09:02:57.445 204 PUT /api/branches/grwMMHTqNg0Y_0mJA1jfFVNJn/expanded/0 with 0 bytes took 0ms 09:03:03.682 200 GET /api/notes/a8HgbbZnvHlg with 430 bytes took 0ms 09:03:03.683 200 GET /api/note-map/a8HgbbZnvHlg/backlink-count with 11 bytes took 0ms 09:03:11.137 200 POST /api/search-related with 204 bytes took 8ms 09:03:11.275 200 POST /api/search-related with 204 bytes took 6ms 09:03:13.879 200 GET /api/attributes/names/?type=label&query= with 2078 bytes took 5ms 09:03:16.610 Marking attributes QuaTT851dw5F as deleted 09:03:16.611 204 PUT /api/notes/a8HgbbZnvHlg/attributes with 0 bytes took 2ms 09:03:21.609 Created new note 'PorP86rPHgQp', branch 'root_PorP86rPHgQp' of type 'text', mime 'text/html' 09:03:21.610 200 POST /api/notes/root/children?target=into&targetBranchId= with 514 bytes took 5ms 09:03:21.612 200 POST /api/tree/load with 1682 bytes took 0ms 09:03:21.636 200 GET /api/notes/PorP86rPHgQp with 433 bytes took 0ms 09:03:21.636 200 GET /api/note-map/PorP86rPHgQp/backlink-count with 11 bytes took 0ms 09:03:24.530 200 PUT /api/notes/PorP86rPHgQp/title with 288 bytes took 2ms 09:03:24.535 200 GET /api/notes/PorP86rPHgQp with 426 bytes took 1ms 09:03:25.534 200 PUT /api/notes/PorP86rPHgQp/title with 291 bytes took 3ms 09:03:26.533 200 PUT /api/notes/PorP86rPHgQp/title with 292 bytes took 1ms 09:03:26.537 200 GET /api/notes/PorP86rPHgQp with 430 bytes took 0ms 09:03:26.636 204 PUT /api/notes/PorP86rPHgQp/data with 0 bytes took 0ms 09:03:26.638 200 GET /api/notes/PorP86rPHgQp with 438 bytes took 0ms 09:03:27.644 204 PUT /api/notes/PorP86rPHgQp/data with 0 bytes took 2ms 09:03:27.650 200 GET /api/notes/PorP86rPHgQp with 441 bytes took 1ms 09:03:28.650 204 PUT /api/notes/PorP86rPHgQp/data with 0 bytes took 2ms 09:03:28.655 200 GET /api/notes/PorP86rPHgQp with 438 bytes took 0ms 09:03:29.653 204 PUT /api/notes/PorP86rPHgQp/data with 0 bytes took 2ms 09:03:29.659 200 GET /api/notes/PorP86rPHgQp with 430 bytes took 1ms 09:03:32.099 204 PUT /api/notes/PorP86rPHgQp/data with 0 bytes took 1ms 09:03:32.111 200 GET /api/notes/PorP86rPHgQp with 438 bytes took 1ms 09:03:34.238 200 PUT /api/notes/PorP86rPHgQp/title with 293 bytes took 0ms 09:03:34.243 200 GET /api/notes/PorP86rPHgQp with 439 bytes took 0ms 09:03:34.285 Sync DIPQ2Is31f: Pushing 6 sync changes in 15ms 09:03:35.246 200 PUT /api/notes/PorP86rPHgQp/title with 294 bytes took 3ms 09:03:35.262 200 GET /api/notes/PorP86rPHgQp with 440 bytes took 1ms 09:03:36.249 200 PUT /api/notes/PorP86rPHgQp/title with 296 bytes took 5ms 09:03:37.626 204 PUT /api/notes/PorP86rPHgQp/data with 0 bytes took 2ms 09:03:37.633 200 GET /api/notes/PorP86rPHgQp with 434 bytes took 1ms 09:03:45.129 Ensured note 'PorP86rPHgQp' is in parent note '_lbBookmarks' with prefix 'null' 09:03:45.130 200 PUT /api/notes/PorP86rPHgQp/toggle-in-parent/_lbBookmarks/true with 234 bytes took 3ms 09:03:50.773 200 GET /api/attributes/names/?type=label&query= with 2078 bytes took 3ms 09:03:51.708 200 GET /api/attributes/names/?type=label&query=b with 666 bytes took 1ms 09:03:51.927 200 GET /api/attributes/names/?type=label&query=bo with 145 bytes took 1ms 09:03:52.055 200 GET /api/attributes/names/?type=label&query=boo with 47 bytes took 2ms 09:03:52.350 200 GET /api/attributes/names/?type=label&query=book with 47 bytes took 2ms 09:03:56.669 204 PUT /api/notes/PorP86rPHgQp/attributes with 0 bytes took 1ms 09:03:56.972 200 GET /api/attributes/names/?type=label&query=bookmarkFolder with 18 bytes took 1ms 09:03:59.638 Marking attributes I9qQmXujIHao as deleted 09:03:59.640 204 PUT /api/notes/PorP86rPHgQp/attributes with 0 bytes took 4ms 09:03:59.642 200 GET /api/attributes/names/?type=label&query=bookmarkFolder with 18 bytes took 0ms 09:04:04.000 204 PUT /api/notes/PorP86rPHgQp/attributes with 0 bytes took 0ms 09:04:22.651 200 GET /api/other/icon-usage with 570 bytes took 1ms 09:04:31.074 200 GET /api/other/icon-usage with 570 bytes took 1ms 09:04:31.302 200 GET /api/other/icon-usage with 570 bytes took 1ms 09:04:32.089 200 GET /api/other/icon-usage with 570 bytes took 1ms 09:04:34.285 Sync 4Y9ut4Nkse: Pushing 5 sync changes in 20ms 09:04:35.070 204 PUT /api/notes/PorP86rPHgQp/set-attribute with 0 bytes took 5ms 09:04:39.342 200 GET /api/notes/a8HgbbZnvHlg with 430 bytes took 0ms 09:04:39.343 200 GET /api/note-map/a8HgbbZnvHlg/backlink-count with 11 bytes took 0ms 09:04:40.720 200 GET /api/other/icon-usage with 570 bytes took 0ms 09:04:48.630 200 GET /api/other/icon-usage with 570 bytes took 1ms 09:04:49.116 200 GET /api/other/icon-usage with 570 bytes took 1ms 09:04:55.163 204 PUT /api/notes/a8HgbbZnvHlg/set-attribute with 0 bytes took 1ms 09:05:06.671 200 GET /api/notes/PorP86rPHgQp with 434 bytes took 1ms 09:05:06.671 200 GET /api/note-map/PorP86rPHgQp/backlink-count with 11 bytes took 0ms 09:05:10.737 200 GET /api/search-templates with 16 bytes took 1ms 09:05:10.739 200 GET /api/search-templates with 16 bytes took 0ms 09:05:15.315 200 GET /api/notes/dENrmn3oCESS with 912 bytes took 0ms 09:05:15.316 200 GET /api/note-map/dENrmn3oCESS/backlink-count with 11 bytes took 0ms 09:05:21.374 Ensured note 'dENrmn3oCESS' is in parent note '_lbBookmarks' with prefix 'null' 09:05:21.375 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/true with 234 bytes took 3ms 09:05:25.834 Marking branches _lbBookmarks_dENrmn3oCESS as deleted 09:05:25.835 Ensured note 'dENrmn3oCESS' is NOT in parent note '_lbBookmarks' 09:05:25.837 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/false with 16 bytes took 4ms 09:05:34.287 Sync NSkfIgFfba: Pushing 3 sync changes in 13ms 09:07:02.641 200 GET /api/search-templates with 16 bytes took 2ms 09:07:02.646 200 GET /api/search-templates with 16 bytes took 1ms 09:07:04.403 200 GET /api/notes/dENrmn3oCESS with 912 bytes took 1ms 09:07:05.881 200 GET /api/notes/PorP86rPHgQp with 434 bytes took 0ms 09:07:05.882 200 GET /api/note-map/PorP86rPHgQp/backlink-count with 11 bytes took 0ms 09:07:25.896 200 GET /api/attributes/names/?type=label&query= with 2078 bytes took 2ms 09:07:27.444 200 GET /api/attributes/names/?type=label&query=b with 666 bytes took 1ms 09:07:27.671 200 GET /api/attributes/names/?type=label&query=bo with 145 bytes took 0ms 09:07:27.865 200 GET /api/attributes/names/?type=label&query=boo with 47 bytes took 1ms 09:07:34.325 204 PUT /api/notes/PorP86rPHgQp/attributes with 0 bytes took 4ms 09:07:34.352 There's 1 outstanding pushes, skipping content check. 09:07:34.419 Sync xVK1oUWrYR: Pushing 2 sync changes in 17ms 09:07:34.599 200 GET /api/attributes/names/?type=label&query=bookmarked with 14 bytes took 2ms 09:07:36.199 Marking attributes iBsghZTc4vid as deleted 09:07:36.201 204 PUT /api/notes/PorP86rPHgQp/attributes with 0 bytes took 3ms 09:07:39.186 200 GET /api/notes/dENrmn3oCESS with 912 bytes took 0ms 09:07:54.863 200 GET /api/attributes/names/?type=label&query= with 2078 bytes took 3ms 09:07:55.996 200 GET /api/attributes/names/?type=label&query=b with 666 bytes took 1ms 09:07:56.232 200 GET /api/attributes/names/?type=label&query=bo with 145 bytes took 1ms 09:07:56.437 200 GET /api/attributes/names/?type=label&query=boo with 47 bytes took 2ms 09:07:58.979 204 PUT /api/notes/dENrmn3oCESS/attributes with 0 bytes took 3ms 09:07:59.262 200 GET /api/attributes/names/?type=label&query=bookmarked with 14 bytes took 1ms 09:08:01.633 Marking attributes 8zU8EvcK4zJf as deleted 09:08:01.635 204 PUT /api/notes/dENrmn3oCESS/attributes with 0 bytes took 4ms 09:08:21.921 Ensured note 'dENrmn3oCESS' is in parent note '_lbBookmarks' with prefix 'null' 09:08:21.921 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/true with 234 bytes took 1ms 09:08:24.268 Marking branches _lbBookmarks_dENrmn3oCESS as deleted 09:08:24.268 Ensured note 'dENrmn3oCESS' is NOT in parent note '_lbBookmarks' 09:08:24.270 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/false with 16 bytes took 4ms 09:08:34.073 Marking attributes ycLkYAuC0Wq0 as deleted 09:08:34.073 204 PUT /api/notes/dENrmn3oCESS/attributes with 0 bytes took 0ms 09:08:34.074 200 GET /api/notes/PorP86rPHgQp with 434 bytes took 0ms 09:08:34.291 Sync 8oQGd3e2HG: Pushing 5 sync changes in 19ms 09:09:49.668 DB size: 3100 KB 09:09:50.401 Trusted reverse proxy: false 09:09:50.402 App HTTP server starting up at port 37840 09:09:50.402 { "appVersion": "0.60.1-beta", "dbVersion": 213, "syncVersion": 29, "buildDate": "2023-05-26T23:11:53+02:00", "buildRevision": "82efc924136c5b215e39f2108f00dd2bf075271c", "dataDirectory": "/home/jhonce/.local/share/trilium-data", "clipperProtocolVersion": "1.0", "utcDateTime": "2023-06-09T16:09:49.667Z" } 09:09:50.402 CPU model: Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz, logical cores: 12 freq: 4299 Mhz 09:09:50.406 Listening on port 37840 09:09:50.413 Becca (note cache) load took 7ms 09:09:50.551 Registered global shortcut Ctrl+Alt+P for action createNoteIntoInbox 09:09:50.573 Generated CSRF token E0pglZYo-pxrjs8edhWKQUbhh6cITojvklOM with secret _csrf=kg6bXAtEk1DGT9ECJp3zuwei; Path=/ 09:09:51.124 200 GET /api/tree with 34689 bytes took 1ms 09:09:51.126 200 GET /api/keyboard-actions with 12183 bytes took 1ms 09:09:51.128 200 GET /api/script/widgets with 159168 bytes took 2ms 09:09:51.132 200 POST /api/tree/load with 5462 bytes took 0ms 09:09:51.135 200 POST /api/tree/load with 3317 bytes took 0ms 09:09:51.136 200 POST /api/tree/load with 3449 bytes took 0ms 09:09:51.356 200 GET /api/keyboard-shortcuts-for-notes with 2 bytes took 0ms 09:09:51.397 200 POST /api/tree/load with 21057 bytes took 1ms 09:09:51.547 200 GET /api/notes/PorP86rPHgQp with 434 bytes took 0ms 09:09:51.548 200 GET /api/note-map/PorP86rPHgQp/backlink-count with 11 bytes took 0ms 09:09:53.364 200 GET /api/script/startup with 2 bytes took 5ms 09:09:54.418 Table counts: notes: 378, note_revisions: 174, branches: 432, attributes: 632, etapi_tokens: 1 09:09:56.175 200 GET /api/notes/dENrmn3oCESS with 912 bytes took 0ms 09:09:56.176 200 GET /api/note-map/dENrmn3oCESS/backlink-count with 11 bytes took 0ms 09:10:01.909 Ensured note 'dENrmn3oCESS' is in parent note '_lbBookmarks' with prefix 'null' 09:10:01.909 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/true with 234 bytes took 5ms 09:10:04.162 Marking branches _lbBookmarks_dENrmn3oCESS as deleted 09:10:04.162 Ensured note 'dENrmn3oCESS' is NOT in parent note '_lbBookmarks' 09:10:04.163 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/false with 16 bytes took 2ms 09:10:06.917 200 GET /api/notes/PorP86rPHgQp with 434 bytes took 0ms 09:10:13.585 200 GET /api/app-info with 289 bytes took 1ms 09:16:50.627 DB size: 3100 KB 09:16:51.215 Trusted reverse proxy: false 09:16:51.216 App HTTP server starting up at port 37840 09:16:51.216 { "appVersion": "0.60.1-beta", "dbVersion": 213, "syncVersion": 29, "buildDate": "2023-05-26T23:11:53+02:00", "buildRevision": "82efc924136c5b215e39f2108f00dd2bf075271c", "dataDirectory": "/home/jhonce/.local/share/trilium-data", "clipperProtocolVersion": "1.0", "utcDateTime": "2023-06-09T16:16:50.627Z" } 09:16:51.216 CPU model: Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz, logical cores: 12 freq: 4296 Mhz 09:16:51.219 Listening on port 37840 09:16:51.227 Becca (note cache) load took 7ms 09:16:51.347 Registered global shortcut Ctrl+Alt+P for action createNoteIntoInbox 09:16:51.373 Generated CSRF token PYYTtCDr-eLOhyjUvDzNICTInOXLv3PbjkUw with secret _csrf=bcHIKnHmBReSfCJIPzsfSqnA; Path=/ 09:16:52.088 200 GET /api/tree with 34689 bytes took 1ms 09:16:52.090 200 GET /api/keyboard-actions with 12183 bytes took 0ms 09:16:52.093 200 GET /api/script/widgets with 159168 bytes took 2ms 09:16:52.097 200 POST /api/tree/load with 5462 bytes took 0ms 09:16:52.100 200 POST /api/tree/load with 3317 bytes took 0ms 09:16:52.102 200 POST /api/tree/load with 3449 bytes took 0ms 09:16:52.339 200 GET /api/keyboard-shortcuts-for-notes with 2 bytes took 0ms 09:16:52.383 200 POST /api/tree/load with 21057 bytes took 1ms 09:16:52.532 200 GET /api/notes/PorP86rPHgQp with 434 bytes took 1ms 09:16:52.532 200 GET /api/note-map/PorP86rPHgQp/backlink-count with 11 bytes took 0ms 09:16:54.347 200 GET /api/script/startup with 2 bytes took 6ms 09:16:55.229 Table counts: notes: 378, note_revisions: 174, branches: 432, attributes: 632, etapi_tokens: 1 09:16:56.309 Sync DzzaHVmDqB: Pushing 1 sync changes in 19ms 09:17:48.081 200 POST /api/search-related with 1960 bytes took 8ms 09:17:48.082 200 POST /api/tree/load with 5469 bytes took 0ms 09:17:48.266 200 POST /api/search-related with 1960 bytes took 6ms 09:17:53.409 204 PUT /api/notes/PorP86rPHgQp/attributes with 0 bytes took 1ms 09:18:40.161 204 PUT /api/notes/PorP86rPHgQp/attributes with 0 bytes took 0ms 09:26:52.718 204 PUT /api/branches/root_grwMMHTqNg0Y/expanded/0 with 0 bytes took 1ms 09:30:34.180 200 GET /api/notes/dENrmn3oCESS with 912 bytes took 0ms 09:30:34.181 200 GET /api/note-map/dENrmn3oCESS/backlink-count with 11 bytes took 0ms 09:30:40.675 Ensured note 'dENrmn3oCESS' is in parent note '_lbBookmarks' with prefix 'null' 09:30:40.676 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/true with 234 bytes took 7ms 09:30:49.280 Marking branches _lbBookmarks_dENrmn3oCESS as deleted 09:30:49.282 Ensured note 'dENrmn3oCESS' is NOT in parent note '_lbBookmarks' 09:30:49.283 200 PUT /api/notes/dENrmn3oCESS/toggle-in-parent/_lbBookmarks/false with 16 bytes took 5ms 09:30:51.318 Sync t512Ofp488: Pushing 1 sync changes in 17ms 09:31:33.145 200 POST /api/tree/load with 5376 bytes took 0ms 09:31:33.165 200 GET /api/note-map/_options/backlink-count with 11 bytes took 0ms 09:31:33.169 200 GET /api/tree?subTreeNoteId=_hidden with 27864 bytes took 1ms 09:31:33.175 200 POST /api/tree/load with 8411 bytes took 1ms 09:31:33.193 204 PUT /api/branches/root__hidden/expanded/1 with 0 bytes took 1ms 09:31:33.220 200 GET /api/tree?subTreeNoteId=_options with 8410 bytes took 1ms 09:31:41.752 200 GET /api/note-map/_optionsAdvanced/backlink-count with 11 bytes took 0ms 09:31:41.768 204 PUT /api/branches/_hidden__options/expanded/1 with 0 bytes took 0ms 09:31:50.905 200 GET /api/note-map/_options/backlink-count with 11 bytes took 0ms 09:31:56.034 200 GET /api/note-map/_optionsShortcuts/backlink-count with 11 bytes took 0ms 09:31:56.037 200 GET /api/keyboard-actions with 12183 bytes took 2ms 09:32:23.472 200 GET /api/note-map/_options/backlink-count with 11 bytes took 0ms 09:32:41.606 200 GET /api/note-map/_optionsTextNotes/backlink-count with 11 bytes took 0ms 09:32:52.354 200 GET /api/note-map/_options/backlink-count with 11 bytes took 0ms

mechanarchy commented 1 year ago

Then I went to another note and toggled it's Bookmark Basic Properties I expected the GUI to present this note as a child of the Bookmarks note. The GUI just added another note launcher.

To my understanding, this is the problematic part - if you want your bookmarks to appear as a pop-up list underneath a single icon on the launcher bar, you need to create the #bookmarkFolder note as you have done and then manually clone each item you want bookmarked under this folder.

The Bookmark toggle on each note still does what it always did, and creates a brand new launcher entry, it doesn't nest it under the folder you've set up. You can see this in the screenshot on the wiki page, where there is the drop-down list but also a number of other bookmarked notes visible.

I'd dearly love to just be able to mark the out-of-the-box Bookmarks launcher with #bookmarkFolder and always have bookmarks in a popup list, but that doesn't seem to be supported at the moment.

jwhonce commented 1 year ago

@mechanarchy Thank you for your time and knowledge. I tried your workflow and it worked as described. I am going to close this bug as this is "working as built".

root-hal9000 commented 9 months ago

@mechanarchy @jwhonce I just started a discussion on this - #4588 - before even seeing this issue here. So what's the point of the #bookmarkFolder tag itself if I am still manually cloning? does that tag do anything special? Maybe let's discuss there. The wiki seems to suggest there's a point to the specific tag, but if there isn't I would suggest some edits to the wiki page