tiro-notes 0.27.37 → 0.27.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,100 +1,105 @@
1
- # TIRO NOTES
1
+ # Tiro Notes
2
2
 
3
- ![Tiro-desktop-exemple](https://user-images.githubusercontent.com/2981891/150394718-bf33d239-6ada-4548-bde5-88dce5eaeca2.jpg)
3
+ Open-source, fast and supercharged markdown editor to be used anywhere
4
4
 
5
- ## GOAL
5
+ ![tiro-notes](https://user-images.githubusercontent.com/2981891/159723385-a6ab2fc8-c9b4-4019-9a54-a40382ad45bb.jpeg)
6
6
 
7
- Tiro Notes is a light markdown note editor flexible enough to be used on all your devices.
7
+ ## WHY
8
8
 
9
- Aims to offer all functionalities expected from applications like Evernote, Onenote, Joplin etc...
9
+ Tiro Notes is designed to be a viable open source alternative to proprietary software like Evernote, OneNote etc.
10
10
 
11
- While keeping all your datas in a simple folder with markdown files you can edit and sync anywhere else.
11
+ Tiro Notes focus points are :
12
12
 
13
- - No database, only markdown files
14
- - Fast and lightweight
15
- - Web-based (can be installed on a server, accessed on any device with a browser)
16
- - Windows/Mac/Linux standalone applications
17
- - Can be installed on Android with termux
13
+ - 👼 **Open source & free**: Code is open source, free forever. Optimistically reaching a GNU GPLv3 license in the future.
14
+ - 👑 **Own your data**: No database, no hidden ties. Markdown files only. You can edit and sync your files with external software as you need.
18
15
 
19
- ## INSTALLATION
20
16
 
21
- ### COMMAND LINE ONE LINER
22
- - you need nodejs and npm installed (v14 minimum)
23
- - you need ripgrep installed (https://github.com/BurntSushi/ripgrep)
17
+ - 🚅 **Fast**: Search is really fast (using ripgrep). You can scroll list of several thousands of items without slowdown.
18
+ - 💅 **Nice**: Usability & nice user experience is key aspect of Tiro.
24
19
 
25
- ```
26
- npx tiro-notes (-p, --port 3023)
27
- ```
28
-
29
- - Go to localhost:3023
30
20
 
31
- ### APPS (Coming...)
32
-
33
- Mac/Linux/Windows Electron Apps coming soon...
21
+ - 📟 **Use it anywhere** : Apps for Windows, Mac, Linux. You can install and start Tiro within seconds with npx. You can install it on Android and iOS. You can use it as web server and use it with any device with a browser.
22
+ - 🏋 **Extensible** : custom and extensible markdown tags like [[latex]] or [[script]] or with third party plugins (planned).
34
23
 
24
+ ## FUNCTIONALITIES
25
+ <details>
26
+ <summary>Expand all functionalities</summary>
27
+
28
+
29
+ **Note Edition**
30
+ - 🖊️ Mardown notes edition
31
+ - 🌄 Drag and Drop images & files upload (stored in a relative .resources folder)
32
+ - 🔗 Notes linking
33
+ - 🔑 End to end (E2E) note encryption (RSA 2048)
34
+ - 🏛 Note changes history
35
+ - 📄 Export to PDF
36
+ - 🏋 Embed videos and other web content (with iframe)
37
+ - 🏋 create javascript applications within your note with [[script]]
38
+ - 💱 display math formulas with [[latex]]
39
+ - (🔧) 💬 Text to Speech (beta)
40
+ - (🔧) 🧬 display UML and other diagrams with [[diagram]] (planned...)
41
+ - (🔧) 📡 Server Collaborative edition (planned...)
35
42
 
36
- ## CURRENT STATUS
37
- I have been developing it for over a year and using it as my daily note app for over 6 months now, its core functionalities seems stable enough for my use so far.
38
- I haven't been loosing any data so far, and there is always the history note functionality in that case.
43
+ **Search**
44
+ - 🔍 Fast search (~2s for 30k notes)
45
+ - 🔬 Search filters (intitle: etc...)
39
46
 
40
- However, I consider that application still in alpha phase, it still needs a lot of testing to be considered robust.
47
+ **Folders Tree & Notes List**
48
+ - 🗂️ Folders management (create/rename/move/delete)
49
+ - 🏎️ Fast Notes List (can display 10k files without slowdown)
50
+ - 🧮 Notes List sorting (date creation/date modification/name)
51
+ - 👁️ Note preview in Notes List (with image and text)
52
+ - 📤 Last notes edited
53
+ - 🌄 Images list view
41
54
 
42
- So use it at your own risk, and always with data you can afford to lose.
55
+ **Security**
56
+ - 🔒 Application login (user/password)
57
+ - 🔒 HTTPS support (with self signed certificate)
43
58
 
44
- I am not responsible of any data loss!
59
+ **Platforms**
60
+ - 💻 Windows/Mac/Linux applications
61
+ - 🥷 10 seconds install & start with command line NPX
62
+ - 📱 Install on Android with Termux and NPX
63
+ - ☁️ Use it as a local application, as a local or cloud server.
64
+ - 📟 Use it on any device with a browser (Mobile, tablet and Desktop interface)
65
+ - (🔧)📱 Install on iOS with iSH and NPX (to be tested...)
66
+ </details>
45
67
 
46
- ## FUNCTIONALITIES & DEV ETA OVERVIEW
68
+ ## USAGE
69
+ ### 1) COMMAND LINE
70
+ - Requirements : [NodeJs](https://nodejs.org/en/download/) and [RipGrep](https://github.com/BurntSushi/ripgrep)
47
71
 
48
72
  ```
49
- ... = working on it
50
- |---------------------+-----------------------------------+---------|
51
- | TYPE | FUNCTION | STATUS |
52
- |---------------------+-----------------------------------+---------|
53
- | Note Edition | markdown dual editor | OK |
54
- | | note id, note tags, note link | OK |
55
- | | attach image/document | OK |
56
- | | drag and drop | OK |
57
- | | note encryption | OK |
58
- | | note images as slideshow | OK |
59
- | | [[latex]] support | OK |
60
- | | [[script]] support | OK |
61
- | | note history | OK |
62
- | | note download (pdf via print) | Beta |
63
- | | text to speech | Beta |
64
- | | collaborative edition | Planned |
65
- |---------------------+-----------------------------------+---------|
66
- | Notes list | Notes Infinite scroll list | OK |
67
- | | Image gallery view | OK |
68
- | | Sort List | OK |
69
- | | Last Notes edited (per device) | OK |
70
- | | Notes Management (CRUD) | OK |
71
- | | Folder management (CRUD) | OK |
72
- |---------------------+-----------------------------------+---------|
73
- | Note Search | Searching note from content | OK |
74
- | | Searching note from title | OK |
75
- |---------------------+-----------------------------------+---------|
76
- | Desktop Application | Nodejs application | OK |
77
- | | Windows/Mac/linux | ... |
78
- | | Cli via NPX | ... |
79
- |---------------------+-----------------------------------+---------|
80
- | Mobile Applications | Android (via termux) | OK |
81
- | | Mobile/tablet interface | OK |
82
- |---------------------+-----------------------------------+---------|
83
- | Other | Application login (user/password) | OK |
84
- | | | |
85
- |---------------------+-----------------------------------+---------|
73
+ npx tiro-notes
86
74
  ```
87
75
 
76
+ <img src="https://user-images.githubusercontent.com/2981891/159723396-b5e81dcd-a4aa-4581-9b7f-e3b62bcdef65.gif" width="600"/>
77
+
78
+ This works with any platform/device, including unrooted Android with [Termux](https://termux.com) and possibly iOS with iSH (untested)
79
+
80
+
81
+ ### 2) APPS (Coming...)
82
+ Mac/Linux/Windows Electron Apps coming soon...
83
+
88
84
  # FAQ
89
85
 
90
86
  ## How can I sync my notes folder on other devices?
91
87
  You can use any sync solution like dropbox, google drive, resilio sync, syncthings etc...
92
88
 
93
89
  ## Can I edit my notes on another application?
94
- Yes, all the datas Tiro uses is coming from markdown notes
90
+ Yes, all the datas Tiro uses is coming from markdown notes. So you can edit your notes in other applications without any problem.
95
91
 
96
92
  ## How can I access to Tiro on my device
97
93
  1) Device where tiro is installed : http://localhost:3023
98
94
  2) If on same local network: http://192.168.xx.xx:3023 where that ip is the ip of the device where tiro is installed
99
- 3) Not on same network : Tiro works great using SSH tunneling, AutoSSH or similar (free ssh tunnels solutions exists like https://opentunnel.net/)
95
+ 3) Not on same network : Tiro works great using SSH tunneling, AutoSSH or similar (free ssh tunnels solutions exists like https://opentunnel.net/). Npx tiro-notes also includes a --tunnel option for easy tunneling.
96
+
97
+ ## What is the current status of Tiro Notes?
98
+ I have been developing it for over a year and using it as my daily note app for over 6 months now, its core functionalities seems stable enough for my use so far.
99
+ I haven't been loosing any data so far, and there is always the history note functionality in that case.
100
100
 
101
+ However, I consider that application still in alpha phase, it still needs a lot of testing to be considered robust.
102
+
103
+ So use it at your own risk, and always with data you can afford to lose.
104
+
105
+ I am not responsible of any data loss!
Binary file
Binary file
Binary file
@@ -2,10 +2,10 @@
2
2
  "files": {
3
3
  "static/js/0.40037241.chunk.js": "/static/js/0.40037241.chunk.js",
4
4
  "static/js/1.38ac7bc7.chunk.js": "/static/js/1.38ac7bc7.chunk.js",
5
- "main.js": "/static/js/main.3ac3574a.chunk.js",
5
+ "main.js": "/static/js/main.4ed9feab.chunk.js",
6
6
  "runtime-main.js": "/static/js/runtime-main.22f9cc81.js",
7
7
  "static/css/4.f758ca10.chunk.css": "/static/css/4.f758ca10.chunk.css",
8
- "static/js/4.de802939.chunk.js": "/static/js/4.de802939.chunk.js",
8
+ "static/js/4.8778fc23.chunk.js": "/static/js/4.8778fc23.chunk.js",
9
9
  "static/js/5.50de1ade.chunk.js": "/static/js/5.50de1ade.chunk.js",
10
10
  "static/js/6.45fa190b.chunk.js": "/static/js/6.45fa190b.chunk.js",
11
11
  "static/js/7.26d043b6.chunk.js": "/static/js/7.26d043b6.chunk.js",
@@ -80,7 +80,7 @@
80
80
  "static/js/76.bdaad737.chunk.js": "/static/js/76.bdaad737.chunk.js",
81
81
  "static/js/77.46998b3c.chunk.js": "/static/js/77.46998b3c.chunk.js",
82
82
  "index.html": "/index.html",
83
- "static/js/4.de802939.chunk.js.LICENSE.txt": "/static/js/4.de802939.chunk.js.LICENSE.txt",
83
+ "static/js/4.8778fc23.chunk.js.LICENSE.txt": "/static/js/4.8778fc23.chunk.js.LICENSE.txt",
84
84
  "static/js/70.0c986255.chunk.js.LICENSE.txt": "/static/js/70.0c986255.chunk.js.LICENSE.txt",
85
85
  "static/media/codicon.css": "/static/media/codicon.0e0f4555.ttf",
86
86
  "static/media/compact-disc-solid.55b6e50c.svg": "/static/media/compact-disc-solid.55b6e50c.svg",
@@ -103,7 +103,7 @@
103
103
  "entrypoints": [
104
104
  "static/js/runtime-main.22f9cc81.js",
105
105
  "static/css/4.f758ca10.chunk.css",
106
- "static/js/4.de802939.chunk.js",
107
- "static/js/main.3ac3574a.chunk.js"
106
+ "static/js/4.8778fc23.chunk.js",
107
+ "static/js/main.4ed9feab.chunk.js"
108
108
  ]
109
109
  }
package/client/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Tiro</title><link href="/static/css/4.f758ca10.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,o,f=t[0],d=t[1],b=t[2],i=0,l=[];i<f.length;i++)o=f[i],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&l.push(a[o][0]),a[o]=0;for(n in d)Object.prototype.hasOwnProperty.call(d,n)&&(e[n]=d[n]);for(u&&u(t);l.length;)l.shift()();return c.push.apply(c,b||[]),r()}function r(){for(var e,t=0;t<c.length;t++){for(var r=c[t],n=!0,f=1;f<r.length;f++){var d=r[f];0!==a[d]&&(n=!1)}n&&(c.splice(t--,1),e=o(o.s=r[0]))}return e}var n={},a={3:0},c=[];function o(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.e=function(e){var t=[],r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var c,f=document.createElement("script");f.charset="utf-8",f.timeout=120,o.nc&&f.setAttribute("nonce",o.nc),f.src=function(e){return o.p+"static/js/"+({}[e]||e)+"."+{0:"40037241",1:"38ac7bc7",5:"50de1ade",6:"45fa190b",7:"26d043b6",8:"1dbff36b",9:"31e31d33",10:"c848e026",11:"660cc979",12:"7aded118",13:"a80d8e33",14:"f2d8ffae",15:"fbf2a8f7",16:"960345fd",17:"5c9c9b1f",18:"dbde1501",19:"1029cf37",20:"32bdbb62",21:"375c5cf1",22:"f10fbc1b",23:"810dbe72",24:"3b01dde7",25:"410d995e",26:"cb89acda",27:"47d45a66",28:"76b97580",29:"b82ef713",30:"cf5da418",31:"18a57c2f",32:"50db76e6",33:"27731945",34:"31414215",35:"db6b604e",36:"39a5380e",37:"8230c448",38:"bd36e3c2",39:"a31499d6",40:"e2b07aca",41:"4aee5b37",42:"8e99f687",43:"4bf4b241",44:"2d850d0b",45:"7532c4e4",46:"9820f7e4",47:"1bc9b4bc",48:"c07bda49",49:"f9bdaed2",50:"7e7891fe",51:"cfcb97d5",52:"4878cb2a",53:"ebe84207",54:"687e0d9d",55:"8a2e699e",56:"dfdbe6e5",57:"96c3f7a8",58:"a4bc3531",59:"a09faea0",60:"da4455c4",61:"fe1a22fd",62:"ccd5662c",63:"5c3752a8",64:"682a1b2c",65:"c3849163",66:"70c573a9",67:"79c606aa",68:"d3c72da9",69:"873139bf",70:"0c986255",71:"0e2b96ff",72:"b2416b54",73:"0bda3749",74:"a0f5182f",75:"8ac1b164",76:"bdaad737",77:"46998b3c"}[e]+".chunk.js"}(e);var d=new Error;c=function(t){f.onerror=f.onload=null,clearTimeout(b);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+n+": "+c+")",d.name="ChunkLoadError",d.type=n,d.request=c,r[1](d)}a[e]=void 0}};var b=setTimeout((function(){c({type:"timeout",target:f})}),12e4);f.onerror=f.onload=c,document.head.appendChild(f)}return Promise.all(t)},o.m=e,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/",o.oe=function(e){throw console.error(e),e};var f=this["webpackJsonptiro-notes-client"]=this["webpackJsonptiro-notes-client"]||[],d=f.push.bind(f);f.push=t,f=f.slice();for(var b=0;b<f.length;b++)t(f[b]);var u=d;r()}([])</script><script src="/static/js/4.de802939.chunk.js"></script><script src="/static/js/main.3ac3574a.chunk.js"></script></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Tiro</title><link href="/static/css/4.f758ca10.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,o,f=t[0],d=t[1],b=t[2],i=0,l=[];i<f.length;i++)o=f[i],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&l.push(a[o][0]),a[o]=0;for(n in d)Object.prototype.hasOwnProperty.call(d,n)&&(e[n]=d[n]);for(u&&u(t);l.length;)l.shift()();return c.push.apply(c,b||[]),r()}function r(){for(var e,t=0;t<c.length;t++){for(var r=c[t],n=!0,f=1;f<r.length;f++){var d=r[f];0!==a[d]&&(n=!1)}n&&(c.splice(t--,1),e=o(o.s=r[0]))}return e}var n={},a={3:0},c=[];function o(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.e=function(e){var t=[],r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var c,f=document.createElement("script");f.charset="utf-8",f.timeout=120,o.nc&&f.setAttribute("nonce",o.nc),f.src=function(e){return o.p+"static/js/"+({}[e]||e)+"."+{0:"40037241",1:"38ac7bc7",5:"50de1ade",6:"45fa190b",7:"26d043b6",8:"1dbff36b",9:"31e31d33",10:"c848e026",11:"660cc979",12:"7aded118",13:"a80d8e33",14:"f2d8ffae",15:"fbf2a8f7",16:"960345fd",17:"5c9c9b1f",18:"dbde1501",19:"1029cf37",20:"32bdbb62",21:"375c5cf1",22:"f10fbc1b",23:"810dbe72",24:"3b01dde7",25:"410d995e",26:"cb89acda",27:"47d45a66",28:"76b97580",29:"b82ef713",30:"cf5da418",31:"18a57c2f",32:"50db76e6",33:"27731945",34:"31414215",35:"db6b604e",36:"39a5380e",37:"8230c448",38:"bd36e3c2",39:"a31499d6",40:"e2b07aca",41:"4aee5b37",42:"8e99f687",43:"4bf4b241",44:"2d850d0b",45:"7532c4e4",46:"9820f7e4",47:"1bc9b4bc",48:"c07bda49",49:"f9bdaed2",50:"7e7891fe",51:"cfcb97d5",52:"4878cb2a",53:"ebe84207",54:"687e0d9d",55:"8a2e699e",56:"dfdbe6e5",57:"96c3f7a8",58:"a4bc3531",59:"a09faea0",60:"da4455c4",61:"fe1a22fd",62:"ccd5662c",63:"5c3752a8",64:"682a1b2c",65:"c3849163",66:"70c573a9",67:"79c606aa",68:"d3c72da9",69:"873139bf",70:"0c986255",71:"0e2b96ff",72:"b2416b54",73:"0bda3749",74:"a0f5182f",75:"8ac1b164",76:"bdaad737",77:"46998b3c"}[e]+".chunk.js"}(e);var d=new Error;c=function(t){f.onerror=f.onload=null,clearTimeout(b);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+n+": "+c+")",d.name="ChunkLoadError",d.type=n,d.request=c,r[1](d)}a[e]=void 0}};var b=setTimeout((function(){c({type:"timeout",target:f})}),12e4);f.onerror=f.onload=c,document.head.appendChild(f)}return Promise.all(t)},o.m=e,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/",o.oe=function(e){throw console.error(e),e};var f=this["webpackJsonptiro-notes-client"]=this["webpackJsonptiro-notes-client"]||[],d=f.push.bind(f);f.push=t,f=f.slice();for(var b=0;b<f.length;b++)t(f[b]);var u=d;r()}([])</script><script src="/static/js/4.8778fc23.chunk.js"></script><script src="/static/js/main.4ed9feab.chunk.js"></script></body></html>