1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-23 19:34:39 +00:00

Compare commits

..

411 Commits

Author SHA1 Message Date
Jermolene
72bf150eac Version number update for 5.1.3 2014-10-20 18:14:33 +01:00
Jermolene
deebb90b46 Update release instructions 2014-10-20 18:14:00 +01:00
Jermolene
7dce3c3ecc Move release note and update HelloThere
Preparing for release of 5.1.3
2014-10-20 18:11:22 +01:00
Jermolene
d83666c24b Readme update 2014-10-20 18:06:18 +01:00
Jermolene
561aaa925b Filename typo 2014-10-20 18:06:08 +01:00
Jermolene
5c137b9002 Docs for update to browse widget 2014-10-20 16:57:06 +01:00
Jermolene
71bc78b176 Coding style cleanups 2014-10-20 16:53:42 +01:00
Jeremy Ruston
f6883e5365 Merge pull request #999 from Eucaly/browse-widget
adding a message attribute to the browse widget
2014-10-20 16:49:06 +01:00
Jermolene
9bc4345cb4 Release note update 2014-10-20 16:12:32 +01:00
Jermolene
cf12bcd58a Docs updates 2014-10-20 16:12:24 +01:00
Eucaly
0bbd5eb292 adding a message attribute to the browse widget
* extend browse widget with a message attribute. If blank then import as
original. Otherwise, dispatch the given message with selected files
2014-10-20 21:57:15 +08: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
Jermolene
244b3256a9 Docs on putting last modification date in banner 2014-10-20 12:24:28 +01:00
Jermolene
b8ac80fd1a Docs tweaks 2014-10-20 12:09:02 +01:00
Jermolene
aec4c3cd91 Clean up formatting of github fork ribbon 2014-10-20 11:56:13 +01:00
Jermolene
4314fb478d Add new Japanese site to community links 2014-10-20 08:30:53 +01:00
Xavier Cazin
66765ce158 Explicitly states that external Audio uri may also point to audio streams, not only files 2014-10-19 22:13:28 +02:00
Xavier Cazin
6833bfb220 Add audio/ogg to the list of recognised audio formats 2014-10-19 22:09:17 +02:00
Jeremy Ruston
1914b3d8e1 Merge pull request #932 from Marxsal/patch-1
Create How to apply custom style classes by tag
2014-10-19 18:07:28 +01:00
Jermolene
f9cab4bc12 Add fake dom documentation 2014-10-19 13:34:07 +01:00
Jermolene
12e26009ee Allow percentage width and height on image widget 2014-10-19 13:21:20 +01:00
Jeremy Ruston
299bef2a77 Merge pull request #991 from andrey013/ru-RU
Russian translation update
2014-10-19 09:46:30 +01:00
Jeremy Ruston
02b8a8b9d4 Merge pull request #994 from Marxsal/patch-2
Update cla-individual.md
2014-10-19 09:39:53 +01:00
Jermolene
55397e0ab1 Docs tweaks
Thanks @xcazin
2014-10-19 09:39:33 +01:00
Jermolene
9d53a1b5c4 Update macros docs 2014-10-19 09:18:39 +01:00
Jermolene
e1ac85ddd5 Docs: Clarify importing simplified TW files 2014-10-18 19:50:42 +01: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
9a4bda9c85 Docs tweaks 2014-10-18 19:15:04 +01:00
Marxsal
18ceb63f18 Update cla-individual.md 2014-10-18 11:05:17 -07:00
Jeremy Ruston
3305874235 Merge pull request #992 from Eucaly/variables
add Subsitutions in WikiText
2014-10-18 18:57:13 +01:00
Jermolene
6c76670137 Removed outdated comment 2014-10-18 17:46:19 +01:00
Jermolene
9a36dc61ec Improve docs on TW file format 2014-10-18 17:42:24 +01:00
Jeremy Ruston
da9f634cf7 Merge pull request #993 from xcazin/new_fr-FR
fr-FR upgrader module description string + change case of long version of month names
2014-10-18 17:30:11 +01:00
Xavier Cazin
ae7cce3c59 fr-FR months are more often displayed in lowercase 2014-10-18 17:40:26 +02:00
Xavier Cazin
67dbbc8d65 fr-FR description of the upgrader module type 2014-10-18 17:40:11 +02:00
Jermolene
2ffe53f191 Add audio parser for handling audio content 2014-10-18 14:50:07 +01:00
Jermolene
ea3bdb5556 Release note update 2014-10-18 14:49:43 +01:00
Eucaly
159a310bab add Subsitutions in WikiText 2014-10-18 18:49:10 +08:00
Eucaly
15f3c284ae add Subsitutions in WikiText 2014-10-18 18:45:46 +08:00
Eucaly
7121828980 Merge pull request #1 from Jermolene/master
sync with master
2014-10-18 16:42:00 +08:00
Andrey Yankin
b2dd87f44a russian translation update 2014-10-18 00:01:05 +04:00
Jermolene
564457de1c Update to KaTeX v0.1.1 2014-10-17 20:10:38 +01:00
Andrey Yankin
4194c7e3dd Merge remote-tracking branch 'upstream/master' 2014-10-17 22:56:54 +04:00
Jermolene
21a791cdcd Docs updates 2014-10-17 16:29:27 +01:00
Jermolene
ad13d57523 Use separate state for each slider demo
Fixes #988
2014-10-17 10:02:21 +01:00
Jeremy Ruston
713792831e Merge pull request #989 from BramChen/master
Update chinese translations for adding description for "upgrader" modules
2014-10-17 09:59:16 +01:00
Jermolene
209c018c38 Docs updates 2014-10-16 10:01:02 +01:00
Jermolene
a4c1fee075 Update test.cmd 2014-10-16 10:00:55 +01:00
Jermolene
fc2d3ce56a Docs update 2014-10-16 09:27:25 +01:00
Bram Chen
f20286fb26 Update chinese translations for adding description for "upgrader" modules 2014-10-16 15:48:07 +08:00
Jermolene
dcc33e52b3 Docs updates 2014-10-15 21:56:32 +01:00
Jermolene
e188662438 Move prerelease release note
The release note for the pending release should be part of the
prerelease edition
2014-10-15 21:56:24 +01:00
Jermolene
7672fb37a7 Simplify test script 2014-10-15 21:55:45 +01:00
Jermolene
b0b89fac72 Moved to build.jermolene.github.io 2014-10-15 21:55:33 +01:00
Jermolene
d91e4be74e Docs updates 2014-10-15 19:46:11 +01:00
Jeremy Ruston
ec7eddfc4e Merge pull request #974 from xcazin/fixtw5.com
Fix caption field of the NowMacro doc tiddler
2014-10-15 19:34:15 +01:00
Jermolene
b94fc7b647 Clarify docs for limit parameter of timeline macro
Prompted by a comment in #975
2014-10-15 17:57:00 +01:00
Jermolene
5211f9c40c Fix problem with timeline subfilter
Fixes #975
2014-10-15 17:48:45 +01:00
Jermolene
c1e60736d8 Add description for "upgrader" modules
Fixes #982
2014-10-15 17:07:49 +01:00
Jeremy Ruston
9a43f9df7c Merge pull request #985 from pmario/language-de
some adjustments due to feedback
2014-10-15 16:41:54 +01:00
Jermolene
b0bd5ba96f Build and release docs update 2014-10-15 16:18:08 +01:00
Jermolene
ca650e2012 Stop building a separate readme for tw2 edition 2014-10-15 16:18:00 +01:00
Jermolene
5dfda99388 Remove scripts that have moved to build.jermolene.github.io 2014-10-15 16:17:46 +01:00
Mario Pietsch
230f2d96de some adjustments due to feedback 2014-10-15 15:49:53 +02:00
Jermolene
ed5a87c019 Docs tweaks 2014-10-15 09:17:00 +01:00
Jermolene
f721e25b8c Docs update 2014-10-14 15:15:56 +01:00
Jermolene
86ec42c8c7 Readme for build.jermolene.github.io 2014-10-14 15:15:48 +01:00
Jermolene
62c31ed37a Add prerelease edition
This is the edition that we’ll use for publishing prerelease/beta
builds of TW
2014-10-14 15:15:20 +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
Xavier Cazin
4b3d634b25 Fix caption field of NowMacro doc tiddler 2014-10-13 18:08:28 +02:00
Jermolene
2d25c40227 Remove backslashes from example commands 2014-10-13 09:59:34 +01:00
Jermolene
6ec87efb5a Remove references to $TW5_BUILD_OUTPUT 2014-10-13 09:56:52 +01:00
Jeremy Ruston
a501115afb Merge pull request #972 from pmario/language-de
revert leading 0 for timeline, but use it with Journal
2014-10-13 09:26:57 +01:00
Jermolene
5154a83cf9 Exclude search string tiddler from search results 2014-10-13 09:11:34 +01:00
Jermolene
18fa5a4a5d Fix typo
Thanks @TheDiveO
2014-10-12 16:57:01 +01:00
Jeremy Ruston
90ac41b9ec Merge pull request #967 from pmario/german-videos
german video links for saving with chrome, firefox, ie
2014-10-12 16:50:14 +01:00
Mario Pietsch
316e1eca3f fix video protocol 2014-10-12 17:45:54 +02:00
Jermolene
c39b5b913c Docs tweak 2014-10-12 16:45:53 +01:00
Jeremy Ruston
d053b960b6 Merge pull request #963 from Evolena/patch-3
Fix some bad links
2014-10-12 16:38:08 +01:00
Mario Pietsch
554d2c689c revert leading 0 for timeline, but use it with Journal 2014-10-12 17:31:59 +02:00
Jeremy Ruston
0cbe396efb Merge pull request #968 from pmario/language-de
Language de Misc and Dates according to en-GB
2014-10-12 16:26:12 +01:00
Jermolene
601884d894 Docs tweaks 2014-10-12 16:25:52 +01:00
Mario Pietsch
73bc2a1848 remove duplicated elements 2014-10-12 17:20:04 +02:00
Jermolene
4519c47551 Docs update 2014-10-12 16:15:08 +01:00
Mario Pietsch
473b28585a dates and misc same as en-GB now 2014-10-12 17:05:04 +02:00
Mario Pietsch
6fc14e5c1f german video links for saving with chrome, firefox, ie 2014-10-12 16:28:02 +02:00
Evolena
2fe095fcd1 Fix bad links 2014-10-12 13:59:26 +02:00
Jeremy Ruston
824f9c1d8c Merge pull request #965 from xcazin/renew-fr-FR
Journal- and NewTiddler- related fr-FR strings
2014-10-12 10:25:04 +01:00
Xavier Cazin
b81095349f Revert NewJournal fr-FR pattern to be the same as en-GB 2014-10-12 11:14:16 +02:00
Jeremy Ruston
7f7ab768f7 Merge pull request #964 from simonbaird/master
Add span wrapper around button caption text
2014-10-12 09:42:24 +01:00
Jermolene
1695d5fe29 Docs tweaks 2014-10-12 09:42:16 +01:00
Xavier Cazin
4840357ea0 Typo in fr-FR Dates 2014-10-11 20:19:43 +02:00
Xavier Cazin
ca2afd9eef Journal- and NewTiddler- related fr-FR strings 2014-10-11 20:18:20 +02:00
Simon Baird
0671e59fed Add span wrapper around button caption text
Reasons:
- can show or hide the button text with CSS (assuming
  tv-config-toolbar-text is yes).
- can have different looking buttons in the page controls versus the
  view toolbar, etc
- more flexibility styling the button appearance, for example you
  can change the text size compared to the icon size
- button appearance is more themeable
2014-10-12 01:43:01 +10:00
Jermolene
06f9ed8bad Generate new tiddler titles that aren't already subject of a draft 2014-10-10 20:58:56 +01:00
Jermolene
644ced6d4e Preserve modified title when reusing drafts
Should fix the problem raised by @xcazin
2014-10-10 20:58:34 +01:00
Jermolene
a671e72706 Fix problem with import button triggering checkbox on Firefox
It seems that there is a broader problem with the way that the button
is embedded within the label of a checkbox; even on Chrome it meant
that the checkbox active state was triggered when clicking on any of
the buttons. The user experience was in any case confusing; it wasn’t
obvious that clicking on the label to the right of the button would
flick the checkbox.

The solution takes the buttons and labels out of the checkbox label.
2014-10-10 20:50:50 +01:00
Jermolene
f7bdb1c04d Docs updates 2014-10-10 20:32:22 +01:00
Jermolene
9a6f1f66be Yet more fixing for the Firefox jumping toolbar problem...
See #282
2014-10-10 20:32:12 +01:00
Jermolene
6e4dccda4c Docs update 2014-10-10 10:35:43 +01:00
Jermolene
03defe4256 Docs cleanup 2014-10-10 10:35:36 +01:00
Jermolene
39b7771f87 Update release notes 2014-10-10 10:31:17 +01:00
Jermolene
087a0aec58 Fixed typo in language files 2014-10-10 10:31:10 +01:00
Jermolene
f37a7101a7 Fix problem with new tiddler button 2014-10-10 10:17:42 +01:00
Jermolene
e90e588621 Missed from last commit 2014-10-10 10:13:02 +01:00
Jermolene
353f641bcc Move date-related translateable strings into their own file 2014-10-10 10:12:40 +01:00
Jermolene
a8d83096d3 Fix behaviour of new tiddler message
Resolves some inconsistencies over the behaviour of the new tiddler
message under various circumstances.

“new journal here” when a journal for today already exists now brings
up the existing journal for editing, and adds the required tag.

I’d be very grateful for any testing of the behaviour here: try using
new tiddler, clone tiddler, new here, new journal here, and new journal
in various combinations (eg with the draft not existing, already
existing, open or closed etc), and let me know of any peculiarities.
2014-10-10 09:52:19 +01:00
Jermolene
1e02a9f0db Correct return value for makeDraftTiddler 2014-10-10 09:03:35 +01:00
Jeremy Ruston
d74fc931c1 Merge pull request #960 from BramChen/master
Update chinese translations
2014-10-10 08:05:52 +01:00
Bram Chen
1460b6ec12 Add chinese translations of new journal here button 2014-10-10 09:10:50 +08:00
Jermolene
a7c9112c40 Add new filter example 2014-10-09 20:51:58 +01:00
Jermolene
9cd420290b Fix for titles including double quotes 2014-10-09 20:11:11 +01:00
Jermolene
5f08f89956 Add link to Iannis Zannos hints site 2014-10-09 18:08:05 +01:00
Jermolene
ea7d9652c5 Move new journal here button to the correct directory 2014-10-09 18:00:34 +01:00
Jermolene
515b556b48 Fix for previous fix
Fix for problem introduced in 25f4ce93ac
2014-10-09 17:51:29 +01:00
Jermolene
25f4ce93ac Fixed truncation of tiddler info panel
Caused by the fix to #282
2014-10-09 17:42:18 +01:00
Jermolene
d6dc4c14d7 Add new-journal-here button to viewtoolbar ordering 2014-10-09 17:36:33 +01:00
Jeremy Ruston
fcf843d5b1 Merge pull request #959 from simonbaird/new-journal-here
Add a 'new journal here' button
2014-10-09 17:34:13 +01:00
Jermolene
3827f98a43 Improve new tiddler behaviour with existing tiddlers
Now repeatedly clicking “new journal” will reuse the existing journal
if one exists
2014-10-09 17:30:53 +01:00
Jermolene
612e05a247 pushTop should return resulting array 2014-10-09 17:28:39 +01:00
Simon Baird
00cdd04edd Add a 'new journal here' button
The journal tiddler will be tagged with the name of the current
tiddler. This is similar to how the new here button works.

(Would have liked to reuse the journalButton code which is almost
identical between new-journal-here and new-journal, but I'm not
sure how to do it.)
2014-10-10 02:06:56 +10:00
Jermolene
5010859ed6 This deals with one of the specific issues raised in #922, but doesn’t
address the general issue.
2014-10-09 14:56:38 +01:00
Jeremy Ruston
7ed7cbc948 Merge pull request #950 from BramChen/master
Update chinese translations
2014-10-09 13:49:29 +01:00
Jeremy Ruston
b05ff2a5d7 Merge pull request #952 from fghhfg/patch-10
Update Searching.tid
2014-10-09 13:38:43 +01:00
Bram Chen
804c7de635 Add NewJournal.multids for chinese translations 2014-10-09 20:33:57 +08:00
Jermolene
4e37a9fb09 Navigate widget docs update 2014-10-09 13:28:12 +01:00
Bram Chen
4255084913 Merge remote-tracking branch 'upstream/master' 2014-10-09 20:21:11 +08:00
Jeremy Ruston
c538712a2e Merge pull request #953 from buggyj/tw2parserdoc
add install instruction
2014-10-09 13:13:56 +01:00
Jeremy Ruston
f2b8d0b2f9 Merge pull request #955 from pmario/language-de
new UI texts, fixing some more typos
2014-10-09 13:13:28 +01:00
Jermolene
3682c26817 Move new journal strings into language directory 2014-10-09 13:09:59 +01:00
Jermolene
36a43c3f41 Ensure new-here tag is quoted
Fixes problem with new here on tiddlers with spaces in their title.
Thanks to @simonbaird

Fixes #956
2014-10-09 13:08:11 +01:00
Mario Pietsch
896b7c2585 added date translations. Fix default date formats 2014-10-09 14:00:45 +02:00
Bram Chen
01b515a4f4 Add chinese date format strings 2014-10-09 18:29:14 +08:00
Bram Chen
e8c56e57cc Merge remote-tracking branch 'upstream/master' 2014-10-09 18:01:26 +08:00
Jermolene
c6951ee912 Make date format strings be translateable
Note for translators: I’m planning to release 5.1.3 later today.

