1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-12-28 02:50:27 +00:00
Commit Graph

186 Commits

Author SHA1 Message Date
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
Jermolene
ea46f85a8a Fix problem with fields called "__proto__" 2014-04-06 22:49:20 +01:00
Jermolene
1e960ffcac Fix problems with tiddlers called __proto__
Background:

http://www.2ality.com/2012/01/objects-as-maps.html
2014-04-06 22:43:10 +01:00
Jermolene
8a7d0f53d3 Add a sourceURL to the end of eval'd code
This, miraculously, lets Chrome dev tools list tiddler modules in the
script tag by their proper titles. Which lets you set breakpoints
within them!!!!!

https://chromedevtools.googlecode.com/svn-history/r421/trunk/tutorials/b
reapoints/index.html#regular
2014-04-06 22:36:51 +01:00
Jermolene
272a4bbe61 Filtering optimisations 2014-04-05 17:31:36 +01:00
Jermolene
53ca7f6a2f More defensive handling of pluginInfo 2014-03-31 18:30:45 +01:00
Jermolene
6307293469 Fix some Node.js cross-platform compatibility issues
Thanks to http://shapeshed.com/writing-cross-platform-node/

Surprising that file path format is pretty much the only issue.
2014-03-31 17:17:36 +01:00
Jermolene
b8d0fd059b Fix bug with plugintiddlers filter operator 2014-03-18 21:18:45 +00:00
Jermolene
9de17aa206 Make shadowTiddlers, pluginTiddlers and pluginInfo be private to the Wiki object constructor 2014-03-17 10:50:18 +00:00
Jermolene
279626a3e3 Freeze array or object tiddler fields
Previously object fields like the tags array weren’t frozen.
2014-03-17 08:58:42 +00:00
Jermolene
721e333a20 Starting to make the members of $tw.Wiki be private
We want to avoid plugins from directly accessing the tiddlers hashmap.
Later we’ll do pluginTiddlers, pluginInfo and shadowTiddlers.
2014-03-16 21:23:10 +00:00
Jermolene
b714c67374 Refactor plugin loading to retain plugin info for all plugins
Previously we were not reading the plugin info for plugins that hadn’t
been loaded.
2014-03-14 15:23:12 +00:00
Jermolene
24b6603c42 Fix problem with checking versions of plugins carrying a badly formatted "version" field 2014-03-14 10:43:22 +00:00
Jermolene
a3507bf611 Freeze the fields of a tiddler
Thus enforcing the immutability of tiddler objects
2014-03-12 08:33:13 +00:00
Jermolene
af34fbbca3 Only show command line help if no arguments are provided
Previously we were checking in a way that meant that `tiddlywiki
<wiki>` would trigger the help message.
2014-03-10 18:20:07 +00:00
Jermolene
8bd1fa50dc Fixed typo in dom maker 2014-03-08 10:43:01 +00:00
Jermolene
3994f0dbc6 Add new option to retain tiddler paths 2014-02-27 16:30:05 +00:00
Jermolene
f3930ad69c Add init command to initialise a wiki folder
Fixes #362
2014-02-23 22:58:17 +00:00
Jermolene
ecb845f1cd Require that wiki folders have a tiddlywiki.info file
Previously, we were just using default content if the tiddlywiki.info
file was missing. This allowed us to do things like `tiddlywiki
—server` without actually being in a valid wiki folder.

Fixes #361
2014-02-22 16:38:34 +00:00
Jermolene
dfbb6e1fba Ensure that $:/isEncrypted is reset if modified 2014-02-21 18:21:10 +00:00
Jermolene
9b6c59e9a6 Allow .multids files to contain blank lines and ": " sequences
Also added a warning for multiple definitions of the same tiddler in a
multids file.

Fixes #415
2014-02-21 09:24:36 +00:00
Jermolene
d21fb85d94 Change .tids file extension to .multids
Hopefully less confusing
2014-02-20 10:27:02 +00:00
Jermolene
1f41daf433 Add support for multi-tiddler files with a .tids extension 2014-02-09 20:34:42 +00:00
Jermolene
dea08ed4f8 First pass at language plugins for internationalisation
Still quite a few details to work out, but this shows the basic idea of
re-using the theme mechanism to handle language plugins.

