Tiro notes 0.30.99
I have been quite busy working on Tiro and deploying it to the command line (npx tiro-notes@develop
), so I left aside the binary releases. Here is an update. The goal is to increase the frequency of binary releases to one every 1-2 months.
The changelog is extensive as a lot has been going on in terms of functionalities and bug fixes. Over 100 new functionalities have been added. Special emphasis has been placed on performance improvements and stability.
I am still struggling to document everything that is being released, so it will be done gradually on the Tiro Notes website and on the blog.
New functionalities
Omnibar
-
enable it : ctrl + space
-
search mode
-
explorer mode
-
omnibar plugin mode
-
last notes mode
-
omnibar note preview + editor working
Design
- being able to change color theme of the app
Editor
- switched from monaco to codemirror editor
- fold all code functionality button added
-
custom tags rendering inside the editor view
-
hover a note link to show its preview popup
- that preview can be directly edited
-
images and links directly rendering to the edition part of the markdown editor
-
latex support added (should add --latex on a note to enable it, then wrap the latex expressions around $my_latex_expression$
Editor Live edition
- when you edit a note, it will automatically auto update all windows with that note on all tiro clients connected.
- allows collaborative live edition (although tiro is not design as a collaborative solution).
Autocomplete snippet system
- typing "--" enable an editor autocomplete snippet system
- add "./.tiro/snippets.md" to add autocompletions
- supports javascript expressions like "time | ${new Date().toLocaleTimeString()}"
Mobile version
- almost all desktop functionalities work now on mobile
Ai Assistant
- AI assistant functionality added
- more details on blog post https://tiro-notes.org/blog/devlog/2023/06/agnostic-ai-assistant-into-tiro-notes.html/
Note export
- added the possibility to export to pdf, ppt, and docx using pandoc (to be installed on the system)
- still keeping the possibility to save in pdf/html the current note using the browser print api
History mode
-
switching the note history mode to a relative folder ./.history/mynotename/ for performance improvement
-
housekeeping note history performance improvement
-
local history note: even if offline (disconnected from tiro backend server), it will still create local note history.
Activity mode
- opt-out by default (can be enabled in the settings)
- adding a new activity mode that logs user activity
- can generate a report from the javascript console (ctrl+i) using api.activity.getReport()
Performance mode
- if you use tiro notes using cli (npx tiro-notes), if you use the option -v 3, you enable performance tracking mode
- can generate a report from the javascript console (ctrl+i) using api.performance.getReport()
Notifications system
- new notification system developped
- new api.ui.notification.emit
Command Execution system
- api.command.exec to execute any command from tiro interface
- api.command.stream to execute and stream the answer (for chatgpt api for instance)
Sound api
- api.audio.play added
- api.audio.stop added
Background tasks plugin
- allows to run plugin code in the background, useful for reminder plugins like the calendar or the new timer system
Lightbox system
- now clicking on an image opens a new lightbox system
- lightbox have a zoom system
- api.ui.lightbox.open added
Preview url system
- adding a preview url button
- adding a fetch the url content system (will fetch an url article content and displays it)
- adding a text-to-speech url system (will fetch the url content then opens the text to speech system
Text to speech system
- improving the text to speech system
- making it available across tiro and plugins using api.ui.textToSpeechPopup.open
Plugins system
-
extending the custom tag logic to a more global plugin system
-
should be loaded inside .tiro/plugins
-
you can now create plugins for the omnibar, the editor (custom tag) or for background tasks
-
will eventually replace the custom tags system
-
working on a plugin market store where one will be able to download and activate plugins from an interface
-
api added
- api.plugins.list
- api.plugins.get
- api.plugins.cronCache
Custom tags
- adding the possibility to open the custom tag in a popup, in fullscreen or in a floating side position
New custom tags
new epub custom tag
- allows you to read your epubs inside tiro
- combined with the text to speech functionality, allows you to listen to your books from tiro
- if using edge browser (for the case of tiro cli), you can access to high quality AI text to speech voices from microsoft
Commander custom tag
- allows to execute directly commands from tiro interface
Rss custom tag renamed to feed
- allows youtube feeds to be added to create your own youtube homepage
- bookmarking system
- adding categories
Graph custom tag
-
allows to see your notes content as a graph
-
creates connections from hashtags, so:
- #parent_node #child_note_1
- #parent_node #child_note_2
- would create a 3 points graph with parent node at the center
-
Allows to preview the note content from the graph by clicking on the node
Calendar plugin
- adding a calendar plugin with monthly view, notification reminder system and omnibar plugin
Timer plugin
- adding a omnibar countdown timer plugin
- that display a countdown on the interface of the current task
- that keep tracks of all the hours spent for each task
- (later : will display a timeline graph with all the hours spent on each task)
Weather plugin
- simple omnibar weather plugin that gives a 7 days conditions weather
Spreadsheet plugin
- creates a markdown table where we can execute excel formulas in it
Performance and stability
- huge bugfix and performance improvement
- switching from monaco to codemirror
- Switching to react 18 to improve performance
Mobile version
- editor is the same than on the desktop version thanks to codemirror mobile system
Api
-
big emphasis to as much functionalities as possible inside the tiro api to be accessible anywhere (including plugins).
-
full api testable on the console of the app/browser (ctrl+i > console > type api.)
-
api.cache.get/set added for easy backend storage solution
-
api.search.word
-
api.search.files
-
api.search.hashtags
-
api.ui.browser.goTo : make the interface jump to a specific file and folder
-
api.ui.notePreviewPopup.open : create a note preview popup
-
api.encryption.encryptText/decryptText
-
api.lastNotesApi.getAll()
-
api.ressource.download : download an url somewhere
-
api.ressource.fetch : download an url and return it as text
-
api.ressource.fetchUrlArticle : fetch an url content and returns its simplified article version (using mozilla readability.js)
Dev Api
- tiroDevCli.cache.clean_cache()
- tiroDevCli.cron.trigger()