3fca82321e
* Switch from better-sqlite3 to node-sqlite3-wasm Seems to be slower, but might make cloud deployments easier by not having any binary dependencies * More logging * Temporarily use a memory database We will make this configurable * Revert "More logging" * Resume loading demo tiddlers * Cache prepared statements Gives a 20% reduction in startup time on my machine * Some more logging * Update package-lock * More logging * Route regexps should allow for proxies that automatically decode URLs Astonishingly, Azure does this * Go back to a file-based database * Less logging * Update package-lock.json * Simplify startup by not loading the docs edition * Tiddler database layer should mark statements as having been removed * Re-introduce better-sqlite3 * Make the SQLite provider be switchable * Support switchable SQL engines I am not intending to make this a long term feature. We will choose one engine and stick with it until we choose to change to another. * Adjust dependency versions * Setting up default engine * Make transaction handling compatible with node-sqlite3-wasm https://github.com/tndrle/node-sqlite3-wasm doesn't have transaction support so I've tried to implement it using SQL statements directly. @hoelzro do you think this is right? Should we be rolling back the transaction in the finally clause? It would be nice to have tests in this area... I looked at better-sqlite3's implementation - https://github.com/WiseLibs/better-sqlite3/blob/master/lib/methods/transaction.js * Default to better-sqlite3 for compatibility after merging |
||
---|---|---|
.github | ||
bin | ||
boot | ||
core | ||
editions | ||
languages | ||
licenses | ||
plugins/tiddlywiki | ||
themes/tiddlywiki | ||
.eslintignore | ||
.eslintrc.yml | ||
.gitignore | ||
.jshintignore | ||
.npmignore | ||
contributing.md | ||
license | ||
package-lock.json | ||
package.json | ||
playwright.config.js | ||
readme.md | ||
tiddlywiki.js |
Welcome to TiddlyWiki, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.
TiddlyWiki is a complete interactive wiki in JavaScript. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable WikiText.
Learn more and see it in action at https://tiddlywiki.com/
Developer documentation is in progress at https://tiddlywiki.com/dev/
Join the Community
Official Forums
The new official forum for talking about TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.
Note that talk.tiddlywiki.org is a community run service that we host and maintain ourselves. The modest running costs are covered by community contributions.
For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005):
https://groups.google.com/group/TiddlyWiki
Developer Forums
There are several resources for developers to learn more about TiddlyWiki and to discuss and contribute to its development.
- tiddlywiki.com/dev is the official developer documentation
- Get involved in the development on GitHub
- Discussions are for Q&A and open-ended discussion
- Issues are for raising bug reports and proposing specific, actionable new ideas
- The older TiddlyWikiDev Google Group is now closed in favour of GitHub Discussions but remains a useful archive: https://groups.google.com/group/TiddlyWikiDev
- An enhanced group search facility is available on mail-archive.com
- Follow @TiddlyWiki on Twitter for the latest news
- Chat at https://gitter.im/TiddlyWiki/public (development room coming soon)
Other Forums
- TiddlyWiki Subreddit
- Chat with Gitter at https://gitter.im/TiddlyWiki/public !
- Chat on Discord at https://discord.gg/HFFZVQ8
Documentation
There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: https://groups.google.com/group/tiddlywikidocs
Installing TiddlyWiki on Node.js
- Install Node.js
- Linux: Debian/Ubuntu:
apt install nodejs
May need to be followed up by:apt install npm
Arch Linuxyay -S tiddlywiki
(installs node and tiddlywiki) - Mac
brew install node
- Android
- Other
- Linux:
- Open a command line terminal and type:
npm install -g tiddlywiki
If it fails with an error you may need to re-run the command as an administrator:sudo npm install -g tiddlywiki
(Mac/Linux) - Ensure TiddlyWiki is installed by typing:
tiddlywiki --version
- In response, you should see TiddlyWiki report its current version (eg "5.3.3". You may also see other debugging information reported.)
- Try it out:
tiddlywiki mynewwiki --init server
to create a folder for a new wiki that includes server-related componentstiddlywiki mynewwiki --listen
to start TiddlyWiki- Visit http://127.0.0.1:8080/ in your browser
- Try editing and creating tiddlers
- Optionally, make an offline copy:
- click the save changes button in the sidebar, OR
tiddlywiki mynewwiki --build index
The -g
flag causes TiddlyWiki to be installed globally. Without it, TiddlyWiki will only be available in the directory where you installed it.
node: command not found
error though node.js package is installed, you may need to create a symbolic link between nodejs
and node
. Consult your distro's manual and whereis
to correctly create a link. See github issue 1434. Example Debian v8.0:
sudo ln -s /usr/bin/nodejs /usr/bin/node
npm install -g tiddlywiki@5.1.13
Using TiddlyWiki on Node.js
TiddlyWiki5 includes a set of commands for use on the command line to perform an extensive set of operations based on TiddlyWikiFolders, TiddlerFiles.
For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:
tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html
Running tiddlywiki
from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.
New in: 5.1.20 First, there can be zero or more plugin references identified by the prefix +
for plugin names or ++
for a path to a plugin folder. These plugins are loaded in addition to any specified in the TiddlyWikiFolder.
The next argument is the optional path to the TiddlyWikiFolder to be loaded. If not present, then the current directory is used.
The commands and their individual arguments follow, each command being identified by the prefix --
.
tiddlywiki [+<pluginname> | ++<pluginpath>] [<wikipath>] [--<command> [<arg>[,<arg>]]]
For example:
tiddlywiki --version
tiddlywiki +plugins/tiddlywiki/filesystem +plugins/tiddlywiki/tiddlyweb mywiki --listen
tiddlywiki ++./mygreatplugin mywiki --listen
New in: 5.1.18 Commands such as the ListenCommand that support large numbers of parameters can use NamedCommandParameters to make things less unwieldy. For example:
tiddlywiki wikipath --listen username=jeremy port=8090
See Commands for a full listing of the available commands.
Upgrading TiddlyWiki on Node.js
If you've installed TiddlyWiki on Node.js on the usual way, when a new version is released you can upgrade it with this command:
npm update -g tiddlywiki
On Mac or Linux you'll need to add sudo like this:
sudo npm update -g tiddlywiki
Also see
- Building TiddlyWikiClassic
- Customising Tiddler File Naming
- Environment Variables on Node.js
- Generating Static Sites with TiddlyWiki
- How to build a TiddlyWiki5 from individual tiddlers
- Installing custom plugins on Node.js
- Installing official plugins on Node.js
- Internet Information Services
- Installing TiddlyWiki Prerelease on Node.js
- MultiTiddlerFiles
- MultiTiddlerFileSyntax
- NamedCommandParameters
- Scripts for TiddlyWiki on Node.js
- Node.js on Termux
- TiddlerFiles
- tiddlywiki.files Files
- tiddlywiki.info Files
- TiddlyWikiFolders
- Uninstalling a plugin with Node.js
- Using a custom path prefix with the client-server edition
- Using TiddlyWiki for GitHub project documentation
- Working with the TiddlyWiki5 repository
This readme file was automatically generated by TiddlyWiki