1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-06-25 23:03:15 +00:00
Commit Graph

482 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
487d6642e3 Fix KaTeX rendering bug on Chrome
Fixes #2500
2016-07-21 08:48:13 +01:00
Jermolene
5cc09d9cd5 Fix some typos from #2504 2016-07-20 16:16:21 +01:00
Devin Weaver
64b7e66675 Prevent adding extra file extensions (#2504)
Fixes #2503

This bug was introduced in commit c4c7b18 where it would append
additional .tid extensions to a file every time the node server was
restarted.

Here we check the filepath does not have the extension already before
appending it.
2016-07-20 16:07:28 +01:00
Jermolene
c4c7b1868c Ensure .tid extension when saving .tid files
Missed off of a4506231a7
2016-07-15 16:55:57 +01:00
Jermolene
a4506231a7 Fix writing non-wikitext text tiddlers
The plan had been to switch template depending on the content type, but
we’d only implemented support for saving wikitext tiddlers. That meant
that creating a tiddler with any non-wikitext content type failed to
write the file correctly under Node.js.

Now we just always save in .tid file format.
2016-07-14 17:42:57 +01:00
Jermolene
b849011d8f Move stacked view control panel into sidebar 2016-07-12 17:22:33 +01:00
Jermolene
14dc8accd6 Blog plugin: Transclude caption so that wikitext works 2016-07-12 13:16:30 +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
Brent Maxwell
19e699d330 Added mobile-web-app-capable meta tag for Android Chrome (#2456)
* Added mobile-web-app-capable meta tag for Android Chrome

* Added "mobile-web-app-capable" meta tag to the rest of the templates.
2016-07-11 11:16:58 +01:00
Jermolene
c3d18364c1 Don't use syncadaptors until they are ready
Fixes #2453
2016-07-05 11:29:59 +01:00
Myeongjin
74db143ee8 Split exporters from miscellaneous language tiddler (#2460) 2016-05-23 12:30:57 -06:00
Myeongjin
99c21232ee Fix referred name of localisable string for recursive transclusion error (#2458) 2016-05-22 15:33:02 -06:00
Myeongjin
fb146bc4b8 Fix readme path of jszip (#2430) 2016-05-20 07:46:29 -06: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
Myeongjin
33a569f6ce Fix problem when single tiddler is outputed (#2433) 2016-05-11 11:26:13 -06:00
Jermolene
c5ac10024b Text-slicer: Fix issue with missing destination title 2016-05-11 11:13:15 -06:00
Myeongjin
71284fbc6a Except specific prefixes from miscellaneous in translators plugin (#2432) 2016-05-10 12:07:13 -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
Myeongjin
71111550d6 Add localisable strings for vanilla (#2422)
* Add localisable strings for vanilla

* Remove system tiddler for theme tweaks from fr-FR edition
2016-05-05 10:11:06 +01:00
Jermolene
6dce8d9763 Remove final vestiges of undo/redo buttons 2016-05-01 13:54:16 +01:00
Jermolene
7d0ac4f86e Remove extraneous "mode" field from snippet tiddlers 2016-04-29 18:54:44 +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
5b11399793 Update KaTeX plugin to v0.6.0 2016-04-22 15:50:23 +01:00
Jermolene
44e9634164 Update codemirror and markdown plugins from #2315 2016-04-22 08:41:31 +01:00
Jeremy Ruston
2adf09129d Introduce text editor toolbar (#2315)
Tada!
2016-04-22 08:36:29 +01:00
Jermolene
51db3e9e75 Text-slicer: style edit and view templates 2016-02-29 17:47:46 +00:00
Jermolene
6e4222e5e8 Text-slicer: tweak interactive document display
* Add icon for view template segment
* Muted background colour for view template segment
* Include links to parent tiddlers in the view template segment
* Fix logic for hiding/showing documents/headings (“open”/“close” were
transposed)
2016-02-28 20:18:01 +00:00
Jermolene
e2d0b70fad Text-slicer: Add an advanced search filter for orphans
Locates tiddlers marked as document components that are not linked into
any active document
2016-02-28 19:56:24 +00:00
Jermolene
4041009d43 Text-slicer: standardise titles of state tiddlers
As noted by @Evolena, it’s cleaner to use the standard prefix for the
UI state tiddlers
2016-02-27 14:40:14 +00:00
Jermolene
7498989ebb Text-slicer: better support for specifying the output title
Can be specified directly, or taken from a field of the tiddler being
sliced, falling back to a default.
2016-02-27 12:25:48 +00:00
Jermolene
9abe85f60b Minor tweaks to #2275
* Cleaner handling of “updated” attribute
* Fixed handling of note attributes, which now get imported as custom
fields
* Clearer handling of ISO dates
2016-02-16 16:35:28 +00:00
Jeremy Ruston
7ea3ef7062 Merge pull request #2275 from Marxsal/patch-9
ENEX import - Apply modified (updated) dates
2016-02-16 16:24:45 +00:00
Jermolene
f8552ac48d Readme for internals plugin 2016-02-15 22:43:15 +00:00
Jermolene
e4fa7d579a Added raw html preview to internals plugin 2016-02-15 12:02:46 +00:00
Jermolene
b0aed107d3 Fix internals plugin tiddler titles 2016-02-15 12:02:37 +00:00
Jermolene
3ae0f3666a Add Internals plugin
Adds a live preview of the raw JSON of the parse tree or widget tree
generated from a tiddler.
2016-02-15 11:38:55 +00:00
Marxsal
eabf187a7f Update modified (updated) dates
Without modified dates, new imports do not appear in recent file list. The equivalent of modified dates in ENEX is the 'updated' tag, with a date format similar to that of TW with the exception that the date format consists of a date stamp, a letter T, and a time stamp followed by Z for UTC presumably. There is no millisecond indicator. Not all ENEX notes have an update tag. The solution here is to apply creation date by default and then apply the update date if it is available.  Dates are converted by stripping out Z and T and appending '000'.
2016-02-07 10:59:57 -08:00
Jermolene
5238b4d503 Evernote plugin: fix crash with missing fields 2016-02-05 23:05:24 +00:00
Jermolene
5b925ed868 Further tweaks to #2272
@sukima the main issue with the previous code was that it incorrectly
used comma to delimit tags. We actually use spaces, and double square
brackets to delimit tags containing spaces. Better is to leave the tags
field as an array; the core will serialise it correctly as required.

I also made some minor consistency tweaks.
2016-02-05 19:48:37 +00:00
Jermolene
6aac2b00c9 Correct typo in #2272 2016-02-05 19:03:58 +00:00
Jeremy Ruston
d1d41fb9fc Merge pull request #2272 from sukima/feature/issue-2268-evernote-importer
Add some features to the EverNote import plugin
2016-02-05 18:56:38 +00:00
Jermolene
46800d790a Text-slicer: Add list-children filter operator
Again, I needed this for the day job. @felixhayashi I think you
submitted a pull request for something similar, would this version meet
your needs?
2016-02-05 18:46:01 +00:00
Devin Weaver
4525a3d631 Add tags support to evernote plugin
Relates to Issue #2268

I tried to map over the list of tags but NodeLists are not arrays and so
need to be converted. This looks ugly and probably should be abstracted
to a function. Come to think of it should we have a `$tw.utils.map()`
function?
2016-02-04 19:24:46 -05:00
Devin Weaver
4b70257aca Add evernote's additional resources as tiddlers
Relates to Issue #2268

Based in the [example XML][1] attachments are listed in the <resources>
node. Since in TiddlyWiki these would be media tiddlers I add then one
by one as separate tiddlers.

There are some things that still need to happen. There should be a mime
type check so we don't attempt to import media tha TiddlyWiki doesn't
support. Also the example suggests the data is base64 encoded so I
blindly use that for the text attribute. Should there be a
`data:mediatyp;base64,…` prefix?

[1]: https://gist.github.com/evernotegists/6116886
2016-02-04 18:37:45 -05:00
Devin Weaver
1d35087f29 Add additional fields support for evernote plugin
Relates to Issue #2268

Add the additional field defined in the XML as properties to the result.
This also appears to capture the 'author' field.
2016-02-04 18:31:24 -05:00
Jermolene
8904a6dba6 First commit of Evernote migration plugin
Starts to address #2268
2016-02-04 10:13:08 +00:00
Jermolene
1335dff450 Text-slicer: Checkbox for hiding document metadata 2016-02-03 12:48:15 +00:00
Jermolene
3e78f5cffd Text-slicer: Fix problem with static template for list items
We were rendering the children of the list item outside of the
generated LI tag.
2016-02-02 17:40:29 +00:00
Jermolene
c98ef97d23 Text-slicer: Use xmldom plugin so we can slice under Node.js 2016-02-01 21:34:28 +00:00
Jermolene
68b54a6e6f Add xmldom parser
Integrating this module allows us to do HTML/XML parsing under Node.js
(there is no built-in support for Node.js; we can already do HTML/XML
parsing in the browser). The implementation chosen is pure JavaScript,
and will work in all configurations of TiddlyWiki.
2016-02-01 21:28:52 +00:00
Jermolene
176d2ccd76 Text-slicer: Add support for notes within documents 2016-02-01 21:26:11 +00:00
Jermolene
b8aa60cdab Text-slicer: Fix bug with nodes without a classname 2016-02-01 21:22:55 +00:00
Jermolene
3a10bfe0de Text-slicer: copy document fields from source tiddler
User-defined fields of the source tiddler are copied across to the
document tiddler when it is sliced.
2016-02-01 20:16:45 +00:00
buggyj
74e8afdcdd fix for #2189 2016-01-07 22:11:26 +00:00
Jeremy Ruston
0d27f3b836 Merge pull request #2154 from spelufo/katex-displaymode
Revert katex plugin to using `$$`. Use multiline for display mode.
2015-12-24 18:02:54 +00:00
Santiago Pelufo
8e02390353 Revert katex plugin to using $$. Use multiline for display mode. 2015-12-24 13:52:19 -03:00
Jeremy Ruston
44bf4310d2 Merge pull request #2058 from maweki/tiddlyweb-description
Expand description of "TiddlyWeb and TiddlySpace components"
2015-12-24 14:03:10 +00:00
Jeremy Ruston
3dc001620c Merge pull request #2145 from spelufo/katex-displaymode
Make latex-parser.js render $$$ as display mode math
2015-12-23 17:19:58 +00:00
Santiago Pelufo
a94ba99ec2 Make latex-parser.js render $$$ as display mode math 2015-12-23 14:14:58 -03:00
Jeremy Ruston
55f053ec89 Merge pull request #2139 from spelufo/katex-displaymode
Add displayMode attribute to katex widget
2015-12-23 13:20:49 +00:00
Jermolene
231d0a3dc8 Add plugin wrappers for async and jszip
The immediate motivation is the work I’m doing to integrate with Amazon
Web Services.

We should be able to use JSZip to export multiple tiddlers in a single
operation from the browser.
2015-12-19 18:47:42 +00:00
Santiago Pelufo
aaf3e6bb9e Add displayMode attribute to katex widget. 2015-12-18 11:46:19 -03:00
Jermolene
6e7f532825 Remove extraneous icon for blog plugin
We had just reused the text-slicer icon
2015-12-13 18:26:37 +00:00
Jermolene
aae1bf9f80 Blog edition: Add classes for the static menu 2015-11-25 15:32:53 +00:00
Jermolene
0769b90bb7 Text-slicer: Control preview column with dropdown
Instead of showing a sequence of all documents in the preview column,
we just show a single document, with a dropdown to choose which one is
shown.

The change makes it easier to deal with large numbers of documents.
2015-11-05 12:33:21 +00:00
Mario Wenzel
eb34709cc4 Expand description of "TiddlyWeb and TiddlySpace components"
This should fix #2019
2015-11-03 19:56:14 +01:00
Jeremy Ruston
52e0524fbf Merge pull request #1984 from senevoldsen90/master
Local relative urls in Markdown map to WikiLinks
2015-10-26 19:51:16 +00:00
Evolena
717e9ae913 Better wording and naming 2015-10-24 12:01:43 +02:00
Evolena
0a220a09da Text-slicer: Add support for definition lists 2015-10-14 20:25:11 +02:00
Jermolene
2d9471fe3b Text-Slicer: Add support for static rendering of external images 2015-10-09 17:09:30 +01:00
senevoldsen90
e5cef9a5a6 Local relative urls in Markdown map to WikiLinks 2015-10-09 15:11:24 +02:00
Jermolene
5faba15446 Text-slicer updates 2015-10-08 18:04:24 +01:00
Jermolene
c0c0b6653c Blog updates 2015-10-01 12:13:48 +01:00
Jermolene
b30126ec22 Text-slicer: add support for document metadata fields
The metadata for each field is in a tiddler tagged
`$:/tags/DocumentMetaData` with the field `caption` being the displayed
caption for the field and `field` being the name of the field.
`field-type` is the type of the field, and can be “string” or “list”.
2015-09-27 22:53:46 +01: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
Jermolene
21175012dc Text-slicer: Fixes for images 2015-09-18 19:45:34 +01:00
Jermolene
dc020276b0 Update filesystemadaptor to use a metafile for all binary files
Previously, newly created image files would end up being saved as a
base64-encoded .tid file. Now they are saved as an ordinary binary file
with an accompanying .meta file for the metadata.
2015-09-17 19:43:10 +01:00
Jermolene
e2d63a03b2 Text-slicer: Improvements to image handling 2015-09-17 19:41:41 +01:00
Jermolene
1fef272388 Text-slicer: starting to support images 2015-09-17 08:41:21 +01:00
Jermolene
7b8cb928cf Text-slicer: initial support for anchors 2015-09-16 18:59:03 +01:00
Jermolene
5dbaf187f1 Text-slicer: more refactoring 2015-09-15 13:37:12 +01:00
Jermolene
746aab2cf6 Create a plugin and edition for tw5.com docs
By making the docs available as a plugin we make it easier for people
to fork their own copy of the docs without losing the ability to get
updates in the future (which can be done just be updating the docs
plugin)
2015-09-15 13:37:01 +01:00
Jermolene
e19617a5ce Text-slicer updates 2015-09-13 09:37:57 +01:00
Jermolene
e62778a50f Text-slicer: Make sliced documents collapsible 2015-09-12 09:41:25 +01:00
Jermolene
3592a9560b Highlight plugin: add static demo
Also clean up some coding style issues
2015-09-11 22:36:30 +01:00
Jermolene
c80db86b67 Update to v8.8.0 of highlight.js 2015-09-11 19:53:06 +01:00
Jermolene
b379ab4f87 Text-slicer: better static HTML generation 2015-09-11 13:34:01 +01:00
Jermolene
470238acbf Fixes to KaTeX v0.5.1 upgrade
I hadn’t noticed that the fonts had changed…
2015-09-09 13:56:52 +01:00
Jermolene
f405a89b28 Update to KaTeX v0.5.1 2015-09-08 10:37:33 +01:00
Jermolene
026c84197f Text-Slicer: Support folding and fix bug with filter for retrieving list contents 2015-09-07 17:01:11 +01:00
Jermolene
f0a655d8b2 Text-slicer: Switch from weaving with tags to lists alone
Many reasons:
* to allow subtrees to be grafted more easily
* to keep the tags for an entry clean by removing structural tags and
leaving the semantic tags
* to avoid the duplication of expressing the same relationship through
both the tags and list fields
2015-09-04 09:05:33 +01:00
Jermolene
4ea5dce284 Text-slicer improvements
1. Switch from using the text field of lists for storing the associated
filter to using the field `toc-list-filter` (to make it harder to
accidentally parse the text of an ordinary tiddler as a filter)
2. Fix several bugs
2015-09-04 08:42:07 +01:00
Jermolene
5dcb53abae Docs update for text-slicer 2015-09-03 08:54:48 +01:00
Jermolene
ad6a6f3b75 Introduce the blog plugin 2015-09-03 08:54:41 +01:00
Jermolene
c4244e8f04 Text-slicer improvements
# Allow the slicer to be used as a command
# Sort the document preview column
2015-09-01 17:25:45 +01:00
Jermolene
b4aa895cac Text-slicer: add support for exclude filters
The exclude filter `+[tag[intro]]` will produce a document that only
includes the paragraphs with the tag “intro”. These are derived from
the paragraphs in the original document with the CSS class “intro”.
2015-09-01 09:59:23 +01:00
Jermolene
17dc21b809 Text-slicer refactoring 2015-08-31 20:32:32 +01:00
Jermolene
0be82ea7fb Text-slicer: Introduce separate static templates
Much easier to have separate sets of templates for interactive vs
static document trees
2015-08-31 19:50:56 +01:00
Jermolene
cc4bef9c0e Text-slicer: reorganise plugin shadow tiddler titles 2015-08-31 16:49:47 +01:00