diff --git a/README.md b/README.md
index 4558e2081..60e4efd95 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ See other pictures in [screenshot tour](https://github.com/zadam/trilium/wiki/Sc
* Notes can be arranged into arbitrarily deep hierarchy (tree)
* Notes can have more than 1 parents - see [cloning](https://github.com/zadam/trilium/wiki/Cloning-notes)
-* WYSIWYG (What You See Is What You Get) note editing
+* Rich WYSIWYG note editing including e.g. tables and images
* Support for editing [notes with source code](https://raw.githubusercontent.com/wiki/zadam/trilium/images/code-note.png), including syntax highlighting
* Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation)
* Seamless [note versioning](https://github.com/zadam/trilium/wiki/Note-revisions)
diff --git a/db/main_attributes.sql b/db/main_attributes.sql
index f5edf2c25..b04d1f92c 100644
--- a/db/main_attributes.sql
+++ b/db/main_attributes.sql
@@ -93,12 +93,6 @@ INSERT INTO attributes VALUES('f0Ow5PJyhbYY','nUgD4SYx2gt7','label','taskTagRoot
INSERT INTO attributes VALUES('6or0Gr0hFW2t','9HHqPxJkLAkl','label','taskDoneRoot','',0,'2018-08-28T20:50:48.626Z','2018-08-28T20:50:48.626Z',0,'e8MjtXx+UD',0);
INSERT INTO attributes VALUES('pSVR4p5EM3i1','XVlWndK4Oh6A','label','run','frontendStartup',0,'2018-08-28T20:50:48.630Z','2018-08-28T20:50:48.630Z',0,'/Og2vneotj',0);
INSERT INTO attributes VALUES('uSj6vDAaM3Z8','gYNJtGEPGW95','label','appCss','',0,'2018-08-28T20:50:48.636Z','2018-08-28T20:50:48.636Z',0,'TssM5mauP3',0);
-INSERT INTO attributes VALUES('cyujybJzh4It','HbtlYiMvmm4V','relation','runOnAttributeChange','gYVdjKAJeImD',0,'2018-08-28T20:50:48.640Z','2018-08-28T20:50:48.640Z',0,'6ziRrHJAhQ',1);
-INSERT INTO attributes VALUES('MEr8Y48B5fuA','HbtlYiMvmm4V','label-definition','location','{"labelType":"text","multiplicityType":"singlevalue","isPromoted":true}',1,'2018-08-28T20:50:48.652Z','2018-08-28T20:50:48.652Z',0,'SHKsaKOZDy',1);
-INSERT INTO attributes VALUES('0zEib333MHaK','HbtlYiMvmm4V','label-definition','tag','{"labelType":"text","multiplicityType":"multivalue","isPromoted":true}',2,'2018-08-28T20:50:48.661Z','2018-08-28T20:50:48.661Z',0,'qGaGNt4Il4',1);
-INSERT INTO attributes VALUES('XsQlrpkI26vx','HbtlYiMvmm4V','label-definition','todoDate','{"labelType":"date","multiplicityType":"singlevalue","isPromoted":true}',3,'2018-08-28T20:50:48.707Z','2018-08-28T20:50:48.708Z',0,'K1zIHbXWjg',1);
-INSERT INTO attributes VALUES('jbVAxy9rOvw7','HbtlYiMvmm4V','label-definition','doneDate','{"labelType":"date","multiplicityType":"singlevalue","isPromoted":true}',4,'2018-08-28T20:50:48.716Z','2018-08-28T20:50:48.717Z',0,'ibiT2W04+I',1);
-INSERT INTO attributes VALUES('I98xKISNcMwY','HbtlYiMvmm4V','label','taskTemplate','',5,'2018-08-28T20:50:48.724Z','2018-08-28T20:50:48.724Z',0,'r2hEWMgitj',0);
INSERT INTO attributes VALUES('lKaZjiGo2X1T','gDrEI7LFWqrP','label','hideChildrenOverview','',0,'2018-08-28T20:50:22.253Z','2018-08-28T20:50:22.253Z',0,'qGo6F87JjB',0);
INSERT INTO attributes VALUES('wycKIOGBLBr2','gDrEI7LFWqrP','relation','familyContainer','YULCKCrWJJZ6',1,'2018-08-28T20:50:22.257Z','2018-08-28T20:50:22.257Z',0,'wRgPdq8myG',0);
INSERT INTO attributes VALUES('45sz6us7COFA','gDrEI7LFWqrP','relation','renderNote','Z5yhGE5g0UB5',2,'2018-08-28T20:52:45.872Z','2018-08-28T20:52:45.872Z',0,'Rf2zkiB3bY',0);
@@ -106,9 +100,6 @@ INSERT INTO attributes VALUES('4m6dIcDjkC2q','8LOr7xUMuWD4','label','hideChildre
INSERT INTO attributes VALUES('UbMObRd5U1p3','8LOr7xUMuWD4','relation','renderNote','YBAcWV8TjYEp',1,'2018-08-28T20:54:40.517Z','2018-08-28T20:56:27.135Z',0,'iqKSOL+B1L',0);
INSERT INTO attributes VALUES('2YBCX6bTRrde','qEi5St9PBPCP','label','run','frontendStartup',0,'2018-08-28T20:50:36.178Z','2018-08-28T20:50:36.179Z',0,'hDcu/CoV8A',0);
INSERT INTO attributes VALUES('IhuXzxRoCdJj','qEi5St9PBPCP','relation','targetNote','8LOr7xUMuWD4',1,'2018-08-28T20:58:15.164Z','2018-08-28T20:58:15.164Z',0,'un6P3bD9wb',0);
-INSERT INTO attributes VALUES('0p8vtV5LoH0e','L9qettZi0csz','label','taskTodoRoot','',0,'2018-08-28T20:50:48.596Z','2018-08-28T20:50:48.596Z',0,'mKdjsJRSwv',0);
-INSERT INTO attributes VALUES('lCyxJnXmNy5x','L9qettZi0csz','label','child:task','',1,'2018-08-28T21:11:09.138Z','2018-08-28T21:11:09.138Z',0,'EarSd1tApi',0);
-INSERT INTO attributes VALUES('ifqAReEYdFh6','L9qettZi0csz','relation','child:template','HbtlYiMvmm4V',2,'2018-08-28T21:11:09.143Z','2018-08-28T21:11:09.143Z',0,'JXcAyc3in4',0);
INSERT INTO attributes VALUES('wfv43UPhvRDB','1s6SGhByxkoU','label','cssClass','todo',3,'2018-08-28T21:11:48.954Z','2018-08-28T21:11:48.955Z',0,'CFjJZ/EjzN',0);
INSERT INTO attributes VALUES('vnDnf7erhpHf','eXHZAKsMYgur','relation','child:template','TlGCAdcfxkOT',0,'2018-08-29T17:13:34.317Z','2018-08-29T17:13:34.317Z',0,'8W6ql67C0G',0);
INSERT INTO attributes VALUES('Vwo09bhVsDFP','TjWEndYCCg7g','relation','child:template','TlGCAdcfxkOT',0,'2018-08-29T17:15:28.700Z','2018-08-29T17:15:28.700Z',0,'Dowmf6VzWU',0);
@@ -213,3 +204,12 @@ INSERT INTO attributes VALUES('0F9G0OQujXVO','prjUbW6QtsL4','label','tag','shopp
INSERT INTO attributes VALUES('yc58HTwoM3b0','prjUbW6QtsL4','label','todoDate','2017-12-20',3,'2018-08-29T19:47:53.123Z','2018-08-30T07:56:53.874Z',0,'UnKvGyVk7X',0);
INSERT INTO attributes VALUES('JVlFEQPYUiCR','prjUbW6QtsL4','label','doneDate','2017-12-24',5,'2018-08-29T19:48:00.928Z','2018-08-30T07:57:00.569Z',0,'nbXCZOrqq6',0);
INSERT INTO attributes VALUES('01UuzuSR78Kj','uP3V8BqwXC05','label','todoDate','2017-12-24',6,'2018-08-29T19:43:01.973Z','2018-08-30T08:04:55.301Z',0,'tDEAzDOKYn',0);
+INSERT INTO attributes VALUES('cyujybJzh4It','HbtlYiMvmm4V','relation','runOnAttributeChange','gYVdjKAJeImD',0,'2018-08-28T20:50:48.640Z','2018-08-28T20:50:48.640Z',0,'6ziRrHJAhQ',1);
+INSERT INTO attributes VALUES('MEr8Y48B5fuA','HbtlYiMvmm4V','label-definition','location','{"isPromoted":true,"labelType":"text","multiplicityType":"singlevalue"}',1,'2018-08-28T20:50:48.652Z','2018-08-28T20:50:48.652Z',0,'SHKsaKOZDy',1);
+INSERT INTO attributes VALUES('0zEib333MHaK','HbtlYiMvmm4V','label-definition','tag','{"isPromoted":true,"labelType":"text","multiplicityType":"multivalue"}',2,'2018-08-28T20:50:48.661Z','2018-08-28T20:50:48.661Z',0,'qGaGNt4Il4',1);
+INSERT INTO attributes VALUES('XsQlrpkI26vx','HbtlYiMvmm4V','label-definition','todoDate','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',3,'2018-08-28T20:50:48.707Z','2018-08-28T20:50:48.708Z',0,'K1zIHbXWjg',1);
+INSERT INTO attributes VALUES('jbVAxy9rOvw7','HbtlYiMvmm4V','label-definition','doneDate','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',4,'2018-08-28T20:50:48.716Z','2018-08-28T20:50:48.717Z',0,'ibiT2W04+I',1);
+INSERT INTO attributes VALUES('0p8vtV5LoH0e','L9qettZi0csz','label','taskTodoRoot','',0,'2018-08-28T20:50:48.596Z','2018-08-28T20:50:48.596Z',0,'mKdjsJRSwv',0);
+INSERT INTO attributes VALUES('lCyxJnXmNy5x','L9qettZi0csz','label','child:task','',1,'2018-08-28T21:11:09.138Z','2018-08-28T21:11:09.138Z',0,'EarSd1tApi',0);
+INSERT INTO attributes VALUES('ifqAReEYdFh6','L9qettZi0csz','relation','child:template','HbtlYiMvmm4V',2,'2018-08-28T21:11:09.143Z','2018-08-28T21:11:09.143Z',0,'JXcAyc3in4',0);
+INSERT INTO attributes VALUES('1hmYf4fJQmBk','L9qettZi0csz','label','child:cssClass','todo',3,'2018-09-01T11:20:29.168Z','2018-09-01T11:20:29.168Z',0,'toS3GWHG/9',0);
diff --git a/db/main_branches.sql b/db/main_branches.sql
index 60f169622..8dd88d6cf 100644
--- a/db/main_branches.sql
+++ b/db/main_branches.sql
@@ -1,6 +1,6 @@
INSERT INTO branches VALUES('root','root','none',0,NULL,1,0,'2018-01-01T00:00:00.000Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('dLgtLUFn3GoN','1Heh2acXfPNt','root',21,NULL,1,0,'2017-12-23T00:46:39.304Z','','1970-01-01T00:00:00.000Z');
-INSERT INTO branches VALUES('QLfS835GSfIh','3RkyK9LI18dO','1Heh2acXfPNt',2,NULL,0,0,'2017-12-23T01:20:04.181Z','','1970-01-01T00:00:00.000Z');
+INSERT INTO branches VALUES('QLfS835GSfIh','3RkyK9LI18dO','1Heh2acXfPNt',5,NULL,1,0,'2017-12-23T01:20:04.181Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('wLTa2l3lYi83','HJusZTbBU494','3RkyK9LI18dO',1,NULL,1,0,'2017-12-23T01:20:50.709Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('jvhKcwz4pYTr','ZC78NlmdXeC6','WdWZFuWNVDZk',0,NULL,1,0,'2017-12-23T04:06:21.579Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('CarTrwkGVcPz','NncfGH8dyNjJ','WdWZFuWNVDZk',1,NULL,1,0,'2017-12-23T04:06:24.012Z','','1970-01-01T00:00:00.000Z');
@@ -11,7 +11,7 @@ INSERT INTO branches VALUES('xQ3fjRp9yaPq','I6Cw88AirBBl','C44aq4mkaX67',0,NULL,
INSERT INTO branches VALUES('2GOsNT5LsvTP','mcEwFMSjhlvL','C44aq4mkaX67',1,NULL,0,0,'2017-12-23T01:29:35.974Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('RxUiraiR655R','CF2lUIJAr6Ey','NncfGH8dyNjJ',2,NULL,0,0,'2017-12-23T01:34:37.658Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('mZuSrZ18Zmv0','xkXwueRoDNeN','MG0wntwILQW6',0,NULL,0,0,'2017-12-23T01:35:40.306Z','','1970-01-01T00:00:00.000Z');
-INSERT INTO branches VALUES('hbcWTnEnXPwF','eXHZAKsMYgur','1Heh2acXfPNt',5,NULL,0,0,'2017-12-23T03:32:42.868Z','','1970-01-01T00:00:00.000Z');
+INSERT INTO branches VALUES('hbcWTnEnXPwF','eXHZAKsMYgur','1Heh2acXfPNt',9,NULL,0,0,'2017-12-23T03:32:42.868Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('8a3aNxjG0nu7','2WU27ekfy07E','eXHZAKsMYgur',0,NULL,0,0,'2017-12-23T03:32:49.379Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('4Tu6vaPdCxCM','TjWEndYCCg7g','eXHZAKsMYgur',1,NULL,0,0,'2017-12-23T03:33:23.584Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('lBPOmhP12egP','8nRNDJGyGs2Z','TjWEndYCCg7g',0,NULL,0,0,'2017-12-23T03:33:37.327Z','','1970-01-01T00:00:00.000Z');
@@ -37,8 +37,8 @@ INSERT INTO branches VALUES('t3vVElqMIQVa','h4OfLEAYspud','WdWZFuWNVDZk',2,NULL,
INSERT INTO branches VALUES('O983DHtLpgmr','1hASbLRDL7oo','h4OfLEAYspud',0,NULL,0,0,'2017-12-23T16:42:26.347Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('RsvL795Mk1bp','1hASbLRDL7oo','GpGnjmcAPeWG',1,'',0,0,'2017-12-23T04:04:56.830Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('79e4hrHLFmx6','jyqG9GucsMdn','Iha4YwchR413',1,NULL,0,0,'2017-12-23T04:05:16.439Z','','1970-01-01T00:00:00.000Z');
-INSERT INTO branches VALUES('oWO8rctUjf7d','WdWZFuWNVDZk','1Heh2acXfPNt',8,NULL,1,0,'2017-12-23T04:06:16.179Z','','1970-01-01T00:00:00.000Z');
-INSERT INTO branches VALUES('GOxcrZrxalFN','yK4SBJfwD3tY','1Heh2acXfPNt',12,NULL,0,0,'2017-12-23T04:06:32.833Z','','1970-01-01T00:00:00.000Z');
+INSERT INTO branches VALUES('oWO8rctUjf7d','WdWZFuWNVDZk','1Heh2acXfPNt',13,NULL,1,0,'2017-12-23T04:06:16.179Z','','1970-01-01T00:00:00.000Z');
+INSERT INTO branches VALUES('GOxcrZrxalFN','yK4SBJfwD3tY','1Heh2acXfPNt',18,NULL,0,0,'2017-12-23T04:06:32.833Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('bSPmEvjLzQKU','r4BnsmSQeVr1','yK4SBJfwD3tY',0,NULL,0,0,'2017-12-23T04:06:37.427Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('bMtxCD6cwNR9','QbL3pTvhgzM8','yK4SBJfwD3tY',2,NULL,0,0,'2017-12-23T04:06:43.841Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('o4ycR7xIi4oI','moMbTKwN15Ps','yK4SBJfwD3tY',3,NULL,1,0,'2017-12-23T04:06:49.331Z','','1970-01-01T00:00:00.000Z');
@@ -60,13 +60,13 @@ INSERT INTO branches VALUES('vWch9vHEIsKw','OZKicr536m7U','YULCKCrWJJZ6',8,NULL,
INSERT INTO branches VALUES('p07f522OT9FP','oato1D7kuNU2','YULCKCrWJJZ6',9,NULL,0,0,'2018-08-28T20:50:22.231Z','LQlWJmL3RR','2018-08-28T20:50:22.231Z');
INSERT INTO branches VALUES('03YszmiIfe8B','C1I7GPA8ORO4','YULCKCrWJJZ6',10,NULL,0,0,'2018-08-28T20:50:22.236Z','uNgEmMMv59','2018-08-28T20:50:22.236Z');
INSERT INTO branches VALUES('iZJMJE9v4caq','gQNQaMBzRYdb','YULCKCrWJJZ6',11,NULL,0,0,'2018-08-28T20:50:22.242Z','OIMswfv8u0','2018-08-28T20:50:22.242Z');
-INSERT INTO branches VALUES('BgakZWX2NSoa','8LOr7xUMuWD4','1Heh2acXfPNt',17,NULL,0,0,'2018-08-28T20:50:36.080Z','l6e868XpLw','2018-08-28T20:50:36.079Z');
+INSERT INTO branches VALUES('BgakZWX2NSoa','8LOr7xUMuWD4','1Heh2acXfPNt',24,NULL,0,0,'2018-08-28T20:50:36.080Z','l6e868XpLw','2018-08-28T20:50:36.079Z');
INSERT INTO branches VALUES('6yEXb5xSww7E','qEi5St9PBPCP','8LOr7xUMuWD4',3,NULL,0,0,'2018-08-28T20:50:36.154Z','wiqkXVJhDQ','2018-08-28T20:50:36.154Z');
-INSERT INTO branches VALUES('WFBrWWGubT8N','IYKhW6LTUpwP','1Heh2acXfPNt',19,NULL,0,0,'2018-08-28T20:50:48.458Z','KaPAe+LyvC','2018-08-28T20:50:48.458Z');
+INSERT INTO branches VALUES('WFBrWWGubT8N','IYKhW6LTUpwP','1Heh2acXfPNt',28,NULL,0,0,'2018-08-28T20:50:48.458Z','KaPAe+LyvC','2018-08-28T20:50:48.458Z');
INSERT INTO branches VALUES('VEq36SudFqDe','L9qettZi0csz','IYKhW6LTUpwP',0,NULL,1,0,'2018-08-28T20:50:48.471Z','74RNaEVH/C','2018-08-28T20:50:48.470Z');
INSERT INTO branches VALUES('cnL65jQZPFng','Dyahpf7LroQY','IYKhW6LTUpwP',2,NULL,1,0,'2018-08-28T20:50:48.481Z','uY3Jzm+34n','2018-08-28T20:50:48.480Z');
INSERT INTO branches VALUES('jj5QAGAl31lB','nUgD4SYx2gt7','IYKhW6LTUpwP',4,NULL,1,0,'2018-08-28T20:50:48.507Z','sxhKcIO0Fo','2018-08-28T20:50:48.507Z');
-INSERT INTO branches VALUES('H4uX5U8UA3Fb','hL4rychNFWZs','IYKhW6LTUpwP',6,NULL,0,0,'2018-08-28T20:50:48.539Z','8/KA289XO5','2018-08-28T20:50:48.539Z');
+INSERT INTO branches VALUES('H4uX5U8UA3Fb','hL4rychNFWZs','IYKhW6LTUpwP',6,NULL,1,0,'2018-08-28T20:50:48.539Z','8/KA289XO5','2018-08-28T20:50:48.539Z');
INSERT INTO branches VALUES('r6XUe41mCgPY','gYVdjKAJeImD','hL4rychNFWZs',0,NULL,0,0,'2018-08-28T20:50:48.546Z','B8Zx5cyTRW','2018-08-28T20:50:48.546Z');
INSERT INTO branches VALUES('UPdB517CCSC6','vVhlPtM5YgWe','gYVdjKAJeImD',0,NULL,0,0,'2018-08-28T20:50:48.556Z','Ydd3hXIn5h','2018-08-28T20:50:48.556Z');
INSERT INTO branches VALUES('2lLNmlPp32DT','XVlWndK4Oh6A','hL4rychNFWZs',2,NULL,0,0,'2018-08-28T20:50:48.575Z','7KpHQIqICP','2018-08-28T20:50:48.575Z');
@@ -79,8 +79,8 @@ INSERT INTO branches VALUES('A56xlTT6rczp','YULCKCrWJJZ6','gDrEI7LFWqrP',0,NULL,
INSERT INTO branches VALUES('5cJwU0VlCJA7','WkdQrYTnsgxP','gDrEI7LFWqrP',1,NULL,0,0,'2018-08-29T16:03:24.889Z','RaGS8TUyuV','2018-08-28T20:50:22.250Z');
INSERT INTO branches VALUES('U4XC6g7oB4ME','Z5yhGE5g0UB5','gDrEI7LFWqrP',2,NULL,1,0,'2018-08-29T16:03:25.779Z','fAkVtlU455','2018-08-28T20:51:10.194Z');
INSERT INTO branches VALUES('bFGrKoCcHTD0','ucC6Zabv3Uml','gDrEI7LFWqrP',3,NULL,0,0,'2018-08-29T16:03:30.624Z','KWGpDGiWrq','2018-08-28T20:50:22.122Z');
-INSERT INTO branches VALUES('FIurtaYkU3mn','gDrEI7LFWqrP','1Heh2acXfPNt',18,NULL,0,0,'2018-08-29T16:03:27.894Z','+Jd+Zzgx2u','2018-08-28T20:50:21.931Z');
-INSERT INTO branches VALUES('bryQseMhyzaI','IlULcDiOTI4K','1Heh2acXfPNt',1,NULL,0,0,'2018-08-29T17:10:47.987Z','wX6dY3pq/D','1970-01-01T00:00:00.000Z');
+INSERT INTO branches VALUES('FIurtaYkU3mn','gDrEI7LFWqrP','1Heh2acXfPNt',26,NULL,0,0,'2018-08-29T16:03:27.894Z','+Jd+Zzgx2u','2018-08-28T20:50:21.931Z');
+INSERT INTO branches VALUES('bryQseMhyzaI','IlULcDiOTI4K','1Heh2acXfPNt',2,NULL,0,0,'2018-08-29T17:10:47.987Z','wX6dY3pq/D','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('u84s3tBBB92g','TlGCAdcfxkOT','eXHZAKsMYgur',2,NULL,0,0,'2018-08-29T17:11:16.550Z','Ei4ozqDMWi','2018-08-29T17:11:16.550Z');
INSERT INTO branches VALUES('yMhwsE7uvEij','3oldoiMUPOlr','HJusZTbBU494',1,NULL,1,0,'2018-08-29T17:20:59.012Z','7U4pIRsbwO','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('NTlSXCbgt5Va','Lt8IUldw7d7H','3RkyK9LI18dO',3,NULL,0,0,'2018-08-29T17:23:45.198Z','QjebjIeHUj','2018-08-29T17:23:45.198Z');
@@ -125,3 +125,4 @@ INSERT INTO branches VALUES('KgPU7QD19kBk','prjUbW6QtsL4','sXti7HgialF2',0,'DONE
INSERT INTO branches VALUES('iTtVoNfVBdex','d04CnuZxPXj2','nUgD4SYx2gt7',0,NULL,1,0,'2018-08-30T07:57:39.090Z','YuZ73fj3vz','2018-08-29T19:58:59.136Z');
INSERT INTO branches VALUES('7XqFyRCCbbFR','Lom0LEnCes1l','nUgD4SYx2gt7',1,NULL,0,0,'2018-08-30T08:04:45.853Z','xPKVn25yMG','2018-08-29T19:43:44.024Z');
INSERT INTO branches VALUES('5OwmqXXREhwW','uP3V8BqwXC05','sXti7HgialF2',2,'TODO',NULL,0,'2018-08-30T08:04:55.389Z','SBwS31n2Cp','2018-08-29T19:43:02.012Z');
+INSERT INTO branches VALUES('Bu2TmxdlNlTi','i3cLVxiO6GlW','1Heh2acXfPNt',3,NULL,0,0,'2018-09-01T11:47:59.762Z','imw6rHOkkw','2018-09-01T11:47:52.505Z');
diff --git a/db/main_notes.sql b/db/main_notes.sql
index da0eed970..bc74c3a39 100644
--- a/db/main_notes.sql
+++ b/db/main_notes.sql
@@ -1,4 +1,3 @@
-INSERT INTO notes VALUES('1Heh2acXfPNt','Trilium Demo','
Welcome to Trilium Notes!
This is initial document provided by default Trilium to showcase some of its features and also give you some ideas how you might structure your notes. You can play with it, modify note content and tree structure as you wish.
If you need any help, visit Trilium website: https://github.com/zadam/trilium
Once you''re finished with experimenting and want to cleanup these pages, you can simply delete them all.
Trilium supports classic formatting like italic, bold, bold and italic. Of course you can add links like this one pointing to google.com
Ordered:
Unordered:
Whereof one cannot speak, thereof one must be silent”
– Ludwig Wittgenstein
',0,0,'2017-12-23T00:46:39.304Z','2017-12-23T04:08:45.445Z','text','text/html',''); INSERT INTO notes VALUES('ZC78NlmdXeC6','Linux','
Expand note on the left pane to see content.
',0,0,'2017-12-23T01:22:55.255Z','2017-12-23T18:08:10.381Z','text','text/html',''); INSERT INTO notes VALUES('NncfGH8dyNjJ','Programming','Expand note on the left pane to see content.
',0,0,'2017-12-23T01:23:02.584Z','2017-12-23T18:08:20.179Z','text','text/html',''); INSERT INTO notes VALUES('eouCLkjbruai','Java','',0,0,'2017-12-23T01:23:28.291Z','2017-12-23T01:23:31.944Z','text','text/html',''); @@ -92,15 +91,17 @@ INSERT INTO notes VALUES('cwPuYRAGKtUi','19 - Tuesday','',0,0,'2018-08-29T17:29: INSERT INTO notes VALUES('7H3OrcgB8Io6','Meeting minutes','bla bla bla ...
',0,0,'2018-08-29T21:26:55.803Z','2018-08-29T21:27:10.698Z','text','text/html','Ihj8K5PcrT'); INSERT INTO notes VALUES('tX80udgxnW5n','18 - Monday','Miscellaneous notes done on monday ...
Interesting video: https://www.youtube.com/watch?v=_eSAF_qT_FY&feature=youtu.be
',0,0,'2018-08-29T17:29:24.548Z','2018-08-29T21:28:50.683Z','text','text/html','3ZuNMUCKI6'); INSERT INTO notes VALUES('qEi5St9PBPCP','Button',replace('api.addButtonToToolbar({\n title: ''Weight Tracker'',\n icon: ''star'',\n action: () => api.activateNote(''8LOr7xUMuWD4'')\n});','\n',char(10)),0,0,'2018-08-28T20:50:36.150Z','2018-08-28T21:01:26.563Z','code','application/javascript;env=frontend','N9f0m+DlQA'); -INSERT INTO notes VALUES('YBAcWV8TjYEp','Implementation','',0,0,'2018-08-28T20:55:00.059Z','2018-08-29T22:13:50.702Z','code','text/html','tUdg2+0sAD'); INSERT INTO notes VALUES('kV2NwNNvepGF','JS code',replace('async function getChartData() {\n const days = await api.runOnServer(async () => {\n const notes = await api.getNotesWithLabel(''weight'');\n const days = [];\n\n for (const note of notes) {\n const date = await note.getLabelValue(''dateNote'');\n const weight = parseFloat(await note.getLabelValue(''weight''));\n\n if (date && weight) {\n days.push({ date, weight });\n }\n }\n\n days.sort((a, b) => a.date > b.date ? 1 : -1);\n\n return days;\n });\n\n const datasets = [\n {\n label: "Weight (kg)",\n backgroundColor: ''red'',\n borderColor: ''red'',\n data: days.map(day => day.weight),\n fill: false,\n spanGaps: true,\n datalabels: {\n display: false\n }\n }\n ];\n\n return {\n datasets: datasets,\n labels: days.map(day => day.date)\n };\n}\n\nconst ctx = $("#canvas")[0].getContext("2d");\n\nnew chartjs.Chart(ctx, {\n type: ''line'',\n data: await getChartData()\n});','\n',char(10)),0,0,'2018-08-28T20:50:36.092Z','2018-08-29T22:14:00.701Z','code','application/javascript;env=frontend','w+OzbwCEwQ'); INSERT INTO notes VALUES('Dk5RGYzufXg3','JS code',replace('const persons = await api.runOnServer(async () => {\n const relationMapping = {\n isPartnerOf: "isPartnerOf",\n isChildOf: "hasChild",\n hasChild: "isChildOf"\n };\n \n const familyContainer = await api.originEntity.getRelationTarget(''familyContainer'');\n \n const persons = await familyContainer.findNotesWithLabel(''person'');\n const map = {};\n \n for (const person of persons) {\n const src = map[person.noteId] = map[person.noteId] || {};\n src.title = person.title;\n src.dateOfBirth = await person.getLabelValue(''dateOfBirth'') || '''';\n src.dateOfDeath = await person.getLabelValue(''dateOfDeath'') || '''';\n \n for (const relation of await person.getRelations()) {\n src[relation.name] = src[relation.name] || [];\n src[relation.name].push(relation.value);\n \n const trg = persons[relation.value] = persons[relation.value] || {};\n const inverseRelation = relationMapping[relation.name];\n \n trg[inverseRelation] = trg[inverseRelation] || [];\n trg[inverseRelation].push(person.noteId);\n }\n }\n \n return map;\n});\n\n// Create the input graph\nvar g = new dagreD3.graphlib.Graph()\n .setGraph({\n rankdir: "TB",\n ranksep: 100\n })\n .setDefaultEdgeLabel(function() { return {}; });\n\nfor (const noteId in persons) {\n const person = persons[noteId];\n \n const noteLink = await api.createNoteLink(noteId);\n \n g.setNode(noteId, { labelType: ''html'', label: noteLink[0].outerHTML \n + `
Elizabeth II (Elizabeth Alexandra Mary; born 21 April 1926)[a] is Queen of the United Kingdom and the other Commonwealth realms.
Elizabeth was born in London as the first child of the Duke and Duchess of York, later King George VI and Queen Elizabeth, and she was educated privately at home. Her father acceded to the throne on the abdication of his brother King Edward VIII in 1936, from which time she was the heir presumptive. She began to undertake public duties during the Second World War, serving in the Auxiliary Territorial Service. In 1947, she married Philip, Duke of Edinburgh, a former prince of Greece and Denmark, with whom she has four children: Charles, Prince of Wales; Anne, Princess Royal; Andrew, Duke of York; and Edward, Earl of Wessex.
When her father died in February 1952, she became Head of the Commonwealth and queen regnant of seven independent Commonwealth countries: the United Kingdom, Canada, Australia, New Zealand, South Africa, Pakistan, and Ceylon.
',0,0,'2018-08-28T20:50:22.196Z','2018-08-29T22:32:40.728Z','text','text/html','Fno0n5c24z'); INSERT INTO notes VALUES('prjUbW6QtsL4','Buy a board game for Alice','
Maybe CodeNames? https://boardgamegeek.com/boardgame/178900/codenames
',0,0,'2018-08-29T19:46:42.135Z','2018-08-30T07:54:16.980Z','text','text/html','p1mvpEr0ca'); INSERT INTO notes VALUES('IYKhW6LTUpwP','Task manager','This is a simple TODO/Task manager. You can see some description and explanation here: https://github.com/zadam/trilium/wiki/Task-manager
',0,0,'2018-08-28T20:50:48.441Z','2018-08-30T20:30:03.023Z','text','text/html','Zja0huapqL'); INSERT INTO notes VALUES('3RkyK9LI18dO','Journal','You can read some explanation on how this journal works here: https://github.com/zadam/trilium/wiki/Day-notes
',0,0,'2017-12-23T01:20:04.181Z','2018-08-30T20:30:53.042Z','text','text/html','Ul+t07+mD1'); INSERT INTO notes VALUES('rz5t0r9Qr2WC','Epics','Epic is kind of medium-term events or projects spread over days or months.
Remember that Trilium is all free form so you can organise your stuff in whatever way you''d like.
',0,0,'2017-12-23T03:45:20.914Z','2018-08-30T20:31:11.551Z','text','text/html','SF+DWpKAYW'); INSERT INTO notes VALUES('root','root','
This is a root of the note tree, it is the "ancestor" of all notes.
',0,0,'2017-12-22T11:41:07.000Z','2018-08-30T20:32:58.029Z','text','text/html','dWViNNtQWM'); +INSERT INTO notes VALUES('1Heh2acXfPNt','Trilium Demo','Welcome to Trilium Notes!
This is initial "demo" document provided by default Trilium to showcase some of its features and also give you some ideas how you might structure your notes. You can play with it, modify note content and tree structure as you wish.
If you need any help, visit Trilium website: https://github.com/zadam/trilium
Once you''re finished with experimenting and want to cleanup these pages, you can simply delete them all.
Trilium supports classic formatting like italic, bold, bold and italic. Of course you can add links like this one pointing to google.com
Ordered:
Unordered:
',0,0,'2017-12-23T00:46:39.304Z','2018-09-01T11:41:46.778Z','text','text/html','4jxapbMigi'); +INSERT INTO notes VALUES('YBAcWV8TjYEp','Implementation',replace('See explanation here.\n\n','\n',char(10)),0,0,'2018-08-28T20:55:00.059Z','2018-09-01T11:44:41.765Z','code','text/html','+mtQ+1OT7B'); +INSERT INTO notes VALUES('Z5yhGE5g0UB5','Implementation',replace('See explanation here.\n\n','\n',char(10)),0,0,'2018-08-28T20:51:10.186Z','2018-09-01T11:45:01.572Z','code','text/html','Q0gufHRIeL'); +INSERT INTO notes VALUES('i3cLVxiO6GlW','School schedule','Whereof one cannot speak, thereof one must be silent”
– Ludwig Wittgenstein
Monday | Tuesday | Wednesday | Thursday | Friday | |
---|---|---|---|---|---|
9:00-10:30 | P.E. | Math | Computer Science | ||
11:00-12:30 | History | English | Physics | Math | |
13:00-14:30 | Computer Science | Chemistry | Physics Lab | Geography | |
15:00-16:30 | Computer Science | Latin |