1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-26 19:47:20 +00:00
Commit Graph

277 Commits

Author SHA1 Message Date
jeremy@jermolene.com
794dfb96f2 Don't try to process lazily loaded plugins
Fixes #4900
2020-10-23 15:37:20 +01:00
jeremy@jermolene.com
651fb777ab PasswordPrompt: Return the object so it can be modified 2020-10-14 12:41:33 +01:00
Arlen22
4f376fba35
Separate $tw.boot.startup into three functions (#4602)
* Update boot.js

* Update boot.js
2020-08-28 15:43:42 +01:00
Jeremy Ruston
7b53f5724c Add new compare filter operator
Fixes #4554
2020-04-13 10:03:01 +01:00
Jeremy Ruston
c7d8492842 Add support for woff2 files 2020-04-06 17:35:10 +01:00
Jeremy Ruston
9dd719ba32 Fix path.posix.sep which appears to be undefined on Travis CI 2020-02-04 14:24:57 +00:00
Lee Sheng Long
80b066f409
Fix support for zip files in some environments (#4432)
In some environments (at least on my own machine), TiddlyWiki detects zip files as type `"application/x-zip-compressed"` instead of `"application/zip"`. This commit adds support for zip files with type `"application/x-zip-compressed"` so that they are encoded in `"base64"` like other zip files with type `"application/zip"`.
2020-01-31 14:08:28 +00:00
Stefan Krüger
1ed884cef4 Add support for file type webm & ogg theora (#4404) 2020-01-04 11:27:13 +00:00
Jeremy Ruston
1c23059204
Dynamic loading/unloading of plugins (#4259)
* First pass at dynamic loading/unloading

* Show warning for changes to plugins containing JS modules

* Use $:/config/RegisterPluginType/* for configuring whether a plugin type is automatically registered

Where "registered" means "the constituent shadows are loaded".

* Fix the info plugin

The previous mechanism re-read all plugin info during startup

* Don't prettify JSON in the plugin library

* Indicate in plugin library whether a plugin requires reloading

* Display the highlighted plugin name in the plugin chooser

And if there's no name field fall back to the part of the title after the final slash.
2019-09-16 12:15:39 +01:00
Cameron Fischer
fb12807a33 Reverting changes to stringifyList (#4249)
I (Flibbles) changed it so that lists generated by stringifyList
would always be compatible with a filter parser, but since lists
are not, and never will be, a subset of filters, there isn't a
point.

More importantly, wrapping negative numbers like "-7" in brackets
would mess up some math stuff.
2019-09-09 14:56:40 +01:00
Cameron Fischer
67066fe86e Improve handling for titles starting with +-~= (#4084) (#4087)
* $tw.utils.stringifyList will wrap tiddlers starting with `+-~=` in brackets.
2019-08-24 12:35:03 +02:00
Jeremy Ruston
269fa5313f Fix for index ordering issue
Fixes #4082

This version removes selective updating of the tag index, instead completely clearing the index on each update. I'm investigating restoring that optimisation.
2019-07-28 16:39:34 +01:00
Jeremy Ruston
cbd07465f3 Fix test rig shadow tiddler behaviour
The test rig previously used a simplified implementation of shadow tiddlers which broke with the new indexing engine. There was also a problem that made that even if indexers were disabled they were still initialised.

This PR fixes both problems, in preparation for fixing #4082
2019-07-16 16:53:37 +01:00
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
Jeremy Ruston
feab75a6d1 Add support for preloading plugins by path instead of name 2019-05-24 12:06:11 +01:00
Jermolene
edd3156430 Improve loading/importing of JSON files
First part of fix for #3875

The idea is to do a better of job of distinguishing JSON files that contain tiddlers versus those that contain plain blobs of JSON that should be stored as a single application/json tiddler.

Under Node.js, .json files with an accompanying metafile are always treated as a JSON blob. Without a meta file, those that appear to not contain valid tiddlers are returned as a JSON blob, otherwise the tiddlers within the file are imported.

In the browser, we don't have .meta files so we rely on the valid tiddler check.
2019-04-13 14:47:27 +01:00
Jermolene
8c72a28f0c Add ability to load plugins via the command line
Fixes #3907
2019-04-12 18:09:16 +01:00
Jermolene
70f5dff81e Add a boot hook for modifying the tiddler store 2019-02-03 12:01:57 +00:00
Jermolene
689e172e79 Move some utility functions into boot.js
So that they are available to code running earlier in the boot process
2019-02-03 12:01:38 +00:00
Jermolene
7bc1458749 Boot: Enhance domMaker to support namespaces and styles 2019-02-01 10:43:14 +00:00
jed
baddd89abb Added flag to $tw.utils.parseStringArray to allow non-unique entries (#2027)
* Added flag to $tw.utils.parseStringArray to allow non-unique entries

With this change if you use $tw.utils.parseStringArray(list) you get identical behavior to before and enforces uniqueness in lists, but if you use $tw.utils.parseStringArray(list,true) it allows duplicate values in the list.

Because of how JavaScript handles overloaded functions this shouldn't have any affect on existing code that just passes one argument to the function.

* Update to hopefully remove merge conflicts
2018-10-21 16:58:41 +01:00
Jermolene
09112ed455 Add support for webp, heic, and heif image formats
https://en.wikipedia.org/wiki/WebP
https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
2018-08-21 11:46:46 +01:00
Jermolene
6b14969cf6 Display a warning for binary tiddlers in view mode
The base64 data is currently parsed as wikitext, which is slow and unhelpful

We already display the same warning for binary tiddlers in edit mode.
2018-05-18 17:53:07 +01:00
Mario Pietsch
760c80c655 BibTex plugin: Fix a problem with MIME types under Ubuntu 18.04
Ubuntu 18.04 returns text/x-bibtex for .bib files instead of application/x-bibtex.
2018-05-16 14:20:51 +01:00
Jermolene
78e734797b Remove extraneous test error
Left over from testing RSOE
2018-05-10 15:30:32 +01:00
Jermolene
98bafd0b69 Tweaks for RSOD adjustments 7468ad7
Better to centre the button
2018-05-10 15:29:31 +01:00
Mario Pietsch
7468ad7acf Make rsod less annoying (#2799)
* give js-error form its own CSS rules. error form should not exceed screen size

* fix whitespace
2018-05-10 14:45:50 +01:00
Jermolene
c64fc164fc Fix mime type for 2c7f467 2018-05-04 17:49:21 +01:00
Jermolene
2c7f467514 Add support for /*\ style metadata comments at the top of CSS files
Just as we already support for JS files
2018-05-04 17:38:30 +01:00
Arlen22
f4496d8fd3 Allow specifying a custom boot path (#2990) 2018-04-08 09:38:28 +01:00
Jermolene
57e1fc6cd8 Add file type for true type fonts 2017-12-21 22:02:04 +00:00
Jermolene
358d416526 Further optimisations to wiki store
These changes give us a minor performance improvement for adding and deleting tiddlers
2017-12-21 22:01:52 +00:00
Jermolene
254e1ca7f7 Optimise some tiddler store operations
I noticed that the rendering of a TOC with around 200 entries seemed frustratingly slow.

First, I analysed the execution of the code using the Chrome developer tools "timeline" tab: prepare by switching to the "Tools" tab, then start profiling, switch to the "Contents" tab, and then stop profiling once it has displayed. I then used the "bottom-up" view to dectermine that the various Object.keys() calls in the main wiki store were taking around 500ms of the overall time.

Before making any code changes, I also used TW's built in instrumentation to get some baseline timings: I found that the main refresh cycle was taking around 3.0s when rendering the Contents tab.

I then performed the attached simple optimisations of caching the list of tiddler titles and the list of shadow tiddler titles.

The results bring the overall main refresh time down to about 1.9s, a nearly 50% improvement.

The moral of the story is that the first rule of optimisation is measurement...
2017-12-21 15:46:01 +00:00
Tobias Beer
a2c764d407 enable doc contributions for dev (#3047)
* enable doc contributions for dev

fixes #2921

* involves changes to boot.js to properly build OriginalTiddlerPaths on
Windows
* added ContributionBanner
* added Sources tab to info panel
* updated tiddlywiki.info for dev

* normalize path separator to posix for windows

* more generically transform to posix
2017-12-12 13:50:33 +00:00
Jermolene
29364cbd08 Change http://*.tiddlywiki.com/* to https:// 2017-11-11 11:56:20 +00:00
Jermolene
95b84dd0ca Use filename as default title when loading tiddlers under Node
Fixing this regression gets the `classictools` plugin working again
2017-11-05 14:14:00 +00:00
Jermolene
378e00aee8 Give a warning message for missing plugin.info files 2017-09-12 15:53:52 +01:00
Jermolene
e471bd54d4 Update Stanford JavaScript Library to 1.0.7 2017-07-18 15:42:35 +01:00
Jermolene
596dfa1d50 Allow manual selection of deserializer for dropping or importing files 2017-07-12 16:42:16 +01:00
Jermolene
a4035d3424 Coding style tweaks for #2885 2017-06-09 16:21:39 +01:00
Arlen22
0bc325025a Add a callback to $tw.boot.boot() (#2885)
* Add a callback to $tw.boot.boot()

* Move callback into the options object

* Update boot.js
2017-06-09 16:20:12 +01:00
Jermolene
4b780899a5 Move SJCL license file into core plugin
It was added as a separate system tiddler, but that means updating a
lot of filters to add and exclude it as appropriate (as we do with
$:/library/sjcl.js itself)
2017-04-23 09:53:18 +01:00
Jermolene
8804278e6e Add OpenOffice docx and pptx file types 2017-03-17 14:20:17 +00:00
Jermolene
779e62a30f Add support for JSON files containing a single tiddler
At the moment, we support JSON files containing an array of tiddlers.
With this change the core will import files containing a single
tiddler. Also adding templates for saving individual tiddlers in JSON
format
2017-03-17 14:19:43 +00:00
Jermolene
9fc2086b71 Optimise sameday filter
I used this test:

console.time();for(var t=0; t<200; t++)
{$tw.wiki.filterTiddlers("[all[tiddlers+shadows]sameday[20170210]]");};c
onsole.timeEnd()

Before this patch, I got speeds of approx 190ms, versus 140ms
afterwards.

Note that the ability to add a cache property like this is only
possible because tiddler objects are immutable.
2017-02-21 08:31:05 +00:00
Jermolene
75b501f681 Optimise $tw.utils.parseStringArray()
On my machine, the following test performed on the prerelease improves
from 40ms to 8ms with this patch:

```
var a =
$tw.utils.stringifyList($tw.wiki.allTitles());console.time();$tw.utils.p
arseStringArray(a);console.timeEnd()
```
2017-02-19 18:08:15 +00:00
Jermolene
d5b04c2688 Fix problem with loading metafiles
This issue was introduced in 1b41b44684.

Fixes problem raised by @pmario in
https://github.com/Jermolene/TiddlyWiki5/commit/3708f6c8e4f4bf2ea1cb10b0
fa685888485f788a#commitcomment-20848240
2017-02-12 12:14:04 +00:00
Jermolene
1961db6732 Register alternate mime type for Markdown files
macOS considers them to be `text/markdown`, which meant that dragging
an .md file ended up with the wrong content type
2017-02-11 12:48:41 +00:00
Jermolene
6b2ab90721 Update hook mechanism so that multiple parameters can be passed 2017-02-09 15:42:21 +00:00
Jermolene
ad9769451d Add filename-uri-decoded support for tiddlywiki.files 2016-12-15 17:13:32 +00:00