Fixes #954
2014-10-09 10:33:08 +01:00
Mario Pietsch
8b1d6d235b new UI texts, fixing some more typos 2014-10-09 10:56:27 +02:00
Bram Chen
9075495cc8 Revert to simple tooltip for newhere button for chinese translations 2014-10-09 16:33:46 +08:00
Bram Chen
be3239ecc0 Merge remote-tracking branch 'upstream/master' 2014-10-09 16:32:12 +08:00
Jermolene
e34b4f18e5 Improve new here button 2014-10-09 09:31:26 +01:00
Jermolene
90997020e7 Revert to simple tooltip for newhere button
At present we can’t arrange for the hint to be wikified when it’s used
as the button tooltip.
2014-10-09 08:44:23 +01:00
buggyj
18877f9237 add install instruction 2014-10-09 08:21:00 +02:00
Bram Chen
e5f20d1a9c Update chinese translations
* Add "new here" button
* Add "new journal" button
* Add default title of new tiddler
2014-10-09 13:54:47 +08:00
Bram Chen
b486846a74 Merge remote-tracking branch 'upstream/master' 2014-10-09 09:27:50 +08:00
Jermolene
70984aa39f Add "new here" button
This is a basic “new here” tiddler toolbar button that just creates a
new tiddler tagged with the title of the current tiddler.

@pmario is there anything else required?
2014-10-08 22:02:32 +01:00
Jermolene
c322dc82c3 Simplify new journal button 2014-10-08 20:11:54 +01:00
Jermolene
b53074a0cc Update "Introduction to Filters" docs 2014-10-08 19:02:54 +01:00
Jermolene
d778a90eb0 Make new journal title and tags be configurable 2014-10-08 18:35:25 +01:00
Jermolene
e872f17842 Add a new journal page toolbar button
Spot the easter egg with the toolbar button…

Fixes #336
2014-10-08 17:46:34 +01:00
Jermolene
0dcf54c3b5 Add support for action widgets
This is part of the groundwork for fixing #336
2014-10-08 17:45:26 +01:00
Jermolene
3b69b7b6e8 Coding style tweak 2014-10-08 14:07:48 +01:00
fghhfg
a361ab0608 Update Searching.tid 2014-10-08 16:21:09 +08:00
Bram Chen
96d1981dcc Update chinese translations
* Add confirmation for clearing password
2014-10-08 09:21:54 +08:00
Jermolene
a604afe871 Fix list in "Filters" tiddler
Mentioned by @Evolena in #922
2014-10-07 22:33:06 +01:00
Jermolene
dc9981322a Increase size of search cancel button 2014-10-07 22:11:43 +01:00
Jermolene
ff23a84d28 Docs tweaks 2014-10-07 21:44:54 +01:00
Jeremy Ruston
bbc1d18e25 Merge pull request #949 from fghhfg/patch-8
Update Learning.tid
2014-10-07 21:41:17 +01:00
fghhfg
b3c3442024 Update Learning.tid 2014-10-08 04:21:13 +08:00
Jermolene
b3dcd7d625 Fix tiddler title background colour for sticky titles 2014-10-07 20:41:22 +01:00
Jermolene
70c8659948 Update release note 2014-10-07 15:50:46 +01:00
Jermolene
ef1d531091 Add confirmation for clearing password
Fixes #925
2014-10-07 14:35:42 +01:00
Jermolene
a0460c391b Fix problem with recent zoomin changes 2014-10-07 14:07:55 +01:00
Jermolene
09b6540998 Update history for tm-home message 2014-10-07 14:07:41 +01:00
Jeremy Ruston
c475302663 Merge pull request #940 from fghhfg/patch-1
Simplify upgrading instructions
2014-10-07 13:26:30 +01:00
Jermolene
dd829d9140 Docs tweaks 2014-10-07 13:16:24 +01:00
Jermolene
cda495d692 Doc tweaks 2014-10-07 13:16:04 +01:00
Jeremy Ruston
e108799791 Merge pull request #942 from fghhfg/patch-3
add how to install plugin
2014-10-07 13:03:55 +01:00
Jermolene
811e92c0eb Docs update 2014-10-07 13:02:43 +01:00
Jeremy Ruston
766ec38487 Merge pull request #944 from fghhfg/patch-5
more clear "How to sign the CLA"
2014-10-07 13:00:58 +01:00
Jeremy Ruston
002b07d096 Merge pull request #945 from fghhfg/patch-6
add a example
2014-10-07 09:57:34 +01:00
Jeremy Ruston
68b7212150 Merge pull request #946 from fghhfg/patch-7
add some way to invoke macro
2014-10-07 09:46:29 +01:00
Jeremy Ruston
65504d5d41 Merge pull request #928 from TheDiveO/filter-operators-addsufprefix
addprefix and addsuffix filter operators
2014-10-07 09:44:31 +01:00
Jermolene
548776e828 Add KaTeX static build 2014-10-06 21:20:28 +01:00
Jermolene
63c174d7ed Update KaTeX wrapper to support operation under Node.js
Now we can generate static HTML containing mathematical typesetting
2014-10-06 21:20:19 +01:00
Jermolene
cbe2a53d6a Extend fakedom for KaTeX on Node.js
To make KaTeX work on the server we need to add support for the style
attribute and for setting the textContent of an element.
2014-10-06 21:10:35 +01:00
TheDiveO
f6f9c74fe9 added documentation tiddlers for addprefix and addsuffix; updated
documentation tiddlers for prefix, suffix, removeprefix, removesuffix to
reference the new addprefix and addsuffix filter operators.
2014-10-06 21:49:54 +02:00
fghhfg
651ed60987 add some way to invoke macro 2014-10-07 02:28:40 +08:00
fghhfg
f2e97eeb25 add a example 2014-10-07 00:38:12 +08:00
fghhfg
0d7209ff2f more clear "How to sign the CLA" 2014-10-06 23:38:48 +08:00
Jeremy Ruston
3630a2191e Merge pull request #943 from fghhfg/patch-4
CLA signature from @fghhfg
2014-10-06 16:21:36 +01:00
fghhfg
a2ddf6c4a0 i'm not sure what i'm doing... 2014-10-06 23:19:16 +08:00
fghhfg
e6d59ece6f add how to install plugin 2014-10-06 22:36:02 +08: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
fghhfg
61acea7e8d make simpler 2014-10-06 16:32:23 +08:00
Jermolene
5dd6ebff05 Fix problem with zoomin storyview and hidden sidebar
Fixes #933
2014-10-06 09:18:29 +01:00
Andrey Yankin
2b236ceed3 Merge pull request #2 from Jermolene/master
Following the origin
2014-10-05 21:00:16 +04:00
Jeremy Ruston
c126294ae5 Merge pull request #924 from andrey013/ru-RU
Russian translation
2014-10-05 16:35:47 +01:00
Jermolene
3048b79a45 Update button widget docs
Fixes #927
2014-10-05 16:33:05 +01:00
Jeremy Ruston
b9ed7e52c2 Merge pull request #929 from Eucaly/update-dev-doc
update JavaScript Macros reference link to dev document
2014-10-05 16:25:55 +01:00
Jermolene
cc576b052e Fix "each" filter operator with missing tiddlers
Fixes #930
2014-10-05 16:25:01 +01:00
Jermolene
535b695167 Docs edit 2014-10-05 16:18:56 +01:00
Jeremy Ruston
4d732c5733 Merge pull request #931 from gernert/patch-2
Update Lists in WikiText.tid
2014-10-05 16:06:39 +01:00
Jeremy Ruston
02d37dcfcc Merge pull request #934 from pmario/fix-untagged-pill-css
tc-untagged-label doesn't work, because button.tc-tag-label is more specific
2014-10-05 16:00:10 +01:00
Jeremy Ruston
cf6efa7ee5 Merge pull request #935 from Eucaly/variables
add WidgetVariable documentation
2014-10-05 15:59:32 +01:00
Jermolene
15905f3b7a Correct fix for #282
Thanks @pmario and @andrey013
2014-10-05 12:44:06 +01:00
Andrey Yankin
1c5c899096 dragger, dropdown, untagged pill, static alert 2014-10-04 23:38:09 +04:00
Andrey Yankin
e624f52374 Russian palette colours not finished 2014-10-04 23:38:09 +04:00
Andrey Yankin
46749d5f46 Russian fields 2014-10-04 23:38:09 +04:00
Andrey Yankin
cf6c8e23fb Russian ModuleTypes 2014-10-04 23:38:09 +04:00
Andrey Yankin
90ac097f38 svg 2014-10-04 23:38:09 +04:00
Andrey Yankin
e14d151273 types 2014-10-04 23:38:09 +04:00
Andrey Yankin
443dae39ba move fields translation to docs folder 2014-10-04 23:38:09 +04:00
Andrey Yankin
2188ecb91d Upgrader Russian translation 2014-10-04 23:38:09 +04:00
Andrey Yankin
3fd52fab0c LoadedModules incomplete translation 2014-10-04 23:38:09 +04:00
Andrey Yankin
a81375b432 small fix 2014-10-04 23:38:09 +04:00
Andrey Yankin
9a5c7a063c Date format 2014-10-04 23:38:09 +04:00
Andrey Yankin
352c3189da Russian control panel 2014-10-04 23:38:09 +04:00
Andrey Yankin
40cc1fcf5e misc 2014-10-04 23:38:09 +04:00
Andrey Yankin
ad71a102c2 Sign the CLA 2014-10-04 23:38:09 +04:00
Andrey Yankin
b311409924 edit form, filters, getting started, importer, search and info form russian translation 2014-10-04 23:38:09 +04:00
Andrey Yankin
65ba441e81 Russian sidebar 2014-10-04 23:38:09 +04:00
Andrey Yankin
10e7e53a10 Russian buttons 2014-10-04 23:38:09 +04:00
Andrey Yankin
9add946484 Russian flag 2014-10-04 23:38:09 +04:00
Andrey Yankin
fb799a57ff Start russian translation 2014-10-04 23:38:08 +04:00
Andrey Yankin
25cf30b946 Merge pull request #1 from Jermolene/master
Fix Firefox toolbar jump
2014-10-04 23:25:48 +04:00
Jermolene
3ca8d7b6cc Fix Firefox toolbar jump
Fixes #282
2014-10-04 12:17:47 +01:00
Eucaly
52a2d5ade2 update WidgetVariable documentation 2014-10-03 07:15:06 +08:00
Eucaly
d9ccac21d0 add WidgetVariable documentation 2014-10-02 23:02:48 +08:00
Mario Pietsch
f85b07e70b tc-untagged-label because button.tc-tag-label is more specific and also defines the background color. ... weak design 2014-10-02 15:41:40 +02:00
Markqz
6071f3d385 Create How to apply custom style classes by tag 2014-10-01 13:06:44 -08:00
gernert
e343ccc458 Update Lists in WikiText.tid
An extra example with numbers as first level
2014-10-01 19:54:34 +02:00
Eucaly
3acb5de407 update JavaScript Macros reference link to dev document 2014-10-01 18:36:04 +08:00
TheDiveO
05280f09d7 Added new filter operator for adding prefixes and suffixes to titles; these new filter operators are useful in contexts where only a filter expression is allowed and where macro processing isn't allowed. The filters complement the existing remove suffix and prefix filter operators. (So much for the "filter" in filter operator.) 2014-09-30 23:01:32 +02:00
Jermolene
459133cc57 Remove unused file watching code from filesystemadaptor
This code was contributed by @natecain and added in #176. It was almost
immediately disabled because of problems in the field.

