1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-12-26 18:10:27 +00:00
Commit Graph

1907 Commits

Author SHA1 Message Date
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 `👷` 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