Comments and questions welcome.
2014-02-09 19:18:46 +00:00
Jermolene
02ba92c6b5 Add [is[image]] filter operator 2014-01-29 09:04:41 +00:00
Jermolene
175e86078c Fix crash when wiki/themes folder contains files that are not themes
Fixes #370
2014-01-28 18:58:01 +00:00
Jermolene
5af30086c0 Fix substitution for nbsp
We were substituting the wrong character for non-breaking spaces
2014-01-28 15:23:58 +00:00
Jermolene
3f9561dd95 Better logging 2014-01-26 18:53:31 +00:00
Jermolene
2fc6451bf7 Rejigged encrypted import so that the current password isn't changed
We still try the currently stored password. If that doesn’t work then
we prompt for a password, but we no longer store the password in the
store.
2014-01-20 13:35:55 +00:00
Jermolene
299e9d15fb Add support for importing encrypted TiddlyWiki documents 2014-01-19 18:43:02 +00:00
Jermolene
60926198b1 Improve logic for initialising reading node tiddlers
We want fine control of whether tiddlers are read from the DOM or the
file system, without ganging it to whether we’re on node vs. browser.
2014-01-18 14:53:26 +00:00
Jermolene
839361d54f Futher refactoring for TiddlyDesktop
We need finer control over the boot process so that we can force it to
load tiddlers from the Node.js file APIs rather than from the DOM
2014-01-15 14:51:04 +00:00
Jermolene
c7fb0bd349 Start updating the boot kernel for more node-webkit integration
The goal is to make it possible to use the Node.js boot code under
node-webkit, so that we can directly load wiki folders
2014-01-14 14:09:04 +00:00
Jermolene
b04141fefd Don't load tiddlers that don't have a title
We were getting problems (eg, adding a `readme.md` to a plugin without
an accompanying `readme.md.meta` would end up creating a tiddler called
“undefined”)
2014-01-12 21:48:18 +00:00
Jermolene
b5d2b79a37 Add nbsp handling to htmlDecode 2014-01-12 20:11:51 +00:00
Jermolene
1a74e2538c Cleaning up further coding style inconsistencies that have crept in 2014-01-03 10:50:00 +00:00
Jermolene
0ec2224757 Fallback to a default tiddlywiki.info file if it does not exist
We fallback to settings suitable for the server version, to help people
get up and running quickly.
2013-12-18 21:11:00 +00:00
Jermolene
07dd524016 Adjust build scripts to save favicon.ico from wiki
And add file type information for `image/x-icon`
2013-12-18 17:27:10 +00:00
Jeremy Ruston
a389f9bc8c Merge pull request #181 from natecain/excludes_refactor
A small refactor and addition to exclude more files
2013-12-18 08:51:36 -08:00
Jermolene
810167bc7b Improve handling of double square brackets within tags
Now a [[ has to be preceded by the beginning of the string or a
whitespace and a ]] has to be followed by whitespace or the end of the
string to act as quotes.

Thanks to @Skeeve for the regex
2013-12-17 14:53:02 +00:00
Jermolene
3f06384516 Adjusted plugin encoding so that the JSON text no longer duplicates the fields 2013-12-14 09:46:02 +00:00
Jermolene
026a27c1ab Split out the parsing of semantic version strings 2013-12-02 09:57:19 +00:00
Jermolene
7d12d89a0a Added primitive support for basic authentication
Note that the password will be passed over HTTP in plain text.
2013-11-28 14:03:08 +00:00
Jermolene
b63f7a7416 Fix missing seconds in serialised date fields 2013-11-19 12:14:37 +00:00
Jeremy Ruston
35adf4269a Merge backlog of changes from master branch
This is too easy. I'm worried.
2013-11-08 08:33:27 +00:00
Jeremy Ruston
bfe3d3ee5a Extend tiddler modification and creation dates to include milliseconds
Fixes #200
2013-11-07 20:04:54 +00:00
Jeremy Ruston
69888e6701 Allow field modules to specify HTML element tag used for editing 2013-11-07 19:39:50 +00:00
Jeremy Ruston
b474d8c13d Extend domMaker to set event listeners 2013-10-26 13:13:45 +01:00
natecain
5e743262d4 A small refactor and addition to exclude more files
Refactored duplicated `excludeRegExp` into `$tw.boot.excludeRegExp`
  Added NPM's ignore list to ignore more files during node bootstrap
2013-10-13 12:58:10 -04:00
natecain
951019eacc Make require() compliant with CommonJS Modules/1.1 2013-10-12 13:44:09 -04:00
Jeremy Ruston
5ef4123b3d Revert "Merge pull request #160 from natecain/commonjs"
This reverts commit 661621c3f7, reversing
changes made to d3d72eff1b.
2013-10-12 16:29:20 +01:00
Jeremy Ruston
661621c3f7 Merge pull request #160 from natecain/commonjs
CommonJS Modules/1.1 Conformance
2013-10-12 07:42:26 -07:00
natecain
b8c37a26ef Additional improvement to CommonJS Modules support
Now implements (and mostly follows) requirements of Modules/1.1 spec
  implementes only the required "secure sandbox" subset of the spec
  `module` free variable changed from the `moduleInfo` to an id container
  `require` free variable given a "main" property
  boot module scope closed and exported
    this also changes the interface between boot and bootprefix slightly
    (should now be able to create multiple TW instances under node)
 BREAKING CHANGES:
  The tiddlywiki module itself now exports a single constructor function
  Modules which depended on `module` referring to `moduleInfo` will break
  Modules which don't conform to Modules/1.1 will break
    (by attempting to modify require.main or module.id)
2013-10-11 11:32:58 -04:00
Jeremy Ruston
c784217009 Missing semi 2013-10-03 14:43:58 +01:00
natecain
fbc80e379d Some quick style cleanup to commonjs patches 2013-10-01 17:56:05 -04:00
Jeremy Ruston
48402ed329 Improve comments 2013-09-21 10:06:44 +01:00
natecain
5c92ec3617 Cleaned up some dead/commented in patches. 2013-09-17 22:38:14 -04:00
natecain
881325b7ed Make require() compliant with CommonJS 1.0
This includes potentially breaking changes.
  Specifically, before this patch tiddlywiki would default to relative module identifiers
  Now, tiddlywiki will only search relative paths if explicitly specified
  Additionally, some "defaulted export contexts" were removed
    (some modules may make assumptions about context)
Some unit tests were modified slightly from their originals
  Tiddlywiki doesn't have a notion of a "main" program's path
  Some require calls were explicitly made relative
  None of these changes should affect the requirement under test in each case
2013-09-17 21:10:24 -04:00
Jeremy Ruston
20f06e8eec Ensure that the core plugins inherit their version number from the main package.info 2013-08-26 13:28:23 +01:00