1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-27 12:07:19 +00:00
Commit Graph

248 Commits

Author SHA1 Message Date
Jermolene
8f63e2a959 Optimise iterating through tiddlers
Astonishingly, it’s much quicker to use `Object.keys()` to get an array
of key names, and then iterate through that. I’m seeing 25% speed
improvements for an empty tiddler iterator.
2015-07-08 08:27:28 +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
53072dd7aa Extended tiddlywiki.files to support tiddler files
Previously, we just read the target file as a block of UTF-8. With this
update, we deserialise the file, allowing us to use file formats like
.tid within the tiddlywiki.files file.
2015-06-23 10:49:59 +01:00
Jermolene
81e4d43a25 Debug hooks for tracing tiddler deletions 2015-05-13 23:55:00 +01:00
Jermolene
e9a1a53922 Better error checking for reading field lists
This change ensures that lines starting with a colon are ignored,
allowing them to be used as comments.
2015-05-07 19:24:58 +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
Andreas Abeck
2c367c5476 added localisation for encryption dialog & de-DE translation 2015-03-18 18:52:33 +01:00
Felix Küppers
f99a4e7664 Bugfix: Object.freeze() called on null
For five minutes I stared at the following code...

    if(value != null && typeof value === "object") {
      Object.freeze(value);
    }

... and at the error message that led me to this code: `Object.freeze called on non-object`

And then I remembered that js treads null as object (http://www.ecma-international.org/ecma-262/5.1/#sec-11.4.3). This means the `typeof === "object"` will not discover null and freeze will throw an error...

So `value != null` will also work when value is undefined.

A hard to find bug ;)
2015-03-07 20:47:43 +01:00
Jermolene
a2493f80a9 Add support for zip files 2015-02-23 11:57:16 +01:00
Jeremy Ruston
6c62954116 Merge pull request #1505 from pmario/fix-search-path-runtime-error
Fix trailing semicolon in TIDDLYWIKI_EDITION_PATH
2015-02-17 20:56:14 +00:00
Mario Pietsch
e1b57bf9e5 remove temporary variable 2015-02-17 01:29:42 +01:00
Jermolene
e386e26b2d Fix problems with $tw.utils.checkVersions()
Previous changes since 5.1.7 broke the documented semantics by no
longer returning true when the versions match. It affected the upgrade
process, making it impossible to upgrade to a later pre-release (ie
where the version numbers in the upgrade.html match those in the file
being upgraded).

Also reviewed and updated the calls to checkVersions.

