mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-01-24 03:44:41 +00:00
Compare commits
329 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe4c8da860 | ||
|
|
243327436f | ||
|
|
d3ff98198f | ||
|
|
485b921bf6 | ||
|
|
7f9fb117e9 | ||
|
|
ab77f96caf | ||
|
|
55f0b917e0 | ||
|
|
ffdbe612b0 | ||
|
|
6681a8e1f2 | ||
|
|
fbb6349cd9 | ||
|
|
2046dbc4ed | ||
|
|
b23b4b95ef | ||
|
|
e02cfc3efd | ||
|
|
5bb74319e1 | ||
|
|
1b620387dd | ||
|
|
9a067b8dac | ||
|
|
26e50b81e5 | ||
|
|
ddc7495542 | ||
|
|
53d834c86b | ||
|
|
b052e8f50b | ||
|
|
e62e38d66c | ||
|
|
5d600ce31b | ||
|
|
9fedf38657 | ||
|
|
e6eeac0bbf | ||
|
|
8eb68bc384 | ||
|
|
ba81008951 | ||
|
|
6a47117737 | ||
|
|
ea97a8a2bc | ||
|
|
72bf150eac | ||
|
|
deebb90b46 | ||
|
|
7dce3c3ecc | ||
|
|
d83666c24b | ||
|
|
561aaa925b | ||
|
|
5c137b9002 | ||
|
|
71bc78b176 | ||
|
|
f6883e5365 | ||
|
|
9bc4345cb4 | ||
|
|
cf12bcd58a | ||
|
|
0bbd5eb292 | ||
|
|
f25053490e | ||
|
|
244b3256a9 | ||
|
|
b8ac80fd1a | ||
|
|
aec4c3cd91 | ||
|
|
4314fb478d | ||
|
|
66765ce158 | ||
|
|
6833bfb220 | ||
|
|
1914b3d8e1 | ||
|
|
f9cab4bc12 | ||
|
|
12e26009ee | ||
|
|
299bef2a77 | ||
|
|
02b8a8b9d4 | ||
|
|
55397e0ab1 | ||
|
|
9d53a1b5c4 | ||
|
|
e1ac85ddd5 | ||
|
|
744245ea32 | ||
|
|
9a4bda9c85 | ||
|
|
18ceb63f18 | ||
|
|
3305874235 | ||
|
|
6c76670137 | ||
|
|
9a36dc61ec | ||
|
|
da9f634cf7 | ||
|
|
ae7cce3c59 | ||
|
|
67dbbc8d65 | ||
|
|
2ffe53f191 | ||
|
|
ea3bdb5556 | ||
|
|
159a310bab | ||
|
|
15f3c284ae | ||
|
|
7121828980 | ||
|
|
b2dd87f44a | ||
|
|
564457de1c | ||
|
|
4194c7e3dd | ||
|
|
21a791cdcd | ||
|
|
ad13d57523 | ||
|
|
713792831e | ||
|
|
209c018c38 | ||
|
|
a4c1fee075 | ||
|
|
fc2d3ce56a | ||
|
|
f20286fb26 | ||
|
|
dcc33e52b3 | ||
|
|
e188662438 | ||
|
|
7672fb37a7 | ||
|
|
b0b89fac72 | ||
|
|
d91e4be74e | ||
|
|
ec7eddfc4e | ||
|
|
b94fc7b647 | ||
|
|
5211f9c40c | ||
|
|
c1e60736d8 | ||
|
|
9a43f9df7c | ||
|
|
b0bd5ba96f | ||
|
|
ca650e2012 | ||
|
|
5dfda99388 | ||
|
|
230f2d96de | ||
|
|
ed5a87c019 | ||
|
|
f721e25b8c | ||
|
|
86ec42c8c7 | ||
|
|
62c31ed37a | ||
|
|
49dc5694a3 | ||
|
|
4b3d634b25 | ||
|
|
2d25c40227 | ||
|
|
6ec87efb5a | ||
|
|
a501115afb | ||
|
|
5154a83cf9 | ||
|
|
18fa5a4a5d | ||
|
|
90ac41b9ec | ||
|
|
316e1eca3f | ||
|
|
c39b5b913c | ||
|
|
d053b960b6 | ||
|
|
554d2c689c | ||
|
|
0cbe396efb | ||
|
|
601884d894 | ||
|
|
73bc2a1848 | ||
|
|
4519c47551 | ||
|
|
473b28585a | ||
|
|
6fc14e5c1f | ||
|
|
2fe095fcd1 | ||
|
|
824f9c1d8c | ||
|
|
b81095349f | ||
|
|
7f7ab768f7 | ||
|
|
1695d5fe29 | ||
|
|
4840357ea0 | ||
|
|
ca2afd9eef | ||
|
|
0671e59fed | ||
|
|
06f9ed8bad | ||
|
|
644ced6d4e | ||
|
|
a671e72706 | ||
|
|
f7bdb1c04d | ||
|
|
9a6f1f66be | ||
|
|
6e4dccda4c | ||
|
|
03defe4256 | ||
|
|
39b7771f87 | ||
|
|
087a0aec58 | ||
|
|
f37a7101a7 | ||
|
|
e90e588621 | ||
|
|
353f641bcc | ||
|
|
a8d83096d3 | ||
|
|
1e02a9f0db | ||
|
|
d74fc931c1 | ||
|
|
1460b6ec12 | ||
|
|
a7c9112c40 | ||
|
|
9cd420290b | ||
|
|
5f08f89956 | ||
|
|
ea7d9652c5 | ||
|
|
515b556b48 | ||
|
|
25f4ce93ac | ||
|
|
d6dc4c14d7 | ||
|
|
fcf843d5b1 | ||
|
|
3827f98a43 | ||
|
|
612e05a247 | ||
|
|
00cdd04edd | ||
|
|
5010859ed6 | ||
|
|
7ed7cbc948 | ||
|
|
b05ff2a5d7 | ||
|
|
804c7de635 | ||
|
|
4e37a9fb09 | ||
|
|
4255084913 | ||
|
|
c538712a2e | ||
|
|
f2b8d0b2f9 | ||
|
|
3682c26817 | ||
|
|
36a43c3f41 | ||
|
|
896b7c2585 | ||
|
|
01b515a4f4 | ||
|
|
e8c56e57cc | ||
|
|
c6951ee912 | ||
|
|
8b1d6d235b | ||
|
|
9075495cc8 | ||
|
|
be3239ecc0 | ||
|
|
e34b4f18e5 | ||
|
|
90997020e7 | ||
|
|
18877f9237 | ||
|
|
e5f20d1a9c | ||
|
|
b486846a74 | ||
|
|
70984aa39f | ||
|
|
c322dc82c3 | ||
|
|
b53074a0cc | ||
|
|
d778a90eb0 | ||
|
|
e872f17842 | ||
|
|
0dcf54c3b5 | ||
|
|
3b69b7b6e8 | ||
|
|
a361ab0608 | ||
|
|
96d1981dcc | ||
|
|
a604afe871 | ||
|
|
dc9981322a | ||
|
|
ff23a84d28 | ||
|
|
bbc1d18e25 | ||
|
|
b3c3442024 | ||
|
|
b3dcd7d625 | ||
|
|
70c8659948 | ||
|
|
ef1d531091 | ||
|
|
a0460c391b | ||
|
|
09b6540998 | ||
|
|
c475302663 | ||
|
|
dd829d9140 | ||
|
|
cda495d692 | ||
|
|
e108799791 | ||
|
|
811e92c0eb | ||
|
|
766ec38487 | ||
|
|
002b07d096 | ||
|
|
68b7212150 | ||
|
|
65504d5d41 | ||
|
|
548776e828 | ||
|
|
63c174d7ed | ||
|
|
cbe2a53d6a | ||
|
|
f6f9c74fe9 | ||
|
|
651ed60987 | ||
|
|
f2e97eeb25 | ||
|
|
0d7209ff2f | ||
|
|
3630a2191e | ||
|
|
a2ddf6c4a0 | ||
|
|
e6d59ece6f | ||
|
|
b7bbcfa056 | ||
|
|
0c8e538077 | ||
|
|
67db9d57a2 | ||
|
|
61acea7e8d | ||
|
|
5dd6ebff05 | ||
|
|
2b236ceed3 | ||
|
|
c126294ae5 | ||
|
|
3048b79a45 | ||
|
|
b9ed7e52c2 | ||
|
|
cc576b052e | ||
|
|
535b695167 | ||
|
|
4d732c5733 | ||
|
|
02d37dcfcc | ||
|
|
cf6efa7ee5 | ||
|
|
15905f3b7a | ||
|
|
1c5c899096 | ||
|
|
e624f52374 | ||
|
|
46749d5f46 | ||
|
|
cf6c8e23fb | ||
|
|
90ac097f38 | ||
|
|
e14d151273 | ||
|
|
443dae39ba | ||
|
|
2188ecb91d | ||
|
|
3fd52fab0c | ||
|
|
a81375b432 | ||
|
|
9a5c7a063c | ||
|
|
352c3189da | ||
|
|
40cc1fcf5e | ||
|
|
ad71a102c2 | ||
|
|
b311409924 | ||
|
|
65ba441e81 | ||
|
|
10e7e53a10 | ||
|
|
9add946484 | ||
|
|
fb799a57ff | ||
|
|
25cf30b946 | ||
|
|
3ca8d7b6cc | ||
|
|
52a2d5ade2 | ||
|
|
d9ccac21d0 | ||
|
|
f85b07e70b | ||
|
|
6071f3d385 | ||
|
|
e343ccc458 | ||
|
|
3acb5de407 | ||
|
|
05280f09d7 | ||
|
|
459133cc57 | ||
|
|
860a7070a9 | ||
|
|
c26bd4c5a8 | ||
|
|
6626da9b3b | ||
|
|
e51c4fcb92 | ||
|
|
e028b87ce8 | ||
|
|
7ccf43d3ca | ||
|
|
1f7a4e3336 | ||
|
|
59f04ffd31 | ||
|
|
32fcd2e21b | ||
|
|
1a9f042c25 | ||
|
|
d9bdc89dfd | ||
|
|
eaf41f3f18 | ||
|
|
46f6dd02f8 | ||
|
|
1c8d62c3aa | ||
|
|
42abef6fbf | ||
|
|
18a2b48b3b | ||
|
|
10040f51e1 | ||
|
|
81fc8ef570 | ||
|
|
f8f3d0fb9b | ||
|
|
23c2d90ee8 | ||
|
|
115245a632 | ||
|
|
9dff0c4b12 | ||
|
|
27728f397c | ||
|
|
580e046e7d | ||
|
|
b1fb0a2a07 | ||
|
|
f604a0ac8e | ||
|
|
a4b9032d9c | ||
|
|
beb360d992 | ||
|
|
8d48e194cf | ||
|
|
0799c06b1b | ||
|
|
eacb9e53eb | ||
|
|
e2046ce4ff | ||
|
|
c9f692d671 | ||
|
|
88199ffd62 | ||
|
|
a159b5baf3 | ||
|
|
8a0309a4bd | ||
|
|
f8e11da0fc | ||
|
|
6b3646a025 | ||
|
|
b3df07ae3e | ||
|
|
61af1f9379 | ||
|
|
4264fe66ca | ||
|
|
6bc2e18cbd | ||
|
|
aaaed439f7 | ||
|
|
143d4c1ae4 | ||
|
|
ccce478b3a | ||
|
|
113d8efb80 | ||
|
|
f0e638ea62 | ||
|
|
972f91182d | ||
|
|
49f0989db8 | ||
|
|
b73006a5e9 | ||
|
|
22bc2dd9d7 | ||
|
|
3088d50e87 | ||
|
|
3dfc569c00 | ||
|
|
b7ce56e3ce | ||
|
|
9059ea5211 | ||
|
|
4ebccbe468 | ||
|
|
32d55cf072 | ||
|
|
5139c82f53 | ||
|
|
6ea18cb61a | ||
|
|
13290692de | ||
|
|
1007ec2ad6 | ||
|
|
f00c4c164b | ||
|
|
d0deacbdc4 | ||
|
|
f81b0a6fa9 | ||
|
|
3a43de2272 | ||
|
|
96b7d0eeba | ||
|
|
378e687a42 | ||
|
|
14179c9734 | ||
|
|
d047ccdc84 | ||
|
|
62edd1e8a3 | ||
|
|
d4617ffbe4 | ||
|
|
3dc99e9605 | ||
|
|
e536516e81 | ||
|
|
e95c87f068 | ||
|
|
f4f263ea69 | ||
|
|
3472721dbc |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
.DS_Store
|
||||
.c9/
|
||||
tmp/
|
||||
output/
|
||||
|
||||
@@ -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 ^
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -1,65 +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]"
|
||||
|
||||
# /languages/de-AT/index.html Demo wiki with de-AT language
|
||||
# /languages/de-AT/empty.html Empty wiki with de-AT language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/de-AT \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT/languages/de-AT \
|
||||
--build favicon empty static index \
|
||||
|| exit 1
|
||||
|
||||
# /languages/de-DE/index.html Demo wiki with de-DE language
|
||||
# /languages/de-DE/empty.html Empty wiki with de-DE language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/de-DE \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT/languages/de-DE \
|
||||
--build favicon empty static index \
|
||||
|| exit 1
|
||||
|
||||
# /languages/fr-FR/index.html Demo wiki with fr-FR language
|
||||
# /languages/fr-FR/empty.html Empty wiki with fr-FR language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/fr-FR \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all languages/fr-FR/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty languages/fr-FR/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /languages/zh-Hans/index.html Demo wiki with zh-Hans language
|
||||
# /languages/zh-Hans/empty.html Empty wiki with zh-Hans language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/zh-Hans \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all languages/zh-Hans/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty languages/zh-Hans/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /languages/zh-Hant/index.html Demo wiki with zh-Hant language
|
||||
# /languages/zh-Hant/empty.html Empty wiki with zh-Hant language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/zh-Hant \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all languages/zh-Hant/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty languages/zh-Hant/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
130
bin/bld.cmd
130
bin/bld.cmd
@@ -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
|
||||
127
bin/bld.sh
127
bin/bld.sh
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
228
bin/fullbld.sh
228
bin/fullbld.sh
@@ -1,228 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Perform a full build 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
|
||||
|
||||
# Delete any existing static content
|
||||
|
||||
mkdir -p $TW5_BUILD_OUTPUT/static
|
||||
mkdir -p $TW5_BUILD_OUTPUT/dev
|
||||
mkdir -p $TW5_BUILD_OUTPUT/dev/static
|
||||
rm $TW5_BUILD_OUTPUT/static/*
|
||||
rm $TW5_BUILD_OUTPUT/dev/static/*
|
||||
|
||||
rm $TW5_BUILD_OUTPUT/languages/de_AT/static/*
|
||||
rm $TW5_BUILD_OUTPUT/languages/de_DE/static/*
|
||||
|
||||
# Redirects
|
||||
|
||||
echo "<a href='./plugins/tiddlywiki/tw2parser/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/tw2parser/index.html</a>" > $TW5_BUILD_OUTPUT/classicparserdemo.html
|
||||
echo "<a href='./plugins/tiddlywiki/codemirror/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/codemirror/index.html</a>" > $TW5_BUILD_OUTPUT/codemirrordemo.html
|
||||
echo "<a href='./plugins/tiddlywiki/d3/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/d3/index.html</a>" > $TW5_BUILD_OUTPUT/d3demo.html
|
||||
echo "<a href='./plugins/tiddlywiki/highlight/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/highlight/index.html</a>" > $TW5_BUILD_OUTPUT/highlightdemo.html
|
||||
echo "<a href='./plugins/tiddlywiki/markdown/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/markdown/index.html</a>" > $TW5_BUILD_OUTPUT/markdowndemo.html
|
||||
echo "<a href='./plugins/tiddlywiki/tahoelafs/index.html'>Moved to http://tiddlywiki.com/plugins/tiddlywiki/tahoelafs/index.html</a>" > $TW5_BUILD_OUTPUT/tahoelafs.html
|
||||
|
||||
######################################################
|
||||
#
|
||||
# Core distribution
|
||||
#
|
||||
######################################################
|
||||
|
||||
# /index.html Main site
|
||||
# /favicon.ico Favicon for main site
|
||||
# /empty.html Empty
|
||||
# /empty.hta For Internet Explorer
|
||||
# /static.html Static rendering of default tiddlers
|
||||
# /alltiddlers.html Static rendering of all tiddlers
|
||||
# /static/* Static single tiddlers
|
||||
# /static/static.css Static stylesheet
|
||||
# /static/favicon.ico Favicon for static pages
|
||||
node ./tiddlywiki.js \
|
||||
./editions/tw5.com \
|
||||
--verbose \
|
||||
--output . \
|
||||
--build readmes \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build favicon empty static index \
|
||||
|| exit 1
|
||||
|
||||
# /dev/index.html Developer docs
|
||||
# /dev/favicon.ico Favicon for dev site
|
||||
# /dev/static.html Static rendering of default tiddlers
|
||||
# /dev/alltiddlers.html Static rendering of all tiddlers
|
||||
# /dev/static/* Static single tiddlers
|
||||
# /dev/static/static.css Static stylesheet
|
||||
node ./tiddlywiki.js \
|
||||
./editions/dev \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT/dev \
|
||||
--build index favicon static \
|
||||
|| exit 1
|
||||
|
||||
# /upgrade.html Custom edition for performing upgrades
|
||||
node ./tiddlywiki.js \
|
||||
./editions/upgrade \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build upgrade \
|
||||
|| exit 1
|
||||
|
||||
# /encrypted.html Copy of the main file encrypted with the password "password"
|
||||
node ./tiddlywiki.js \
|
||||
./editions/tw5.com \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build encrypted \
|
||||
|| exit 1
|
||||
|
||||
######################################################
|
||||
#
|
||||
# Plugin demos
|
||||
#
|
||||
######################################################
|
||||
|
||||
# /plugins/tiddlywiki/tahoelafs/index.html Demo wiki with Tahoe-LAFS plugin
|
||||
# /plugins/tiddlywiki/tahoelafs/empty.html Empty wiki with Tahoe-LAFS plugin
|
||||
node ./tiddlywiki.js \
|
||||
./editions/tahoelafs \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/tahoelafs/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/tahoelafs/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /plugins/tiddlywiki/d3/index.html Demo wiki with D3 plugin
|
||||
# /plugins/tiddlywiki/d3/empty.html Empty wiki with D3 plugin
|
||||
node ./tiddlywiki.js \
|
||||
./editions/d3demo \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/d3/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/d3/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /plugins/tiddlywiki/codemirror/index.html Demo wiki with codemirror plugin
|
||||
# /plugins/tiddlywiki/codemirror/empty.html Empty wiki with codemirror plugin
|
||||
node ./tiddlywiki.js \
|
||||
./editions/codemirrordemo \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/codemirror/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/codemirror/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /plugins/tiddlywiki/markdown/index.html Demo wiki with Markdown plugin
|
||||
# /plugins/tiddlywiki/markdown/empty.html Empty wiki with Markdown plugin
|
||||
node ./tiddlywiki.js \
|
||||
./editions/markdowndemo \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/markdown/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/markdown/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /plugins/tiddlywiki/tw2parser/index.html Demo wiki with tw2parser plugin
|
||||
# /plugins/tiddlywiki/tw2parser/empty.html Empty wiki with tw2parser plugin
|
||||
node ./tiddlywiki.js \
|
||||
./editions/classicparserdemo \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/tw2parser/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/tw2parser/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /plugins/tiddlywiki/highlight/index.html Demo wiki with highlight plugin
|
||||
# /plugins/tiddlywiki/highlight/empty.html Empty wiki with highlight plugin
|
||||
node ./tiddlywiki.js \
|
||||
./editions/highlightdemo \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/highlight/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/highlight/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
######################################################
|
||||
#
|
||||
# Language editions
|
||||
#
|
||||
######################################################
|
||||
|
||||
# /languages/de-AT/index.html Demo wiki with de-AT language
|
||||
# /languages/de-AT/empty.html Empty wiki with de-AT language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/de-AT \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT/languages/de-AT \
|
||||
--build favicon empty static index \
|
||||
|| exit 1
|
||||
|
||||
# /languages/de-DE/index.html Demo wiki with de-DE language
|
||||
# /languages/de-DE/empty.html Empty wiki with de-DE language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/de-DE \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT/languages/de-DE \
|
||||
--build favicon empty static index \
|
||||
|| exit 1
|
||||
|
||||
# /languages/fr-FR/index.html Demo wiki with fr-FR language
|
||||
# /languages/fr-FR/empty.html Empty wiki with fr-FR language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/fr-FR \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all languages/fr-FR/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty languages/fr-FR/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /languages/zh-Hans/index.html Demo wiki with zh-Hans language
|
||||
# /languages/zh-Hans/empty.html Empty wiki with zh-Hans language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/zh-Hans \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all languages/zh-Hans/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty languages/zh-Hans/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /languages/zh-Hant/index.html Demo wiki with zh-Hant language
|
||||
# /languages/zh-Hant/empty.html Empty wiki with zh-Hant language
|
||||
node ./tiddlywiki.js \
|
||||
./editions/zh-Hant \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all languages/zh-Hant/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty languages/zh-Hant/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
######################################################
|
||||
#
|
||||
# Tests
|
||||
#
|
||||
######################################################
|
||||
|
||||
# /test.html Wiki for running tests in browser
|
||||
# Also runs the serverside tests
|
||||
node ./tiddlywiki.js \
|
||||
./editions/test \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all test.html text/plain \
|
||||
|| exit 1
|
||||
28
bin/qbld.cmd
28
bin/qbld.cmd
@@ -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
|
||||
30
bin/qbld.sh
30
bin/qbld.sh
@@ -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
|
||||
@@ -1,7 +1,3 @@
|
||||
<h1 class=''>Script Files</h1><p>The <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> repository contains several scripts in the <code>bin</code> folder that are used to build and deploy <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> (<code>.sh</code> for *nix and <code>.cmd</code> for Windows). They can serve as a useful starting point for your own scripts.</p><p>All the scripts expect to be run from the root folder of the repository.</p><h2 class=''><code>fullbld</code>: builds tw5.com</h2><p>This script builds several variants of <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> for deployment on tiddlywiki.com.</p><p>By default, files are output to a folder called <code>jermolene.github.com</code>, sibling to the <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> repo directory. For example:</p><pre><code>/TiddlyWork/ - Directory for working with TiddlyWiki5
|
||||
|
|
||||
+--+-- /TiddlyWiki5/ - Directory containing the TiddlyWiki5 repo from GitHub
|
||||
|
|
||||
+-- /jermolene.github.com/ - Directory for output files</code></pre><p>You can override the build output directory by defining the environment variable <code>TW5_BUILD_OUTPUT</code>. The easiest way to do this is to create a personal batch file to invoke <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> that first sets the environment variable and then invokes <code>fullbld</code>.</p><p><code>fullbld</code> also runs the <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> Node.js-based test suite (see <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TestingMechanism.html'>TestingMechanism</a>)</p><h2 class=''><code>serve</code>: serves tw5.com</h2><pre><code>./bin/serve.sh -h
|
||||
<h1 class=''>Script Files</h1><p>The <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> repository contains several scripts in the <code>bin</code> folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See <a class='tc-tiddlylink tc-tiddlylink-missing' href='http://tiddlywiki.com/static/Scripts%2520for%2520building%2520tiddlywiki.com.html'>Scripts for building tiddlywiki.com</a> for details of the scripts used to build and release <a class='tc-tiddlylink-external' href='http://tiddlywiki.com/' target='_blank'>http://tiddlywiki.com/</a>.</p><p>All the scripts expect to be run from the root folder of the repository.</p><h2 class=''><code>serve</code>: serves tw5.com</h2><pre><code>./bin/serve.sh -h
|
||||
./bin/serve.sh [edition dir] [username] [password] [host] [port]</code></pre><p>Or:</p><pre><code>./bin/serve.cmd -h
|
||||
./bin/serve.cmd [edition dir] [username] [password] [host] [port]</code></pre><p>This script starts <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> running as an HTTP server, defaulting to the content from the <code>tw5.com-server</code> edition. By default, the Node.js serves on port 8080. If the optional <code>username</code> parameter is provided, it is used for signing edits. If the <code>password</code> is provided then HTTP basic authentication is used. Run the script with the <code>-h</code> parameter to see online help.</p><p>To experiment with this configuration, run the script and then visit <code>http://127.0.0.1:8080</code> in a browser.</p><p>Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).</p><h2 class=''><code>test</code>: build and run tests</h2><p>This script runs the <code>test</code> edition of <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> on the server to perform the server-side tests and to build <code>test.html</code> for running the tests in the browser.</p><h2 class=''><code>lazy</code>: serves tw5.com with lazily loaded images</h2><pre><code>./bin/lazy.sh <username> [<password>]</code></pre><p>Or:</p><pre><code>./bin/lazy.cmd <username> [<password>]</code></pre><p>This script serves the <code>tw5.com-server</code> edition content with <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/LazyLoading.html'>LazyLoading</a> applied to images.</p><h2 class=''><code>wbld</code>: builds <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> for <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWeb.html'>TiddlyWeb</a></h2><p>This script builds and deploys the code for <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki%2520in%2520the%2520Sky%2520for%2520TiddlyWeb.html'>TiddlyWiki in the Sky for TiddlyWeb</a>. If you want to experiment with your own builds of <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> for <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWeb.html'>TiddlyWeb</a> you could use this batch file as a base.</p><h2 class=''><code>2bld</code>: builds <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> 2.6.5</h2><p>This script builds <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> 2.6.5 from the original source and then displays the differences between them (<code>diff</code> is used for *nix, <code>fc</code> for Windows).</p><h2 class=''><code>deploy</code> & <code>verbump</code>: deploy <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> and bump the <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> version number</h2><p>These scripts are concerned with releasing a new version of <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a>. See <a class='tc-tiddlylink tc-tiddlylink-missing' href='http://tiddlywiki.com/static/Releasing%2520a%2520new%2520version%2520of%2520TiddlyWiki5.html'>Releasing a new version of TiddlyWiki5</a>.</p>
|
||||
./bin/serve.cmd [edition dir] [username] [password] [host] [port]</code></pre><p>This script starts <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki5.html'>TiddlyWiki5</a> running as an HTTP server, defaulting to the content from the <code>tw5.com-server</code> edition. By default, the Node.js serves on port 8080. If the optional <code>username</code> parameter is provided, it is used for signing edits. If the <code>password</code> is provided then HTTP basic authentication is used. Run the script with the <code>-h</code> parameter to see online help.</p><p>To experiment with this configuration, run the script and then visit <code>http://127.0.0.1:8080</code> in a browser.</p><p>Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).</p><h2 class=''><code>test</code>: build and run tests</h2><p>This script runs the <code>test</code> edition of <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> on the server to perform the server-side tests and to build <code>test.html</code> for running the tests in the browser.</p><h2 class=''><code>lazy</code>: serves tw5.com with lazily loaded images</h2><pre><code>./bin/lazy.sh <username> [<password>]</code></pre><p>Or:</p><pre><code>./bin/lazy.cmd <username> [<password>]</code></pre><p>This script serves the <code>tw5.com-server</code> edition content with <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/LazyLoading.html'>LazyLoading</a> applied to images.</p><h2 class=''><code>2bld</code>: builds <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> 2.6.5</h2><p>This script builds <a class='tc-tiddlylink tc-tiddlylink-resolves' href='http://tiddlywiki.com/static/TiddlyWiki.html'>TiddlyWiki</a> 2.6.5 from the original source and then displays the differences between them (<code>diff</code> is used for *nix, <code>fc</code> for Windows).</p>
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
14
bin/test.cmd
14
bin/test.cmd
@@ -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
|
||||
|
||||
16
bin/test.sh
16
bin/test.sh
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
26
bin/wbld.cmd
26
bin/wbld.cmd
@@ -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
|
||||
30
bin/wbld.sh
30
bin/wbld.sh
@@ -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
|
||||
65
boot/boot.js
65
boot/boot.js
@@ -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.
|
||||
|
||||
\*/
|
||||
|
||||
@@ -134,7 +121,7 @@ $tw.utils.error = function(err) {
|
||||
var errHeading = "Internal JavaScript Error",
|
||||
promptMsg = "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser";
|
||||
// Log the error to the console
|
||||
console.error(err);
|
||||
console.error($tw.node ? "\x1b[1;31m" + err + "\x1b[0m" : err);
|
||||
if($tw.browser && !$tw.node) {
|
||||
// Display an error message to the user
|
||||
var dm = $tw.utils.domMaker,
|
||||
@@ -477,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) {
|
||||
@@ -493,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",
|
||||
@@ -527,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);
|
||||
@@ -1244,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) {
|
||||
@@ -1568,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);
|
||||
}
|
||||
@@ -1742,6 +1746,9 @@ $tw.boot.startup = function(options) {
|
||||
$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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".</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>. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".</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>
|
||||
11
core/images/advanced-search-button.tid
Normal file
11
core/images/advanced-search-button.tid
Normal file
@@ -0,0 +1,11 @@
|
||||
title: $:/core/images/advanced-search-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tc-image-advanced-search-button tc-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z"></path>
|
||||
<circle cx="48" cy="48" r="8"></circle>
|
||||
<circle cx="28" cy="48" r="8"></circle>
|
||||
<circle cx="68" cy="48" r="8"></circle>
|
||||
</g>
|
||||
</svg>
|
||||
@@ -3,6 +3,10 @@ tags: $:/tags/Image
|
||||
|
||||
<svg class="tc-image-export-button tc-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M128.078948,81.2190241 L128.078948,103.072887 C128.078948,110.252507 122.258391,116.079527 115.07837,116.079527 L13.0007031,116.079527 C5.81517113,116.079527 0.0001254444,110.256256 0.0001254444,103.072887 L0.0001254444,60.043677 C0.0001254444,52.8640576 5.82068232,47.037037 13.0007031,47.037037 L50.9939627,47.037037 C46.9232966,53.1682159 47.3681412,61.433368 52.4317358,67.049353 L36.0221654,67.049353 C31.0486129,67.049353 27.016752,71.0784493 27.016752,76.0490922 L27.016752,86.0668561 C27.016752,91.0372749 31.0503474,95.0665954 36.0221654,95.0665954 L92.0569077,95.0665954 C97.0304602,95.0665954 101.062321,91.0374991 101.062321,86.0668561 L101.062321,76.6968446 L104.185741,73.5608014 L108.938546,78.3104149 C114.124001,83.4958696 121.907794,84.4351094 128.078948,81.2190241 L128.078948,81.2190241 Z M126.997239,16.6885444 C127.022653,13.3460126 124.333584,10.6569433 120.991052,10.682357 L71.0419165,11.0621275 C67.6993847,11.0875413 64.9691114,13.8178146 64.9436976,17.1603465 C64.9314934,18.7654933 65.5574285,20.3000438 66.6838081,21.4264234 L74.4804244,29.2230397 C76.8259808,31.5685961 76.7968452,35.4006519 74.4153482,37.7821489 L60.4010471,51.79645 C58.0195502,54.1779469 57.9904145,58.0100028 60.3359709,60.3555592 L77.324037,77.3436253 C79.6695934,79.6891817 83.5016493,79.6600461 85.8831462,77.2785491 L99.8974474,63.264248 C102.278944,60.8827511 106.111,60.8536154 108.456557,63.1991718 L116.253173,70.9957881 C118.598729,73.3413446 122.430785,73.3122089 124.812282,70.930712 C125.955921,69.7870731 126.605265,68.2428265 126.617469,66.6376797 L126.997239,16.6885444 Z"></path>
|
||||
<g transform="translate(17.000000, 0.000000)">
|
||||
<path d="M22.1250738,80.1852318 L44.5417352,102.861881 C46.0418294,104.379373 48.4739749,104.379373 49.9740691,102.861881 L72.3907305,80.1852318 C73.8908246,78.6677396 73.8908246,76.2073861 72.3907305,74.6898939 C71.670357,73.9611656 70.6933246,73.5517715 69.6745636,73.5517715 L62.6228651,73.5517715 C60.5014118,73.5517715 58.7816243,71.812038 58.7816243,69.6659802 L58.7816243,57.0371585 C58.7816243,54.8911007 57.0618368,53.1513672 54.9403836,53.1513672 L39.5754207,53.1513672 C37.4539675,53.1513672 35.73418,54.8911007 35.73418,57.0371585 L35.73418,57.0371585 L35.73418,69.6659802 C35.73418,71.812038 34.0143925,73.5517715 31.8929392,73.5517715 L24.8412407,73.5517715 C22.7197875,73.5517715 21,75.2915051 21,77.4375628 C21,78.4681395 21.4047003,79.4565034 22.1250738,80.1852318 L22.1250738,80.1852318 Z"></path>
|
||||
<path d="M0,122.5 C0,125.537566 2.46243388,128 5.5,128 L88.5,128 C91.5375661,128 94,125.537566 94,122.5 L94,38.9285714 C94,37.4764177 93.4257051,36.0831928 92.402406,35.0528486 L59.202406,1.62427715 C58.1698923,0.584654954 56.7652299,0 55.3,0 L5.5,0 C2.46243388,0 0,2.46243388 0,5.5 L0,122.5 Z M83,44.9285714 L83,117 L11,117 L11,11 L50.3,11 L50.3,39.4285714 C50.3,42.4661376 52.7624339,44.9285714 55.8,44.9285714 L83,44.9285714 Z"></path>
|
||||
<path d="M88,44.9285714 C92.8908847,44.9285714 95.3488993,39.0230699 91.902406,35.5528486 L58.702406,2.12427715 C55.2430914,-1.3588537 49.3,1.09092089 49.3,6 L49.3,39.4285714 C49.3,42.4661376 51.7624339,44.9285714 54.8,44.9285714 L88,44.9285714 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
8
core/images/new-here-button.tid
Normal file
8
core/images/new-here-button.tid
Normal 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>
|
||||
16
core/images/new-journal-button.tid
Normal file
16
core/images/new-journal-button.tid
Normal 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>
|
||||
@@ -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
|
||||
|
||||
@@ -10,6 +10,8 @@ Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]]
|
||||
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:
|
||||
|
||||
87
core/language/en-GB/Dates.multids
Normal file
87
core/language/en-GB/Dates.multids
Normal 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
|
||||
@@ -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.
|
||||
|
||||
@@ -8,24 +8,13 @@ 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/Icon/Heading: Icon
|
||||
|
||||
4
core/language/en-GB/NewJournal.multids
Normal file
4
core/language/en-GB/NewJournal.multids
Normal file
@@ -0,0 +1,4 @@
|
||||
title: $:/config/NewJournal/
|
||||
|
||||
Title: DDth MMM YYYY
|
||||
Tags: Journal
|
||||
@@ -2,14 +2,14 @@ title: $:/language/Search/
|
||||
|
||||
Filter/Caption: Filter
|
||||
Filter/Hint: Search via a [[filter expression|http://tiddlywiki.com/static/Filters.html]]
|
||||
Filter/Matches: //<small><$count filter={{$:/temp/advancedsearch}}/> matches</small>//
|
||||
Matches: //<small><$count filter="[!is[system]search{$:/temp/search}]"/> matches</small>//
|
||||
Filter/Matches: //<small><<resultCount>> matches</small>//
|
||||
Matches: //<small><<resultCount>> matches</small>//
|
||||
Shadows/Caption: Shadows
|
||||
Shadows/Hint: Search for shadow tiddlers
|
||||
Shadows/Matches: //<small><$count filter="[all[shadows]search{$:/temp/advancedsearch}]"/> matches</small>//
|
||||
Shadows/Matches: //<small><<resultCount>> matches</small>//
|
||||
Standard/Caption: Standard
|
||||
Standard/Hint: Search for standard tiddlers
|
||||
Standard/Matches: //<small><$count filter="[!is[system]search{$:/temp/advancedsearch}]"/> matches</small>//
|
||||
Standard/Matches: //<small><<resultCount>> matches</small>//
|
||||
System/Caption: System
|
||||
System/Hint: Search for system tiddlers
|
||||
System/Matches: //<small><$count filter="[is[system]search{$:/temp/advancedsearch}]"/> matches</small>//
|
||||
System/Matches: //<small><<resultCount>> matches</small>//
|
||||
|
||||
@@ -17,7 +17,7 @@ if(!$tw.browser) {
|
||||
fs = require("fs"),
|
||||
url = require("url"),
|
||||
path = require("path"),
|
||||
http = require("http");
|
||||
http = require("http");
|
||||
}
|
||||
|
||||
exports.info = {
|
||||
@@ -278,6 +278,9 @@ var Command = function(params,commander,callback) {
|
||||
};
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
if(!$tw.boot.wikiTiddlersPath) {
|
||||
$tw.utils.warning("Warning: Wiki folder '" + $tw.boot.wikiPath + "' does not exist or is missing a tiddlywiki.info file");
|
||||
}
|
||||
var port = this.params[0] || "8080",
|
||||
rootTiddler = this.params[1] || "$:/core/save/all",
|
||||
renderType = this.params[2] || "text/plain",
|
||||
|
||||
@@ -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(",");
|
||||
|
||||
28
core/modules/filters/addprefix.js
Normal file
28
core/modules/filters/addprefix.js
Normal 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;
|
||||
};
|
||||
|
||||
})();
|
||||
28
core/modules/filters/addsuffix.js
Normal file
28
core/modules/filters/addsuffix.js
Normal 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;
|
||||
};
|
||||
|
||||
})();
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
32
core/modules/macros/now.js
Normal file
32
core/modules/macros/now.js
Normal 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");
|
||||
};
|
||||
|
||||
})();
|
||||
38
core/modules/parsers/audioparser.js
Normal file
38
core/modules/parsers/audioparser.js
Normal 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;
|
||||
|
||||
})();
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -24,7 +24,7 @@ exports.startup = function(callback) {
|
||||
$tw.boot.argv,
|
||||
function(err) {
|
||||
if(err) {
|
||||
console.log("Error: " + err);
|
||||
return $tw.utils.error("Error: " + err);
|
||||
}
|
||||
callback();
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"},
|
||||
|
||||
@@ -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"},
|
||||
|
||||
@@ -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,[
|
||||
|
||||
@@ -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);
|
||||
},{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
|
||||
@@ -12,6 +12,13 @@ Various static utility functions.
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Display a warning, in colour if we're on a terminal
|
||||
*/
|
||||
exports.warning = function(text) {
|
||||
console.log($tw.node ? "\x1b[1;33m" + text + "\x1b[0m" : text);
|
||||
}
|
||||
|
||||
/*
|
||||
Trim whitespace from the start and end of a string
|
||||
Thanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript
|
||||
@@ -87,6 +94,7 @@ exports.pushTop = function(array,value) {
|
||||
}
|
||||
array.push(value);
|
||||
}
|
||||
return array;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -167,61 +175,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();
|
||||
};
|
||||
|
||||
|
||||
79
core/modules/widgets/action-navigate.js
Normal file
79
core/modules/widgets/action-navigate.js
Normal 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;
|
||||
|
||||
})();
|
||||
82
core/modules/widgets/action-sendmessage.js
Normal file
82
core/modules/widgets/action-sendmessage.js
Normal 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;
|
||||
|
||||
})();
|
||||
@@ -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");
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -158,11 +158,11 @@ LinkWidget.prototype.handleDragStartEvent = function(event) {
|
||||
// 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/plain",this.to);
|
||||
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);
|
||||
dataTransfer.setData("Text",this.to);
|
||||
event.stopPropagation();
|
||||
} else {
|
||||
event.preventDefault();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -46,6 +46,7 @@ Compute the internal state of the widget
|
||||
ViewWidget.prototype.execute = function() {
|
||||
// Get parameters from our attributes
|
||||
this.viewTitle = this.getAttribute("tiddler",this.getVariable("currentTiddler"));
|
||||
this.viewSubtiddler = this.getAttribute("subtiddler");
|
||||
this.viewField = this.getAttribute("field","text");
|
||||
this.viewIndex = this.getAttribute("index");
|
||||
this.viewFormat = this.getAttribute("format","text");
|
||||
@@ -95,9 +96,14 @@ ViewWidget.prototype.getValue = function(options) {
|
||||
if(this.viewIndex) {
|
||||
value = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);
|
||||
} else {
|
||||
var tiddler = this.wiki.getTiddler(this.viewTitle);
|
||||
var tiddler;
|
||||
if(this.viewSubtiddler) {
|
||||
tiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);
|
||||
} else {
|
||||
tiddler = this.wiki.getTiddler(this.viewTitle);
|
||||
}
|
||||
if(tiddler) {
|
||||
if(this.viewField === "text") {
|
||||
if(this.viewField === "text" && !this.viewSubtiddler) {
|
||||
// Calling getTiddlerText() triggers lazy loading of skinny tiddlers
|
||||
value = this.wiki.getTiddlerText(this.viewTitle);
|
||||
} else {
|
||||
|
||||
@@ -171,7 +171,7 @@ Widget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue)
|
||||
else for(var i=0; i<actualParams.length; ++i) {
|
||||
args.push(actualParams[i].value);
|
||||
}
|
||||
return macro.run.apply(this,args);
|
||||
return macro.run.apply(this,args).toString();
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
})();
|
||||
|
||||
@@ -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);
|
||||
@@ -570,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);
|
||||
@@ -1132,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
|
||||
*/
|
||||
|
||||
@@ -21,8 +21,10 @@ caption: {{$:/language/Search/Filter/Caption}}
|
||||
</$linkcatcher>
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
|
||||
<$set name="resultCount" value="""<$count filter={{$:/temp/advancedsearch}}/>""">
|
||||
<div class="tc-search-results">
|
||||
<<lingo Filter/Matches>>
|
||||
<$list filter={{$:/temp/advancedsearch}} template="$:/core/ui/ListItemTemplate"/>
|
||||
</div>
|
||||
</$set>
|
||||
</$reveal>
|
||||
|
||||
@@ -13,14 +13,18 @@ caption: {{$:/language/Search/Shadows/Caption}}
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
|
||||
|
||||
<$set name="resultCount" value="""<$count filter="[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]"/>""">
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
<<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>
|
||||
|
||||
</$set>
|
||||
|
||||
</$reveal>
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="match" text="">
|
||||
|
||||
@@ -13,14 +13,18 @@ caption: {{$:/language/Search/Standard/Caption}}
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
|
||||
|
||||
<$set name="resultCount" value="""<$count filter="[!is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]"/>""">
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
<<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>
|
||||
|
||||
</$set>
|
||||
|
||||
</$reveal>
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="match" text="">
|
||||
|
||||
@@ -13,14 +13,18 @@ caption: {{$:/language/Search/System/Caption}}
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
|
||||
|
||||
<$set name="resultCount" value="""<$count filter="[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]"/>""">
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
<<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>
|
||||
|
||||
</$set>
|
||||
|
||||
</$reveal>
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="match" text="">
|
||||
|
||||
@@ -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[]]"/>'' |
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
13
core/ui/PageControls/advanced-search.tid
Normal file
13
core/ui/PageControls/advanced-search.tid
Normal file
@@ -0,0 +1,13 @@
|
||||
title: $:/core/ui/Buttons/advanced-search
|
||||
tags: $:/tags/PageControls
|
||||
caption: {{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}
|
||||
description: {{$:/language/Buttons/AdvancedSearch/Hint}}
|
||||
|
||||
<$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
|
||||
{{$:/core/images/advanced-search-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>
|
||||
</$list>
|
||||
</$button>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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/>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
20
core/ui/PageControls/new-journal.tid
Normal file
20
core/ui/PageControls/new-journal.tid
Normal 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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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]]">
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -17,8 +17,12 @@ title: $:/core/ui/SideBarLists
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
<$set name="resultCount" value="""<$count filter="[!is[system]search{$:/temp/search}]"/>""">
|
||||
|
||||
{{$:/language/Search/Matches}}
|
||||
|
||||
</$set>
|
||||
|
||||
<$list filter="[!is[system]search{$:/temp/search}sort[title]limit[250]]" template="$:/core/ui/ListItemTemplate"/>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user