I’m removing the code now to simplify the adaptor in advance of some
planned refactoring.
2014-09-28 23:46:55 +01:00
Jeremy Ruston
860a7070a9 Merge pull request #920 from xcazin/list-links
Tweak of the list-links macro in order to display caption fields if present
2014-09-28 20:33:30 +01:00
Xavier Cazin
c26bd4c5a8 Tweak of the list-links macro in order to display caption fields if present 2014-09-28 21:11:58 +02:00
Jermolene
6626da9b3b Update tabs macro documentation 2014-09-28 12:25:27 +01:00
Jermolene
e51c4fcb92 Adjust list macro docs 2014-09-28 09:58:27 +01:00
Jeremy Ruston
e028b87ce8 Merge pull request #918 from pmario/fr-coremacro-classes
Like the tabs macro, the list macro should get a possibility to add a class parameter
2014-09-28 09:56:40 +01:00
Jermolene
7ccf43d3ca Preparing for 5.1.3 2014-09-28 09:56:17 +01:00
Mario Pietsch
1f7a4e3336 fix docs, typo 2014-09-28 10:42:15 +02:00
Mario Pietsch
59f04ffd31 add class parameter to list-links macro 2014-09-28 10:32:54 +02:00
Mario Pietsch
32fcd2e21b Merge branch 'master' of https://github.com/Jermolene/TiddlyWiki5 2014-09-28 10:20:32 +02:00
Jermolene
1a9f042c25 Version number update for 5.1.2 2014-09-27 17:34:27 +01:00
Jermolene
d9bdc89dfd Update test for transclusion recursion detection 2014-09-27 17:30:13 +01:00
Jermolene
eaf41f3f18 Docs updates 2014-09-27 17:27:39 +01:00
Jermolene
46f6dd02f8 Update release note 2014-09-27 17:25:29 +01:00
Jermolene
1c8d62c3aa Link to couchdb adaptor
@wshallum feel free to send pull requests for this tiddler to reflect
future updates to the adaptor.
2014-09-27 17:02:36 +01:00
Jermolene
42abef6fbf Adjust untagged divider styling
Further fixes for #913
2014-09-27 16:56:59 +01:00
Jermolene
18a2b48b3b Docs adjustments 2014-09-27 11:56:36 +01:00
Mario Pietsch
10040f51e1 Merge branch 'master' of https://github.com/Jermolene/TiddlyWiki5 2014-09-27 12:55:47 +02:00
Jeremy Ruston
81fc8ef570 Merge pull request #909 from gernert/patch-2
Update TableOfContentsMacro.tid
2014-09-27 11:53:38 +01:00
Jeremy Ruston
f8f3d0fb9b Merge pull request #908 from pmario/de-AT-DE-korrektor
fixing typos + german macro docs
2014-09-27 11:39:52 +01:00
Jermolene
23c2d90ee8 Added error handling to upload saver
A further fix for #251
2014-09-27 10:47:31 +01:00
Jermolene
115245a632 Improve storyview error detection
Fixes #912
2014-09-27 10:34:59 +01:00
Jeremy Ruston
9dff0c4b12 Merge pull request #914 from TheDiveO/master
Avoid runtime errors in presence of broken plugin tiddlers
2014-09-27 10:15:32 +01:00
Jermolene
27728f397c Adjust tab positioning
Avoiding an unsightly gap on Firefox and Chrome. Sadly Safari needs the
margin-bottom to be set to `-3px` to achieve the same effect. I think
that that is because the browsers have some differences in their
intrinsic button styles that are not being properly normalised.
2014-09-27 10:13:36 +01:00
Jermolene
580e046e7d Separate tags pills from untagged pill with whitespace
Instead of using an `<hr>`. Fixes #913
2014-09-27 10:12:43 +01:00
TheDiveO
b1fb0a2a07 fix for broken plugin tiddlers that do not contain a tiddlers field;
avoids runtime errors upstream when accessing subtiddlers inside a
(broken) tiddler and when using the plugintiddlers filter operator.
2014-09-26 22:33:47 +02:00
Mario Pietsch
f604a0ac8e be polite 2014-09-26 09:21:39 +02:00
Mario Pietsch
a4b9032d9c Merge branch 'master' of https://github.com/Jermolene/TiddlyWiki5 2014-09-26 09:04:10 +02:00
Mario Pietsch
beb360d992 Merge branch 'de-AT-DE-korrektor' of github.com:pmario/TiddlyWiki5 2014-09-26 09:02:43 +02:00
gernert
8d48e194cf Update TableOfContentsMacro.tid
Seen the many questions in the group, the TableOfContentsMacro is a hot item but a bit difficult to understand.
I thought a graphical representation with the real tags for the examples might help.
2014-09-25 10:23:03 +02:00
Mario Pietsch
0799c06b1b more docs. ChrisK attribution 2014-09-24 16:28:31 +00:00
Jermolene
eacb9e53eb Delete syncer tiddlerInfo when tiddlers are deleted 2014-09-24 16:21:59 +02:00
Jermolene
e2046ce4ff Treat HTTP 201 response code as success 2014-09-24 16:19:23 +02:00
Jermolene
c9f692d671 Add documentation for "fields" filter operator
Fixes #898
2014-09-24 13:57:23 +02:00
Jermolene
88199ffd62 Update lists in wikitext docs
Thanks @Skeeve
2014-09-24 13:23:40 +02:00
Jermolene
a159b5baf3 Add tiddlerInfo to the syncadaptor saveTiddler method 2014-09-24 13:15:16 +02:00
Jeremy Ruston
8a0309a4bd Merge pull request #899 from simonbaird/master
Fix list macro typo in tw5 Plugins.tid
2014-09-24 12:43:03 +02:00
Jermolene
f8e11da0fc Update lists in wikitext docs
Include workaround for multi-line list entries.
2014-09-24 12:41:12 +02:00
Jermolene
6b3646a025 Update history of TiddlyWiki 2014-09-24 12:08:16 +02:00
Jermolene
b3df07ae3e Error handling for KaTeX plugin 2014-09-24 11:50:49 +02:00
Jermolene
61af1f9379 Add error formatting for transclusion recursion errors 2014-09-24 11:50:38 +02:00
Mario Pietsch
4264fe66ca some fixes. many new doc tiddlers 2014-09-23 22:50:02 +00:00
Simon Baird
6bc2e18cbd Fix list macro typo in tw5 Plugins.tid 2014-09-23 23:59:12 +10:00
Mario Pietsch
aaaed439f7 typos found by ChrisK 2014-09-22 19:26:00 +00:00
Jeremy Ruston
143d4c1ae4 Merge pull request #895 from Evolena/patch-1
Correct a typo in doc
2014-09-22 13:47:01 +01:00
Jeremy Ruston
ccce478b3a Merge pull request #896 from Evolena/patch-2
Sign CLA
2014-09-22 13:46:56 +01:00
Evolena
113d8efb80 Sign CLA 2014-09-22 14:36:16 +02:00
Evolena
f0e638ea62 Correct a typo in doc 2014-09-22 14:04:05 +02:00
Jermolene
972f91182d More preparation for 5.1.2 2014-09-22 12:24:05 +01:00
Jermolene
49f0989db8 Prepare for 5.1.2 2014-09-22 12:23:04 +01:00
Jermolene
b73006a5e9 Version number update for 5.1.1 2014-09-22 12:08:37 +01:00
Jermolene
22bc2dd9d7 Update KaTeX plugin docs 2014-09-22 12:06:49 +01:00
Jermolene
3088d50e87 Update release note for 5.1.1 2014-09-22 12:04:18 +01:00
Jeremy Ruston
3dfc569c00 Merge pull request #894 from pmario/de-AT-DE-korrektor
some more german typos
2014-09-22 11:54:15 +01:00
Jermolene
b7ce56e3ce Release note update for 5.1.1 2014-09-22 11:53:47 +01:00
Mario Pietsch
9059ea5211 some more german typos 2014-09-22 10:49:24 +00:00
Jeremy Ruston
4ebccbe468 Merge pull request #854 from buggyj/tw2parserdocerr
corrected doc error
2014-09-22 11:44:13 +01:00
Jeremy Ruston
32d55cf072 Merge pull request #890 from TheDiveO/master
Minor: fix plugin name ThirdFlow
2014-09-22 11:43:51 +01:00
Jeremy Ruston
5139c82f53 Merge pull request #889 from pmario/fix-encryption-button-consistency
make encryption button text more consistent
2014-09-22 11:43:25 +01:00
Jermolene
6ea18cb61a Readme update 2014-09-22 11:43:07 +01:00
Jermolene
13290692de Update docs for select widget
How’s this @danielo515?
2014-09-22 10:42:41 +01:00
Jermolene
1007ec2ad6 Sort order for TOC on tw5.com 2014-09-22 10:42:23 +01:00
Jermolene
f00c4c164b Add dev docs to readme 2014-09-22 10:42:12 +01:00
Jermolene
d0deacbdc4 Include word "Version" in ribbon on tw5.com 2014-09-22 10:42:02 +01:00
Jermolene
f81b0a6fa9 Add plugins to TOC on tw5.com 2014-09-22 10:41:34 +01:00
Jermolene
3a43de2272 Updates to KaTeX plugin 2014-09-22 10:41:12 +01:00
Jermolene
96b7d0eeba First pass at KaTeX plugin
Finally fixes #458 thanks to the KaTeX plugin from Khan Academy
2014-09-21 23:03:07 +01:00
TheDiveO
378e687a42 fix plugin name ThirdFlow
the icon may be slightly misleading but it's not the Third Wave and instead the Third Flow.
2014-09-21 18:49:06 +02:00
Mario Pietsch
14179c9734 make encryption button text more consistent 2014-09-21 13:48:33 +02:00
Jermolene
d047ccdc84 Remove support for deprecated $:/tags/stylesheet tag 2014-09-21 11:26:11 +01:00
Jermolene
62edd1e8a3 Remove support for deprecated "title" attribute on button widget 2014-09-21 11:25:43 +01:00
Jermolene
d4617ffbe4 Preparing for 5.1.1 2014-09-21 11:22:54 +01:00
Jermolene
3dc99e9605 Adjust links in dev docs
Whoops….
2014-09-21 11:15:27 +01:00
Jeremy Ruston
e536516e81 Merge pull request #888 from pmario/fix-german-typos
Fix german typos
2014-09-21 10:05:10 +01:00
Mario Pietsch
e95c87f068 checked all language files for typos 2014-09-21 09:58:54 +02:00
Mario Pietsch
f4f263ea69 fix some ugly typos 2014-09-21 09:22:20 +02:00
Jermolene
e0a00f360a Version number update for 5.1.0 2014-09-20 17:55:26 +01:00
Jeremy Ruston
658a0e5f0a Merge pull request #885 from BramChen/master
Update chinese translations
2014-09-20 17:00:55 +01:00
Bram Chen
962a865347 Update chinese translations
* correct help text of setfield command
2014-09-20 23:42:58 +08:00
Jeremy Ruston
0ea7f7589b Merge pull request #884 from xcazin/fr-FR
Fr fr
2014-09-20 16:37:17 +01:00
Jermolene
ff0b2afef7 Features docs update 2014-09-20 16:37:05 +01:00
Xavier Cazin
bde00aa455 Translation of the tiddler that links to the fr-FR edition (starting with the localised empty.html only) 2014-09-20 17:16:43 +02:00
Xavier Cazin
1c86a8e0bb fr-FR correction on setfield documentation 2014-09-20 17:05:10 +02:00
Jermolene
2ee82a289a Developer docs update 2014-09-20 15:37:14 +01:00
Jermolene
15e9e21d2a Readme updates for Node.js 2014-09-20 15:06:33 +01:00
Jermolene
ebb911f934 Docs updates 2014-09-20 13:49:34 +01:00
Jermolene
dac046c133 Add TWGuides to resource listing 2014-09-20 13:48:30 +01:00
Jeremy Ruston
ab1def7d94 Merge pull request #883 from pmario/fix-default-language-setting
Fix default language setting
2014-09-20 13:18:11 +01:00
Jermolene
c900c71f8a More docs updates 2014-09-20 13:17:18 +01:00
Jermolene
15c527802b More docs cleanup 2014-09-20 12:46:31 +01:00
Mario Pietsch
055dda9ee2 some language default settings fixed. remove a lot of now unnecessary tilde signs 2014-09-20 13:35:07 +02:00
Jermolene
d3ad7a52c1 Correct setfield documentation 2014-09-20 12:10:50 +01:00
Jermolene
5e5c416ead Remove links to non-existent German and Chinese translations 2014-09-20 12:10:33 +01:00
Mario Pietsch
9c71756738 fix bld-languages.sh 2014-09-20 10:21:27 +02:00
Jermolene
50a7b20cf0 Fix URL typos 2014-09-20 08:29:05 +01:00
Jeremy Ruston
6fbef65ded Merge pull request #879 from BramChen/master
chinese translations for documents of Chinese Edtions
2014-09-20 08:24:59 +01:00
Jeremy Ruston
1075770bf7 Merge pull request #880 from simonbaird/master
Update link to d3 demo in HelloThere content
2014-09-20 08:23:45 +01:00
Simon Baird
dfd35e8c12 Update link to d3 demo in HelloThere content 2014-09-20 16:25:41 +10:00
Bram Chen
59bbf3d56b Convert chinese characters 2014-09-20 12:51:43 +08:00
Bram Chen
15a28bc0a5 chinese translations for documents of Chinese Edtions 2014-09-20 12:34:24 +08:00
Jeremy Ruston
390a6759ea Merge pull request #878 from xcazin/fr-FR
fr-FR translation of the warning about saving settings only used on tidd...
2014-09-19 23:03:47 +01:00
Jermolene
1a75fd0e21 Include translated editions
@pmario and @bramchen and @xcazin

Maybe the titles of these tiddlers should be translated into their
respective languages? And possibly the text too?
2014-09-19 23:03:30 +01:00
Jermolene
9eb2db791f Docs updates 2014-09-19 23:02:03 +01:00
Xavier Cazin
889f8c43e2 fr-FR translation of the warning about saving settings only used on tiddlyspot-like servers 2014-09-19 23:34:51 +02:00
Jermolene
c5d0ae4c9b Fix problem with preview state storage in import listing
Fixes #877
2014-09-19 21:56:37 +01:00
Jermolene
3c58426ff2 Docs updates 2014-09-19 21:56:07 +01:00
Jermolene
06cc8ed5ef Lots of documentation cleanup 2014-09-19 17:18:25 +01:00
Jermolene
e40f4ff630 Fix typo
Thanks @pmario
2014-09-19 15:55:18 +01:00
Jermolene
3ad4febc15 Clarify select widget docs 2014-09-19 15:28:08 +01:00
Mario Pietsch
8610a9c064 get default language files back 2014-09-19 16:23:21 +02:00
Mario Pietsch
cda1e916bf fixing many obsolete ~ signs. modify setfield.js to get consistent language settings 2014-09-19 16:16:19 +02:00
Jermolene
9e6dab06cc Fix problem with Maruku Markdown metadata
Fixes #855 - albeit it’s a bit of a kluge. The internal format returned
by `markdown.toHTMLTree()` isn’t sufficiently well documented for me to
be confident that the new code is resilient to all the things that
might be returned.
2014-09-19 15:03:52 +01:00
Jermolene
7ed7aba8d0 Docs updates 2014-09-19 15:02:40 +01:00
Jermolene
e3fee7d56d Contributor updates 2014-09-19 14:43:04 +01:00
Jermolene
449d12ff60 Remove obsolete resource
Sadly, the plugin hasn’t worked for some time and is no longer under
active development.
2014-09-19 14:41:42 +01:00
Jermolene
0a3c399305 Clarify table documentation 2014-09-19 12:45:49 +01:00
Jeremy Ruston
f2791f7d5d Merge pull request #870 from gernert/patch-5
Update UpgradeWizard.tid
2014-09-19 12:42:25 +01:00
Jeremy Ruston
1297c6e820 Merge pull request #869 from gernert/patch-4
Update GettingStarted.tid
2014-09-19 12:42:19 +01:00
Jeremy Ruston
b82806d33d Merge pull request #872 from gernert/patch-7
Update cla-individual.md
2014-09-19 12:41:42 +01:00
gernert
d39760fa21 Update cla-individual.md 2014-09-19 13:40:33 +02:00
Jeremy Ruston
b22c682ab3 Merge pull request #866 from malgam/patch-1
Add module types listing to ModuleType tiddler
2014-09-19 12:33:09 +01:00
Jeremy Ruston
1c018183db Merge pull request #868 from malgam/patch-2
Update cla-individual.md
2014-09-19 12:31:16 +01:00
gernert
401d18e0d7 Update UpgradeWizard.tid
Just added a note.
2014-09-19 12:55:35 +02:00
gernert
f9ff7c44ea Update GettingStarted.tid
As discussed with pull request #863
2014-09-19 12:41:54 +02:00
Jermolene
b239b3d623 Remove curly braces from qualified identifiers
Fixes #860
2014-09-19 11:33:49 +01:00
Jeremy Ruston
5dbcc5f601 Rename Einführung.tid to Einfuhrung.tid
Remove critical diacritical
2014-09-19 11:24:07 +01:00
malgam
9aee46a8f0 Update cla-individual.md 2014-09-19 20:09:18 +10:00
Jeremy Ruston
4ff9346f3a Merge pull request #865 from pmario/de-AT-server
More german documentation
2014-09-19 11:03:09 +01:00
Jeremy Ruston
b0d83301ab Merge pull request #867 from BramChen/master
Update chinese translations
2014-09-19 10:53:13 +01:00
Bram Chen
026ddb7081 Add chinese translations for Saving/TiddlySpot/Description 2014-09-19 16:57:40 +08:00
Jermolene
02601a02fc Add note clarifying purpose of TiddlySpot settings
We’ve had a couple of cases where users have assumed that the “backup”
setting applies to ordinary, local saves
2014-09-19 09:13:18 +01:00
malgam
b31300c59c No "Internals" tab in control panel
ModuleType.tid refers to a non-existing "Internals" tab in the control panel for a list of module types used in this wiki.  I propose listing these directly in this tiddler as an alternative.
2014-09-19 14:57:01 +10:00
Jermolene
cbb16df47a Clean up images for /dev
We’ve now got a couple of duplicates which will be sorted out later
2014-09-18 20:16:06 +01:00
Jermolene
ca211094a2 Use spaces in dev tiddler filenames instead of %20 2014-09-18 20:00:34 +01:00
Jermolene
ac08f5f4a7 Remove split.recipe from dev edition
Left over from ginsu
2014-09-18 20:00:02 +01:00
Jermolene
de02d5ce9d Update contributors list 2014-09-18 19:59:39 +01:00
Jermolene
88a9115042 Preparing for 5.0.19 2014-09-18 19:27:29 +01:00
Mario Pietsch
3ad8742db8 new TOC, empty default language fix, static banner added, 2014-09-18 15:00:08 +02:00
Mario Pietsch
4199fc9683 insert static banner 2014-09-18 11:31:51 +02:00
Mario Pietsch
194f525478 first run for fullbuid compatibility 2014-09-18 10:56:44 +02:00
Jermolene
ba7422b407 Version number update for 5.0.18-beta 2014-09-17 22:20:43 +01:00
Jermolene
22006f995e Update modified times for new release 2014-09-17 22:12:22 +01:00
Jermolene
ea17e339f3 Release note update 2014-09-17 22:07:48 +01:00
Jermolene
c63488d155 Docs updates for new file locations 2014-09-17 20:01:00 +01:00
Jermolene
c20e6b9d1e Docs update 2014-09-17 19:49:24 +01:00
Jermolene
4f0ce1a835 Introduce fullbld.sh script
This new batch file builds everything needed for a release of
TiddlyWiki.

This is the main part of fixing #823.
2014-09-17 19:49:20 +01:00
Jermolene
28b2ac4fb3 Split de-AT-DE edition into de-AT and de-DE editions
It doesn’t really make sense for an edition to be in two languages
2014-09-17 19:47:43 +01:00
Jermolene
a9f46525a0 Stop classifying digits as lower case letters in wikilinks
Fixes #842
2014-09-17 12:55:39 +01:00
Jermolene
8cc236b4dc Fix problem with sorting missing tiddlers
Fixes #858
2014-09-17 12:17:43 +01:00
Jermolene
1b0eec143e Refine preliminary list macro
@pmario: I’ve taken your suggestion and made the HTML element type(s)
be macro parameters.
2014-09-17 12:13:24 +01:00
Jermolene
813bd2fe1d More docs updates 2014-09-17 08:36:39 +01:00
Jermolene
2d6c6fd208 Add "Briefcase" by Roma Hicks to resources 2014-09-16 21:42:10 +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
Jeremy Ruston
60541c5a6e Merge pull request #853 from buggyj/csserror
corrected class name
2014-09-16 16:15:50 +01:00
Jermolene
cbfc9fcc56 More docs updates 2014-09-16 15:19:52 +01:00
buggyj
3472721dbc corrected doc error 2014-09-16 16:10:25 +02:00
buggyj
57693efce7 corrected class name 2014-09-16 16:03:00 +02:00
Jeremy Ruston
67a90cdfad Merge pull request #851 from buggyj/nodedocerror
missing wikilinks on doc
2014-09-16 13:33:26 +01:00
Jermolene
d859fc2f58 Docs updates 2014-09-16 13:32:52 +01:00
buggyj
d27e157cec missing wikilinks on doc 2014-09-16 14:24:53 +02:00
Jermolene
40567c2f88 Drop the count column from the tag manager
It increases the horizontal width of the table, and isn’t particularly
useful.
2014-09-16 13:14:06 +01:00
Jeremy Ruston
ef28630d9a Merge pull request #850 from buggyj/bjtools
changed my site's location
2014-09-16 10:17:56 +01:00
buggyj
4e0b5faa4c change site url 2014-09-16 10:14:07 +02:00
Jeremy Ruston
ea6493d70b Merge pull request #813 from BramChen/master
Correct more vocabularies for simplified chinese
2014-09-14 20:44:24 +01:00
Jeremy Ruston
cd713bf0c2 Merge pull request #835 from Eucaly/master
Update Eucalys Tiddly World.tid
2014-09-14 20:44:15 +01:00
Jeremy Ruston
600b49efd1 Merge pull request #843 from Eucaly/patch-2
Update cla-individual.md
2014-09-14 20:44:02 +01:00
Jermolene
73a4747d05 Handle jpeg file extension correctly
Fixes #844
2014-09-14 20:35:01 +01:00
Jermolene
6ceec9fb44 Adjust permissions of serve.cmd 2014-09-14 19:37:59 +01:00
Eucaly
1e573f7a8d Update cla-individual.md
sorry, updated as @Eucaly
2014-09-14 22:03:12 +08:00
Jermolene
199aa1c2e7 Docs correction
Fixes #836
2014-09-14 10:57:20 +01:00
Jeremy Ruston
4373f48731 Merge pull request #837 from pmario/de-AT-DE-server
All WikiText tiddlers translated
2014-09-14 10:55:57 +01:00
Jermolene
775482a242 Fix problem with radio widget and missing tiddlers
Fixes #840
2014-09-14 10:55:34 +01:00
Jermolene
2571f534aa Fix problem with dragging partially selected link
Fixes #841
2014-09-14 10:50:53 +01:00
Jermolene
320e0af68c Update dev github ribbon 2014-09-14 10:33:29 +01:00
Jeremy Ruston
b0a4bd5479 Merge pull request #839 from Eucaly/patch-1
Update cla-individual.md
2014-09-14 10:32:57 +01:00
Eucaly
4ed990b701 Update cla-individual.md
signed Eucaly J
2014-09-14 05:50:25 +08:00
Mario Pietsch
0d175338c3 fix some typos 2014-09-13 21:45:00 +02:00
Mario Pietsch
a4db140dc8 removed german umlauts 2014-09-13 21:39:41 +02:00
Mario Pietsch
a0a8a457f4 All WikiText tiddlers translated 2014-09-13 21:27:26 +02:00
Eucaly
7105a3a353 Update Eucalys Tiddly World.tid 2014-09-13 20:35:47 +08:00
Jermolene
c4123ba374 Extend timeline macro to allow a subfilter 2014-09-13 11:06:50 +01:00
Jermolene
c44a3bb4a4 Preparing for 5.0.18-beta 2014-09-13 11:02:53 +01:00
Bram Chen
c743f15457 Merge remote-tracking branch 'upstream/master' 2014-09-13 02:14:06 +08:00
Bram Chen
d5c6f3cecf Fix more vocabularies for simplified chinese 2014-09-08 19:21:25 +08:00
Bram Chen
d7b1dd2315 Merge remote-tracking branch 'upstream/master' 2014-09-08 19:17:41 +08:00
Bram Chen
4749718ba0 Fix more vocabularies for simplified chinese 2014-09-07 21:23:21 +08:00
784 changed files with 7890 additions and 2530 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.DS_Store
.c9/
tmp/
output/