@felixhayashi I think that this effectively reverts the change you
original submitted. Are you OK with it?
2015-02-12 23:04:20 +00:00
Mario Pietsch
95d7a826f0 space added 2015-02-12 20:03:20 +01:00
Mario Pietsch
17c38b1ec5 fix problem if edition search path is TIDDLYWIKI_EDITION_PATH=c:\test; because the trailing semicolon creates an empty directory name. 2015-02-12 14:44:10 +01:00
Jermolene
4b61cae262 Add debugging hook for wiki.addTiddler() 2015-02-10 11:30:39 +00:00
Jermolene
b1bb52b67a Fix typo from 8cd0c2afcd 2015-02-07 10:23:16 +00:00
Jim Lehmer
8cd0c2afcd Make sure all "get" access to $tw.config.fileExtensionInfo goes through a $tw.utils.getFileExtensionInfo helper function that ensures the parameter is cast to lowercase. Fixes #1418. 2015-02-01 12:33:40 -06:00
Jermolene
3bbbda0819 Allow callers of the bootprefix to determine browser status
This gives us finer control under node-webkit of whether the core
thinks we’re running under the browser or node.
2015-01-11 14:21:31 +00:00
Felix Küppers
70cbb5efc5 Update boot.js
if major, minor and patch are equal, the incoming wins.
2014-12-23 19:21:54 +01:00
Felix Küppers
d33b525067 Update boot.js 2014-12-23 18:13:59 +01:00
Felix Küppers
1d344dba69 prerelease matters
incoming 3.7.2 loses against existing 3.7.2
incoming 3.7.2-prerelease loses against existing 3.7.2
incoming 3.7.2-prerelease wins against existing 3.7.2-prerelease
2014-12-23 13:53:58 +01:00
Felix Küppers
9fad60beb3 another suggestion
in case of equal versions, use the incoming and replace the existing.
2014-12-21 20:55:44 +01:00
Felix Küppers
e00534635e Update boot.js 2014-12-19 19:24:13 +01:00
Jermolene
1e3a41311d Use OS-independent path delimiter
Fixes #1187
2014-12-03 17:24:59 +00:00
Jermolene
e11c9e83b9 Coding style cleanup 2014-12-02 15:32:52 +00:00
Tobias Beer
4d68111c49 added object as third parameter to callback 2014-12-02 12:47:19 +01:00
Tobias Beer
0f157cff90 code style revision
thanks, Jeremy... will watch out for that
2014-11-26 18:50:12 +01:00
Tobias Beer
1e47a62c2a allows to break out of $tw.utils.each
Will improve performance with `$tw.utils.each` callbacks breaking out of
the iteration via `return false;`.
2014-11-26 17:51:27 +01:00
Jeremy Ruston
92b957f6f8 Merge pull request #1118 from welford/hook
Add hooks mechanism and th-opening-default-tiddlers-list hook
2014-11-25 19:25:00 +00:00
Jermolene
62ad533aa6 Clarify tiddlerExists docs 2014-11-24 09:22:43 +00:00
Jermolene
a614c0d543 Improve compatibility with JS modules
If a module ended with a single line comment `\\` then the appended
`;})();` was being ignored and eaten up as part of the comment.
2014-11-23 15:24:01 +00:00
James Welford Anderson
804a579d17 Remove alert from addHook.
Thanks to @tobibeer
2014-11-23 14:34:04 +09:00
James Welford Anderson
90caf5bf42 Add hooks mechanism and th-opening-default-tiddlers-list hook
see: https://github.com/Jermolene/TiddlyWiki5/issues/1064
2014-11-23 01:11:56 +09:00
Jermolene
8e685e5150 Allow includeWikis to be read-only
Hopefully this will help resolve issues that @xcazin and @pmario have
been having with using the client-server configuration to prepare
translations of the TW5 docs.
2014-11-13 12:28:51 +00:00
Jermolene
853f5fd064 Add some logging for file import/paste 2014-11-08 08:37:08 +00:00
Jermolene
cea963420c Improve error handling under Node.js
Now we include the stack trace with the error message. Thanks to
@felixhayashi for the suggestion.
2014-11-03 16:14:51 +00:00
Jermolene
5d600ce31b Coloured warnings and errors under Node.js 2014-10-21 19:30:27 +01:00
Jermolene
9fedf38657 Remove checking for missing wiki folders
Thus undoing 744245ea32 because of #1002
2014-10-21 19:28:38 +01:00
Jeremy Ruston
f25053490e Merge pull request #998 from xcazin/ogg
Add audio/ogg  to the list of recognised formats
2014-10-20 12:30:00 +01:00
Xavier Cazin
6833bfb220 Add audio/ogg to the list of recognised audio formats 2014-10-19 22:09:17 +02:00
Jermolene
744245ea32 Raise error for missing wiki folders
Only raise the error if the wiki path is explicitly specified on the
command line, avoiding `tiddlywiki —version` raising an error if the
current directory isn’t a wiki folder.

Fixes #990
2014-10-18 19:39:39 +01:00
Jermolene
6c76670137 Removed outdated comment 2014-10-18 17:46:19 +01:00
Jermolene
2ffe53f191 Add audio parser for handling audio content 2014-10-18 14:50:07 +01:00
Jermolene
49dc5694a3 Enhance "includeWikis" to merge build targets
Build targets found in included wikis are merged behind any found in
the wiki itself
2014-10-14 15:14:50 +01:00
Jermolene
b7bbcfa056 Prompt twice when setting password
Fixes #364
2014-10-06 10:22:09 +01:00
Jermolene
0c8e538077 Add support for custom password prompts 2014-10-06 10:02:34 +01:00
Jermolene
67db9d57a2 Boot prefix should preserve $tw in the browser
This change allows raw markup tiddlers to preload configuration values
into the `$tw` global
2014-10-06 10:02:20 +01:00
Jermolene
6d9bd4df8a Add support for markdown file extensions
Fixes #856

