* Update aho-corasick.js
Optimized Aho-Corasick string matching algorithm implementation with enhanced
performance and error handling for TiddlyWiki freelinking functionality.
- Uses WeakMap for failure links. WeakMap keys are compared by object identity
(reference equality), which is required here because trie nodes are plain
objects — a regular {} map would not work because JavaScript only supports
string and Symbol keys, forcing object keys to be coerced to strings.
- Outputs are merged at build time (classic AC optimization), eliminating the
need to walk the failure chain during search.
- search() converts case per character to avoid Unicode index desync (e.g.
Turkish İ expands under toLowerCase(), shifting subsequent indices).
- No match count cap in search(); truncation is handled at the render stage
by processTextWithMatches() to avoid silently dropping matches mid-text.
- Optional word boundary filtering: CJK always allowed; Latin requires
non-word characters on both sides.
* Update text.js
- Render output capped by $:/config/Freelinks/MaxLinks (default 500).
The cap applies to the final set of non-overlapping rendered links, not to
the raw search results: search always runs to completion so that the
longest-match selection has full information. Text beyond the cap remains
as plain text rather than being silently omitted.
* Create config-Freelinks-MAX_LINKS_TIDDLER.tid
setting for MAX_LINKS_TIDDLER
* Update and rename config-Freelinks-MAX_LINKS_TIDDLER.tid to config-Freelinks-MaxLinks.tid
fix typo
* Update settings.tid
add MaxLinks setting
* Update readme.tid
add MaxLinks setting text
* Create #9836.tid
release note
* Update tiddlywiki.info
add freelinks for test build
* Update macros-view.tid
fix structure problem
* Update text.js
add IGNORE_CASE_TIDDLER to whitelist
* Rename #9836.tid to #9836.tid
move to 5.4.1
* Update text.js
I deleted the wrong line last time, so I'm putting it back.
* Update text.js
eslint fix
* Update text.js
refactor: inline plain-text via dynamic core reference
* Delete plugins/tiddlywiki/freelinks/plain-text.js
remove plain-text.js: now inlined via dynamic core reference
* Update text.js
restore plain-text.js, remove new Function extraction
* Add files via upload
restore plain-text.js, remove new Function extraction
* Update #9836.tid
update new bug
* Update #9836.tid
tw version fix
* Update tiddlywiki.info
reverse to original
Welcome
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.
Demo
Learn more and see it in action at https://tiddlywiki.com/
Developer Documentation
Developer documentation is in progress at https://tiddlywiki.com/dev/
Pull Request Previews
Pull request previews courtesy of Netlify
Join the Community
User forums
Talk TiddlyWiki
As the official TiddlyWiki forum, Talk TiddlyWiki is a place to talk 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.
Google Groups
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
- tiddlywiki.com/dev is the official developer documentation
- Get involved in the development on GitHub
- GitHub Discussions are for Q&A and open-ended discussion
- GitHub Issues are for raising bug reports and proposing specific, actionable new ideas
- See Contributing for guidelines on how to contribute to the project.
Other forums
- TiddlyWiki Subreddit: /r/TiddlyWiki5
- Chat on Discord at https://discord.gg/HFFZVQ8
Installing TiddlyWiki on Node.js
TiddlyWiki is a SingleFileApplication, which is easy to use. For advanced users and developers there is a possibility to use a Node.js client / server configuration. This configuration is also used to build the TiddlyWiki SinglePageApplication
- Install Node.js
- Linux: Debian/Ubuntu:
apt install nodejs
May need to be followed up by:apt install npmArch Linuxyay -S tiddlywiki
(installs node and tiddlywiki) - Mac
brew install node - Android
- Other
- Linux:
- Open a command line terminal and type:
npm install -g tiddlywikiIf 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.4.0". You may also see other debugging information reported.)
- Try it out:
tiddlywiki mynewwiki --init serverto create a folder for a new wiki that includes server-related componentstiddlywiki mynewwiki --listento 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.13Using 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 --render ReadMe ./readme.htmlRunning 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.
Introduced in v5.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 --listenIntroduced in v5.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=8090See 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 tiddlywikiOn Mac or Linux you'll need to add sudo like this:
sudo npm update -g tiddlywikiAlso 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