1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-07 18:39:57 +00:00
Commit Graph

2319 Commits

Author SHA1 Message Date
Mario Pietsch
ef9efbc399 Fix for beaker 072 - new dat API (#2918)
* initial version that works again with beaker 0.7.2

* activate path again
2017-06-24 21:54:44 +01:00
saqimtiaz
d89010752a Modified handleClickEvent to send original event data with tm-navigate event. Fixes 2889 (#2900) 2017-06-14 18:16:13 +01:00
Jermolene
432542bbcc Don't throw errors when hitting limits of the fakedom 2017-06-09 15:20:45 +01:00
Jermolene
04f402b974 Fix drag and drop issue on iOS 2017-04-21 16:27:44 +01:00
Jermolene
2e0c119d5b Add Tiddler.getFieldStrings() method 2017-04-17 17:04:15 +01:00
Jermolene
50268d9231 Killer typo 2017-03-29 09:22:51 +01:00
Jermolene
b37178dda1 Fix download saver for Safari 10.1
Safari now finally supports the ‘download’ attribute for the anchor
tag, meaning that the download saver works properly.
2017-03-29 09:21:49 +01:00
Jermolene
1e106a8f3d Better handling of dropeffect 2017-03-28 15:09:36 +01:00
Jermolene
f3cab3753e Don't set draggable property for links 2017-03-28 13:05:00 +01:00
Jermolene
d3fe4f600a Partially fix drag and drop on IE11
These changes allow drag and drop to work with one issue: <a> links are
not draggable; draggable divs, spans, buttons etc. seem to work fine.
There’s some issue with IE11 that I don’t understand.

For testing, you can force links to become spans by changing line 64 of
$:/core/modules/widgets/link.js to:

	var domNode = this.document.createElement("span");
2017-03-27 09:59:40 +01:00
Jermolene
4891732481 Adjust listops widget to only modify tiddler if tags have changed
We do this so that we don’t accidentally modify shadow tiddlers when we
drag them to reorder them within their tag parent. Otherwise, moving a
toolbar button like $:/core/ui/Buttons/permaview in the control panel
will override the shadow tiddler.
2017-03-24 09:57:22 +00:00
Jermolene
1f860bd04e Fix problem with dragging links 2017-03-23 17:52:15 +00:00
Jermolene
b1ed77d6b8 Switch drag image to use draggable DOM node
We’ll still support dragging pills, but dragging the DOM node image
seems to look better in most situations.
2017-03-23 17:02:26 +00:00
Jermolene
8f1114960a Refactor draggable stuff for easier reuse
And in the process, make the button widget draggable.

Unfortunately, Firefox has a bug that prevents buttons from being
dragged (see https://bugzilla.mozilla.org/show_bug.cgi?id=568313 and
https://bugzilla.mozilla.org/show_bug.cgi?id=646823). So we have to use
the “tag” attribute to make it use a different element.
2017-03-23 14:23:33 +00:00
Jermolene
bea33efd63 Fix problem with dragging text snippets 2017-03-20 22:03:28 +00:00
Jermolene
f4656b0f25 Add support dragging to the bottom of a list 2017-03-20 22:02:55 +00:00
Jermolene
9bad99d14e Draggable: properly stringify tiddler titles
Thanks @twMat
2017-03-20 22:01:51 +00:00
Jermolene
eba1c3c160 Improve support for drag and drop
Documentation TBD
2017-03-19 19:33:56 +00:00
Jermolene
c2391c5250 Action-deletefield should only update tiddler modified/created if it is changed 2017-03-19 19:30:52 +00:00
Jermolene
39cdaeb34d Fix problem with tracking dragenter/leave events in Firefox
Fixes #686 (hopefully!)
2017-03-17 14:54:30 +00:00
Jermolene
b9fbe12118 More defensive deepFreeze()
IE11 chokes on Object.freeze(undefined)
2017-03-17 14:20:04 +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
73e1724fdf Extend $tw.utils.httpRequest() to cope with binary data
The problem was that `this.responseText` crashes for non-text data. We
fix it by letting the client specify which property should be returned.

@ericshulman does this work for you?
2017-03-17 13:41:17 +00:00
Jermolene
66d5e2650e Fix problem with dragger image in Chrome
Fixes #2800
2017-03-12 18:07:59 +00:00
Jermolene
52a414959c wiki.extractTiddlerDataItem() should use caching 2017-02-28 10:23:02 +00:00
Jermolene
b9a835b879 Fix bug with wiki.getTiddlerDataCached()
We need to process the default data outside of the cache function to
ensure that we don’t cache the defaults
2017-02-28 10:23:02 +00:00
Jermolene
ad1c2a6571 Fix problem with 'has' operator
Fixes problem introduced in 6085936475
2017-02-23 14:27:43 +00:00
Tobias Beer
88a65f038e Add a "close plugin library" button (#2072)
* provides a "close plugin library" button

* starting from #1718 by @inmysocks
* possibly fixes all of #1718, #1597,  and #2067

* corrected code comment

* add back title

No idea why I overlooked this beforehand.

Next time I will not suggest such changes that have little to do with
the PR, but rather just comment the code.

* ah, sorry, "fixed" wrong spot

now

```
<$action-sendmessage $message="tm-load-plugin-from-library"
url={{!!url}} title={{$(assetInfo)$!!original-title}}/>
```

...should be back at the right spot.

* mhhh... still fixing the mess

load, unload, puh... let's see if I got it now

* added unloadIFrame and minor syntax fixes
2017-02-22 12:15:26 +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
Jermolene
cd2bc88658 Add "enlist" operator
Fixes #2767
2017-02-21 15:17:47 +00:00
Jermolene
b1ecf81b0c Tentative improvements to highlight plugin problems
We now use highlight.js in raw HTML mode on the server, rather than
trying to use it with the fakedom. This causes problems with fakedoms
inability to get textContent for a node that has been created by
assigning innerHTML. So we extend the fakedom to allow the original
text content to be saved.

See #2778 for discussion.
2017-02-21 13:09:32 +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
daf703b67f Add support for th-navigating event 2017-02-19 15:47:37 +00:00
Jermolene
0d0ece6377 Add new "fetch" command
Like the load command except retrieves the file over HTTP/HTTPS.

Allows experimentation with server-side twederation

This is a cleaned up version of code that I wrote last year at TWEUM
2016 @inmysocks @pmario @twMat @xcazin
2017-02-18 13:33:41 +00:00
Jermolene
74b0da065e Add logging functions to commander 2017-02-18 13:30:04 +00:00
Jermolene
6f93ce6ea7 Enhance rendertiddler command with support for additional variable
Passing an arbitrary variable allows us to e.g. reuse the export
filters as shown in the example
2017-02-18 13:17:44 +00:00
Jermolene
91b341e8e0 Better error trapping for WebDAV saver
Without these checks we get a startup crash when using TiddlyWiki in
client-server configuration.
2017-02-18 12:12:29 +00:00
FND
6505e6f448 WebDAV file overwrite protection (#2614)
* putSaver: detect edit conflicts to prevent clobbering, if possible

if the server supplies an ETag, we send it back when saving, allowing
the server to detect edit conflicts and respond with 412 (cf.
https://www.w3.org/1999/04/Editing/)

caveats:
* this only kicks in after the first save, as we don't have access to
  the ETag when first loading the document
* there's no recovery mechanism (e.g. resetting `this.etag` in order to
  force clobbering), other than manually reloading the document

* putSaver: retrieve ETag upon initialization for clobbering protection

this addresses one of the caveats from the previous commit
(2d75cb83af) - while theoretically prone
to a race condition, it seems unlikely that saving will be triggered
before the server responds

* putSaver: simplify URI extraction

this simplifies the approach introduced in
f51f6bf774, with the purpose of removing
the fragment identifier

* putSaver: localize error message

* putSaver: switch to built-in HTTP helper

in the process, fixed ETag assignment in `#save` method (was
`this.etag`, now `self.etag`) as well as a syntax error due to a missing
closing brace

* putSaver: consolidate URI handling
2017-02-17 12:26:15 +00:00
Jermolene
3708f6c8e4 Major refactoring of filesystemadaptor
The code here had got a bit broken by some PRs that I should have
checked more carefully. I’ve done a major refactoring which will
hopefully make it easier to understand, and fixes a number of problems:

* Problem with eg .md tiddlers not being deleted correctly
* Problem with Windows path separators not being usable within
$:/config/FileSystemPaths on Windows
* Problem with filename clashes not being detected correctly when
saving to a different directory via $:/config/FileSystemPaths
* Enables slashes within tiddler titles to be mapped into folders
* Enables plain text files like .md and .css to be saved with .meta
files instead of as .tid files (see #2558)
* No longer replaces spaces with underscores

As this is such a major update, I’d be grateful if Node.js users could
give it a careful run through — in particular, you’ll need to try
creating new tiddlers of various types and ensure that the expected
files are created.
2017-02-11 12:56:42 +00:00
Jermolene
97e995e0c7 Add wiki.checkTiddlerText() convenience method 2017-02-09 15:43:28 +00:00
Jermolene
2397f0aa6f Add several new hooks for UI actions 2017-02-09 15:42:55 +00:00
Jermolene
73ded6a82a Add new "count" filter operator
See discussion here:
https://groups.google.com/d/msgid/tiddlywiki/fe51b7f5-5369-493b-82e5-94c
18e863fe0%40googlegroups.com?utm_medium=email&utm_source=footer
2017-02-08 20:11:44 +00:00
Jermolene
9bc523fdef Fix bug in renameTiddler
This operation isn’t used by the core, but is used by the TextSlicer
plugin
2017-02-08 20:04:36 +00:00
Jermolene
db056a84a5 Remove obsolete code 2017-02-04 18:14:20 +00:00
Jermolene
6c65aa2a6d Make the syncer more configurable, including names for sync adaptors
@danielo515 you may want to add a name to your sync adaptor 😄
2017-02-04 17:25:30 +00:00
Jermolene
ced9f315a1 Rename variable for clarity
It’s called an iterator in filter.js
2017-02-04 17:24:25 +00:00
Jermolene
b5059c612a Adds support for autosave with the download saver
Also does some reorganisation of control panel to move “saving” related
settings together, and expose a UI for savers to plug into.

Fixes #2741
2017-01-30 18:19:28 +00:00
Tobias Beer
1b339e17bc Add "tag" attribute to keyboard widget (#2593)
* allows to define the tag for keyboard widget

* added from 5.1.14 to docs
2017-01-13 11:17:19 -07:00
Tobias Beer
d4db283d61 Refresh simple editor when empty text, e.g. hitting ENTER (#2702)
fixes #2592, missing bit of deleting the field for adding a new tag in
edit-mode

also fix for:
https://groups.google.com/forum/?fromgroups=#!topic/tiddlywiki/L6Z7gSvBWjw
2017-01-09 10:31:40 +00:00
Jermolene
ab1b1f2cde Fix problem with beaker saver and default index pages
As discussed on the mailing list, we need to check for a URL that is
missing the default `/index.html`

https://groups.google.com/d/msg/tiddlywikidev/n6yUdu2zHWo/m32R2BuIDgAJ
2016-12-29 16:45:47 +00:00
Jermolene
0383b98555 Add support for other movie content types 2016-12-23 08:34:07 +00:00
Jermolene
f143164cbe Correct the name of the video parser 2016-12-22 22:07:28 +00:00
Jermolene
ba9d6187af Rename the dat saver to Beaker
It’s actually specific to the API provided by the Beaker browser, and
not a generic Dat saver
2016-12-22 08:15:16 +00:00
Jermolene
a20da9f530 Add preliminary Dat file saver
See https://datproject.org/ and https://beakerbrowser.com/
2016-12-21 12:09:08 +00:00
Arlen22
66a13cb915 TiddlyFox saver canSave() should always return true (#2626)
Whether saving is allowed should be determined by the parent side of the TiddlyFox, as this plugin can be used in many places.
2016-12-17 15:27:25 +00:00
Arlen22
1530b3e2d8 Put request handler on SimpleServer.prototype (#2627)
The request handler may be used by ExpressJS apps directly and can do most of the heavy lifting without any modification. Note that the self variable must be assignee using `[Function].bind(null,SimpleServer instance)`.
2016-12-17 15:06:10 +00:00
Tobias Beer
e5b432a86b Allows checkbox widget to worth with indexes within data tiddlers (#2103) 2016-12-17 11:59:59 +00:00
Tobias Beer
d6d3aab36a Allow radio widget to work with indexes in a data tiddler (#2104)
* allow radio widget to set an index in a data tiddler

* updated RadioWidget docs, with same demo macro as for CheckboxWidget
in #2103
* removed docs in widget code (seems the wrong place)

* added from version to docs

* revert doc maros to master

* using wikitext-example-without-html and .tip macro now

* fix quotes
2016-12-17 11:51:24 +00:00
Matt Lauber
9c3a6976f0 #2312 Prevent move filter from wrapping (#2658)
given a list `A B C D` if I run `A B C D +[move:-1 [A]]` I get `B C A D`.  However, if I were to do `A B C D +[move:1[D]]` it doesn't wrap around, and I get `A B C D`.  This fixes that such that `A B C D +[move:-1 [A]]` gives 'A B C D`
2016-12-16 17:58:45 +00:00
Jermolene
e8bb897e26 Add support for relinking when renaming tiddlers
When renaming an existing tiddler, the edit template now shows a
checkbox that determines whether or not to relink references to the
tiddler in the list or tags fields of other tiddlers.
2016-12-15 17:13:32 +00:00
Jermolene
1bba9dc315 Reuse $tw.loadTiddlersFromPath() in --load command
Thus allowing things like tiddlywiki.files to be used with the —load
command
2016-12-15 17:13:32 +00:00
Jermolene
74def9e080 Separate the PDF parser from the image parser
It was a bit of a hack, and made it harder to customise PDF presentation
2016-12-15 17:13:32 +00:00
Mario Pietsch
b43b89f44a fix for 2634 problems with week calculation 2016-11-29 17:31:54 +01:00
Jermolene
9a38642141 Add new "order" filter operator 2016-11-28 19:16:08 +00:00
Jermolene
a3dc3b4b98 Add new [all[tags]] filter operator 2016-11-28 19:04:04 +00:00
Jermolene
cf28eeb2a1 Fix problem with checkbox widget and empty strings
If the value of `tiddler.fields[this.checkboxField]` was an empty
string then it would incorrectly fall back to the value of
`this.checkboxDefault`.
2016-11-28 13:45:41 +00:00
Jermolene
b759d82f4c @pmario's fix for #2635
This got reverted due to my git inabilities
2016-11-28 13:43:43 +00:00
Jermolene
c65d08240b Add strict mode to tag operator 2016-11-28 13:42:30 +00:00
Jermolene
c460cc03a4 Change "is" filter with blank operand to pass through arguments 2016-11-28 13:42:06 +00:00
Jeremy Ruston
a9b54d6fce Revert "Add provisional version of new tagger manager" 2016-11-28 10:40:55 +00:00
Jeremy Ruston
a85d034015 Merge pull request #2637: Introduce tiddler manager
Introduce tiddler manager
2016-11-28 10:28:12 +00:00
Mario Pietsch
766bc7acee Fix for #2634 problem with week calculations (#2635) 2016-11-27 17:33:19 +00:00
Jermolene
8e033eb0d4 Add new "all[tags]" filter operator 2016-11-27 14:52:04 +00:00
Jermolene
0b4669621a Return all tiddlers when "is" filter operand is missing 2016-11-27 14:51:51 +00:00
Jermolene
1a2ec12831 Fix problem with checkbox widget and empty strings
If the value of `tiddler.fields[this.checkboxField]` was an empty
string then it would incorrectly fall back to the value of
`this.checkboxDefault`.
2016-11-27 14:51:23 +00:00
Jermolene
e98d324e66 Add provisional version of new tagger manager
For discussion
2016-11-26 12:48:47 +00:00
Jermolene
3bceb98119 Add support for actions attribute to CheckboxWidget 2016-11-26 08:21:58 +00:00
Jermolene
d1121787c0 Add new button to temporarily suspend timestamps
Useful when you want to make an edit but preserve the modification
date/time.
2016-11-23 18:20:31 +00:00
Jermolene
c8f7573a23 Make fakedom more resilient to non-string data 2016-11-22 20:24:59 +00:00
Jermolene
8d35178bc4 Undo 664225f6fd and 56640b90bb
See the discussion at #2628
2016-10-26 21:41:41 +01:00
Jermolene
664225f6fd Ensure list widget item title is used in getStateQualifier
Resolves a longstanding problem where the same state qualifier is
generated for every member of a list.

Fixes #2628
2016-10-25 15:34:20 +01:00
Jermolene
7108e0d861 Add support for filtered attributes to HTML elements and widgets
Fixes #2624
2016-10-21 11:27:07 +01:00
Jermolene
c72a0b7a67 Add action-createtiddler widget
Basically the same as sending a tm-new-tiddler message except that the
newly created tiddler is not added to the story.
2016-10-21 11:26:26 +01:00
Jermolene
0b76c327c2 Add page print button
cc @silvyn
2016-10-20 09:44:52 +01:00
Jermolene
8e02bde938 Refinements to 87fa7f972c 2016-10-18 16:39:18 +01:00
Jermolene
87fa7f972c Ensure global macros are available in modals and notifications 2016-10-18 09:18:56 +01:00
Jermolene
b4b77d1681 Add new filter operators for various string encoding/decodings 2016-10-18 09:18:32 +01:00
Jermolene
b35544bf49 Extend set widget to support returning a single result from a filter
This solves the problem with extraneous double square brackets when
using the filtered set widget.
2016-10-18 09:16:47 +01:00
Jermolene
d9f301f755 Add 'formattedtext' output type to Wikify widget 2016-10-18 09:13:52 +01:00
Jermolene
2f590a365e Expose document location via $:/info/url/* info tiddlers 2016-10-18 09:12:55 +01:00
Jermolene
accd4a1b65 Fix regexp performance problem introduced in c7b31b0242
This fixes a problem introduced in
c7b31b0242.

The changes by @tobibeer inadvertently made the regular expression
evaluation significantly more expensive because of lookahead. The is
less elegant but reverts the performance problem.
2016-10-17 19:08:01 +01:00
Jermolene
892a1f560e Trap JSON syntax errors during import
Fixes #2609
2016-10-13 14:16:55 +01:00
Jermolene
da298f037d Remove extraneous console.log()
Fixing f97c1226aa
2016-10-12 15:50:43 +01:00
Jermolene
f97c1226aa Prevent HTML parser from mis-recognising email addresses
Email addresses such as `<jeremy@example.com>` were being erroneously
parsed as HTML tags.

Fixes #2604
2016-10-12 13:17:53 +01:00
Jermolene
ffcbcbfa82 Add new 'minlength' operator
Fixes #1493
2016-10-11 09:26:20 +01:00
Devin Weaver
f1090d749e Fix str.length strEndsWith bug (#2572)
This was some how missed in dev testing I guess. @buggyj suggested this.

Should fix #2571
2016-10-08 14:06:30 +01:00
Tobias Beer
b9299309cc Fixes #2076 single line macros shouldn't need terminating line break 2016-10-08 13:44:30 +01:00
Tobias Beer
bf253a603b Removed unused vars + some whitespace (#2106) 2016-10-08 13:32:14 +01:00
Tobias Beer
f575389d89 Update wikiparserrules operator for no operand (#2193)
* return all wikiparserrules w/o operand

* simpler layout & code / updated instruction details

Also wanted to link each rule to the official docs using a dictionary at
`$:/language/Docs/ParserRules/`. However, without #2194 this is not
doable.
2016-10-08 13:04:11 +01:00
Tobias Beer
3486acaec6 Remove old titles from story on save (#2587)
fix for #2381
2016-10-08 12:17:27 +01:00
Tobias Beer
c7b31b0242 allows textPrimitives.anyLetter in syslink (#2596)
* allows textPrimitives.anyLetter in syslink

now only supports anyletter as per request by @jermolene
2016-10-08 11:51:07 +01:00
Jermolene
641eeaf611 Refresh action widgets before invoking them
Fixes #2599, at least partially.
2016-10-08 10:19:09 +01:00
Jermolene
c4e13bc94a Add icon and message handler for print button
I’m inclined to think it’s not worth adding a corresponding page
control button because it’ll require a lot of tiddlers for the
translation etc.
2016-10-08 10:10:54 +01:00
Jermolene
292d653880 Fix typo affecting created/creator fields when deleting field
Fixes #2579
2016-09-28 11:18:58 +01:00
Jermolene
5f0a1dd967 Revision of 03db25cf38
We should only fallback to the classic storyview if a storyview was
specified; if none was specified then we shouldn’t use a storyview.
2016-08-27 14:24:07 +01:00
Jermolene
03db25cf38 Fallback to "classic" if specified storyview not found
Fixes #2555
2016-08-26 11:34:43 +01:00
Jermolene
4d74f52202 Remove extraneous text
Copy/paste whoops.
2016-08-20 17:11:54 +01:00
Jermolene
05b32728bc Allow browser-based file reading to use deserializers for binary files 2016-08-20 17:09:22 +01:00
Jermolene
7bc7f643b6 Remove extraneous console.log 2016-08-16 15:48:25 +01:00
Jermolene
18dd8d4433 Fix problem with lazy loading under Node.js
Fixes #2514
2016-08-16 15:48:14 +01:00
Jermolene
e20bce5450 Add experimental support for RTL languages
This commit permits language plugins to carry the field
“text-direction” with the value “rtl” to trigger right-to-left layout
of the entire page. We also adjust the sidebar layout to work in RTL
mode.

There are still a number of problems to be addressed:

* Brackets and other punctuation incorrectly placed within en-GB UI text
* System tiddler titles are rendered semi-back-to-front (eg
`languages/ca-ES/:$`)

Starting to address #1845 and the discussion in #2523.
2016-08-15 19:47:26 +01:00
Jermolene
7326a3a4cc Only call isReady() for sync adaptors that support it
Fixes #2522
2016-08-06 14:45:33 +01:00
Jermolene
08cfa88249 Fix problem with unsafe use of String.prototype.replace()
We were using `String.prototype.replace()` without addressing the
wrinkle that dollar signs in the replacement string have special
handling. This caused problems in situations where the replacement
string is derived from user input and contains dollar signs.

Fixes #2517
2016-08-06 14:45:33 +01:00
Jermolene
e49d310ea9 Relax external link matching to ignore illegal characters
Fixes #2501, and rolls back some of #2324
2016-07-20 11:37:44 +01:00
Jermolene
782553eb62 Remove tilde from characters not allowed in external URLs 2016-07-13 14:06:47 +01:00
Myeongjin
98b435d550 Fix inconsistencies in language string IDs (#2494) 2016-07-13 10:00:21 +01:00
Jermolene
dca9e008ce Remove single quote from illegal characters in URLs
Fixes #2493
2016-07-12 17:22:20 +01:00
Devin Weaver
bf74d13df5 Handle binary files better when saving on Node.JS (#2420)
* Save binary tiddlers with meta file

The filesystemadaptor plugin was a little simplistic in its
understanding of a binary file. It was using the typeInfo dictionary to
choose what tiddler types were binary (and hence needed a meta file when
saving).

I looked as if it was trying to be smart by looking for the hasMetaFile
*OR* had the encoding of base64. Unfortunately the typeInfo only defined
image/jpeg and so any other base64 encoded tiddler was assumed to be of
type text/vnd.tiddlywiki.

The net effect was only JPG images got a meta file and everything else
were saved as .tid files with base64 encoding. It all still worked but
made working with binary data in a Git repo a bit daunting.

There is enough information in the $tw.config.contentTypeInfo to
determine if a tiddler type is encoded with base64 or not. A better list
is available from boot/boot.js who registers all the types thorough the
registerFileType and marks then with base64 were appropriate.

This commit uses the typeInfo dictionary first for any filesystem
specific overrides, then the contentTypeInfo, and finally defaults to
the typeInfo["text/vnd.tiddlywiki"]. It also eliminates the now
unnecessary override for image/jpeg.

I think this might have been the original intent from commit 10b192e7.
From my limited testing all files described in boot/boot.js (lines
1832-1856) with an encoding of base64 now save as the original binary
and a meta file. Meaning that when you start the node server and then
drag-n-drop a binary file (i.e. image/png) it will PUT to the server
and then save it on the filesystem as-is allowing the file to be managed
as a binary file and not a text file. (Binary diffs are better and
GitHub supports them as well).

* Prevent duplicate file extensions

A side effects of using the $tw.config.contentFileInfo in the previous
commit is that it will always append a file extension to the tiddler
title when saving. In most cases this is the correct course of action.
However, sometimes that title is already a proper filename with an
extension (for example importing 'foobar.png' would save a file named
'foobar.png.png') which seemed silly.

This commit simply checks to make sure the title does not already end
with the file extension before appending it to the filename. A little
convenience really.

Since IE apparently doesn't have the String endsWith method I took the
liberty to add a helper method to $tw.utils trying to follow the other
polyfill patterns. I figured this was more generic and readable then
attempting to use a one-off solution inline. I got the polyfill code
from MDN.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith#Polyfill

Is strEndsWith the best method name?
2016-07-11 11:18:19 +01:00
Jermolene
c3d18364c1 Don't use syncadaptors until they are ready
Fixes #2453
2016-07-05 11:29:59 +01:00
Jermolene
ff57b4084a Extend notification handler to accept variables
Now we can provide variables to be passed to the rendering of the
notification text
2016-07-03 14:55:41 +01:00
Jermolene
6f8ee52e90 Text-editor: fix placeholder colour in Chrome 2016-07-03 14:53:37 +01:00
Jermolene
3d5885f5a5 Extend view widget with plainwikified format 2016-06-23 16:28:59 +01:00
Jermolene
f51f6bf774 Fix URI in "put" save handler
We don’t want the location hash
2016-06-23 16:23:36 +01:00
Jermolene
bdd5aa9343 Trap missing tiddlers in savetiddler command 2016-06-23 16:19:00 +01:00
Richard Smith
b326ba5b2c Fixed: Titles containing a URL are interpreted as external links (#2324) 2016-06-05 20:03:04 +01:00
Jermolene
f846a004b6 Partial fix for copyStyles problem under Chrome
There’s still a problem: in Chrome, the styling of the textarea
placeholder isn’t correct.
2016-05-17 15:45:10 -06:00
Jermolene
682b1e7027 Fix sandbox attribute for html parser generated iframes
See
https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe#attr-sandb
ox
2016-05-17 15:45:10 -06:00
Myeongjin
6388f859d1 Add localisable strings for error (#2447)
* Add localisable strings for error

* Update tiddler Transclusion Basic Usage in fr-FR
2016-05-17 21:58:47 +01:00
Myeongjin
8afc1e9354 Add localisable strings (#2438)
* Add localisable string for recursive transclusion error

* Add localisable string for count

* Add localisable strings for syncer
2016-05-12 08:44:28 -06:00
Jermolene
e54cc7b211 Fix copyStyles() not working in Firefox
Yet more browser incompatibilities to weep over…
2016-05-09 14:11:08 -06:00
Jermolene
c8777ea012 Add control panel setting for disabling the new editor toolbar 2016-05-09 10:33:15 -06:00
Jermolene
3a3754aebb Add rel="noopener noreferrer" to external links
Background:
https://medium.com/@jitbit/target-blank-the-most-underestimated-vulnerab
ility-ever-96e328301f4c#.hduwdbjlb
2016-05-05 11:49:40 +01:00
Jermolene
854a9a3b75 Refine behaviour of heading formatting toolbar buttons
Previous behaviour was that the H1 button on `!!! x` gave us `!! x`
2016-05-05 07:54:32 +01:00
Jermolene
e3415796b2 Fix problem with lazy loading images
Fixes @2263

Thanks @buggyj
2016-05-02 10:29:26 +01:00
Jermolene
a11a4de6af Fix problem with editing missing tiddlers
Fixes #2412
2016-05-02 10:12:08 +01:00
Jermolene
cdeca55d45 Fix another IE11 problem
IE11 doesn’t support String.prototype.repeat
2016-05-01 18:17:47 +01:00
Jermolene
01eb45946c Fix problem with IE11
It turns out that IE11 has a horrible bug whereby setting the
placeholder attribute before setting the text will trigger an input
event:

https://social.msdn.microsoft.com/Forums/ie/en-US/ae4832b0-8eee-4729-b93
3-a9977ea1b583/internet-explorer-input-event-get-fired-when-settingunset
ting-the-placeholder?forum=iewebdevelopment
2016-05-01 18:17:28 +01:00
Jermolene
6dce8d9763 Remove final vestiges of undo/redo buttons 2016-05-01 13:54:16 +01:00
Jermolene
72fb1e22ed Remove undo/redo formatting toolbar buttons
There have been long standing problems with the buttons not working in
Firefox, and now a [further
problem](https://groups.google.com/d/msg/tiddlywiki/GlsruQyPOag/BAhnI2mt
BgAJ) has come to light, and been similarly hard to resolve.

On balance, I’ve decided to remove the undo/redo buttons from the
toolbar (the ctrl/cmd-Z shortcut is still operational), thus avoiding
the problems, and saving some space in the core.
2016-05-01 13:51:45 +01:00
Jermolene
1515fd42ed Fix text editor for Internet Explorer
By switching from text events to execCommand.
2016-04-30 14:36:53 +01:00
Jermolene
7224fea961 Introduce "link" editor toolbar button
As proposed by Alex Hough
2016-04-29 18:54:44 +01:00
Jermolene
b1fb1070ef Enhance linkcatcher widget to use actions attribute 2016-04-29 18:54:44 +01:00
Jermolene
3c20f2396e Add support for assigning action widgets via the actions attribute
This is quite a big change: a new way to invoke action widgets.

The advantage is that it solves #2217 and #1564, a long running problem
that prevented us from adding action widgets to widgets that modify the
store.

This commit adds the new technique for the button and keyboard widgets,
but also extends the select widget to trigger action widgets for the
first time
2016-04-29 18:54:44 +01:00
Jermolene
39f0c19c9a Allow "yes" as a synonym of "true"
For consistency
2016-04-29 18:54:44 +01:00
nameanyone
19ee5bcf4e "days" filter: yesterday and tomorrow edge cases (#2364)
* Change the negation logic to address an edge case

Make it possible to get an interval ending with yesterday or starting with tomorrow.

* "days" filter: adjust documentation
2016-04-27 17:23:46 +01:00
nome
1ae428e323 Make tiddler file paths configurable (#2379)
When saving new tiddlers on node.js, allow the user to override the path of the
generated .tid file. This is done by creating a tiddler
$:/config/FileSystemPaths which contains one or more filter expressions, one
per line. These filters are applied in turn to the tiddler to be saved, and
the first output produced is taken as a logical path relative to the wiki's
tiddlers directory. Any occurences of "/" in the logical path are replaced with
the platform's path separator, the extension ".tid" is appended, illegal
characters are replaced by "_" and the path is disambiguated (if necessary) in
order to arrive at the final tiddler file path. If none of the filters matches,
or the configuration tiddler does not exist, fall back to the previous file
naming scheme (i.e. replacing "/" by "_").

This implies we will now, for tiddlers matching the user-specified filters,
create directory trees below the tiddlers directory. In order to avoid
cluttering it with empty directory trees when renaming or removing tiddlers, any
directories that become empty by deleting a tiddler file are removed
(recursively).

Benefits of this configuration option include the ability to organize git
repositories of TiddlyWikis running on node.js, ability to replace characters
that cause trouble with particular operating systems or workflows (e.g. '$' on
unix) and the ability to replicate tiddler "paths" in the filesystem (by
including a filter like "[!has[draft.of]]") without forcing such a (potentially
problematic) change on all users.
2016-04-25 08:36:32 +01:00
Jermolene
b7530bac44 Ensure iframe textarea styles are updated
Previously, changing the palette didn’t update the textarea styles.
2016-04-24 12:30:44 +01:00
Jermolene
3e9cc3e8fd Add a warning for undo/redo buttons in Firefox 2016-04-24 09:32:06 +01:00
Jermolene
3b49cd17fc Fixes from @Infurnoape 2016-04-23 17:23:14 +01:00
Jeremy Ruston
2adf09129d Introduce text editor toolbar (#2315)
Tada!
2016-04-22 08:36:29 +01:00
Jermolene
4dd701c2dd Fix problem with missing link logic
See
https://github.com/Jermolene/TiddlyWiki5/commit/7908e10488cc4280dd8e4f40
5bcb09f2fb6d3524#commitcomment-17174321
2016-04-20 11:57:38 +01:00
Jermolene
1e0d019610 Don't repeatedly lazy load the same tiddler
If we don’t get a “text” field back the first time we shouldn’t keep
asking for it.
2016-04-18 14:50:13 +01:00
Myeongjin
e6e346ea29 change string 'Close' to lowercase for dialog (#2366) 2016-04-14 23:03:14 +01:00
Devin Weaver
bea6d741e3 Reword makedatauri.js description (#2373)
Closes issue #2372
2016-04-14 23:02:40 +01:00
Devin Weaver
7908e10488 Add option to disable linking to missing tiddlers
* Add LinkWidget option to ignore missing tiddlers
* Add missing link option to settings
2016-04-04 12:43:40 +01:00
Myeongjin
c9b0e15201 add localisable strings for dialog 2016-03-28 16:24:55 +09:00
webninjasi
47d518d6d4 Fix invalid header in upload plugin 2016-03-03 19:08:24 +02:00
Jermolene
5f6a53eae1 Fix typo from 4a03dcab20 2016-02-20 21:44:52 +00:00
Jeremy Ruston
35fe5a5fc3 Merge pull request #2294 from mklauber/patch-2
Update has.js for improvement to #2274
2016-02-20 21:43:58 +00:00
Matt Lauber
899c5cb835 Update has.js 2016-02-18 11:51:29 -05:00
Jermolene
4a03dcab20 Fix problem with double-byte Unicode entities
Entities such as `&#128119;` were broken because
`String.fromCharCode()` is not fully Unicode aware. The fix is to use
`String.fromCodePoint()` where available.

Noted by @ericshulman
2016-02-18 13:49:09 +00:00
Eric Drechsel
60d585f7d5 putSaver: probe for server support on startup
save fails until probe succeeds,
allowing other saver methods to take over

Follow up to #2288, #2277
2016-02-16 10:53:15 -08:00
Jeremy Ruston
1f4df88960 Merge pull request #2284 from mklauber/patch-2
Fix for #2274
2016-02-16 16:37:46 +00:00
Matt Lauber
5a14b37686 Update to check if empty sting OR (is array AND is empty) 2016-02-16 08:08:09 -05:00
Eric Drechsel
dd43759ecc putSaver: return null on save success, TODOs 2016-02-15 15:20:30 -08:00
Jeremy Ruston
2203c2b38a Merge pull request #2277 from edrex/put_saver
add a simple put saver, for saving to a webdav or REST server
2016-02-15 22:00:46 +00:00
Matt Lauber
22145e2e51 Fix for #2274
List fields (such as tags) when evaluated to produce tiddlers result in empty arrays.  Using the exact not equals, an empty array is not the same as an empty string.  By using equivelent not equals, we state that the field is either != "" or anything that can be coerced to "".  Which, based on https://dorey.github.io/JavaScript-Equality-Table/ is `false` `0` `[]` or `[[]]`` neither `false` nor `0` can be set as a tiddler field as both will end up being quoted (`"false"`, `"0"`) so this should work.
2016-02-15 08:31:23 -05:00
Jermolene
df3e39d97a Update wikiparser file comment 2016-02-15 11:33:47 +00:00
Jeremy Ruston
581634d282 Merge pull request #2164 from pmario/issue-2158
Issue 2158 - check for new draft fields and warn if cancel is clicked
2016-02-11 09:31:58 +00:00
Eric Drechsel
f8565443d7 add a simple put saver, for saving to a webdav or REST server 2016-02-08 13:40:10 -08:00
Jermolene
b873df0ba2 Revert "Merge pull request #2166 from matabele/patch-5"
This reverts commit 83c54f4bb5, reversing
changes made to 0cbe97615a.
2016-01-06 09:38:39 +00:00
Jeremy Ruston
83c54f4bb5 Merge pull request #2166 from matabele/patch-5
Fix inadvertent clearing of text field (default) when `field` attribu…
2016-01-05 19:10:26 +00:00
Jermolene
0cbe97615a Add size attribute to select widget for multiple selection mode 2016-01-05 18:48:21 +00:00
Jermolene
93f7d8c028 Fix bug with tiddler widget and a blank tiddler title 2016-01-05 18:48:04 +00:00
Jeremy Ruston
31b4f104e4 Merge pull request #2161 from matabele/patch-3
Tidied up the code in the x-listops filters
2016-01-05 15:30:39 +00:00
Jeremy Ruston
2cd812c15f Merge pull request #2160 from matabele/patch-2
Changed the name of the 'list' attribute to 'field' for the $action-listops widget
2016-01-05 13:06:48 +00:00
Jeremy Ruston
791f97983e Merge pull request #2153 from tobibeer/rows-for-edittext
add rows attribute to edittext, plus docs
2016-01-05 12:31:37 +00:00
Jermolene
5cc1f2b313 Fix problem with search popup disappearing
This one took quite a lot of tracking down…

Fixes #2172
2016-01-03 18:05:08 +00:00
William Jackson
ac8b706d42 Correct Formatting
Removed extra tab spacing and corrected syntax error
2016-01-03 16:30:00 +02:00
William Jackson
a44edee782 Changed indents from spaces to tabs
I am informed this is the correct convention for TW5.
2015-12-28 18:12:22 +02:00
William Jackson
471f28e52b Fix inadvertent clearing of text field (default) when field attribute of the ActionSetField widget isn't set.
When using the widget with only short form SetText attributes (field="value) -- the default field (text) of the default tiddler is set to the default value ("") -- thus clearing the text field of the current tiddler. I have inserted a conditional to test for the presence of the `field` attribute.

Whilst I was about this, I have inserted code to enable the setting of any number of TextReferences -- this fixes the issue of only being able to set one index per widget and also allows different tiddlers to be targeted by the same widget.
2015-12-28 18:08:05 +02:00
Mario Pietsch
3977cf009b fixes #2158 check if new fields are present and warn on cancel 2015-12-28 11:31:36 +01:00
Mario Pietsch
7c4ea64210 fixes #2158 check if new fields are present and warn on cancel 2015-12-28 11:29:43 +01:00
William Jackson
48987e186a Tidied up the code in the filters 2015-12-28 10:31:39 +02:00
William Jackson
2f51c3695d Changed the name of the 'list' attribute to 'field'
Other users found this to be confusing -- I have made this change in both this widget and the $checklist widget to maintain consistency
2015-12-28 10:22:28 +02:00
Jeremy Ruston
fe00229ad5 Merge pull request #2004 from inmysocks/patch-9
Modified fieldmangler to create a tiddler if adding a tag (see #2001 )
2015-12-24 15:22:41 +00:00
Tobias Beer
456e7abc5d add rows attribute to edittext, plus docs 2015-12-24 15:40:00 +01:00
Jeremy Ruston
e344dbe077 Merge pull request #2049 from inmysocks/patch-11
Let $keyboard trigger action-widgets
2015-12-24 14:12:32 +00:00
Jeremy Ruston
dcc53b8e96 Merge pull request #2074 from mklauber/master
Manage a list field by allowing the <$select> widget to select multiple items.
2015-12-24 13:48:43 +00:00
Jeremy Ruston
7676f93932 Merge pull request #2125 from tobibeer/set-emptyValue-always
always set emptyValue, not just for filter
2015-12-23 17:42:41 +00:00
Jermolene
57ceffd67c Merge #1909 from @nameanyone 2015-12-23 12:19:47 +00:00
Jeremy Ruston
ccf6edb940 Merge pull request #1933 from felixhayashi/fix/scrolling
Auto-height fix for text area which is contained in a scroll container
2015-12-22 14:08:56 +00:00
Jeremy Ruston
fa1814d0f4 Merge pull request #2048 from felixhayashi/fix/count
Replacing count with Object.keys
2015-12-22 12:41:24 +00:00
Jeremy Ruston
ef1cd5f55f Merge pull request #1967 from Drakor/fixActionSetField
fixed bug in $action-setfield introduced by #1963
2015-12-21 22:17:51 +00:00
Tobias Beer
ea8a8f1b53 always set emptyValue, not just for filter 2015-12-09 23:33:07 +01:00
Jeremy Ruston
da36f1c728 Merge pull request #2037 from matabele/Listops
ActionListopsWidget
2015-12-06 19:04:26 +00:00
jed
848e351685 removed the handled variable
because it serves no purpose here. That test isn't required in this context.
2015-11-16 10:48:25 +01:00
Jermolene
15f52bd7ce Add support for Nw.js special features to browse widget 2015-11-13 18:47:30 +00:00
Matt Lauber
8ccee5d015 Remove cla for separate PR, and clean up variable declaration. 2015-11-13 11:30:06 -05:00
Matt Lauber
f540be4ac4 use $tw.utils.stringifyList 2015-11-13 08:06:51 -05:00
Matt Lauber
065b274b98 Use the $tw.utls.parseStringArray function to break up a list. 2015-11-13 08:04:13 -05:00
Matt Lauber
c535dd605c Grant the select widget the ability to select multiple values.
Multiple values are placed in a given tiddler-field combination as if
that field were a list field.
2015-11-13 07:50:34 -05: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
Jermolene
ac00aa8407 Allow server module to work under Node even if $tw.browser is defined
Needed for TiddlyDesktop, where want to be able to run the HTTP server
in a hybrid browser/node environment.
2015-11-10 18:13:30 +00:00
William Jackson
befb13dde1 Update x-listops.js
Change default suffix for append[], prepend[] and remove[] operators from 1 to All
2015-11-08 09:49:07 +02:00
Jeremy Ruston
583ed07af2 Merge pull request #1422 from tobibeer/each-list
added list suffix for each filter
2015-11-05 12:45:27 +00:00
Felix Hayashi
f217451fc5 Replacing count's function body with Object.keys
see #2046
2015-11-03 23:47:47 +01:00
William Jackson
817882a404 Update x-listops.js
Added prefix and suffix options to 'append' and 'prepend' operators
2015-10-27 10:17:07 +02:00
Felix Hayashi
d3ab4144d4 Allows text areas to be auto-height while being wrapped in an
element that has scrollbars. The wrapper element with the
scroll bar does not need to be a direct parent of the text area.

**update:** fixed a bug that came up in the discussion

This is fixed now: https://github.com/Jermolene/TiddlyWiki5/pull/1933#issuecomment-141774881

The problem was the check in getScrollContainer()
2015-10-26 21:22:10 +01:00
jed
e55c5b0669 Let $keyboard trigger action-widgets
Because of the refresh problems with the other widgets triggering action-widgets I am doing this one by itself. I hadn't included it before.

This shouldn't have any more problems than the button widget does, and any problems caused by it should be fixed by any fix we use for the button widget. See #1564 for more background
2015-10-26 20:23:09 +01:00
William Jackson
3e445b8853 Update x-listops.js
Corrected the logic of the 'allafter' filter and added a new 'move' filter.
2015-10-22 16:40:36 +02:00
William Jackson
56d467fb47 Create action-listops.js
Action widget designed to apply filters to the current list and save the modified list back to the list. The widget is able to manipulate lists in any field or any data index of the target tiddler, and includes an option to manipulate the tags of the target tiddler. The widget is used in conjunction with the extended list operator filters (xlistops.js)
2015-10-18 18:41:40 +02:00
William Jackson
49894abaf4 Create x-listops.js
These filters are designed to be used with the action-listops widget.
2015-10-18 18:37:08 +02:00
Myeongjin
4347d91c57 add localisable strings for Import/Imported 2015-10-18 17:29:04 +09:00
Jeremy Ruston
b1633e0f2d Merge pull request #1952 from tobibeer/1937-set-refresh-filter
fixes #1937 — filter refresh in set widget
2015-10-14 14:18:29 +01:00
Jermolene
33563d01ba Add user interface for enabling performance instrumentation 2015-10-14 10:59:55 +01:00
Jermolene
85553609b1 Ensure edit-text widget fixes height even if refresh isn't required
Fixes #1995
2015-10-12 17:54:51 +01:00
jed
4c95dc9bbb Modified fieldmangler to create a tiddler if adding a tag to one that doesn't exist
This came up as an issue and I don't have any reason it shouldn't be here. It could be useful.
2015-10-08 20:39:19 +02:00
Tobias Beer
b34e4f628d adopted style recommendations 2015-10-08 14:21:57 +02:00
Tobias Beer
32c41479cc using variable declaration for readability 2015-10-08 14:18:55 +02:00
Tobias Beer
95eb8810b6 removed pushOnce 2015-10-08 14:07:12 +02:00
Tobias Beer
91b5547cdf adopted style recommendations 2015-10-08 14:07:08 +02:00
Tobias Beer
d0a24bd9f0 added $tw.utils.pushOnce
retained check for basic each nonetheless

tests pass
2015-10-08 14:07:06 +02:00
Tobias Beer
f684a6beb0 fixed helper function and added tests
tests: ok
2015-10-08 14:07:00 +02:00
Tobias Beer
a88ead9c0f removed conditional from iterator
I'd really like to see a profiler run against the two to see the
performance impact of one over the other
2015-10-08 14:06:57 +02:00
Tobias Beer
c3cbbc3f66 renamed value to items 2015-10-08 14:06:54 +02:00
Tobias Beer
f9464dfaf8 using variable declaration for readability 2015-10-08 14:06:51 +02:00
Tobias Beer
baca2703f1 added list suffix for each filter
implements #1369

when the suffix is `list`, interprets the field as a list of individual
tiddler titles and returns all titles referenced in the list field of
the source list, existing or not
2015-10-08 14:06:48 +02:00
Jermolene
99df9f46f7 Add support for tiddlers containing mp4 videos 2015-10-01 12:13:38 +01:00
Jermolene
814353d8ce Fix accidental inconsistency between savetiddlers and rendertiddlers
“-do-not-delete” flag for savetiddlers command was introduced in 5.1.10
without consistency with the already implemented “noclean” flag for the
rendertiddlers command
2015-09-29 17:04:01 +01:00
Jermolene
7b8928886b Add tw.utils.tagToCssSelector() helper method 2015-09-28 20:27:43 +01:00
Andreas Hahn
99c5fa46dd fixed bug in $action-setfield introduced by #1963: At least one of '$field', '$value' or '$index' must be specified in order to act upon the information from the fields. Prevents default deletion of the 'text' field when none are specified. 2015-09-27 15:35:54 +02:00
Tobias Beer
6b3fc8d538 updated #1480 "undefined value removes field or index"
when $value is unspecified, $action-setfield removes field or index...

modified

setText() — $:/core/modules/wiki.js
invokeAction() — $:/core/modules/widgets/action-setfield

demo

http://tobibeer.github.io/tw/batch/#ActionSetField-RemoveIndex
2015-09-25 15:20:37 +02:00
Jermolene
57c40a8a56 Text-slicer: Tweaks to fix recently introduced bugs!
* Fixes problem with slicing wikitext tiddlers
* Adjusts position of heading expand/collapse icons in the view
template segment
2015-09-22 12:57:53 +02:00
Tobias Beer
a1ce254e95 fixes #1937 — filter refresh in set widget
as per @EvanBalster
2015-09-21 17:24:26 +02:00
Jermolene
939596bd47 Add new "htmlencodedplainwikified" format to view widget
Triggered by the text-slicer plugin, but general purpose.

The clunky implementation shows the shortcomings of the view widget. It
was one of the first widgets to be implemented; subsequently, the
implementation of macros gives us a potentially more flexible way of
implementing these kinds of text transformations.
2015-09-11 13:34:01 +01:00
Jermolene
eb9fb6635d Fix issues with creation and modification dates
There were several places where tiddlers were being written without the
creation/modification details being updated.

See
https://groups.google.com/d/msgid/tiddlywiki/17ef8ab0-0128-4467-8a9d-f17
bdbcf3618%40googlegroups.com
2015-09-11 13:34:01 +01:00
Jermolene
424b2fea32 Add th-saving-tiddler hook for autotagging etc.
@danielo515 this enhancement is intended to make it easier to implement
things like the auto tag plugin. Does it meet your needs?
2015-09-08 16:16:50 +01:00
Jermolene
ecdae4ceff Make lazy loading message be translateable 2015-09-08 10:41:27 +01:00
Jermolene
5176f008f0 Enhance savetiddlers command with do not delete option 2015-09-03 08:54:17 +01:00
Jermolene
4ccdaf3faf Enhance rendertiddler command with template option 2015-09-03 08:53:08 +01:00
Jermolene
51d771a074 Extend tm-open-window to pass variables 2015-08-31 14:13:32 +01:00
Jermolene
3fbe07f1f8 Fix link widget propogation behaviour
Without this fix, using nested link widgets with custom elements causes
clicks on the inner element to trigger links on each of the containing
widgets
2015-08-30 19:12:12 +01:00
Jermolene
68e15c1064 Move rename tiddler handling into navigator widget
For consistency with the other tiddler manipulation primitives.
2015-08-30 19:11:14 +01:00
Jermolene
a204784c0c Limited implementation of external text tiddlers in the browser
Triggered by the discussion in #1917
2015-08-29 16:33:04 +01:00
Jermolene
2eb645e5e5 Add getAttribute to fakeDom 2015-08-10 20:32:13 +01:00
Jermolene
3cfad8b044 Refactoring of text-slicer
Now we process the rendered HTML of tiddlers, which allows us to
process HTML generated by MS Word. In fact, the HTML that MS Word
generates is so awful, I’ve instead been using Mammoth to do the
conversion: https://github.com/mwilliamson/mammoth.js

Also some necessary improvements to the fake dom implementation.
2015-08-10 11:41:23 +01:00
Jermolene
ac08dc2e35 Added fold/unfold all buttons
More translations, @BramChen, apologies…
2015-08-09 17:25:01 +01:00
Jermolene
16c69bb419 Tweaks to fold button 2015-08-09 16:11:37 +01:00
Jermolene
bad4a19f8e Add fold others button 2015-08-09 12:56:48 +01:00
Jermolene
5d43cd7408 Add fold tiddler toolbar button
Addressing this tweet:
https://twitter.com/s_stryjecki/status/629349768280604672
2015-08-09 11:10:04 +01:00
Jermolene
6a3c4d6c91 Flip logic for suppressing timestamps
Fixing a mistake from the earlier commits, so that the default remains
that the timestamps are applied.
2015-08-09 11:09:02 +01:00
Jermolene
e5cd8313a0 Update actionsetfield widget to allow timestamp to be preserved 2015-08-06 18:17:09 +01:00
Jermolene
fdce67399d Provide option to suppress navigation for edit/cancel/save 2015-08-05 15:07:19 +01:00
Jermolene
72ed4b2673 Add renaming to text-slicer tiddler toolbar
The plan is to expose the functionality in other places, too - for
example, the edit template and the tag manager
2015-08-04 17:44:07 +01:00
Jermolene
9168480d18 Clear caches when changing plugins 2015-08-02 22:22:33 +01:00
Jermolene
8444961cd2 Introduce Story object
A lightweight object to encapsulate manipulation of the story and
history lists
2015-08-01 18:09:00 +01:00
Jermolene
cd29eed067 Fix problem with importing using wrong import tiddler name 2015-08-01 13:48:46 +01:00
Jermolene
8f746f9dde Add parse tree utility for collecting text 2015-08-01 13:14:32 +01:00
Jermolene
f708b4df65 Turn off performance instrumentation
The plan is to make it be a user configurable option
2015-08-01 13:13:47 +01:00
Jermolene
58188cf805 Improvements to parser rule configuration
* Ignore parser rule configuration in safe mode
* Made text translatable
* Added new setting for camelcase links
* Added warning on parser rule configuration tab

See #1875
2015-07-31 13:33:33 +01:00
Jermolene
d5e690a06d First pass at global disabling of parser rules
This is to address #1875 more quickly than via #345.

This commit only includes a partial implementation of the UI - see the
ticket for details.
2015-07-30 12:28:29 +01:00
Jermolene
18e38bb2bc Fix bug with 2cb6400773
The problem was that we failed to escape the dash in the regexp,
meaning that it was matching all characters from “.” to “_”.
2015-07-14 08:33:12 +01:00
Jermolene
2cb6400773 Extend automatic system tiddler linking to digits and underscore
Fixes #1877
2015-07-13 14:42:55 +01:00
Jermolene
32f6d7f1b0 Revert getTiddlerData() and add getTiddlerDataCached()
For backwards compatibility, we now explicitly request the cacheable
version of this method.

Fixes #1873
2015-07-10 16:43:50 +01:00
Jermolene
862e358b57 Refine check for client server plugins
Fixes #1870
2015-07-08 15:48:13 +01:00
Jermolene
8bfc6f3557 Adjust cache names for parse caches
The old names were a hangover from an old refactoring.
2015-07-08 08:26:19 +01:00
Jermolene
848a7f4e74 Optimise getStateQualifier()
Another fix for #1864, this time we’re caching state qualifiers as they
are expensive to compute.
2015-07-06 11:23:12 +01:00
Jermolene
c6e48ebc2d Performance optimisations
In some situations, I’m seeing x2.5 speedups with these optimisations

Starts fixing #1864
2015-07-05 19:47:44 +01:00
Jermolene
a86cfe2663 Minor coding style tweaks 2015-07-05 18:09:35 +01:00
Jeremy Ruston
c4397792f5 Merge pull request #1863 from nameanyone/master
New filter "recent"
2015-07-05 18:04:05 +01:00
Jermolene
b0cb17cd83 Re-establish caching of results of parsing a tiddler
I switched this optimisation off back in
ed35d91be6, in October 2013, as part of a
big refactoring of the parsing and widget mechanism. I’ve been meaning
to switch it back on for some time.

My rough measurements suggest that this optimisation can reduce
rendering time by 5-10%.
2015-07-05 17:48:18 +01:00
Jermolene
3a7e29674b Fix problem with checkbox widget and missing tiddlers
The newly added invertTag code was crashing if the tiddler doesn’t
exist.
2015-07-02 17:33:51 +01:00
nameanyone
a37ba2afbe New filter operator "recent"
Select tiddlers with a specified date field (default "modified") within the last N days (default 0, meaning today).
2015-06-30 14:05:03 -07:00
Jermolene
63f802efda Rename checkbox "invert" attribute to "invertTag"
And update docs
2015-06-26 10:18:15 +01:00
James Welford Anderson
379181ded5 add invert parameter to checkbox plugin
for when you want a tag to denote the lack of a check rather than the
presence of one.
2015-06-26 05:10:13 +09:00
Jermolene
50c6ce8b73 Improve syslink parsing
Fixes #1767
2015-06-24 09:24:03 +01:00
Jermolene
b31803608b Refactor navigator widget configuration
@felixhayashi sorry I should have realised earlier that it’s worth
doing it this way so that we can have different settings for different
story rivers.
2015-06-19 16:44:20 +01:00
Jermolene
4a3a5bf1f0 Don't autosave when cancelling an edit
Fixes #1762
2015-06-13 18:08:09 +01:00
Jermolene
1c72e77106 Add warning if required client-server plugins are missing 2015-05-22 09:05:25 +01:00
Jeremy Ruston
8a999ea745 Merge pull request #1706 from buggyj/zoomin_nav
fix for issue -  Story freezing in zooming mode #1704
2015-05-18 22:39:55 +01:00
Jermolene
9b4b9d4d88 Update sendmessage widget to allow name/value parameters
Using `$name` and `$value` attributes allows more flexibility in how
parameter names are specified, allowing parameter names that are not
valid attribute names.
2015-05-18 22:15:23 +01:00
Jermolene
ecdcfe41ac Fix problem with #1723
Restoring operation of the “default” attribute
2015-05-14 00:07:53 +01:00
Jeremy Ruston
f0206283cf Merge pull request #1723 from cehmke/fix-buttonwidget-textreference-selected
Use of getTextRefence in ButtonWidget.isSelected
2015-05-12 11:20:47 +01:00
Jeremy Ruston
cf3b63c13c Merge pull request #1724 from cehmke/select-refresh-children-first
SelectWidget: Update selected value if children have been refreshed
2015-05-12 11:20:06 +01:00
Jermolene
b5ad255d0c Allow drafts typing timeout to be configured 2015-05-11 20:15:42 +01:00
cehmke
4d3103ff25 Update selected value if children have been refreshed
If the children have been refreshed, it is necessary to check, whether
the value of the select box has been changed.
2015-05-10 19:32:38 +02:00
cehmke
b8addaa520 use of getTextRefence in isSelected
Instead of a particular implementation make use of the overall function
getTextReference to determine the current value.
Add a missing semicolon.
2015-05-10 13:26:00 +02:00
Jermolene
42a3e31b1b Tweaks to #1678 2015-05-07 19:44:08 +01:00
Jeremy Ruston
e93d32cdd7 Merge pull request #1678 from felixhayashi/feature/vars_widget
Introducing the vars widget
2015-05-07 19:36:25 +01:00
Jermolene
61b75be94c Add "navigateFromTitle" to action-sendmessage
Fixes #1665
2015-05-06 08:14:26 +01:00
Jermolene
86e901f375 Fix event handler leak for modals and notifications
Also add support for passing custom variables into notifications.

Fixes #1694
2015-05-06 08:07:12 +01:00
buggyj
45e0f09ade fix multiply displayed tiddlers zoomin error 2015-05-06 07:42:55 +01:00
Jermolene
cad5917eeb Request scrollbars in external windows 2015-05-05 21:47:37 +01:00
Jermolene
a79e7a1c57 Tweaks for #1662
Coding style and ui copy
2015-05-04 20:29:00 +01:00
Jeremy Ruston
4656a7e8f6 Merge pull request #1662 from felixhayashi/feature/navigator_widget
upgrading the navigator widget
2015-05-04 20:21:38 +01:00
Jermolene
403a460002 Check for dom node not found 2015-05-03 16:56:37 +01:00
Jermolene
0932c15e5c Clarify rendering parameters
srcDocument.body.firstChild will in fact be null, but it’s clearer to
write it out
2015-05-03 16:56:27 +01:00
Jermolene
3f26492ac8 Close subwindows when closing main window 2015-05-03 16:24:02 +01:00
Jermolene
48dcf959ff Refactor browser unload task handling
Make it possible to register multiple task functions that will be
called when the window is unloaded
2015-05-03 16:23:35 +01:00
Jermolene
d23f174d01 Add a margin for single tiddler windows 2015-05-03 15:05:26 +01:00
Jermolene
fdeb8a925f Introduce template for single tiddler windows
Lets us include global macros etc.
2015-05-03 14:58:33 +01:00
Felix Hayashi
9693f97b16 upgrading the navigator widget
Motivation / Agenda

* https://github.com/Jermolene/TiddlyWiki5/issues/1651
* https://github.com/Jermolene/TiddlyWiki5/issues/1650

Summary

* Changed the NavigatorWidget (primarily `addToStory()`)
* Applied lingo to settings
* Applied lingo to selectbox options
2015-05-03 13:24:16 +02:00
Jermolene
ec567f67d3 Set title of external window 2015-05-03 08:49:37 +01:00
Jermolene
8708f817fa Improve garbage collection of external windows
Now we remove event listeners when a window is closed
2015-05-02 17:22:53 +01:00
Jermolene
7866f9b2de Typo
Typically for JavaScript, initialising an object as an array doesn’t
break anything because an array is an object. Anyhow, it should be an
object in this case.
2015-05-02 17:22:23 +01:00
Jermolene
9cf5d88cc9 Add "open new window" tiddler toolbar button 2015-05-02 12:12:51 +01:00
Felix Hayashi
740627795f This widget allows the user to set multiple variables in one go.
It thereby reduces code complexity that would arise when setting
many variables using "<$set>".

```
\define helloworld() Hello world!
<$vars greeting="Hi" me={{!!title}} sentence=<<helloworld>>>
  <<greeting>>! I am <<me>> and I say: <<sentence>>
</$vars>
```

How this Widget differs from the set widget:

 * Variables may be created by using the "key=value" notation
   that you already know from widgets like action-setfield.
 * You cannot specify a fallback ("emptyValue")
 * You cannot use a filter to produce a conditional variable assignement

Original discussion that led to the creation of this widget:
https://github.com/Jermolene/TiddlyWiki5/issues/1610
2015-04-27 17:07:13 +02:00
Jermolene
3c7082e181 Fix contrastcolour typo 2015-04-24 11:13:10 +01:00
Jermolene
75a33f5dff Fix problem with "foreground"/"background" palette colours using <<colour>> macro
See discussion here:

https://groups.google.com/d/topic/tiddlywiki/XDlO0EydXtY/discussion
2015-04-21 22:07:16 +01:00
Jermolene
139496209f Add support for custom elements to the button widget 2015-04-21 19:29:54 +01:00
Jeremy Ruston
13a5e8f31c Merge pull request #1520 from roma0104/master
Update the sameday and eachday filter to accept TW5 date strings.
2015-04-06 17:40:32 +01:00
Jermolene
b7465c5eb1 Missed off 7c9976f1d9 2015-04-02 15:22:50 +01:00
Jermolene
7c9976f1d9 Partially revert to 5.1.7 scroll behaviour
We’re keeping the new logic that prevents unnecessary scrolling at
startup

Fixes #1543
2015-04-02 15:21:49 +01:00
Jermolene
758ba5edc2 Allow widgets to choose not to propagate actions
Allow widgets to choose not to propagate actions. This is important for
widgets that themselves trigger actions.

Note that this change will cause problems with any existing
5.1.8-prerelease plugins that call `invokeActions()`.
2015-03-25 22:13:22 +00:00
Jermolene
4eb2e3d3b4 Fix undefined tabindex problem with link widget
The tabindex attribute was being set to the string “undefined” if the
attribute was not specified. The fix is to only set the tabindex
attribute if the attribute was specified.
2015-03-25 11:11:07 +00:00
Jermolene
bd6472c1d1 Add style attribute to reveal widget 2015-03-23 15:28:26 +00:00
Jeremy Ruston
7daddfc5ea Merge pull request #1588 from andreasabeck/passwd-lang
added localisation for encryption dialog & de-DE translation
2015-03-21 19:05:39 +00: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
Andreas Abeck
2c367c5476 added localisation for encryption dialog & de-DE translation 2015-03-18 18:52:33 +01:00
Jermolene
24435a46be Lots of improvements to the plugin library
* Moved “add new plugin” into a modal wizard
* Adopt big friendly buttons
* Add plugin icons and readmes to “add new plugin” modal
* Use tabs for splitting plugins/themes/languages
* Consistent styling between the “add new plugin” modal and the
“installed plugins” control panel tab
* Behind the scenes, moved from addressing the library as
`recipes/defaults/tiddlers/<etc>` to `recipes/library/tiddlers<etc>`
2015-03-18 11:46:28 +00:00
Jermolene
421ac16389 Use inline parsing for header and footer of modals
This may cause backwards compatibility problems for people relying on
the block mode parsing, but it’s much better for the rest of us as it
avoids an unsightly paragraph tag
2015-03-18 11:41:10 +00:00
Jermolene
22b7400de8 Move making a data uri into reusable utilities 2015-03-18 11:40:09 +00:00
Jermolene
a4a9daa40b Extend wiki.makeTranscludeWidget() to control mode 2015-03-18 11:39:50 +00:00
Roma Hicks
55ee327885 Removed uneeded function but still converts TW5 Date strings. 2015-03-13 13:14:30 -05:00
Jermolene
550ad4a1a9 Partial fix for #1570
Stop the logger from creating alert tiddlers on the server. They
propagate to the client but are not deletable from the client because
they are in the `$:/temp` namespace.

cc @loleg
2015-03-12 22:35:03 +00:00
Jermolene
c33a17a475 Revert "sort unlisted tags by title"
Revert “sort unlisted tags by title”
a8ab08e8fa by @tobibeer

The problem was that this commit changed the order of stylesheet
processing. For background see:

https://groups.google.com/d/topic/tiddlywiki/BPuuSkG6siU/discussion
2015-03-11 19:17:14 +00:00
Jermolene
657c266522 Coding style tweaks 2015-03-10 20:04:34 +00:00
Jermolene
e80a08f43b Fix problem with custom tag in reveal widget 2015-03-10 16:59:25 +00:00
Jermolene
1808b1597e Support custom HTML element tags for reveal widget 2015-03-10 12:44:47 +00:00
Jermolene
64e1a76987 Prevent edit-text widget from generating unsafe elements 2015-03-10 12:34:50 +00:00
Jermolene
65d81921f9 Further fixes to scrolling behaviour 2015-02-25 20:24:07 +00:00
Jermolene
8d46c18fc7 Refine fix for #1526
The previous fix changed the scrolling behaviour such that it only
scrolled to the top of a tiddler if the tiddler was entirely offscreen.
It wasn’t entirely satisfactory because scrolling was prevented even if
only a few pixels of a tiddler are in view. This commit ensures that
the scroll does occur if less than 50 pixels of the target is in view
2015-02-25 19:09:53 +00:00
Jermolene
489bc7a50b Only scroll to top when tiddlers are completely off-screen
Fixes #1526
2015-02-25 19:01:40 +00:00
Jermolene
05c3de3245 Extend list widget to invoke storyview for refreshes 2015-02-23 11:24:03 +01:00
Jermolene
950a86c7b7 Extend link widget with additional attributes
Add “tabindex”, “draggable” and “tag” attributes
2015-02-23 11:23:44 +01:00
Jermolene
0da1f3f554 Extend list widget to pass refreshes to the story view 2015-02-23 11:17:00 +01:00
Jermolene
60e6b584bf Extend link widget with new attributes
Add “draggable”, “tag” and “tabindex” attributes to link widget.
2015-02-23 11:16:44 +01:00
Roma Hicks
a5591dc7a5 Update the sameday and eachday filter to accept ISO date strings. Extends coverage to fields that are not automatically converted to Date objects. 2015-02-21 11:39:03 -06:00
Jermolene
bba4794c0a Coding style updates
@welford there were some minor tweaks with whitespace, coalescing
consecutive var statements, camelcase rather than underscores in
variable names.
2015-02-20 22:17:28 +00:00
James Welford Anderson
1901702557 bug fix
Createdirectory is removed as $tw.utils.createFileDirectories does it's
work

Fixed a bug for when tv-get-export-path returns null.
2015-02-21 07:06:59 +09:00
James Welford Anderson
cf59e7a71b re-add outputpath variable 2015-02-21 06:49:34 +09:00
James Welford Anderson
ee6b6a0f0c add macros for custom statically exported paths/links/images
tv-get-export-path tells render tiddlers where to export files
tv-get-export-image-link tells images.js where to look for images
tv-get-export-link tells tells link.js where to look for links to other
exported tiddlers
2015-02-21 06:45:40 +09:00
Jermolene
3df341621d Alternative fix for unnecessary startup scrolling
@aelocson here’s an alternative fix for #981, as discussed in
https://github.com/Jermolene/TiddlyWiki5/commit/691e5719a4ff74a04d389bd1
26ba2a69e7651a2a#commitcomment-9848682

It does seem a lot nicer. It avoids the problem you raised, and also
avoids scrolling when a permalink is used.

I suspect that we’d need to make the hard-coded 50 pixels be
configurable.
2015-02-20 20:04:18 +00:00
Jermolene
ead6eb00d4 Revert "Merge pull request #1509 from welford/static_export_macro"
This reverts commit b2b8006b58, reversing
changes made to e7e16137b2.

@welford my apologies it turns out there are a couple of problems, I’ll
comment more on the pull request
2015-02-20 18:39:13 +00:00
Jeremy Ruston
b2b8006b58 Merge pull request #1509 from welford/static_export_macro
Static export macro for custom paths
2015-02-20 18:15:43 +00:00
Jermolene
9e9b9a3bf1 Avoid navigating to an empty title
Fixes #1515
2015-02-20 16:19:53 +00:00
Jermolene
1e9e1a1fdc Single quotes should be HTML encoded
As raised here:
https://groups.google.com/d/topic/tiddlywiki/nYvgcImvBt8/discussion
2015-02-20 16:09:38 +00:00
James W. Anderson
d1809f352c explicitly pass through source params
from the image/link widget to the respective static export macros
2015-02-17 07:11:00 +09:00
Jermolene
42d130d49d Revert #1496
The change affects the default display of the story river, reversing
the order of entries.
2015-02-16 19:17:10 +00:00