By the way @cjp are there any other Markdown extensions in common use?
2014-09-16 20:06:23 +01:00
Jermolene
2b78d5a977 Refactor handling of .htm and .hta file extensions
Taking advantage of the recent change to be able to pass an array of
file extensions to `$tw.utils.registerFileType()`
2014-09-16 20:05:13 +01:00
Jermolene
73a4747d05 Handle jpeg file extension correctly
Fixes #844
2014-09-14 20:35:01 +01:00
Jermolene
ac54fe3326 Disable plugins in safe mode
Fixes #820
2014-09-08 19:50:48 +01:00
Jermolene
53368ba5fa Rename "tw-error-*" classes to "tc-error-*"
Part of #764
2014-08-28 17:39:32 +01:00
Jermolene
35a3224dba Rename "tw-password-wrapper" class to "tc-password-wrapper"
Part of #764
2014-08-28 17:38:53 +01:00
Jermolene
d8c3691bd1 Removed unneeded CSS classes
Part of #764
2014-08-28 17:17:50 +01:00
Jermolene
c912fed55d Use a JSON tiddler for $:/config/OriginalTiddlerPaths
Otherwise things go wrong when we have tiddler titles containing colons
2014-08-20 10:11:40 +01:00
Jermolene
32a7ee2683 Make it possible to disable plugins 2014-08-15 21:10:40 +01:00
Jermolene
08f775eac8 Recognise .HTA as synonym for .HTML files
Fixes #513
2014-08-04 15:12:33 +01:00
Jermolene
c73853288c Allow .htm as an alias for .html files 2014-07-24 19:53:51 +01:00
Jermolene
ef67cc3fd9 Make default location for new tiddlers configurable 2014-07-20 20:19:09 +01:00
Jermolene
beabae8d2b Expose module.exports to tiddler modules
Needed to incorporate an upcoming third-party library.

@natecain - do you think this is OK from a compatibility perspective?
2014-07-20 18:06:19 +01:00
Jermolene
19061650de Refactoring for hygeine 2014-06-19 12:05:41 +01:00
csugden
1945af0b2d Fixes undefined loop variables (fixes #657) 2014-06-18 11:56:27 +01:00
Jermolene
e6b783154f Allow arbitrary fields in plugin.info files
Fixes #642
2014-06-18 08:52:31 +01:00
Jermolene
d2d0b09235 Refactoring plugin loading on Node.js 2014-06-18 08:34:49 +01:00
Jermolene
a9b7df96c2 Add support for TIDDLYWIKI_EDITION_PATH 2014-06-17 21:59:20 +01:00
Jermolene
b2e48d00e9 Add environment variables for locating plugins
Start of fixing #531 (we still need to deal with
TIDDLYWIKI_EDITION_PATH)
2014-06-17 21:33:44 +01:00
Jermolene
62c602e9d2 Fix for running under node-webkit 2014-05-28 08:57:29 +01:00
Jermolene
e228ac42db Fix problem with shadow tiddler iteration
See https://groups.google.com/d/topic/tiddlywiki/pNxZsSCVp7c/discussion
for more details of the bug.
2014-05-17 01:12:08 +01:00
Jermolene
31e1088aa7 Clean up startup logging
Now we do boot logging to an array. We harvest it in the —verbose
command. We still need to provide a way to access the log in the
browser too.
2014-05-15 18:50:14 +01:00
Jermolene
4e07b3335b Extend .tid files to allow single line text fields
To make it easier to create tiddlers that don’t include a terminating
newline in their text
2014-05-13 10:27:03 +01:00
Jermolene
b77d5f9725 Clean up whitespace 2014-05-13 10:26:02 +01:00
Jeremy Ruston
711b76307c Merge pull request #604 from natecain/module_exports
Module exports
2014-05-07 14:05:45 +01:00
Jermolene
a9411262f7 Improve TiddlyWiki as a library
1. Make it possible to disable specific boot tasks
2. Extend the startup mechanism to allow startup tasks to be disabled

Again, see Jermolene/TiddlyWiki5NodeWebkit to see how these features
fit together.
2014-05-07 12:51:16 +01:00
Jermolene
e676156b24 Fixes for running TiddlyWiki on node-webkit
See Jermolene/TiddlyWiki5NodeWebkit
2014-05-07 09:59:21 +01:00
natecain
6b03789e06 Prioritize "module.exports" over "exports" in require sandbox
(Node-ism, inherited (temporarily?) to support codemirror upgrade)
2014-05-06 23:31:57 +02:00
Jermolene
76e8640c31 Fix problem with parsing lists contain non-breaking spaces
Some of the time we need to treat non-breaking spaces as though they
are not spaces (regexps treat them as spaces by default).
2014-05-06 18:10:27 +01:00
Jermolene
cc3d44aec1 Fix problem with list fields containing [[]]
Fixes #603 - thanks @xcazin!