View File

@@ -2,15 +2,6 @@
rem build TiddlyWiki 2.x
rem Prepare the readme file from the revelant content in the tw5.com wiki
node .\tiddlywiki.js ^
editions\tw5.com ^
--verbose ^
--output editions\tw2 ^
--rendertiddler TiddlyWiki2ReadMe readme.md text/html ^
|| exit 1
rem cook the TiddlyWiki 2.x.x index file
node .\tiddlywiki.js ^

View File

@@ -2,15 +2,6 @@
# build TiddlyWiki 2.x
# Prepare the readme file from the revelant content in the tw5.com wiki
node ./tiddlywiki.js \
editions/tw5.com \
--verbose \
--output editions/tw2 \
--rendertiddler TiddlyWiki2ReadMe readme.md text/html \
|| exit 1
# cook the TiddlyWiki 2.x.x index file
node ./tiddlywiki.js \

View File

@@ -1,56 +0,0 @@
#!/bin/bash
# Abbreviated version of bld.sh for quicker builds
# Set up the build output directory
if [ -z "$TW5_BUILD_OUTPUT" ]; then
TW5_BUILD_OUTPUT=../jermolene.github.com
fi
if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
exit 1
fi
echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
# Make the CNAME file that GitHub Pages requires
echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
# The tw5.com wiki
# index.html: the main file, including content
node ./tiddlywiki.js \
./editions/de-AT-DE \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all de-AT-DE.html text/plain \
--savetiddler $:/favicon.ico favicon.ico \
|| exit 1
node ./tiddlywiki.js \
./editions/zh-Hant \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all zh-Hant.html text/plain \
--savetiddler $:/favicon.ico favicon.ico \
|| exit 1
node ./tiddlywiki.js \
./editions/zh-Hans \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all zh-Hans.html text/plain \
--savetiddler $:/favicon.ico favicon.ico \
|| exit 1
node ./tiddlywiki.js \
./editions/fr-FR \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all fr-FR.html text/plain \
--savetiddler $:/favicon.ico favicon.ico \
|| exit 1

View File

@@ -1,130 +0,0 @@
@echo off
rem build TiddlyWiki5 for tiddlywiki.com
rem Set up the build output directory
if "x%TW5_BUILD_OUTPUT%" == "x" (
set TW5_BUILD_OUTPUT=..\jermolene.github.com
)
if not exist %TW5_BUILD_OUTPUT%\nul (
echo A valid TW5_BUILD_OUTPUT environment variable must be set
exit 1
)
echo Using TW5_BUILD_OUTPUT as %TW5_BUILD_OUTPUT%
echo.
rem Create the `static` directories if necessary
setlocal enableextensions
mkdir %TW5_BUILD_OUTPUT%\static
setlocal disableextensions
rem Delete any existing content
del /q /s %TW5_BUILD_OUTPUT%\static
rem The tw5.com wiki
rem index.html: the main file, including content
rem empty.html: the main file, excluding content
rem static.html: the static version of the default tiddlers
node .\tiddlywiki.js ^
.\editions\tw5.com ^
--verbose ^
--output . ^
--build readmes ^
--output %TW5_BUILD_OUTPUT% ^
--build favicon empty static index ^
|| exit 1
rem dev/: developer material
node .\tiddlywiki.js ^
.\editions\dev ^
--verbose ^
--output %TW5_BUILD_OUTPUT%\dev ^
--build index favicon static ^
|| exit 1
rem upgrade.html: custom edition for handling upgrades
node .\tiddlywiki.js ^
.\editions\upgrade ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--build upgrade ^
|| exit 1
rem encrypted.html: a version of the main file encrypted with the password "password"
node .\tiddlywiki.js ^
.\editions\tw5.com ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--build encrypted ^
|| exit 1
rem tahoelafs.html: empty wiki with plugin for Tahoe-LAFS
node .\tiddlywiki.js ^
.\editions\tahoelafs ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--rendertiddler $:/core/save/all tahoelafs.html text/plain ^
|| exit 1
rem d3demo.html: wiki to demo d3 plugin
node .\tiddlywiki.js ^
.\editions\d3demo ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--rendertiddler $:/core/save/all d3demo.html text/plain ^
|| exit 1
rem codemirrordemo.html: wiki to demo codemirror plugin
node .\tiddlywiki.js ^
.\editions\codemirrordemo ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--rendertiddler $:/core/save/all codemirrordemo.html text/plain ^
|| exit 1
rem markdowndemo.html: wiki to demo markdown plugin
node .\tiddlywiki.js ^
.\editions\markdowndemo ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--rendertiddler $:/core/save/all markdowndemo.html text/plain ^
|| exit 1
rem classicparserdemo.html: wiki to demo classicparser plugin
node .\tiddlywiki.js ^
.\editions\classicparserdemo ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--rendertiddler $:/core/save/all classicparserdemo.html text/plain ^
|| exit 1
rem highlightdemo.html: wiki to demo highlight plugin
node .\tiddlywiki.js ^
.\editions\highlightdemo ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--rendertiddler $:/core/save/all highlightdemo.html text/plain ^
|| exit 1
rem Make the CNAME file that GitHub Pages requires
echo tiddlywiki.com > %TW5_BUILD_OUTPUT%\CNAME
rem Run the test edition to run the Node.js tests and to generate test.html for tests in the browser
.\bin\test.cmd

View File

