1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-27 03:57:21 +00:00
A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc.
Go to file
Jeremy Ruston a8f70b08a8
Add indexes to the wiki store to improve performance (#3951)
* First pass at modular wiki indexes

An exploratory experiment

* Fix tests

* Faster checking for existence of index methods

We don't really need to check the type

* Use the index for the has operator

* Fix typo

* Move iterator index methods into indexer modules

Now boot.js doesn't know the core indexers

* Fix up the other iterator index functions

* Fix crash with missing index branch

* Limit the field indexer to values less than 128 characters

* Fallback to the old manual scan if the index method returns null
* Sadly, we can no longe re-use the field indexer to accelerate the `has` operator, because the index now omits tiddlers that have field values longer than the limit

Still need to make the index configuration exposed somehow

* Rearrange tests so that we can test with and without indexers

We also need to expose the list of enabled indexers as a config option

* Test the field indexer with different length fields

So that we test the indexed and non-indexed codepaths
2019-05-24 21:07:37 +01:00
bin Fix URL for innerwiki demo 2019-01-27 11:07:51 +00:00
boot Add indexes to the wiki store to improve performance (#3951) 2019-05-24 21:07:37 +01:00
core Add indexes to the wiki store to improve performance (#3951) 2019-05-24 21:07:37 +01:00
editions Add indexes to the wiki store to improve performance (#3951) 2019-05-24 21:07:37 +01:00
languages Update chinese translations (#3917) 2019-04-16 15:56:05 +01:00
licenses Merge remote-tracking branch 'origin/tiddlywiki-com' 2019-05-03 11:20:39 +01:00
plugins/tiddlywiki KaTeX: Fix bug with embedded SVGs 2019-05-11 17:31:35 +01:00
themes/tiddlywiki Fix sticky draggable-placeholders in list macros (firefox) (#3823) 2019-03-10 20:05:18 +00:00
.gitignore Ignore any node_modules directory 2015-12-19 18:47:58 +00:00
.jshintignore Ignore any node_modules directory 2015-12-19 18:47:58 +00:00
.npmignore Ignore any node_modules directory 2015-12-19 18:47:58 +00:00
.travis.yml CI: Remove non-functional attempt to set build timezone 2019-01-08 11:33:45 +00:00
contributing.md Change http://*.tiddlywiki.com/* to https:// 2017-11-11 11:56:20 +00:00
license Readme updates 2018-05-12 11:46:54 +01:00
package.json Version update for v5.1.20-prerelease 2018-12-20 17:27:36 +00:00
readme.md Automated readme update 2018-12-20 16:38:13 +00:00
tiddlywiki.js Make require() compliant with CommonJS Modules/1.1 2013-10-12 13:44:09 -04:00

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

Users

The TiddlyWiki discussion groups are mailing lists 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.

Developers

New releases of TiddlyWiki, TiddlyDesktop and TiddlyFox are announced via the discussion groups and Twitter (you can also subscribe to an Atom/RSS feed of TiddlyWiki releases from GitHub)

Documentation

There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: http://groups.google.com/group/tiddlywikidocs

Installing TiddlyWiki on Node.js

  1. Install Node.js
    • either from your favourite package manager: typically apt-get install nodejs on Debian/Ubuntu Linux or Termux for Android, or brew install node on a Mac
    • or directly from http://nodejs.org
  2. 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)

  3. Check TiddlyWiki is installed by typing:

    tiddlywiki --version

  4. In response, you should see TiddlyWiki report its current version (eg "5.1.18"; you may also see other debugging information reported)
  5. Try it out:
    1. tiddlywiki mynewwiki --init server to create a folder for a new wiki that includes server-related components
    2. tiddlywiki mynewwiki --listen to start TiddlyWiki
    3. Visit http://127.0.0.1:8080/ in your browser
    4. Try editing and creating tiddlers
  6. 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.

If you are using Debian or Debian-based Linux and you are receiving a 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

You can also install prior versions like this:

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 and TiddlyWikiFiles.

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.

The first 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 [<wikipath>] [--<command> [<arg>[,<arg>]]]

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

This readme file was automatically generated by TiddlyWiki