1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-23 18:17:20 +00:00
Commit Graph

180 Commits

Author SHA1 Message Date
jeremy@jermolene.com
619c0752bd Add new sortsub operator 2020-04-25 11:26:19 +01:00
Cameron Fischer
2385bd978f
Fix importvariables crash (#4593)
* Fixed issue: multi nonMacro imports broke everything

* Fixed issue: dead variables in import might linger
2020-04-23 09:10:52 +01:00
Cameron Fischer
65347ae858
Fixed join filter operator to never returns null (#4396)
If the operator were passed an empty list, it would return null
which could cause some proceeding operators to crash.
2020-04-14 17:49:38 +01:00
Jeremy Ruston
7b53f5724c Add new compare filter operator
Fixes #4554
2020-04-13 10:03:01 +01:00
Rob Hoelz
72159c5118
Enable indexers in tag test (#4355)
Setting enableIndexers to an empty array ends up disabling all indexers
for the wiki
2020-04-07 20:44:26 +01:00
Rob Hoelz
ae04a425c0
Add backlinks indexer (#4421)
* Add tests for backlinks

* Add backlinks indexer

* Use backlinks indexer in getTiddlerBacklinks if available

* Extract link extraction into its own method

This way we can provide an arbitrary parse tree, rather than just a
title, which will allow us to compare lists of outgoing links between
versions of a single tiddler

* Use new extractLinks method in backlinks indexer

...rather than copy-pasting the implementation

* Remove ES6-isms

TiddlyWiki needs to work with browsers that only support ES5
2020-03-26 13:15:02 +00:00
Cameron Fischer
561662782e
Fixes issue with #4504 and importvariable copying (#4518)
* Fixes issue with #4504 and importvariable copying

ImportVariables widget was using $tw.utils.extend to copy the
variables from temporary set widgets into itself. However,
$tw.utils.extend does NOT behave like Object.assign. It not only
copies all self-owned variables over, but also all variables
in that object's prototype chain. This led to some redundant copying,
and a problem where some variables might show up more than once
(like transclusion).

Fixed now. importvariables widget does its own copying, since it
can't rely on $tw.utils.extend to do the right job, and it can't
count on Object.assign to be there.

* Added test to prevent reversion of #4504

* Slight corrections to new importvariables test
2020-03-19 20:32:51 +00:00
Mario Pietsch
db13e49724
More listops tests (#4409)
* add a new-line before the log text to increase readability of the test output

* make eslint, jslint happy

* make eslint happy

* add more listops tests

* new listops filter tests

* remove new-line

* make eslint happier.

* revert eslint settings
2020-01-31 14:09:06 +00:00
Cameron Fischer
aa817f66d2
Changed importVariable to store its own variables (#4108)
* Changed importVariable to store its ownvariables

Before, importVariables was creating a setWidget for every single variable it would find in its tiddlers, and it would create a long-ass call tree. Now, instead, it just accumulates the variables in itself.

* Can't use Object.assign

Learned the hardway while working on tw5-relink that Object.assign
doesn't exist in IE11. Using $tw.utils.extend instead.

* Retaining setWidget transclusion flexibility

* One more test to verify mixing sets and macros
2020-01-30 12:53:26 +00:00
Mario Pietsch
3aa5198c3e Update tests (#4392)
add 3 new tiddlers, add 1 "enlist" test, fix all tests that failed, because 3 new tiddlers where added. stopped ESLint to complain about global vars, fix some mixed-tab-space indent typos.
2019-12-19 13:38:09 +00:00
Marica Odagaki
613f0b2559 Upgrade to Jasmine 3 (#4226)
* process.exit() only exist in a node.js environment

* updateInterval has been removed from upstream

From upstream commit:
b6eb9a4d5e

* Update Jasmine to 3.4.0

* Reuse the evalInContext helper

* Fix expected parse result to match the actual result

* 'describe' cannot be nested inside 'it' blocks

Jasmine started to explicitly raise an error in these cases since:
https://github.com/jasmine/jasmine/pull/1411

* Be consistent about how to refer to library files

* Update link to Jasmine's official website
2019-11-12 21:42:38 +00: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
17711657b6 Add then and else operators
Fixes #4147
2019-08-02 14:27:58 +01:00
Jeremy Ruston
3afaa9de9a Add support for anchored searches 2019-07-31 21:36:12 +01:00
Jeremy Ruston
5faae2547d Add "match" operator for string comparison
Fixes #4130
2019-07-31 09:11:12 +01: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
c8d6f3b681 Fix tests for changes to split operator
We now retain any blank strings
2019-06-21 10:36:53 +01:00
Jeremy Ruston
630a0ecf9e Remove test for concat operator 2019-06-13 16:55:55 +01:00
Jeremy Ruston
dd7837d164 Fix issue with allafter operator
Fixes #3962
2019-06-11 09:38:14 +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
Jermolene
9d7d3fefa0 Split operator: Remove empty strings when splitting
See the discussion on 9b2d527; thanks @kookma
2019-02-08 15:59:07 +00:00
Jermolene
adb07ccba0 Add a test for all filter with blank operand
Actually quite a useful way to get all of the tiddlers that were passed into the filter.
2019-02-07 17:59:12 +00:00
Jermolene
158f96a207 Fix split operator testcase 2019-02-07 12:48:23 +00:00
Jermolene
dc29acd656 Fixed bug with split operator 2019-02-07 12:45:07 +00:00
Jermolene
9b2d52716a Add new string operators: length, join, split, concat etc. 2019-02-07 11:18:53 +00:00
Jermolene
0ea00b59b0 Add numeric maths filter operators
There are other ways we could add maths to TW5 (including @EvanBalster's awesome https://github.com/EvanBalster/TiddlyWikiFormula) but the approach here has the merit of simplicity because it reuses the existing filter evaluation mechanism. That means that it's not ordinary "2+2" maths, it's a unique list processing language...

Docs to come

Fixes #254
2019-02-06 14:19:55 +00:00
Jermolene
c97c3cea74 CI: Fix intentionally broken test 2019-01-04 20:11:02 +00:00
Jermolene
52d328ee1b CI: Temporarily make one of the tests fail to make sure that failed tests work 2019-01-04 17:58:16 +00:00
Rob Hoelz
d8b291bc04 Fix search method for search tokens spread across fields (#3641)
* Fix search method for search tokens spread across fields

Addresses GH #3636, which reports that if you're searching for "test
body", and "test" only appears in the title field, and "body" only appears
in the text field, 5.1.18's search method won't yield that tiddler as a
result, which appears to be a regression from the 5.1.17 behavior

* Add test for searching for multiple tokens across fields

Verifies GH #3636:

> If I create a tiddler in the empty edition with the title "Test tiddler" and content "Body content", searching the wiki for "test body" yields no results under either "title matches" or "all matches". Searching for either word individually turns up "Test tiddler", and repeating this in an empty wiki I created from the 5.1.17 tag causes "Test tiddler" to show up under "all matches".
2018-12-17 11:19:48 +00:00
Jeremy Ruston
09330968cc
New "else" prefix for filters (#3558)
* Experimental "else" prefix for filters

See #3557

* Docs updates for "else" filter runs
2018-11-20 13:29:44 +00:00
Jeremy Ruston
6dcdc2049a
Enhance search operator (#3502)
* Enhance search operator

* Add support for searching all fields

and also searching all fields except nominated fields.

* Docs tweaks

Thanks @pmario

* Error message improvements

* Improve error message formatting
2018-10-30 17:39:18 +00:00
Cameron Fischer
d8007386cf Fix issues with ordering of tagged items (#3301)
* Added better handling for sortByList manual placements

If manual placement specifications show up in an inconvenient order,
sortByList, will go to the trouble of processing them in that order.

* Added tests to confirm solution to (#3296)

...That custom tag ordering will not choke when tiddlers get sorted after their dependencies have been placed around them

* Corrected list-after bug when referencing external titles

* Using more error-proof $tw.utils.hop in sortByList

* minor indentation correction in test-tags.js
2018-10-07 12:15:33 +01:00
Jermolene
9735e13dea Fix broken test 2018-07-03 12:09:59 +01:00
Jermolene
29364cbd08 Change http://*.tiddlywiki.com/* to https:// 2017-11-11 11:56:20 +00:00
Jermolene
aa417fe899 Add new "lookup" filter 2017-09-07 15:48:00 +01:00
Jermolene
f3cab3753e Don't set draggable property for links 2017-03-28 13:05:00 +01:00
Jermolene
1f860bd04e Fix problem with dragging links 2017-03-23 17:52:15 +00:00
Tobias Beer
6085936475 Introduce "field" suffix for "has" filter operator (#2066)
* has:field — tested & documented

allows to test whether a field exists

* fixed inverted condition

* added from version to docs
2017-02-22 12:13:59 +00:00
Mario Pietsch
b43b89f44a fix for 2634 problems with week calculation 2016-11-29 17:31:54 +01:00
Jermolene
b759d82f4c @pmario's fix for #2635
This got reverted due to my git inabilities
2016-11-28 13:43:43 +00:00
Mario Pietsch
766bc7acee Fix for #2634 problem with week calculations (#2635) 2016-11-27 17:33:19 +00:00
Tobias Beer
ef3e44eb48 rename suffix each:list to each_list-item
based on #1422, improves readability of the filter expression

tests passed
2015-11-13 11:07:24 +01:00
Tobias Beer
f684a6beb0 fixed helper function and added tests
tests: ok
2015-10-08 14:07:00 +02:00
Jermolene
48d452c535 Update test for recent parser changes 2015-07-06 11:23:30 +01:00
Jermolene
00f35fe41a Don't HTML encode single quotes
They don’t get automatically decoded when the browser reads the
resulting HTML. So, instead, we’ll solve
1e9e1a1fdc by switching to double quotes
for attribute values.
2015-03-21 14:17:42 +00:00
Jermolene
b69dff861d Fix tests for c33a17a475 2015-03-11 21:58:45 +00:00
Jermolene
396efedc3f Update tests for 1e9e1a1fdc 2015-02-20 16:19:06 +00:00
Tobias Beer
b40da093af added tests to tagging for changes in #1378
using a single test-filters.js is (becoming) a pain... I'd rather have a
single test file per filter / module / function
2015-01-27 18:20:03 +01:00
Jermolene
9e167dc468 Adjust tests for system tiddler linking (#1103) 2015-01-11 16:44:51 +00:00
Jermolene
0778ea6756 Some tests and style updates for #1229
@tobibeer I simplified the handling of matched strings a little.
2014-12-15 17:50:24 +00:00
Jermolene
1f82ebc7c3 Fix problem with parsing text references 2014-11-21 18:16:22 +00:00
Jermolene
d31f61255e A failing test for a bug with text reference parsing
I’ll fix this later.

Raised by @danielo515
2014-11-21 17:05:20 +00:00
Jermolene
04d26e6fae First pass at an --editions command
Also added a “description” field for wiki folders.

Right now there’s too many editions listed. I think we should by
default only list editions whose `tiddlywiki.info` file has
`showInListings` set to `true`, and have an `--editions all` command
that lists everything.

@pmario please could you check that the editions in your
`TIDDLYWIKI_EDITION_PATH` are correctly listed?
2014-10-27 21:50:25 +00:00
Jermolene
d9bdc89dfd Update test for transclusion recursion detection 2014-09-27 17:30:13 +01:00
Jermolene
f4fff7a330 Add new "regexp" filter operator
Fixes #762
2014-09-09 15:57:41 +01:00
Jermolene
89fd5379dd Change "tw-*" variables to "tv-*" 2014-08-28 22:28:02 +01:00
Jermolene
4a1c530da7 Rename "tw-tiddlylink-*" classes to "tc-tiddlylink-*"
Part of #764
2014-08-28 18:13:46 +01:00
Jermolene
2526bfb078 Disable wikilinking when preceded with dash or underscore
“HelloThere” in “My-HelloThere” shouldn’t be wikified.

Part of #337
2014-08-08 16:20:15 +01:00
Jermolene
f8548cc8f2 Stop classifyinh "÷" (\u00f7) as an upper case letter
Part of #337
2014-08-08 16:12:23 +01:00
Jermolene
9c8564d5b0 Stop classifying "×" (\u00d7) as a lower case letter
Part of #337
2014-08-08 16:09:56 +01:00
Jermolene
d7390dbbe1 Remove support for underscore and dash in wikilinks
Starting to fix #337
2014-08-08 11:13:41 +01:00
Jermolene
be040ea8a2 Add support for variable filter operands
Fixes #583
2014-07-25 15:26:44 +01:00
Jermolene
680fe41ed7 Add isEqual() method to tiddlers 2014-06-23 08:09:59 +01:00
Jermolene
d5094463f4 Temporarily revoke sorting tests
localeCompare seems to behave differently in the browser and under
Node.js, making it hard to get the tests consistent
2014-05-16 14:46:55 +01:00
Jermolene
c9c1b0fbb4 Get rid of the tweakParseTreeNode() hack
It’s an embarrassing hangover from a refactoring of the parsing
mechanism last year.
2014-05-14 08:51:08 +01:00
Jermolene
e83759e86d Add "before" and "after" filter operators
Fixes #357 by adding new “before” and “after” filter operators.
2014-05-12 15:16:44 +01:00
Jermolene
76e8640c31 Fix problem with parsing lists contain non-breaking spaces
Some of the time we need to treat non-breaking spaces as though they
are not spaces (regexps treat them as spaces by default).
2014-05-06 18:10:27 +01:00
Jermolene
f5bd99fa73 Fix tests for 385c7e207c 2014-04-27 21:58:41 +01:00
Jermolene
649f68288a Add build targets to the core editions 2014-04-26 17:11:56 +01:00
Jermolene
d08a2d109f Fix html parser tests 2014-04-17 14:43:24 +01:00
Jermolene
6ed38389b0 Update test for previous commit
Test should have been updated with
dad60cda05
2014-04-15 08:28:47 +01:00
Jermolene
6f1e8ee3a1 Missed adjustments of wikitext tests
The commit 4d91a7762e broke the test
2014-04-09 11:54:03 +01:00
Jermolene
b7f674c51a First pass at refactoring filter execution
This is the beginning of addressing #523.
2014-04-03 20:49:16 +01:00
Jermolene
06500e5f71 New error message text for recursive transclusion error 2014-03-17 11:54:41 +00:00
Jermolene
9de17aa206 Make shadowTiddlers, pluginTiddlers and pluginInfo be private to the Wiki object constructor 2014-03-17 10:50:18 +00:00
Jermolene
0d18f3cc5d Add support for ordering tags by the 'list-before' and 'list-after' fields
See the discussion here:

https://groups.google.com/d/topic/tiddlywikidev/AXDJEjcAphs/discussion
2014-03-12 14:19:26 +00:00
Jermolene
9ded88105b Update test of tagging filter to reflect 0d7c4ae6c7 2014-03-11 15:53:41 +00:00
Jermolene
12e153ecff Update wikitext tests to reflect title attribute 2014-03-10 18:41:26 +00:00
Jermolene
9e0f1240c5 Change SiteTitle/SiteSubtitle into $:/SiteTitle and $:/SiteSubtitle
To make things more consistent
2014-02-22 11:39:18 +00:00
Jermolene
06a0d21734 Use double linebreaks to indicate content of a widget or html element should be parsed in block mode
Fixes #82.

The old behaviour was to parse the content of a widget or html element
in block mode if the opening tag was followed by a line break. The new
behaviour requires two line breaks.

This makes it possible to include linebreaks more liberally within
wikitext, although care must still be taken to only use double line
breaks when the block mode behaviour is desired.

The code change here is very simple, just a single line change in
html.js. Most of the other changes are to convert various single line
breaks into double line breaks.
2014-02-20 21:42:31 +00:00
Simon Baird
6ed8a7624d Also fix timezone related eachday test failure
In some timezones, (eg GMT+6) the modified timestamps for the
'TiddlerOne' and 'Tiddler Three' test tiddlers were actually on
the same day. This was causing the 'eachday' filter test to fail.

Similar to the fix in commit 8487221, this just adjusts the
timestamp to ensure the test passes in any timezone.
2014-01-31 00:56:25 +10:00
Simon Baird
8487221654 Fix timezone related sameday filter test failure
In certain timezones, 201304151312 UTC is not actually the same day
as 201304152219 any 201304151756. This was causing the test for the
'sameday' filter operator to fail. (I'm in GMT+10).

This is a quick-fix. I've just adjusted the timestamps to be close
together so they will be same day no matter what timezone you're in.
2014-01-30 18:24:05 +10:00
Jermolene
02d3861d7d Tests for the new filter operators 2014-01-25 17:44:14 +00:00
Jermolene
8d37219545 Add some tests 2014-01-24 19:15:34 +00:00
Jermolene
2c790d982f Switch to using $tw.fakeDocument for the fakedom document object
So that we can free us `$tw.document` to be the actual DOM document
2014-01-15 14:57:35 +00:00
Jermolene
b3ad61ce20 Add a failing test for @Skeeve's upcoming #307 2013-12-30 11:45:18 +00:00
Jermolene
7dc7559b90 Adjust references to five.tiddlywiki.com 2013-12-15 16:53:10 +00:00
Jermolene
6a8feb216a Add parser rule for hard linebreaks 2013-12-14 17:05:57 +00:00
Jermolene
2ffcbb76eb Remove modifier and creator fields from tiddlers in tw5.com
Keeps things tidier
2013-12-11 07:57:12 +00:00
Jermolene
3e1899ee17 Forgot to add the vanilla theme to existing editions 2013-11-28 16:42:38 +00:00
Jermolene
f380d4b27d Change macro attributes to not wikify their content
One consequence of wikifying macro attributes before use was that we
couldn’t have tiddler titles with wikitext syntax in, which was
definitely a problem.
2013-11-22 20:02:44 +00:00
Jermolene
3b35d7dfe4 Fixed problem with greedy regexp for macrocalls
It was preventing this from working:

```
<<macro>><<bacrp>><<sdf>><<qweqwe>>
```
2013-11-17 21:53:12 +00:00
Jermolene
939ad11eae Rename the 'setvariable' widget to 'set'
Sleeker.
2013-11-15 18:31:39 +00:00
Jermolene
874bd7b2b8 Tweaks tests
This was the only place we were using the `variables` option to the
widget constructor.
2013-11-13 21:26:13 +00:00
Jeremy Ruston
cc0011abd3 Get rid of the "new_" prefix we had on some methods
There's still the "old_" prefix to get rid of too.
2013-11-08 08:51:14 +00:00
Jeremy Ruston
b7cb1d3391 Change new_widget to widget
I was avoiding doing this until after the merge.
2013-11-08 08:47:00 +00:00
Jeremy Ruston
0b1f0a5fab Refactor the list widget to get rid of some hacks
As promised.
2013-11-02 10:12:55 +00:00
Jeremy Ruston
2bc06fd255 Removed feral console.log 2013-11-01 16:03:37 +00:00