@@ -1,127 +0,0 @@
#!/bin/bash
# build TiddlyWiki5 for tiddlywiki.com
# Set up the build output directory
if [ -z "$TW5_BUILD_OUTPUT" ]; then
TW5_BUILD_OUTPUT=../jermolene.github.com
fi
if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
exit 1
fi
echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
# Make the CNAME file that GitHub Pages requires
echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
# Create the `static` directories if necessary
mkdir -p $TW5_BUILD_OUTPUT/static
# Delete any existing content
rm $TW5_BUILD_OUTPUT/static/*
# The tw5.com wiki
# index.html: the main file, including content
# empty.html: the main file, excluding content
# static.html: the static version of the default tiddlers
node ./tiddlywiki.js \
./editions/tw5.com \
--verbose \
--output . \
--build readmes \
--output $TW5_BUILD_OUTPUT \
--build favicon empty static index \
|| exit 1
# dev/: developer material
node ./tiddlywiki.js \
./editions/dev \
--verbose \
--output $TW5_BUILD_OUTPUT/dev \
--build index favicon static \
|| exit 1
# upgrade.html: custom edition for handling upgrades
node ./tiddlywiki.js \
./editions/upgrade \
--verbose \
--output $TW5_BUILD_OUTPUT \
--build upgrade \
|| exit 1
# encrypted.html: a version of the main file encrypted with the password "password"
node ./tiddlywiki.js \
./editions/tw5.com \
--verbose \
--output $TW5_BUILD_OUTPUT \
--build encrypted \
|| exit 1
# tahoelafs.html: empty wiki with plugin for Tahoe-LAFS
node ./tiddlywiki.js \
./editions/tahoelafs \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all tahoelafs.html text/plain \
|| exit 1
# d3demo.html: wiki to demo d3 plugin
node ./tiddlywiki.js \
./editions/d3demo \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all d3demo.html text/plain \
|| exit 1
# codemirrordemo.html: wiki to demo codemirror plugin
node ./tiddlywiki.js \
./editions/codemirrordemo \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all codemirrordemo.html text/plain \
|| exit 1
# markdowndemo.html: wiki to demo markdown plugin
node ./tiddlywiki.js \
./editions/markdowndemo \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all markdowndemo.html text/plain \
|| exit 1
# classicparserdemo.html: wiki to demo classicparser plugin
node ./tiddlywiki.js \
./editions/classicparserdemo \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all classicparserdemo.html text/plain \
|| exit 1
# highlightdemo.html: wiki to demo highlight plugin
node ./tiddlywiki.js \
./editions/highlightdemo \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all highlightdemo.html text/plain \
|| exit 1
# Run the test edition to run the Node.js tests and to generate test.html for tests in the browser
./bin/test.sh

View File

@@ -1,17 +0,0 @@
@echo off
rem Publish to NPM
npm publish || exit 1
rem Deploy latest build to github
pushd ..\jermolene.github.com
git add --all || exit 1
git commit -m "Updates" || exit 1
git push origin || exit 1
popd

View File

@@ -1,17 +0,0 @@
#!/bin/bash
# Publish to NPM
npm publish || exit 1
# Deploy latest build to github
pushd ../jermolene.github.com
git add --all || exit 1
git commit -m "Updates" || exit 1
git push origin || exit 1
popd

View File

@@ -1,30 +0,0 @@
#!/bin/bash
# Build the dev wiki
# Set up the build output directory
if [ -z "$TW5_BUILD_OUTPUT" ]; then
TW5_BUILD_OUTPUT=../jermolene.github.com
fi
if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
exit 1
fi
echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
# Make the CNAME file that GitHub Pages requires
echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
# The tw5.com wiki
# index.html: the main file, including content
node ./tiddlywiki.js \
./editions/dev \
--verbose \
--output $TW5_BUILD_OUTPUT/dev \
--build index favicon \
|| exit 1

View File

@@ -1,28 +0,0 @@
@echo off
rem Abbreviated version of bld.sh for quicker builds
rem Set up the build output directory
if "x%TW5_BUILD_OUTPUT%" == "x" (
set TW5_BUILD_OUTPUT=..\jermolene.github.com
)
if not exist %TW5_BUILD_OUTPUT%\nul (
echo A valid TW5_BUILD_OUTPUT environment variable must be set
exit 1
)
echo Using TW5_BUILD_OUTPUT as %TW5_BUILD_OUTPUT%
echo.
rem The tw5.com wiki
rem index.html: the main file, including content
node .\tiddlywiki.js ^
.\editions\tw5.com ^
--verbose ^
--output %TW5_BUILD_OUTPUT% ^
--rendertiddler $:/core/save/all index.html text/plain ^
--savetiddler $:/favicon.ico favicon.ico ^
|| exit 1

View File

@@ -1,30 +0,0 @@
#!/bin/bash
# Abbreviated version of bld.sh for quicker builds
# Set up the build output directory
if [ -z "$TW5_BUILD_OUTPUT" ]; then
TW5_BUILD_OUTPUT=../jermolene.github.com
fi
if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
exit 1
fi
echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
# Make the CNAME file that GitHub Pages requires
echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
# The tw5.com wiki
# index.html: the main file, including content
node ./tiddlywiki.js \
./editions/tw5.com \
--verbose \
--output $TW5_BUILD_OUTPUT \
--build index favicon \
|| exit 1

File diff suppressed because one or more lines are too long

4
bin/serve.cmd Executable file → Normal file
View File

@@ -43,8 +43,8 @@ echo - %%3 .. password .. can be empty like this: '""'
echo - %%4 .. IP address or HOST .. defaults to localhost
echo - %%5 .. PORT .. defaults to 8080
echo.
echo Example 1 .\serve .\edition\tw5.com-server username
echo Example 2 .\serve .\edition\tw5.com-server '""' '""' localhost 9090
echo Example 1 .\serve .\editions\tw5.com-server username
echo Example 2 .\serve .\editions\tw5.com-server '""' '""' localhost 9090
echo .. Example 2 defines: empty username, empty password
echo.
echo Help information

View File

@@ -45,8 +45,8 @@ help() {
echo $'\t'-v .. Version
echo $'\t'-h .. Help
echo
echo Example 1 ./serve ./edition/tw5.com-server username
echo Example 2 ./serve ./edition/tw5.com-server \"\" \"\" localhost 9090
echo Example 1 ./serve ./editions/tw5.com-server username
echo Example 2 ./serve ./editions/tw5.com-server \"\" \"\" localhost 9090
echo .. Example 2 defines: empty username, empty password
echo
}

View File

@@ -2,24 +2,10 @@
rem test TiddlyWiki5 for tiddlywiki.com
rem Set up the build output directory
if "x%TW5_BUILD_OUTPUT%" == "x" (
set TW5_BUILD_OUTPUT=..\jermolene.github.com
)
if not exist %TW5_BUILD_OUTPUT%\nul (
echo A valid TW5_BUILD_OUTPUT environment variable must be set
exit 1
)
echo Using TW5_BUILD_OUTPUT as %TW5_BUILD_OUTPUT%
rem Run the test edition to run the node.js tests and to generate test.html for tests in the browser
node .\tiddlywiki.js ^
.\editions\test ^
--output %TW5_BUILD_OUTPUT% ^
--verbose ^
--rendertiddler $:/core/save/all test.html text/plain ^
|| exit 1

View File

@@ -2,24 +2,12 @@
# test TiddlyWiki5 for tiddlywiki.com
# Set up the build output directory
if [ -z "$TW5_BUILD_OUTPUT" ]; then
TW5_BUILD_OUTPUT=../jermolene.github.com
fi
if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
exit 1
fi
echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
# Run the test edition to run the node.js tests and to generate test.html for tests in the browser
node ./tiddlywiki.js \
./editions/test \
--verbose \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all test.html text/plain \
|| exit 1
echo To run the tests in a browser, open "editions/test/output/test.html"

View File

@@ -1,16 +0,0 @@
@echo off
rem Bump to a new version number
if "x%1" == "x" (
echo Missing version (eg '5.0.0-alpha'^)
exit 1
)
rem Set the new version number (will also commit and tag the release)
npm version %1 -m "Version number update for %1" || exit 1
rem Make sure our tags are pushed to the origin server
git push origin --tags || exit 1

View File

@@ -1,17 +0,0 @@
#!/bin/bash
# Bump to a new version number
if [ -z "$1" ]
then
echo "Missing version (eg '5.0.0-alpha')"
exit 1
fi
# Set the new version number (will also commit and tag the release)
npm version $1 -m "Version number update for $1" || exit 1
# Make sure our tags are pushed to the origin server
git push origin --tags || exit 1

View File

@@ -1,26 +0,0 @@
@echo off
rem build the TiddlyWeb edition of TiddlyWiki5 and upload it to TiddlySpace. Requires the TiddlySpace credentials
rem of a member of the tw5tiddlyweb space
rem usage:
rem .\wbld.cmd <tiddlyspace username> <tiddlyspace password>
rem Open the tw5tiddlyweb edition in TW5 and save the template for the main HTML file
node .\tiddlywiki.js ^
editions\tw5tiddlyweb ^
--verbose ^
--output tmp ^
--rendertiddler $:/core/save/all tiddlyweb.html text/plain ^
|| exit 1
rem Prepend the type information that TiddlyWeb needs to turn the .html file into a .tid file
echo "type: text/html" > tmp\tiddlerforupload.txt
echo "" >> tmp\tiddlerforupload.txt
type tmp\tiddlyweb.html >> tmp\tiddlerforupload.txt
rem Upload the tiddler file
curl -u %1:%2 -X PUT -H "content-type: text/plain" http://tw5tiddlyweb.tiddlyspace.com/bags/tw5tiddlyweb_public/tiddlers/tw5 --data-binary @tmp/tiddlerforupload.txt

View File

@@ -1,30 +0,0 @@
#!/bin/bash
# build the TiddlyWeb edition of TiddlyWiki5 and upload it to TiddlySpace. Requires the TiddlySpace credentials
# of a member of the tw5tiddlyweb space
# usage:
# ./wbld.sh <tiddlyspace username> <tiddlyspace password>
# Create the tmp directory if needed
mkdir -p tmp
# Open the tw5tiddlyweb edition in TW5 and save the template for the main HTML file
node ./tiddlywiki.js \
editions/tw5tiddlyweb \
--verbose \
--output tmp \
--rendertiddler $:/core/save/all tiddlyweb.html text/plain \
|| exit 1
# Prepend the type information that TiddlyWeb needs to turn the .html file into a .tid file
echo "type: text/html" > tmp/tiddlerforupload.txt
echo "" >> tmp/tiddlerforupload.txt
cat tmp/tiddlyweb.html >> tmp/tiddlerforupload.txt
# Upload the tiddler file
curl -u $1:$2 -X PUT -H "content-type: text/plain" http://tw5tiddlyweb.tiddlyspace.com/bags/tw5tiddlyweb_public/tiddlers/tw5 --data-binary @tmp/tiddlerforupload.txt

View File

@@ -4,20 +4,7 @@ type: application/javascript
The main boot kernel for TiddlyWiki. This single file creates a barebones TW environment that is just sufficient to bootstrap the modules containing the main logic of the application.
On the server this file is executed directly to boot TiddlyWiki. In the browser, this file is packed into a single HTML file along with other elements:
# bootprefix.js
# <module definitions>
# boot.js
The module definitions on the browser look like this:
$tw.defineModule("MyModule","moduletype",function(module,exports,require) {
// Module code inserted here
return exports;
});
In practice, each module is wrapped in a separate script block.
On the server this file is executed directly to boot TiddlyWiki. In the browser, this file is packed into a single HTML file.
\*/
@@ -392,7 +379,14 @@ options: {flags: flags,deserializerType: deserializerType}
*/
$tw.utils.registerFileType = function(type,encoding,extension,options) {
options = options || {};
$tw.config.fileExtensionInfo[extension] = {type: type};
if($tw.utils.isArray(extension)) {
$tw.utils.each(extension,function(extension) {
$tw.config.fileExtensionInfo[extension] = {type: type};
});
extension = extension[0];
} else {
$tw.config.fileExtensionInfo[extension] = {type: type};
}
$tw.config.contentTypeInfo[type] = {encoding: encoding, extension: extension, flags: options.flags || [], deserializerType: options.deserializerType || type};
};
@@ -470,6 +464,7 @@ submitText: text to use for submit button (defaults to "Login")
serviceName: text of the human readable service name
noUserName: set true to disable username prompt
canCancel: set true to enable a cancel button (callback called with null)
repeatPassword: set true to prompt for the password twice
callback: function to be called on submission with parameter of object {username:,password:}. Callback must return `true` to remove the password prompt
*/
$tw.utils.PasswordPrompt.prototype.createPrompt = function(options) {
@@ -486,6 +481,11 @@ $tw.utils.PasswordPrompt.prototype.createPrompt = function(options) {
children.push(dm("input",{
attributes: {type: "password", name: "password", placeholder: "Password"}
}));
if(options.repeatPassword) {
children.push(dm("input",{
attributes: {type: "password", name: "password2", placeholder: "Repeat password"}
}));
}
if(options.canCancel) {
children.push(dm("button",{
text: "Cancel",
@@ -520,18 +520,23 @@ $tw.utils.PasswordPrompt.prototype.createPrompt = function(options) {
data[element.name] = element.value;
}
});
// Call the callback
if(options.callback(data)) {
// Remove the prompt if the callback returned true
self.removePrompt(promptInfo);
// Check that the passwords match
if(options.repeatPassword && data.password !== data.password2) {
alert("Passwords do not match");
} else {
// Clear the password if the callback returned false
$tw.utils.each(form.elements,function(element) {
if(element.name === "password") {
element.value = "";
}
});
}
// Call the callback
if(options.callback(data)) {
// Remove the prompt if the callback returned true
self.removePrompt(promptInfo);
} else {
// Clear the password if the callback returned false
$tw.utils.each(form.elements,function(element) {
if(element.name === "password" || element.name === "password2") {
element.value = "";
}
});
}
}
event.preventDefault();
return false;
},true);
@@ -1237,10 +1242,14 @@ Decrypt any tiddlers stored within the element with the ID "encryptedArea". The
$tw.boot.decryptEncryptedTiddlers = function(callback) {
var encryptedArea = document.getElementById("encryptedStoreArea");
if(encryptedArea) {
var encryptedText = encryptedArea.innerHTML;
var encryptedText = encryptedArea.innerHTML,
prompt = "Enter a password to decrypt this TiddlyWiki";
// Prompt for the password
if($tw.utils.hop($tw.boot,"encryptionPrompts")) {
prompt = $tw.boot.encryptionPrompts.decrypt;
}
$tw.passwordPrompt.createPrompt({
serviceName: "Enter a password to decrypt this TiddlyWiki",
serviceName: prompt,
noUserName: true,
submitText: "Decrypt",
callback: function(data) {
@@ -1561,7 +1570,9 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
$tw.utils.each(wikiInfo.includeWikis,function(includedWikiPath) {
var resolvedIncludedWikiPath = path.resolve(wikiPath,includedWikiPath);
if(parentPaths.indexOf(resolvedIncludedWikiPath) === -1) {
$tw.loadWikiTiddlers(resolvedIncludedWikiPath,parentPaths);
var subWikiInfo = $tw.loadWikiTiddlers(resolvedIncludedWikiPath,parentPaths);
// Merge the build targets
wikiInfo.build = $tw.utils.extend([],subWikiInfo.build,wikiInfo.build);
} else {
$tw.utils.error("Cannot recursively include wiki " + resolvedIncludedWikiPath);
}
@@ -1703,7 +1714,9 @@ $tw.boot.startup = function(options) {
// If the first command line argument doesn't start with `--` then we
// interpret it as the path to the wiki folder, which will otherwise default
// to the current folder
var explicitWikiPath;
if($tw.boot.argv[0] && $tw.boot.argv[0].indexOf("--") !== 0) {
explicitWikiPath = true;
$tw.boot.wikiPath = $tw.boot.argv[0];
$tw.boot.argv = $tw.boot.argv.slice(1);
} else {
@@ -1724,19 +1737,21 @@ $tw.boot.startup = function(options) {
$tw.utils.registerFileType("text/vnd.tiddlywiki2-recipe","utf8",".recipe");
$tw.utils.registerFileType("text/plain","utf8",".txt");
$tw.utils.registerFileType("text/css","utf8",".css");
$tw.utils.registerFileType("text/html","utf8",".html");
$tw.config.fileExtensionInfo[".htm"] = {type: "text/html"};
$tw.config.fileExtensionInfo[".hta"] = {type: "text/html"};
$tw.utils.registerFileType("text/html","utf8",[".html",".htm"]);
$tw.utils.registerFileType("application/hta","utf16le",".hta",{deserializerType:"text/html"});
$tw.utils.registerFileType("application/javascript","utf8",".js");
$tw.utils.registerFileType("application/json","utf8",".json");
$tw.utils.registerFileType("application/pdf","base64",".pdf",{flags:["image"]});
$tw.utils.registerFileType("image/jpeg","base64",".jpg",{flags:["image"]});
$tw.utils.registerFileType("image/jpeg","base64",[".jpg",".jpeg"],{flags:["image"]});
$tw.utils.registerFileType("image/png","base64",".png",{flags:["image"]});
$tw.utils.registerFileType("image/gif","base64",".gif",{flags:["image"]});
$tw.utils.registerFileType("image/svg+xml","utf8",".svg",{flags:["image"]});
$tw.utils.registerFileType("image/x-icon","base64",".ico",{flags:["image"]});
$tw.utils.registerFileType("application/font-woff","base64",".woff");
$tw.utils.registerFileType("audio/ogg","base64",".ogg");
$tw.utils.registerFileType("audio/mp3","base64",".mp3");
$tw.utils.registerFileType("audio/mp4","base64",[".mp4",".m4a"]);
$tw.utils.registerFileType("text/x-markdown","utf8",[".md",".markdown"]);
// Create the wiki store for the app
$tw.wiki = new $tw.Wiki();
// Install built in tiddler fields modules
@@ -1749,6 +1764,9 @@ $tw.boot.startup = function(options) {
$tw.loadTiddlersBrowser();
} else {
$tw.loadTiddlersNode();
if(!$tw.boot.wikiInfo && explicitWikiPath) {
return $tw.utils.error("Wiki folder '" + $tw.boot.wikiPath + "' is missing a 'tiddlywiki.info' file");
}
}
// Unpack plugin tiddlers
$tw.wiki.readPluginInfo();

View File

@@ -99,7 +99,7 @@ return $tw
if(typeof(exports) === "undefined") {
// Set up $tw global for the browser
window.$tw = _bootprefix();
window.$tw = _bootprefix(window.$tw);
} else {
// Export functionality as a module
exports.bootprefix = _bootprefix;

View File

@@ -1,3 +1,3 @@
<h1 class=''>Contributing to <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a></h1><p>We welcome contributions to the code and documentation of <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> in several ways:</p><ul><li><a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/ReportingBugs.html'>ReportingBugs</a></li><li>Helping to <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/Improving%2520TiddlyWiki%2520Documentation.html'>improve our documentation</a></li><li>Contributing to the code via <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5' target='_blank'>GitHub</a><ul><li>See <a class='tc-tiddlylink-external' href='http://tiddlywiki.com/dev' target='_blank'>http://tiddlywiki.com/dev</a> for more details</li></ul></li></ul><p>There are other ways to <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/HelpingTiddlyWiki.html'>help TiddlyWiki</a> too.</p><h1 class=''>Contributor License Agreement</h1><p>Like other <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/OpenSource.html'>OpenSource</a> projects, <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the <a class='tc-tiddlylink tc-tiddlylink-missing' href='http://tiddlywiki.com/static/UnaMesa.html'>UnaMesa</a> Association (the legal entity that owns <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> on behalf of the community).</p><ul><li>For individuals use: <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-individual.md' target='_blank'>licenses/CLA-individual</a></li><li>For entities use: <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-entity.md' target='_blank'>licenses/CLA-entity</a></li></ul><h1 class=''>How to sign the CLA</h1><p>Create a <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/GitHub.html'>GitHub</a> pull request to add your name to <code>cla-individual.md</code> or <code>cla-entity.md</code>, with the date in the format (YYYY/MM/DD).</p><p>eg: <code>Jeremy Ruston, @Jermolene, 2011/11/22</code></p><hr><p><em>The CLA documents used for this project were created using <a class='tc-tiddlylink-external' href='http://www.harmonyagreements.org' target='_blank'>Harmony Project Templates</a>. &quot;HA-CLA-I-LIST Version 1.0&quot; for &quot;CLA-individual&quot; and &quot;HA-CLA-E-LIST Version 1.0&quot; for &quot;CLA-entity&quot;.</em>
<h1 class=''>Contributing to <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a></h1><p>We welcome contributions to the code and documentation of <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> in several ways:</p><ul><li><a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/ReportingBugs.html'>ReportingBugs</a></li><li>Helping to <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/Improving%2520TiddlyWiki%2520Documentation.html'>improve our documentation</a></li><li>Contributing to the code via <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5' target='_blank'>GitHub</a><ul><li>See <a class='tc-tiddlylink-external' href='http://tiddlywiki.com/dev' target='_blank'>http://tiddlywiki.com/dev</a> for more details</li></ul></li></ul><p>There are other ways to <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/HelpingTiddlyWiki.html'>help TiddlyWiki</a> too.</p><h1 class=''>Contributor License Agreement</h1><p>Like other <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/OpenSource.html'>OpenSource</a> projects, <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the <a class='tc-tiddlylink tc-tiddlylink-missing' href='http://tiddlywiki.com/static/UnaMesa.html'>UnaMesa</a> Association (the legal entity that owns <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> on behalf of the community).</p><ul><li>For individuals use: <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-individual.md' target='_blank'>licenses/CLA-individual</a></li><li>For entities use: <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-entity.md' target='_blank'>licenses/CLA-entity</a></li></ul><h1 class=''>How to sign the CLA</h1><p>Create a <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/GitHub.html'>GitHub</a> pull request to add your name to <code>cla-individual.md</code> or <code>cla-entity.md</code>, with the date in the format (YYYY/MM/DD).</p><p><strong>step by step</strong></p><ol><li>click <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-individual.md' target='_blank'>licenses/CLA-individual</a> or <a class='tc-tiddlylink-external' href='https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-entity.md' target='_blank'>licenses/CLA-entity</a></li><li>in <code>cla-individual.md</code> or <code>cla-entity.md</code> click icon on the top-right corner (clicking this button will fork the project so you can edit the file)</li><li>add your name at the bottom</li></ol><p>eg: <code>Jeremy Ruston, @Jermolene, 2011/11/22</code></p><hr><p><em>The CLA documents used for this project were created using <a class='tc-tiddlylink-external' href='http://www.harmonyagreements.org' target='_blank'>Harmony Project Templates</a>. &quot;HA-CLA-I-LIST Version 1.0&quot; for &quot;CLA-individual&quot; and &quot;HA-CLA-E-LIST Version 1.0&quot; for &quot;CLA-entity&quot;.</em>
</p><p><em>This file was automatically generated by <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a></em>
</p>

View File

@@ -0,0 +1,8 @@
title: $:/core/images/new-here-button
tags: $:/tags/Image
<svg class="tc-image-new-here-button tc-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
<g fill-rule="evenodd">
<path d="M56.5301831,72 L48.53728,72 C44.1183542,72 40.5301831,68.418278 40.5301831,64 C40.5301831,59.5907123 44.1150825,56 48.53728,56 L56.5301831,56 L56.5301831,48.0070969 C56.5301831,43.5881712 60.1119051,40 64.5301831,40 C68.9394708,40 72.5301831,43.5848994 72.5301831,48.0070969 L72.5301831,56 L80.5230862,56 C84.9420119,56 88.5301831,59.581722 88.5301831,64 C88.5301831,68.4092877 84.9452837,72 80.5230862,72 L72.5301831,72 L72.5301831,79.9929031 C72.5301831,84.4118288 68.9484611,88 64.5301831,88 C60.1208954,88 56.5301831,84.4151006 56.5301831,79.9929031 L56.5301831,72 Z M64.5301831,128 C99.8764071,128 128.530183,99.346224 128.530183,64 C128.530183,28.653776 99.8764071,0 64.5301831,0 C29.1839591,0 0.530183077,28.653776 0.530183077,64 C0.530183077,99.346224 29.1839591,128 64.5301831,128 Z M64.5301831,118 C94.3535596,118 118.530183,93.8233765 118.530183,64 C118.530183,34.1766235 94.3535596,10 64.5301831,10 C34.7068066,10 10.5301831,34.1766235 10.5301831,64 C10.5301831,93.8233765 34.7068066,118 64.5301831,118 Z M64.5301831,108 C88.8307121,108 108.530183,88.300529 108.530183,64 C108.530183,39.699471 88.8307121,20 64.5301831,20 C40.2296541,20 20.5301831,39.699471 20.5301831,64 C20.5301831,88.300529 40.2296541,108 64.5301831,108 Z M64.5301831,98 C83.3078646,98 98.5301831,82.7776815 98.5301831,64 C98.5301831,45.2223185 83.3078646,30 64.5301831,30 C45.7525016,30 30.5301831,45.2223185 30.5301831,64 C30.5301831,82.7776815 45.7525016,98 64.5301831,98 Z"></path>
</g>
</svg>

View File

@@ -0,0 +1,16 @@
title: $:/core/images/new-journal-button
tags: $:/tags/Image
<svg class="tc-image-new-journal-button tc-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
<g fill-rule="evenodd">
<path d="M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z"></path>
<g transform="translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)">
<g transform="translate(0.000000, 0.000000)">
<path d="M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z"></path>
<text font-family="Helvetica" font-size="47.1724138" font-weight="bold" fill="#FFFFFF">
<tspan x="42" y="77.4847912" text-anchor="middle"><<now "DD">></tspan>
</text>
</g>
</g>
</g>
</svg>

View File

@@ -34,10 +34,16 @@ Home/Caption: home
Home/Hint: Open the default tiddlers
Language/Caption: language
Language/Hint: Choose the user interface language
NewTiddler/Caption: new tiddler
NewTiddler/Hint: Create a new tiddler
More/Caption: more
More/Hint: More actions
NewHere/Caption: new here
NewHere/Hint: Create a new tiddler tagged with this one
NewJournal/Caption: new journal
NewJournal/Hint: Create a new journal tiddler
NewJournalHere/Caption: new journal here
NewJournalHere/Hint: Create a new journal tiddler tagged with this one
NewTiddler/Caption: new tiddler
NewTiddler/Hint: Create a new tiddler
Permalink/Caption: permalink
Permalink/Hint: Set browser address bar to a direct link to this tiddler
Permaview/Caption: permaview

View File

@@ -10,6 +10,8 @@ Basics/DefaultTiddlers/BottomHint: Use &#91;&#91;double square brackets&#93;&#93
Basics/DefaultTiddlers/Prompt: Default tiddlers:
Basics/DefaultTiddlers/TopHint: Choose which tiddlers are displayed at startup:
Basics/Language/Prompt: Hello! Current language:
Basics/NewJournal/Title/Prompt: Title of new journal tiddlers
Basics/NewJournal/Tags/Prompt: Tags for new journal tiddlers
Basics/OverriddenShadowTiddlers/Prompt: Number of overridden shadow tiddlers:
Basics/ShadowTiddlers/Prompt: Number of shadow tiddlers:
Basics/Subtitle/Prompt: Subtitle:
@@ -51,6 +53,7 @@ Saving/Heading: Saving
Saving/TiddlySpot/Advanced/Heading: Advanced Settings
Saving/TiddlySpot/BackupDir: Backup Directory
Saving/TiddlySpot/Backups: Backups
Saving/TiddlySpot/Description: These settings are only used when saving to http://tiddlyspot.com or a compatible remote server
Saving/TiddlySpot/Filename: Upload Filename
Saving/TiddlySpot/Heading: ~TiddlySpot
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address//

View File

@@ -0,0 +1,87 @@
title: $:/language/
Date/DaySuffix/1: st
Date/DaySuffix/2: nd
Date/DaySuffix/3: rd
Date/DaySuffix/4: th
Date/DaySuffix/5: th
Date/DaySuffix/6: th
Date/DaySuffix/7: th
Date/DaySuffix/8: th
Date/DaySuffix/9: th
Date/DaySuffix/10: th
Date/DaySuffix/11: th
Date/DaySuffix/12: th
Date/DaySuffix/13: th
Date/DaySuffix/14: th
Date/DaySuffix/15: th
Date/DaySuffix/16: th
Date/DaySuffix/17: th
Date/DaySuffix/18: th
Date/DaySuffix/19: th
Date/DaySuffix/20: th
Date/DaySuffix/21: st
Date/DaySuffix/22: nd
Date/DaySuffix/23: rd
Date/DaySuffix/24: th
Date/DaySuffix/25: th
Date/DaySuffix/26: th
Date/DaySuffix/27: th
Date/DaySuffix/28: th
Date/DaySuffix/29: th
Date/DaySuffix/30: th
Date/DaySuffix/31: st
Date/Long/Day/0: Sunday
Date/Long/Day/1: Monday
Date/Long/Day/2: Tuesday
Date/Long/Day/3: Wednesday
Date/Long/Day/4: Thursday
Date/Long/Day/5: Friday
Date/Long/Day/6: Saturday
Date/Long/Month/1: January
Date/Long/Month/2: February
Date/Long/Month/3: March
Date/Long/Month/4: April
Date/Long/Month/5: May
Date/Long/Month/6: June
Date/Long/Month/7: July
Date/Long/Month/8: August
Date/Long/Month/9: September
Date/Long/Month/10: October
Date/Long/Month/11: November
Date/Long/Month/12: December
Date/Period/am: am
Date/Period/pm: pm
Date/Short/Day/0: Sun
Date/Short/Day/1: Mon
Date/Short/Day/2: Tue
Date/Short/Day/3: Wed
Date/Short/Day/4: Thu
Date/Short/Day/5: Fri
Date/Short/Day/6: Sat
Date/Short/Month/1: Jan
Date/Short/Month/2: Feb
Date/Short/Month/3: Mar
Date/Short/Month/4: Apr
Date/Short/Month/5: May
Date/Short/Month/6: Jun
Date/Short/Month/7: Jul
Date/Short/Month/8: Aug
Date/Short/Month/9: Sep
Date/Short/Month/10: Oct
Date/Short/Month/11: Nov
Date/Short/Month/12: Dec
RelativeDate/Future/Days: <<period>> days from now
RelativeDate/Future/Hours: <<period>> hours from now
RelativeDate/Future/Minutes: <<period>> minutes from now
RelativeDate/Future/Months: <<period>> months from now
RelativeDate/Future/Second: 1 second from now
RelativeDate/Future/Seconds: <<period>> seconds from now
RelativeDate/Future/Years: <<period>> years from now
RelativeDate/Past/Days: <<period>> days ago
RelativeDate/Past/Hours: <<period>> hours ago
RelativeDate/Past/Minutes: <<period>> minutes ago
RelativeDate/Past/Months: <<period>> months ago
RelativeDate/Past/Second: 1 second ago
RelativeDate/Past/Seconds: <<period>> seconds ago
RelativeDate/Past/Years: <<period>> years ago

View File

@@ -14,6 +14,7 @@ storyview: Story views customise the animation and behaviour of list widgets.
tiddlerdeserializer: Converts different content types into tiddlers.
tiddlerfield: Defines the behaviour of an individual tiddler field.
tiddlermethod: Adds methods to the `$tw.Tiddler` prototype.
upgrader: Applies upgrade processing to tiddlers during an upgrade/import.
utils: Adds methods to `$tw.utils`.
utils-node: Adds Node.js-specific methods to `$tw.utils`.
widget: Widgets encapsulate DOM rendering and refreshing.

View File

@@ -1,7 +1,7 @@
title: $:/language/Help/setfield
description: Prepares external tiddlers for use
//Note that this command is experimental and may change or be replaced during the TiddlyWiki version 5 beta//
//Note that this command is experimental and may change or be replaced before being finalised//
Sets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.

View File

@@ -8,27 +8,15 @@ ConfirmCancelTiddler: Do you wish to discard changes to the tiddler "<$text text
ConfirmDeleteTiddler: Do you wish to delete the tiddler "<$text text=<<title>>/>"?
ConfirmOverwriteTiddler: Do you wish to overwrite the tiddler "<$text text=<<title>>/>"?
ConfirmEditShadowTiddler: You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit "<$text text=<<title>>/>"?
DefaultNewTiddlerTitle: New Tiddler
DropMessage: Drop here (or click escape to cancel)
Encryption/ConfirmClearPassword: Do you wish to clear the password? This will remove the encryption applied when saving this wiki
Encryption/PromptSetPassword: Set a new password for this TiddlyWiki
InvalidFieldName: Illegal characters in field name "<$text text=<<fieldName>>/>". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)
MissingTiddler/Hint: Missing tiddler "<$text text=<<currentTiddler>>/>" - click {{$:/core/images/edit-button}} to create
RecentChanges/DateFormat: DDth MMM YYYY
RelativeDate/Future/Days: <<period>> days from now
RelativeDate/Future/Hours: <<period>> hours from now
RelativeDate/Future/Minutes: <<period>> minutes from now
RelativeDate/Future/Months: <<period>> months from now
RelativeDate/Future/Second: 1 second from now
RelativeDate/Future/Seconds: <<period>> seconds from now
RelativeDate/Future/Years: <<period>> years from now
RelativeDate/Past/Days: <<period>> days ago
RelativeDate/Past/Hours: <<period>> hours ago
RelativeDate/Past/Minutes: <<period>> minutes ago
RelativeDate/Past/Months: <<period>> months ago
RelativeDate/Past/Second: 1 second ago
RelativeDate/Past/Seconds: <<period>> seconds ago
RelativeDate/Past/Years: <<period>> years ago
SystemTiddler/Tooltip: This is a system tiddler
TagManager/Colour/Heading: Colour
TagManager/Count/Heading: Count
TagManager/Icon/Heading: Icon
TagManager/Tag/Heading: Tag
UnsavedChangesWarning: You have unsaved changes in TiddlyWiki

View File

@@ -0,0 +1,4 @@
title: $:/config/NewJournal/
Title: DDth MMM YYYY
Tags: Journal

View File

@@ -17,20 +17,6 @@ exports.preferences = {};
exports.preferences.notificationDuration = 3 * 1000;
exports.preferences.jsonSpaces = 4;
exports.dateFormats = {
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November","December"],
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
daySuffixes: ["st","nd","rd","th","th","th","th","th","th","th",
"th","th","th","th","th","th","th","th","th","th",
"st","nd","rd","th","th","th","th","th","th","th",
"st"],
am: "am",
pm: "pm"
};
exports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };
exports.htmlVoidElements = "area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(",");

View File

@@ -0,0 +1,28 @@
/*\
title: $:/core/modules/filters/addprefix.js
type: application/javascript
module-type: filteroperator
Filter operator for adding a prefix to each title in the list. This is
especially useful in contexts where only a filter expression is allowed
and macro substitution isn't available.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.addprefix = function(source,operator,options) {
var results = [];
source(function(tiddler,title) {
results.push(operator.operand + title);
});
return results;
};
})();

View File

@@ -0,0 +1,28 @@
/*\
title: $:/core/modules/filters/addsuffix.js
type: application/javascript
module-type: filteroperator
Filter operator for adding a suffix to each title in the list. This is
especially useful in contexts where only a filter expression is allowed
and macro substitution isn't available.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.addsuffix = function(source,operator,options) {
var results = [];
source(function(tiddler,title) {
results.push(title + operator.operand);
});
return results;
};
})();

View File

@@ -20,7 +20,12 @@ exports.each = function(source,operator,options) {
values = {};
source(function(tiddler,title) {
if(tiddler) {
var value = tiddler.getFieldString(operator.operand);
var value;
if((operator.operand === "") || (operator.operand === "title")) {
value = title;
} else {
value = tiddler.getFieldString(operator.operand);
}
if(!$tw.utils.hop(values,value)) {
values[value] = true;
results.push(title);

View File

@@ -19,7 +19,7 @@ exports.plugintiddlers = function(source,operator,options) {
var results = [];
source(function(tiddler,title) {
var pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerData(title,{tiddlers:[]});
if(pluginInfo) {
if(pluginInfo && pluginInfo.tiddlers) {
$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {
results.push(title);
});

View File

@@ -0,0 +1,32 @@
/*\
title: $:/core/modules/macros/now.js
type: application/javascript
module-type: macro
Macro to return a formatted version of the current time
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Information about this macro
*/
exports.name = "now";
exports.params = [
{name: "format"}
];
/*
Run the macro
*/
exports.run = function(format) {
return $tw.utils.formatDateString(new Date(),format || "0hh:0mm, DDth MMM YYYY");
};
})();

View File

@@ -0,0 +1,38 @@
/*\
title: $:/core/modules/parsers/audioparser.js
type: application/javascript
module-type: parser
The audio parser parses an audio tiddler into an embeddable HTML element
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var AudioParser = function(type,text,options) {
var element = {
type: "element",
tag: "audio",
attributes: {
controls: {type: "string", value: "controls"}
}
},
src;
if(options._canonical_uri) {
element.attributes.src = {type: "string", value: options._canonical_uri};
} else if(text) {
element.attributes.src = {type: "string", value: "data:" + type + ";base64," + text};
}
this.tree = [element];
};
exports["audio/ogg"] = AudioParser;
exports["audio/mpeg"] = AudioParser;
exports["audio/mp3"] = AudioParser;
exports["audio/mp4"] = AudioParser;
})();

View File

@@ -25,7 +25,7 @@ exports.types = {inline: true};
var textPrimitives = {
upperLetter: "[A-Z\u00c0-\u00d6\u00d8-\u00de\u0150\u0170]",
lowerLetter: "[a-z0-9\u00df-\u00f6\u00f8-\u00ff\u0151\u0171]",
lowerLetter: "[a-z\u00df-\u00f6\u00f8-\u00ff\u0151\u0171]",
anyLetter: "[A-Za-z0-9\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]",
blockPrefixLetters: "[A-Za-z0-9-_\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]"
};

View File

@@ -64,7 +64,11 @@ UploadSaver.prototype.save = function(text,method,callback) {
}
}
};
http.send(data);
try {
http.send(data);
} catch(ex) {
return callback("Error:" + ex);
}
$tw.notifier.display("$:/language/Notifications/Save/Starting");
return true;
};

View File

@@ -21,10 +21,11 @@ exports.synchronous = true;
exports.startup = function() {
$tw.rootWidget.addEventListener("tm-set-password",function(event) {
$tw.passwordPrompt.createPrompt({
serviceName: "Set a new password for this TiddlyWiki",
serviceName: $tw.language.getString("Encryption/PromptSetPassword"),
noUserName: true,
submitText: "Set password",
canCancel: true,
repeatPassword: true,
callback: function(data) {
if(data) {
$tw.crypto.setPassword(data.password);
@@ -34,6 +35,11 @@ exports.startup = function() {
});
});
$tw.rootWidget.addEventListener("tm-clear-password",function(event) {
if($tw.browser) {
if(!confirm($tw.language.getString("Encryption/ConfirmClearPassword"))) {
return;
}
}
$tw.crypto.setPassword(null);
});
// Ensure that $:/isEncrypted is maintained properly

View File

@@ -59,6 +59,9 @@ exports.startup = function() {
var storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),
storyList = $tw.wiki.filterTiddlers(storyFilter);
$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: "", list: storyList},$tw.wiki.getModificationFields());
if(storyList[0]) {
$tw.wiki.addToHistory(storyList[0]);
}
});
// Listen for the tm-permalink message
$tw.rootWidget.addEventListener("tm-permalink",function(event) {

View File

@@ -25,6 +25,10 @@ ClassicStoryView.prototype.navigateTo = function(historyInfo) {
}
var listItemWidget = this.listWidget.children[listElementIndex],
targetElement = listItemWidget.findFirstDomNode();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
return;
}
// Scroll the node into view
this.listWidget.dispatchEvent({type: "tm-scroll", target: targetElement});
};
@@ -32,6 +36,10 @@ ClassicStoryView.prototype.navigateTo = function(historyInfo) {
ClassicStoryView.prototype.insert = function(widget) {
var targetElement = widget.findFirstDomNode(),
duration = $tw.utils.getAnimationDuration();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
return;
}
// Get the current height of the tiddler
var computedStyle = window.getComputedStyle(targetElement),
currMarginBottom = parseInt(computedStyle.marginBottom,10),
@@ -62,7 +70,15 @@ ClassicStoryView.prototype.insert = function(widget) {
ClassicStoryView.prototype.remove = function(widget) {
var targetElement = widget.findFirstDomNode(),
duration = $tw.utils.getAnimationDuration();
duration = $tw.utils.getAnimationDuration(),
removeElement = function() {
widget.removeChildDomNodes();
};
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
removeElement();
return;
}
// Get the current height of the tiddler
var currWidth = targetElement.offsetWidth,
computedStyle = window.getComputedStyle(targetElement),
@@ -70,9 +86,7 @@ ClassicStoryView.prototype.remove = function(widget) {
currMarginTop = parseInt(computedStyle.marginTop,10),
currHeight = targetElement.offsetHeight + currMarginTop;
// Remove the dom nodes of the widget at the end of the transition
setTimeout(function() {
widget.removeChildDomNodes();
},duration);
setTimeout(removeElement,duration);
// Animate the closure
$tw.utils.setStyle(targetElement,[
{transition: "none"},

View File

@@ -23,6 +23,10 @@ PopStoryView.prototype.navigateTo = function(historyInfo) {
}
var listItemWidget = this.listWidget.children[listElementIndex],
targetElement = listItemWidget.findFirstDomNode();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
return;
}
// Scroll the node into view
this.listWidget.dispatchEvent({type: "tm-scroll", target: targetElement});
};
@@ -30,6 +34,10 @@ PopStoryView.prototype.navigateTo = function(historyInfo) {
PopStoryView.prototype.insert = function(widget) {
var targetElement = widget.findFirstDomNode(),
duration = $tw.utils.getAnimationDuration();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
return;
}
// Reset once the transition is over
setTimeout(function() {
$tw.utils.setStyle(targetElement,[
@@ -55,13 +63,19 @@ PopStoryView.prototype.insert = function(widget) {
PopStoryView.prototype.remove = function(widget) {
var targetElement = widget.findFirstDomNode(),
duration = $tw.utils.getAnimationDuration();
duration = $tw.utils.getAnimationDuration(),
removeElement = function() {
if(targetElement.parentNode) {
widget.removeChildDomNodes();
}
};
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
removeElement();
return;
}
// Remove the element at the end of the transition
setTimeout(function() {
if(targetElement.parentNode) {
widget.removeChildDomNodes();
}
},duration);
setTimeout(removeElement,duration);
// Animate the closure
$tw.utils.setStyle(targetElement,[
{transition: "none"},

View File

@@ -26,12 +26,16 @@ var ZoominListView = function(listWidget) {
// Make all the tiddlers position absolute, and hide all but the top (or first) one
$tw.utils.each(this.listWidget.children,function(itemWidget,index) {
var domNode = itemWidget.findFirstDomNode();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(domNode instanceof Element)) {
return;
}
if(targetTiddler !== itemWidget.parseTreeNode.itemTitle || (!targetTiddler && index)) {
domNode.style.display = "none";
} else {
self.currentTiddlerDomNode = domNode;
}
domNode.style.position = "absolute";
$tw.utils.addClass(domNode,"tc-storyview-zoomin-tiddler");
});
};
@@ -43,9 +47,13 @@ ZoominListView.prototype.navigateTo = function(historyInfo) {
}
var listItemWidget = this.listWidget.children[listElementIndex],
targetElement = listItemWidget.findFirstDomNode();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
return;
}
// Make the new tiddler be position absolute and visible so that we can measure it
$tw.utils.addClass(targetElement,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(targetElement,[
{position: "absolute"},
{display: "block"},
{transformOrigin: "0 0"},
{transform: "translateX(0px) translateY(0px) scale(1)"},
@@ -121,19 +129,31 @@ function findTitleDomNode(widget,targetClass) {
ZoominListView.prototype.insert = function(widget) {
var targetElement = widget.findFirstDomNode();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
return;
}
// Make the newly inserted node position absolute and hidden
$tw.utils.addClass(targetElement,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(targetElement,[
{display: "none"},
{position: "absolute"}
{display: "none"}
]);
};
ZoominListView.prototype.remove = function(widget) {
var targetElement = widget.findFirstDomNode(),
duration = $tw.utils.getAnimationDuration();
duration = $tw.utils.getAnimationDuration(),
removeElement = function() {
widget.removeChildDomNodes();
};
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!(targetElement instanceof Element)) {
removeElement();
return;
}
// Set up the tiddler that is being closed
$tw.utils.addClass(targetElement,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(targetElement,[
{position: "absolute"},
{display: "block"},
{transformOrigin: "50% 50%"},
{transform: "translateX(0px) translateY(0px) scale(1)"},
@@ -148,8 +168,8 @@ ZoominListView.prototype.remove = function(widget) {
var toWidgetDomNode = toWidget && toWidget.findFirstDomNode();
// Set up the tiddler we're moving back in
if(toWidgetDomNode) {
$tw.utils.addClass(toWidgetDomNode,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(toWidgetDomNode,[
{position: "absolute"},
{display: "block"},
{transformOrigin: "50% 50%"},
{transform: "translateX(0px) translateY(0px) scale(10)"},
@@ -170,10 +190,7 @@ ZoominListView.prototype.remove = function(widget) {
{opacity: "0"},
{zIndex: "0"}
]);
setTimeout(function() {
// Delete the DOM node when the transition is over
widget.removeChildDomNodes();
},duration);
setTimeout(removeElement,duration);
// Now the tiddler we're going back to
if(toWidgetDomNode) {
$tw.utils.setStyle(toWidgetDomNode,[

View File

@@ -467,6 +467,8 @@ Syncer.prototype.dispatchTask = function(task,callback) {
};
// Invoke the callback
callback(null);
},{
tiddlerInfo: self.tiddlerInfo[task.title]
});
} else {
this.logger.log(" Not Dispatching 'save' task:",task.title,"tiddler does not exist");
@@ -493,6 +495,7 @@ Syncer.prototype.dispatchTask = function(task,callback) {
if(err) {
return callback(err);
}
delete self.tiddlerInfo[task.title];
// Invoke the callback
callback(null);
},{

View File

@@ -39,7 +39,7 @@ exports.httpRequest = function(options) {
// Set up the state change handler
request.onreadystatechange = function() {
if(this.readyState === 4) {
if(this.status === 200 || this.status === 204) {
if(this.status === 200 || this.status === 201 || this.status === 204) {
// Success!
options.callback(null,this.responseText,this);
return;

View File

@@ -39,6 +39,7 @@ var TW_Element = function(tag,namespace) {
this.attributes = {};
this.isRaw = false;
this.children = [];
this.style = {};
this.namespaceURI = namespace || "http://www.w3.org/1999/xhtml";
};
@@ -137,6 +138,15 @@ Object.defineProperty(TW_Element.prototype, "outerHTML", {
}
}
}
if(this.style) {
var style = [];
for(var s in this.style) {
style.push(s + ":" + this.style[s] + ";");
}
if(style.length > 0) {
output.push(" style='",style.join(""),"'")
}
}
output.push(">");
if($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {
output.push(this.innerHTML);
@@ -179,6 +189,9 @@ Object.defineProperty(TW_Element.prototype, "textContent", {
});
return b.join("");
}
},
set: function(value) {
this.children = [new TW_TextNode(value)];
}
});
@@ -219,6 +232,7 @@ var document = {
createTextNode: function(text) {
return new TW_TextNode(text);
},
compatMode: "CSS1Compat", // For KaTeX to know that we're not a browser in quirks mode
isTiddlyWikiFakeDom: true
};

View File

@@ -87,6 +87,7 @@ exports.pushTop = function(array,value) {
}
array.push(value);
}
return array;
};
/*
@@ -167,61 +168,118 @@ exports.slowInSlowOut = function(t) {
return (1 - ((Math.cos(t * Math.PI) + 1) / 2));
};
exports.formatDateString = function (date,template) {
var t = template.replace(/0hh12/g,$tw.utils.pad($tw.utils.getHours12(date)));
t = t.replace(/hh12/g,$tw.utils.getHours12(date));
t = t.replace(/0hh/g,$tw.utils.pad(date.getHours()));
t = t.replace(/hh/g,date.getHours());
t = t.replace(/mmm/g,$tw.config.dateFormats.shortMonths[date.getMonth()]);
t = t.replace(/0mm/g,$tw.utils.pad(date.getMinutes()));
t = t.replace(/mm/g,date.getMinutes());
t = t.replace(/0ss/g,$tw.utils.pad(date.getSeconds()));
t = t.replace(/ss/g,date.getSeconds());
t = t.replace(/[ap]m/g,$tw.utils.getAmPm(date).toLowerCase());
t = t.replace(/[AP]M/g,$tw.utils.getAmPm(date).toUpperCase());
t = t.replace(/wYYYY/g,$tw.utils.getYearForWeekNo(date));
t = t.replace(/wYY/g,$tw.utils.pad($tw.utils.getYearForWeekNo(date)-2000));
t = t.replace(/YYYY/g,date.getFullYear());
t = t.replace(/YY/g,$tw.utils.pad(date.getFullYear()-2000));
t = t.replace(/MMM/g,$tw.config.dateFormats.months[date.getMonth()]);
t = t.replace(/0MM/g,$tw.utils.pad(date.getMonth()+1));
t = t.replace(/MM/g,date.getMonth()+1);
t = t.replace(/0WW/g,$tw.utils.pad($tw.utils.getWeek(date)));
t = t.replace(/WW/g,$tw.utils.getWeek(date));
t = t.replace(/DDD/g,$tw.config.dateFormats.days[date.getDay()]);
t = t.replace(/ddd/g,$tw.config.dateFormats.shortDays[date.getDay()]);
t = t.replace(/0DD/g,$tw.utils.pad(date.getDate()));
t = t.replace(/DDth/g,date.getDate()+$tw.utils.getDaySuffix(date));
t = t.replace(/DD/g,date.getDate());
var tz = date.getTimezoneOffset();
var atz = Math.abs(tz);
t = t.replace(/TZD/g,(tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60));
exports.formatDateString = function(date,template) {
var t = template;
t = t.replace(/0hh12/g,function() {
return $tw.utils.pad($tw.utils.getHours12(date));
});
t = t.replace(/hh12/g,function() {
return $tw.utils.getHours12(date);
});
t = t.replace(/0hh/g,function() {
return $tw.utils.pad(date.getHours());
});
t = t.replace(/hh/g,function() {
return date.getHours();
});
t = t.replace(/mmm/g,function() {
return $tw.language.getString("Date/Short/Month/" + (date.getMonth() + 1));
});
t = t.replace(/0mm/g,function() {
return $tw.utils.pad(date.getMinutes());
});
t = t.replace(/mm/g,function() {
return date.getMinutes();
});
t = t.replace(/0ss/g,function() {
return $tw.utils.pad(date.getSeconds());
});
t = t.replace(/ss/g,function() {
return date.getSeconds();
});
t = t.replace(/[ap]m/g,function() {
return $tw.utils.getAmPm(date).toLowerCase();
});
t = t.replace(/[AP]M/g,function() {
return $tw.utils.getAmPm(date).toUpperCase();
});
t = t.replace(/wYYYY/g,function() {
return $tw.utils.getYearForWeekNo(date);
});
t = t.replace(/wYY/g,function() {
return $tw.utils.pad($tw.utils.getYearForWeekNo(date)-2000);
});
t = t.replace(/YYYY/g,function() {
return date.getFullYear();
});
t = t.replace(/YY/g,function() {
return $tw.utils.pad(date.getFullYear()-2000);
});
t = t.replace(/MMM/g,function() {
return $tw.language.getString("Date/Long/Month/" + (date.getMonth() + 1));
});
t = t.replace(/0MM/g,function() {
return $tw.utils.pad(date.getMonth()+1);
});
t = t.replace(/MM/g,function() {
return date.getMonth() + 1;
});
t = t.replace(/0WW/g,function() {
return $tw.utils.pad($tw.utils.getWeek(date));
});
t = t.replace(/WW/g,function() {
return $tw.utils.getWeek(date);
});
t = t.replace(/DDD/g,function() {
return $tw.language.getString("Date/Long/Day/" + date.getDay());
});
t = t.replace(/ddd/g,function() {
return $tw.language.getString("Date/Short/Day/" + date.getDay());
});
t = t.replace(/0DD/g,function() {
return $tw.utils.pad(date.getDate());
});
t = t.replace(/DDth/g,function() {
return date.getDate() + $tw.utils.getDaySuffix(date);
});
t = t.replace(/DD/g,function() {
return date.getDate();
});
t = t.replace(/TZD/g,function() {
var tz = date.getTimezoneOffset(),
atz = Math.abs(tz);
return (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);
});
t = t.replace(/\\(.)/g,"$1");
return t;
};
exports.getAmPm = function(date) {
return date.getHours() >= 12 ? $tw.config.dateFormats.pm : $tw.config.dateFormats.am;
return $tw.language.getString("Date/Period/" + (date.getHours() >= 12 ? "pm" : "am"));
};
exports.getDaySuffix = function(date) {
return $tw.config.dateFormats.daySuffixes[date.getDate()-1];
return $tw.language.getString("Date/DaySuffix/" + date.getDate());
};
exports.getWeek = function(date) {
var dt = new Date(date.getTime());
var d = dt.getDay();
if(d === 0) d=7;// JavaScript Sun=0, ISO Sun=7
dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week to calculate weekNo
var n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1)+3600000)/86400000);
return Math.floor(n/7)+1;
if(d === 0) {
d = 7; // JavaScript Sun=0, ISO Sun=7
}
dt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo
var n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1) + 3600000) / 86400000);
return Math.floor(n / 7) + 1;
};
exports.getYearForWeekNo = function(date) {
var dt = new Date(date.getTime());
var d = dt.getDay();
if(d === 0) d=7;// JavaScript Sun=0, ISO Sun=7
dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week
if(d === 0) {
d = 7; // JavaScript Sun=0, ISO Sun=7
}
dt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week
return dt.getFullYear();
};

View File

@@ -0,0 +1,79 @@
/*\
title: $:/core/modules/widgets/action-navigate.js
type: application/javascript
module-type: widget
Action widget to navigate to a tiddler
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
var NavigateWidget = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
};
/*
Inherit from the base widget class
*/
NavigateWidget.prototype = new Widget();
/*
Render this widget into the DOM
*/
NavigateWidget.prototype.render = function(parent,nextSibling) {
this.computeAttributes();
this.execute();
};
/*
Compute the internal state of the widget
*/
NavigateWidget.prototype.execute = function() {
this.actionTo = this.getAttribute("$to");
this.actionScroll = this.getAttribute("$scroll");
};
/*
Refresh the widget by ensuring our attributes are up to date
*/
NavigateWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes["$to"] || changedAttributes["$scroll"]) {
this.refreshSelf();
return true;
}
return this.refreshChildren(changedTiddlers);
};
/*
Invoke the action associated with this widget
*/
NavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {
var bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),
suppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);
if(this.actionScroll === "yes") {
suppressNavigation = false;
} else if(this.actionScroll === "no") {
suppressNavigation = true;
}
this.dispatchEvent({
type: "tm-navigate",
navigateTo: this.actionTo === undefined ? this.getVariable("currentTiddler") : this.actionTo,
navigateFromTitle: this.getVariable("storyTiddler"),
navigateFromNode: triggeringWidget,
navigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height
},
navigateSuppressNavigation: suppressNavigation
});
return true; // Action was invoked
};
exports["action-navigate"] = NavigateWidget;
})();

View File

@@ -0,0 +1,82 @@
/*\
title: $:/core/modules/widgets/action-sendmessage.js
type: application/javascript
module-type: widget
Action widget to send a message
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
var SendMessageWidget = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
};
/*
Inherit from the base widget class
*/
SendMessageWidget.prototype = new Widget();
/*
Render this widget into the DOM
*/
SendMessageWidget.prototype.render = function(parent,nextSibling) {
this.computeAttributes();
this.execute();
};
/*
Compute the internal state of the widget
*/
SendMessageWidget.prototype.execute = function() {
this.actionMessage = this.getAttribute("$message");
this.actionParam = this.getAttribute("$param");
};
/*
Refresh the widget by ensuring our attributes are up to date
*/
SendMessageWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes["$message"] || changedAttributes["$param"]) {
this.refreshSelf();
return true;
}
return this.refreshChildren(changedTiddlers);
};
/*
Invoke the action associated with this widget
*/
SendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {
// Get the parameter
var param = this.actionParam;
// If the parameter is missing then we'll assemble the attributes as a hashmap
if(!param) {
param = Object.create(null);
var count = 0;
$tw.utils.each(this.attributes,function(attribute,name) {
if(name.charAt(0) !== "$") {
param[name] = attribute;
count++;
}
});
// Revert to an empty parameter if no values were found
if(!count) {
param = undefined;
}
}
// Dispatch the message
this.dispatchEvent({type: this.actionMessage, param: param, tiddlerTitle: this.getVariable("currentTiddler")});
return true; // Action was invoked
};
exports["action-sendmessage"] = SendMessageWidget;
})();