It no longer crashes but unfortunately if you round trip a tiddler out
of edit mode and back you’ll lose any empty double square brackets.
2014-05-06 17:32:12 +01:00
Jermolene
986a20b22b Fixes for permalinks not working on Firefox
Sigh. It’s frustrating that the few browser differences I’m running
into in 2014 are mostly horribly familiar from 2005
2014-05-05 19:21:57 +01:00
Jermolene
a0022a1cd6 Refactoring more of startup.js into modules 2014-05-05 10:17:50 +01:00
Jermolene
519e1b4a44 Pull more of startup.js out into separate modules 2014-05-03 21:23:51 +01:00
Jermolene
09156af475 Add support for "before" field on startup modules 2014-05-03 19:49:50 +01:00
Jermolene
78ba57d55d Remove support for browser-startup modules
Instead support startup modules that stipulate which platform they
require.

Also include docs updates and fixes to fullscreen plugin
2014-05-03 17:49:20 +01:00
Jermolene
749582ede0 Split module loading into a separate startup task
Still a work in progress.
2014-05-03 17:10:55 +01:00
Jermolene
b96aade28a WIP: Add support for dependencies between startup modules
See StartupMechanism for details.
2014-05-03 16:32:18 +01:00
Jermolene
327b53a641 Start adding support for permalinks
At this point we respect any permalink at startup, but we don’t yet
dynamically update the permalink, nor do we respond to ongoing
permalink changes.

The permalink separator being `%00` seems like it might be a bit
controversial. It buys us not having to wrap tiddler titles in double
square brackets if they contain spaces.

Another thing is that this scheme doesn’t support tiddler filters; the
plan is to support them like this:

http://tiddlywiki.com/#!Target%00%00[tag[task]sort[created]]
2014-05-02 19:21:32 +01:00
Jermolene
bd3e955821 Add compound iterators to boot wiki object 2014-04-30 22:49:28 +01:00
Jermolene
84cd296c58 Minor tweaks to shadow warning infrastructure
1. Moved some methods out of boot.js because they are not needed until
after bootup
2. Added alternate message for editing an overridden shadow tiddler
3. Minor style tweaks
2014-04-28 15:16:31 +01:00
Devin Weaver
a505b6ffc0 Move isModified from Tiddler to Wiki
Replace this with a $tw.wiki.isModifiedTiddler(title) as part of the
wiki object. This allows it to be used outside of the current Wiki which
can change.
2014-04-27 17:15:42 -04:00
Devin Weaver
23a71b433e Rename isEqual to isArrayEqual 2014-04-27 17:15:42 -04:00
Devin Weaver
8556e0ea49 Fix coding style 2014-04-27 17:15:42 -04:00
Devin Weaver
3a78465d2d Add isModified to Tiddler object
Adds a check to see if this tiddler differers from the tiddler
referenced in the draft.of field. It iterates of the fields property
skiping those feilds that offer a false positives. Uses the isEqual util
for the tags array.
2014-04-27 17:15:42 -04:00
Devin Weaver
23640d7af4 Add isDraft to Tiddler object
Check to see if this tiddler is a draft (has a draft.of field)
2014-04-27 17:15:42 -04:00
Devin Weaver
540681b2bc Add $tw.util.isEqual
This checks to see if an array is equal. Should handle case where an
array is considered null or undefined. It short circuits when the
lengths are different and will only loop when needed.
2014-04-27 17:15:42 -04:00
Jermolene
f7e50e0950 Add --build command
First pass at the build system described in #356.

To test it, move to a new, empty directory and try `tiddlywiki
editions/tw5.com --verbose --build`
2014-04-25 22:41:59 +01:00
Jermolene
ba576d9f1b Add support for safe mode 2014-04-19 09:36:08 +01:00
Jermolene
f57e047877 Fix issues with tiddlers with null fields
Fixing #567
2014-04-17 14:43:12 +01:00
Jermolene
bd4a031df8 Fix problem with version checking logic
Previously, importing a plugin with a semantically identical version
number was not rejected. This meant that attempts to import
5.0.9-prerelease wikis into 5.0.9-beta led to a corrupted wiki, with a
beta core and prerelease plugins.
2014-04-17 11:59:42 +01:00
Jeremy Ruston
9b52ca7cc0 Merge pull request #543 from welford/load-and-deserialize
Make deserializing a bit more robust
2014-04-09 11:51:16 +01:00
James Welford Anderson
0f07977930 deserializertype -> deserializerType 2014-04-09 06:26:01 +09:00
James Welford Anderson
362df18a19 make deserializing a bit more robust
load.js references the encoding set in boot.js when loading a file.
boot.js can now register file type with different deserialization from
their actual type
2014-04-09 06:20:51 +09:00