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

2103 Commits

Author SHA1 Message Date
Jermolene
518f57f4bb Add new hook "th-importing-files" 2017-10-11 17:52:37 +01:00
Jermolene
7bdaabce78 Browse widget: add support for nwdirectory attribute 2017-10-03 21:52:51 +01:00
Jermolene
05a3d9a302 Syncer: allow logging to be disabled
We don't want the syncer used by the savetrail plugin to be logging
2017-09-26 17:10:57 +01:00
Jermolene
1dcc8c99e5 Ensure we don't colour browser logs under nw.js
Under nw.js $tw.browser and $tw.node are both true...
2017-09-22 15:18:11 +01:00
Jermolene
73953080e3 SaveTrailPlugin: Fix syncer UI interactions
The syncer used by the savetrail plugin shouldn't perform any UI interactions
2017-09-20 16:28:11 +01:00
Jermolene
9ada7a0bb1 Ensure fieldmangler widget always updates modifier/modified fields
Fixes #2969
2017-09-20 14:09:18 +01:00
Arlen22
c069d48a2a Remove URI encoding from PUT saver (#2974)
Remove URI encoding from PUT saver and let the browser handle it as necessary. This seems to be the normal way of doing things. We have confirmed that several WebDAV servers do not expect the file names to be double-encoded.
2017-09-16 15:30:13 +01:00
Jermolene
35a7a66b01 Add "save" and "render" commands
A first pass at fixing #2973 - comments are welcome. If everybody is
happy, the next step is to deprecate the existing
rendertiddler(s)/savetiddler(s) commands and replace them in all
examples and tiddlywiki.info files with the new equivalents.
2017-09-12 16:04:07 +01:00
Jermolene
aa417fe899 Add new "lookup" filter 2017-09-07 15:48:00 +01:00
Jermolene
1b7d9d65f4 Only use colour output if we're on a terminal
And not if we’re running on AWS Lambda, for instance
2017-09-07 15:47:36 +01:00
Jermolene
51b1ead5c9 Add more colour to command line output 2017-09-04 14:55:12 +01:00
Jermolene
06ea4060cb LinkWidget: Add support for tv-filter-export-link
This change makes it possible to perform the conversion from target
tiddler title to `href` value as a filter expression (previously a
JavaScript macro was needed to use the tv-get-export-link variable)
2017-08-28 11:06:21 +01:00
Jermolene
90c1c6242e Fix typo 2017-08-28 10:29:36 +01:00
Jermolene
5cdf86b307 Add more transliterate pairs
Should help avoid me accidentally committing files with accents in
their titles
2017-08-26 23:17:53 +01:00
Jermolene
d3a2cfb2bc Move $tw.utils.transliterate() into its own file 2017-08-26 23:11:22 +01:00
Jermolene
8293a77c6e Add "mode" attribute to View widget
Useful for controlling how the content is parsed
2017-08-24 20:58:08 +01:00
Jermolene
a4d919f45c Extend browse widget with deserializer attribute
Along the same lines as 596dfa1d50
2017-07-18 15:32:50 +01:00
Jermolene
e951047461 Add import command
Unlike load, allows manual control of the deserializer to be used
2017-07-12 17:14:27 +01:00
Jermolene
5dd3d97760 Extend the set widget with tiddler, field and index attributes 2017-07-12 16:59:56 +01:00
Jermolene
c25a1eef33 Remove obsolete code and update docs 2017-07-12 16:50:50 +01:00
Jermolene
d966583854 Add new "\whitespace" pragma
This will allow us to simplify some of the more unreadable core
wikitext tiddlers…
2017-07-12 16:46:13 +01:00
Jermolene
596dfa1d50 Allow manual selection of deserializer for dropping or importing files 2017-07-12 16:42:16 +01:00
Jermolene
95ef1c4580 Fix linkcatcher recursion problem
Using action-navigate within the “actions” attribute of the linkcatcher
widget would otherwise trigger the navigation handler recursively.
2017-07-10 14:43:43 +01:00
Jermolene
dc295b2536 LinkCatcherWidget: Add variable containing target tiddler 2017-07-07 12:16:14 +01:00
Jermolene
69528093d9 Update fetch commands to respect 302 redirects
Astonishingly, node.js appears to require us to do this manually…
2017-07-05 10:58:35 +01:00
Jermolene
c179dc93cb Add "raw-file(s)" options to "fetch" command 2017-07-03 16:52:10 +01:00
Marxsal
4db950cc45 Add ability to now macro to return same UTC string used in date fields (#2884)
* Add ability to now macro to return same UTC string used in the modified and created fields.

* Revert "Add ability to now macro to return same UTC string used in the modified and created fields."

This reverts commit 7b6ad7db4a.

* Mods to formatDateString to adjust displayed date to UTC for [UTC]
format. Corresponding doc changes, and optimization for special
case.
2017-07-01 18:09:16 +01:00
Jermolene
ccac0258af Apply URL decoding in download saver
document.location gives us an URL encoded version of the original
filename, so we decode it to recover the original filename for saving.

Fixes #2828

Fixes #2819
2017-07-01 12:39:25 +01:00
Xavier Cazin
a7b57d7f97 allbefore:include should be the identity function when applied to 1st item (#2842)
* fr-FR translation of additional error strings

* allbefore:include should be the identity function when applied to the 1st item
2017-06-29 18:02:33 +01:00
Rob Hoelz
847727146e Fix issue 2850 (#2852)
* Trim tiddler titles imported via JSON

Otherwise, it's possible to create a tiddler with a trailing space (or a
leading one, I suppose) in its title.  TiddlyWiki, in general, trims
titles before operating on a tiddler, so having a tiddler with a
trailing space ends up making that tiddler, for all intents and
purposes, uneditable.

Fixes GH #2850

* Signing the CLA
2017-06-29 17:07:23 +01:00
saqimtiaz
48e0186ba9 Added th-editing-tiddler hook in handleEditTiddlerEvent. A plugin can use the hook to return false and prevent editing or provide alternative editing options. (#2901) 2017-06-29 08:55:43 +01:00
Jermolene
2d0ac7245f Docs and tweaks for #2904
@saqimtiaz I added a dash to separate the words in the variable names
for consistency with other core variables.
2017-06-29 08:47:26 +01:00
saqimtiaz
5d74513a97 Navigator now sets variables for the story list and history list, that are available to child widgets. Needed in a mutiple-story tiddlywiki. (#2904) 2017-06-29 08:36:20 +01:00
Jermolene
a5e565e198 Tweaks for #2918
A couple of fixes:

* Fixed problem with loading saver in a file URI within Beaker
* Fixed problem when saving to a directory-style URI with an implicit
“/index.html”
* Switched to double quotes for strings
2017-06-24 22:30:26 +01:00
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