View File

@@ -41,9 +41,13 @@ BrowseWidget.prototype.render = function(parent,nextSibling) {
}
// Add a click event handler
domNode.addEventListener("change",function (event) {
self.wiki.readFiles(event.target.files,function(tiddlerFieldsArray) {
self.dispatchEvent({type: "tm-import-tiddlers", param: JSON.stringify(tiddlerFieldsArray)});
});
if(self.message) {
self.dispatchEvent({type: self.message, param: event.target.files});
} else {
self.wiki.readFiles(event.target.files,function(tiddlerFieldsArray) {
self.dispatchEvent({type: "tm-import-tiddlers", param: JSON.stringify(tiddlerFieldsArray)});
});
}
return false;
},false);
// Insert element
@@ -57,6 +61,7 @@ Compute the internal state of the widget
*/
BrowseWidget.prototype.execute = function() {
this.browseMultiple = this.getAttribute("multiple");
this.message = this.getAttribute("message");
};
/*

View File

@@ -59,6 +59,9 @@ ButtonWidget.prototype.render = function(parent,nextSibling) {
// Add a click event handler
domNode.addEventListener("click",function (event) {
var handled = false;
if(self.invokeActions(event)) {
handled = true;
}
if(self.to) {
self.navigateTo(event);
handled = true;
@@ -87,6 +90,10 @@ ButtonWidget.prototype.render = function(parent,nextSibling) {
this.domNodes.push(domNode);
};
ButtonWidget.prototype.getBoundingClientRect = function() {
return this.domNodes[0].getBoundingClientRect();
}
ButtonWidget.prototype.isSelected = function() {
var tiddler = this.wiki.getTiddler(this.set);
return tiddler ? tiddler.fields.text === this.setTo : this.defaultSetValue === this.setTo;
@@ -99,7 +106,7 @@ ButtonWidget.prototype.isPoppedUp = function() {
};
ButtonWidget.prototype.navigateTo = function(event) {
var bounds = this.domNodes[0].getBoundingClientRect();
var bounds = this.getBoundingClientRect();
this.dispatchEvent({
type: "tm-navigate",
navigateTo: this.to,
@@ -142,13 +149,6 @@ ButtonWidget.prototype.execute = function() {
this["class"] = this.getAttribute("class","");
this["aria-label"] = this.getAttribute("aria-label");
this.tooltip = this.getAttribute("tooltip");
// DEPRECATION WARNING
var title = this.getAttribute("title");
if(title) {
console.log("WARNING: attribute 'title' on button widget should be replaced with 'tooltip'");
this.tooltip = title;
}
this.style = this.getAttribute("style");
this.selectedClass = this.getAttribute("selectedClass");
this.defaultSetValue = this.getAttribute("default");

View File

@@ -97,10 +97,10 @@ ImageWidget.prototype.render = function(parent,nextSibling) {
domNode.setAttribute("class",this.imageClass);
}
if(this.imageWidth) {
domNode.setAttribute("width",parseInt(this.imageWidth,10) + "px");
domNode.setAttribute("width",this.imageWidth);
}
if(this.imageHeight) {
domNode.setAttribute("height",parseInt(this.imageHeight,10) + "px");
domNode.setAttribute("height",this.imageHeight);
}
if(this.imageTooltip) {
domNode.setAttribute("title",this.imageTooltip);

View File

@@ -124,56 +124,60 @@ LinkWidget.prototype.handleClickEvent = function (event) {
};
LinkWidget.prototype.handleDragStartEvent = function(event) {
if(this.to) {
// Set the dragging class on the element being dragged
$tw.utils.addClass(event.target,"tc-tiddlylink-dragging");
// Create the drag image elements
this.dragImage = this.document.createElement("div");
this.dragImage.className = "tc-tiddler-dragger";
var inner = this.document.createElement("div");
inner.className = "tc-tiddler-dragger-inner";
inner.appendChild(this.document.createTextNode(this.to));
this.dragImage.appendChild(inner);
this.document.body.appendChild(this.dragImage);
// Astoundingly, we need to cover the dragger up: http://www.kryogenix.org/code/browser/custom-drag-image.html
var cover = this.document.createElement("div");
cover.className = "tc-tiddler-dragger-cover";
cover.style.left = (inner.offsetLeft - 16) + "px";
cover.style.top = (inner.offsetTop - 16) + "px";
cover.style.width = (inner.offsetWidth + 32) + "px";
cover.style.height = (inner.offsetHeight + 32) + "px";
this.dragImage.appendChild(cover);
// Set the data transfer properties
var dataTransfer = event.dataTransfer;
// First the image
dataTransfer.effectAllowed = "copy";
if(dataTransfer.setDragImage) {
dataTransfer.setDragImage(this.dragImage.firstChild,-16,-16);
if(event.target === this.domNodes[0]) {
if(this.to) {
// Set the dragging class on the element being dragged
$tw.utils.addClass(event.target,"tc-tiddlylink-dragging");
// Create the drag image elements
this.dragImage = this.document.createElement("div");
this.dragImage.className = "tc-tiddler-dragger";
var inner = this.document.createElement("div");
inner.className = "tc-tiddler-dragger-inner";
inner.appendChild(this.document.createTextNode(this.to));
this.dragImage.appendChild(inner);
this.document.body.appendChild(this.dragImage);
// Astoundingly, we need to cover the dragger up: http://www.kryogenix.org/code/browser/custom-drag-image.html
var cover = this.document.createElement("div");
cover.className = "tc-tiddler-dragger-cover";
cover.style.left = (inner.offsetLeft - 16) + "px";
cover.style.top = (inner.offsetTop - 16) + "px";
cover.style.width = (inner.offsetWidth + 32) + "px";
cover.style.height = (inner.offsetHeight + 32) + "px";
this.dragImage.appendChild(cover);
// Set the data transfer properties
var dataTransfer = event.dataTransfer;
// First the image
dataTransfer.effectAllowed = "copy";
if(dataTransfer.setDragImage) {
dataTransfer.setDragImage(this.dragImage.firstChild,-16,-16);
}
// Then the data
dataTransfer.clearData();
var jsonData = this.wiki.getTiddlerAsJson(this.to),
textData = this.wiki.getTiddlerText(this.to,"");
// IE doesn't like these content types
if(!$tw.browser.isIE) {
dataTransfer.setData("text/vnd.tiddler",jsonData);
dataTransfer.setData("text/plain",textData);
dataTransfer.setData("text/x-moz-url","data:text/vnd.tiddler," + encodeURI(jsonData));
}
dataTransfer.setData("URL","data:text/vnd.tiddler," + encodeURI(jsonData));
dataTransfer.setData("Text",textData);
event.stopPropagation();
} else {
event.preventDefault();
}
// Then the data
dataTransfer.clearData();
var jsonData = this.wiki.getTiddlerAsJson(this.to),
textData = this.wiki.getTiddlerText(this.to,"");
// IE doesn't like these content types
if(!$tw.browser.isIE) {
dataTransfer.setData("text/vnd.tiddler",jsonData);
dataTransfer.setData("text/plain",textData);
dataTransfer.setData("text/x-moz-url","data:text/vnd.tiddler," + encodeURI(jsonData));
}
dataTransfer.setData("URL","data:text/vnd.tiddler," + encodeURI(jsonData));
dataTransfer.setData("Text",textData);
event.stopPropagation();
} else {
event.preventDefault();
}
};
LinkWidget.prototype.handleDragEndEvent = function(event) {
// Remove the dragging class on the element being dragged
$tw.utils.removeClass(event.target,"tc-tiddlylink-dragging");
// Delete the drag image element
if(this.dragImage) {
this.dragImage.parentNode.removeChild(this.dragImage);
if(event.target === this.domNodes[0]) {
// Remove the dragging class on the element being dragged
$tw.utils.removeClass(event.target,"tc-tiddlylink-dragging");
// Delete the drag image element
if(this.dragImage) {
this.dragImage.parentNode.removeChild(this.dragImage);
}
}
};

View File

@@ -177,12 +177,7 @@ NavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {
NavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {
var self = this;
function isUnmodifiedShadow(title) {
// jshint eqnull:true
var tiddler = self.wiki.getTiddler(title);
return (
self.wiki.isShadowTiddler(title) &&
tiddler.fields.modified == null
);
return self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);
}
function confirmEditShadow(title) {
return confirm($tw.language.getString(
@@ -253,19 +248,14 @@ Create/reuse the draft tiddler for a given title
*/
NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
// See if there is already a draft tiddler for this tiddler
var drafts = [];
this.wiki.forEachTiddler({includeSystem: true},function(title,tiddler) {
if(tiddler.fields["draft.title"] && tiddler.fields["draft.of"] === targetTitle) {
drafts.push(tiddler);
}
});
if(drafts.length > 0) {
return drafts[0];
var draftTitle = this.wiki.findDraft(targetTitle);
if(draftTitle) {
return this.wiki.getTiddler(draftTitle);
}
// Get the current value of the tiddler we're editing
var tiddler = this.wiki.getTiddler(targetTitle),
draftTitle = this.generateDraftTitle(targetTitle);
var tiddler = this.wiki.getTiddler(targetTitle);
// Save the initial value of the draft tiddler
draftTitle = this.generateDraftTitle(targetTitle);
var draftTiddler = new $tw.Tiddler(
tiddler,
{
@@ -372,29 +362,76 @@ NavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {
};
// Create a new draft tiddler
// event.param can either be the title of a template tiddler, or a hashmap of fields.
//
// The title of the newly created tiddler follows these rules:
// * If a hashmap was used and a title field was specified, use that title
// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix
// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix
//
// If a draft of the target tiddler already exists then it is reused
NavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {
// Get the story details
var storyList = this.getStoryList();
// Get the template tiddler if there is one
var templateTiddler = this.wiki.getTiddler(event.param);
// Title the new tiddler
var title = this.wiki.generateNewTitle((templateTiddler && templateTiddler.fields.title) || "New Tiddler");
// Create the draft tiddler
var draftTitle = this.generateDraftTitle(title),
draftTiddler = new $tw.Tiddler({
text: ""
},templateTiddler,
var storyList = this.getStoryList(),
templateTiddler, title, draftTitle, existingTiddler, mergedTags;
// Work out the title of the target tiddler
if(typeof event.param === "object") {
// If we got a hashmap use it as the template
templateTiddler = event.param;
if(templateTiddler.title) {
// Use the provided title
title = templateTiddler.title
} else {
// Generate a new unique title
title = this.wiki.generateNewTitle($tw.language.getString("DefaultNewTiddlerTitle"));
}
} else {
// If we got a string, use it as the template and generate a new title
templateTiddler = this.wiki.getTiddler(event.param);
title = this.wiki.generateNewTitle(event.param || $tw.language.getString("DefaultNewTiddlerTitle"));
}
// Find any existing draft for this tiddler
draftTitle = this.wiki.findDraft(title);
// Pull in any existing tiddler
if(draftTitle) {
existingTiddler = this.wiki.getTiddler(draftTitle);
} else {
draftTitle = this.generateDraftTitle(title);
existingTiddler = this.wiki.getTiddler(title);
}
// Merge the tags
if(existingTiddler && existingTiddler.fields.tags && templateTiddler && templateTiddler.tags) {
// Merge tags
mergedTags = $tw.utils.pushTop($tw.utils.parseStringArray(templateTiddler.tags),existingTiddler.fields.tags);
} else if(existingTiddler && existingTiddler.fields.tags) {
mergedTags = existingTiddler.fields.tags;
} else if(templateTiddler && templateTiddler.tags) {
mergedTags = templateTiddler.tags;
} else if(templateTiddler && templateTiddler.fields && templateTiddler.fields.tags) {
mergedTags = templateTiddler.fields.tags;
}
// Save the draft tiddler
var draftTiddler = new $tw.Tiddler({
text: "",
"draft.title": title
},
templateTiddler,
existingTiddler,
this.wiki.getCreationFields(),
{
title: draftTitle,
"draft.title": title,
"draft.of": title
"draft.of": title,
tags: mergedTags
},this.wiki.getModificationFields());
this.wiki.addTiddler(draftTiddler);
// Update the story to insert the new draft at the top
var slot = storyList.indexOf(event.navigateFromTitle);
storyList.splice(slot + 1,0,draftTitle);
// Save the updated story
// Update the story to insert the new draft at the top and remove any existing tiddler
if(storyList.indexOf(draftTitle) === -1) {
var slot = storyList.indexOf(event.navigateFromTitle);
storyList.splice(slot + 1,0,draftTitle);
}
if(storyList.indexOf(title) !== -1) {
storyList.splice(storyList.indexOf(title),1);
}
this.saveStoryList(storyList);
// Add a new record to the top of the history stack
this.addToHistory(draftTitle);

View File

@@ -79,7 +79,7 @@ RadioWidget.prototype.setValue = function() {
var tiddler = this.wiki.getTiddler(this.radioTitle),
addition = {};
addition[this.radioField] = this.radioValue;
this.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));
this.wiki.addTiddler(new $tw.Tiddler({title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));
}
};

View File

@@ -65,7 +65,11 @@ TranscludeWidget.prototype.execute = function() {
// Check for recursion
if(parser) {
if(this.parentWidget && this.parentWidget.hasVariable("transclusion",recursionMarker)) {
parseTreeNodes = [{type: "text", text: "Recursive transclusion error in transclude widget"}];
parseTreeNodes = [{type: "element", tag: "span", attributes: {
"class": {type: "string", value: "tc-error"}
}, children: [
{type: "text", text: "Recursive transclusion error in transclude widget"}
]}];
}
}
// Construct the child widgets

View File

@@ -204,7 +204,7 @@ Widget.prototype.getStateQualifier = function(name) {
}
node = node.parentWidget;
}
return "{" + $tw.utils.hashString(output.join("")) + "}";
return $tw.utils.hashString(output.join(""));
};
/*
@@ -475,6 +475,20 @@ Widget.prototype.removeChildDomNodes = function() {
}
};
/*
Invoke any action widgets that are immediate children of this widget
*/
Widget.prototype.invokeActions = function(event) {
var handled = false;
for(var t=0; t<this.children.length; t++) {
var child = this.children[t];
if(child.invokeAction && child.invokeAction(this,event)) {
handled = true;
}
}
return handled;
};
exports.widget = Widget;
})();

View File

@@ -177,7 +177,7 @@ exports.generateNewTitle = function(baseTitle,options) {
options = options || {};
var c = 0,
title = baseTitle;
while(this.tiddlerExists(title) || this.isShadowTiddler(title)) {
while(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {
title = baseTitle +
(options.prefix || " ") +
(++c);
@@ -317,8 +317,18 @@ exports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,is
var self = this;
titles.sort(function(a,b) {
if(sortField !== "title") {
a = self.getTiddler(a).fields[sortField] || "";
b = self.getTiddler(b).fields[sortField] || "";
var tiddlerA = self.getTiddler(a),
tiddlerB = self.getTiddler(b);
if(tiddlerA) {
a = tiddlerA.fields[sortField] || "";
} else {
a = "";
}
if(tiddlerB) {
b = tiddlerB.fields[sortField] || "";
} else {
b = "";
}
}
if(isNumeric) {
a = Number(a);
@@ -560,7 +570,7 @@ exports.sortByList = function(array,listTitle) {
exports.getSubTiddler = function(title,subTiddlerTitle) {
var bundleInfo = this.getPluginInfo(title) || this.getTiddlerData(title);
if(bundleInfo) {
if(bundleInfo && bundleInfo.tiddlers) {
var subTiddler = bundleInfo.tiddlers[subTiddlerTitle];
if(subTiddler) {
return new $tw.Tiddler(subTiddler);
@@ -1122,6 +1132,19 @@ exports.readFile = function(file,callback) {
}
};
/*
Find any existing draft of a specified tiddler
*/
exports.findDraft = function(targetTitle) {
var draftTitle = undefined;
this.forEachTiddler({includeSystem: true},function(title,tiddler) {
if(tiddler.fields["draft.title"] && tiddler.fields["draft.of"] === targetTitle) {
draftTitle = title;
}
});
return draftTitle;
}
/*
Check whether the specified draft tiddler has been modified
*/

View File

@@ -17,7 +17,7 @@ caption: {{$:/language/Search/Shadows/Caption}}
<<lingo Shadows/Matches>>
<$list filter="[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]]" template="$:/core/ui/ListItemTemplate"/>
<$list filter="[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/>
</div>

View File

@@ -17,7 +17,7 @@ caption: {{$:/language/Search/Standard/Caption}}
<<lingo Standard/Matches>>
<$list filter="[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]" template="$:/core/ui/ListItemTemplate"/>
<$list filter="[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/>
</div>

View File

@@ -17,7 +17,7 @@ caption: {{$:/language/Search/System/Caption}}
<<lingo System/Matches>>
<$list filter="[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]" template="$:/core/ui/ListItemTemplate"/>
<$list filter="[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/>
</div>

View File

@@ -9,6 +9,8 @@ caption: {{$:/language/ControlPanel/Basics/Caption}}
|<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> |
|<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> |
|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
|<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> |
|<$link to="$:/config/NewJournal/Tags"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Tags" default="" tag="input"/> |
|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |
|<<lingo Tiddlers/Prompt>> |''<$count filter="[!is[system]]"/>'' |
|<<lingo Tags/Prompt>> |''<$count filter="[tags[]]"/>'' |

View File

@@ -15,11 +15,13 @@ http://$(userName)$.tiddlyspot.com/backup/
\end
! <<lingo TiddlySpot/Heading>>
<<lingo TiddlySpot/Description>>
|<<lingo TiddlySpot/UserName>> |<$edit-text tiddler="$:/UploadName" default="" tag="input"/> |
|<<lingo TiddlySpot/Password>> |<$password name="upload"/> |
|<<lingo TiddlySpot/Backups>> |<<backupLink>> |
!! <<lingo TiddlySpot/Advanced/Heading>>
''<<lingo TiddlySpot/Advanced/Heading>>''
|<<lingo TiddlySpot/ServerURL>> |<$edit-text tiddler="$:/UploadURL" default="" tag="input"/> |
|<<lingo TiddlySpot/Filename>> |<$edit-text tiddler="$:/UploadFilename" default="index.html" tag="input"/> |

View File

@@ -15,7 +15,7 @@ $:/config/EditToolbarButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem">
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<<listItem>> field="caption"/> <i class="tc-muted">-- <$transclude tiddler=<<listItem>> field="description"/></i></$checkbox>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>> field="caption"/> <i class="tc-muted">-- <$transclude tiddler=<<listItem>> field="description"/></i>
</$list>

View File

@@ -15,7 +15,7 @@ $:/config/PageControlButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<<listItem>> field="caption"/> <i class="tc-muted">-- <$transclude tiddler=<<listItem>> field="description"/></i></$checkbox>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>> field="caption"/> <i class="tc-muted">-- <$transclude tiddler=<<listItem>> field="description"/></i>
</$list>

View File

@@ -15,7 +15,7 @@ $:/config/ViewToolbarButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem">
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<<listItem>> field="caption"/> <i class="tc-muted">-- <$transclude tiddler=<<listItem>> field="description"/></i></$checkbox>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>> field="caption"/> <i class="tc-muted">-- <$transclude tiddler=<<listItem>> field="description"/></i>
</$list>

View File

@@ -4,7 +4,7 @@ tags: $:/tags/EditTemplate
\define config-title()
$:/config/EditToolbarButtons/Visibility/$(listItem)$
\end
<div class="tc-tiddler-title">
<div class="tc-tiddler-title tc-tiddler-edit-title">
<$view field="title"/>
<span class="tc-tiddler-controls tc-titlebar"><$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>
<div style="clear: both;"></div>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Cancel/Hint}}
{{$:/core/images/cancel-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Cancel/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Delete/Hint}}
{{$:/core/images/delete-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Delete/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Save/Hint}}
{{$:/core/images/done-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Save/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Save/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,7 +8,7 @@ message-$(payloadTiddler)$
selection-$(payloadTiddler)$
\end
\define previewPopupState()
!!popup-$(payloadTiddler)$
$(currentTiddler)$!!popup-$(payloadTiddler)$
\end
<table>
<tbody>

View File

@@ -22,6 +22,6 @@ caption: {{$:/language/SideBar/Tags/Caption}}
</$list>
----
<hr class="tc-untagged-separator">
{{$:/core/ui/UntaggedTemplate}} <small class="tc-menu-list-count"><$count filter="[untagged[]!is[system]] -[tags[]]"/></small>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/CloseAll/Hint}}
{{$:/core/images/close-all-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/CloseAll/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/ControlPanel/Hint}}
{{$:/core/images/options-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/ControlPanel/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>
</$list>
</$button>

View File

@@ -9,7 +9,7 @@ description: {{$:/language/Buttons/Encryption/Hint}}
{{$:/core/images/locked-padlock}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>
</$list>
</$button>
</$reveal>
@@ -19,7 +19,7 @@ description: {{$:/language/Buttons/Encryption/Hint}}
{{$:/core/images/unlocked-padlock}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>
</$list>
</$button>
</$reveal>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/FullScreen/Hint}}
{{$:/core/images/full-screen-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/FullScreen/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Home/Hint}}
{{$:/core/images/home-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Home/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Home/Caption}}/></span>
</$list>
</$button>

View File

@@ -9,7 +9,7 @@ description: {{$:/language/Buttons/Import/Hint}}
{{$:/core/images/import-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Import/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Import/Caption}}/></span>
</$list>
</$button>
<$browse/>

View File

@@ -15,7 +15,7 @@ $(languagePluginTitle)$/icon
</span>
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Language/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Language/Caption}}/></span>
</$list>
</$button>
<$reveal state=<<qualify "$:/state/popup/language">> type="popup" position="below" animate="yes">

View File

@@ -11,7 +11,7 @@ $:/config/PageControlButtons/Visibility/$(listItem)$
{{$:/core/images/down-arrow}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/More/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/More/Caption}}/></span>
</$list>
</$button>
<$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="below" animate="yes">

View File

@@ -0,0 +1,20 @@
title: $:/core/ui/Buttons/new-journal
tags: $:/tags/PageControls
caption: {{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}
description: {{$:/language/Buttons/NewJournal/Hint}}
\define journalButton()
<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>>>
<$action-sendmessage $message="tm-new-tiddler" title=<<now "$(journalTitleTemplate)$">> tags="$(journalTags)$"/>
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/core/images/new-journal-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>
</$list>
</$button>
\end
<$set name="journalTitleTemplate" value={{$:/config/NewJournal/Title}}>
<$set name="journalTags" value={{$:/config/NewJournal/Tags}}>
<<journalButton>>
</$set></$set>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/NewTiddler/Hint}}
{{$:/core/images/new-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/NewTiddler/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Refresh/Hint}}
{{$:/core/images/refresh-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Refresh/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>
</$list>
</$button>

View File

@@ -9,7 +9,7 @@ description: {{$:/language/Buttons/SaveWiki/Hint}}
{{$:/core/images/save-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/SaveWiki/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>
</$list>
</span>
</$button>

View File

@@ -13,7 +13,7 @@ $:/core/images/storyview-$(storyview)$
</$set>
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/StoryView/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>
</$list>
</$button>
<$reveal state=<<qualify "$:/state/popup/storyview">> type="popup" position="below" animate="yes">

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/TagManager/Hint}}
{{$:/core/images/tag-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/TagManager/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,7 +8,7 @@ description: {{$:/language/Buttons/Theme/Hint}}
{{$:/core/images/theme-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Theme/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>
</$list>
</$button>
<$reveal state=<<qualify "$:/state/popup/theme">> type="popup" position="below" animate="yes">

View File

@@ -2,10 +2,6 @@ title: $:/core/ui/PageStylesheet
<$importvariables filter="[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]">
<!-- DEPRECATION WARNING --><$list filter="[all[shadows+tiddlers]tag[$:/tags/stylesheet]!has[draft.of]]">
<$transclude mode="block"/>
</$list>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
<$transclude mode="block"/>
</$list>

View File

@@ -3,12 +3,6 @@ tags: $:/tags/PageTemplate
<section class="tc-story-river">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/stylesheet]!has[draft.of]]">
<!-- DEPRECATION WARNING -->WARNING: tag "$:/tags/stylesheet" on <$link><$view field="title"/></$link> should be replaced with "$:/tags/Stylesheet"
</$list>
<section class="story-backdrop">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]">

View File

@@ -17,7 +17,7 @@ $:/config/PageControlButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i></$checkbox>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i>
</$list>

View File

@@ -26,14 +26,12 @@ title: $:/TagManager
<tbody>
<tr>
<th><<lingo Tag/Heading>></th>
<th><<lingo Count/Heading>></th>
<th><<lingo Colour/Heading>></th>
<th><<lingo Icon/Heading>></th>
</tr>
<$list filter="[tags[]!is[system]sort[title]]">
<tr>
<td><$transclude tiddler="$:/core/ui/TagTemplate"/></td>
<td><$count filter="[all[current]tagging[]]"/></td>
<td><$edit-text field="color" tag="input" type="text" size="9"/> <$edit-text field="color" tag="input" type="color"/></td>
<td><$macrocall $name="iconEditor" title={{!!title}}/></td>
</tr>

View File

@@ -14,7 +14,7 @@ $:/config/ViewToolbarButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem">
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i></$checkbox>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i>
</$list>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Clone/Hint}}
{{$:/core/images/clone-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Clone/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Clone/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/CloseOthers/Hint}}
{{$:/core/images/close-others-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/CloseOthers/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Close/Hint}}
{{$:/core/images/close-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Close/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Close/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Edit/Hint}}
{{$:/core/images/edit-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Edit/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Edit/Caption}}/></span>
</$list>
</$button>

View File

@@ -8,6 +8,6 @@ description: {{$:/language/Buttons/Info/Hint}}
{{$:/core/images/info-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text={{$:/language/Buttons/Info/Caption}}/>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Info/Caption}}/></span>
</$list>
</$button>

Some files were not shown because too many files have changed in this diff Show More