mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-01-24 03:44:41 +00:00
Compare commits
510 Commits
v5.0.7-bet
...
v5.0.9-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a6077286f | ||
|
|
634e76eb7f | ||
|
|
cd1463cbb0 | ||
|
|
4b8be85b88 | ||
|
|
d01f1020d2 | ||
|
|
f77de37a2f | ||
|
|
f3c5ce7ca4 | ||
|
|
6ed38389b0 | ||
|
|
5393fbee99 | ||
|
|
3b31c6fe3a | ||
|
|
9ba55c7e79 | ||
|
|
9323574efb | ||
|
|
f5cf8cba5c | ||
|
|
88be791e58 | ||
|
|
dad60cda05 | ||
|
|
fe0ed5e4ce | ||
|
|
aa243e4478 | ||
|
|
4c648e7cdc | ||
|
|
0aa559cd23 | ||
|
|
28db76ddb3 | ||
|
|
e366aa3746 | ||
|
|
22a529b28d | ||
|
|
c2d6086bd9 | ||
|
|
f1578d3409 | ||
|
|
93b9d16d6c | ||
|
|
13bb20cad4 | ||
|
|
bba7e97f60 | ||
|
|
cb32d187c5 | ||
|
|
8582e5ebe2 | ||
|
|
46969fbd3e | ||
|
|
260d3ad8c0 | ||
|
|
d9b87055bf | ||
|
|
4f4b743d9c | ||
|
|
ee2cd2056c | ||
|
|
be5f6f6700 | ||
|
|
be7822281a | ||
|
|
3afa26b9a3 | ||
|
|
2a2cc20601 | ||
|
|
400ab3b3c5 | ||
|
|
ebe7587aa0 | ||
|
|
c954ac01fe | ||
|
|
a3cf925e56 | ||
|
|
be7c33dc48 | ||
|
|
634f914610 | ||
|
|
7aaab03e03 | ||
|
|
fd1399f6d9 | ||
|
|
442bc35bcb | ||
|
|
1bc9bf541a | ||
|
|
ccf2cb36a1 | ||
|
|
18d14031b7 | ||
|
|
5fff6fc87f | ||
|
|
5a65898dbe | ||
|
|
cbf45a9982 | ||
|
|
7a4a00f6ca | ||
|
|
dfb367c104 | ||
|
|
7853b7f7b3 | ||
|
|
ccefc1b17b | ||
|
|
6786a1fd14 | ||
|
|
e73d2854f9 | ||
|
|
127cd70769 | ||
|
|
fc407d079c | ||
|
|
df6fe8f852 | ||
|
|
613f413942 | ||
|
|
70a2db34d1 | ||
|
|
5821165ec5 | ||
|
|
4888417a35 | ||
|
|
2aa1acb565 | ||
|
|
e5fe3f76ac | ||
|
|
ef03e5ce63 | ||
|
|
690c8fe9a0 | ||
|
|
6f1e8ee3a1 | ||
|
|
9b52ca7cc0 | ||
|
|
f9a274df85 | ||
|
|
776bf29afc | ||
|
|
f08c4aa525 | ||
|
|
0f07977930 | ||
|
|
362df18a19 | ||
|
|
426281539a | ||
|
|
dc5831a8a8 | ||
|
|
6d43b4e8dc | ||
|
|
3282bd948f | ||
|
|
7ec356ac80 | ||
|
|
688879e6fa | ||
|
|
9bdd7a4e19 | ||
|
|
78f81a6894 | ||
|
|
5ec0775d3e | ||
|
|
c4d0ee11d3 | ||
|
|
597b8ca4b1 | ||
|
|
ea46f85a8a | ||
|
|
1e960ffcac | ||
|
|
8a7d0f53d3 | ||
|
|
b51d851f93 | ||
|
|
e21d558ff0 | ||
|
|
c7b4febae3 | ||
|
|
4d91a7762e | ||
|
|
272a4bbe61 | ||
|
|
b7f674c51a | ||
|
|
14f90b9519 | ||
|
|
2f458e8573 | ||
|
|
3619eb1378 | ||
|
|
9bd626315e | ||
|
|
d3c0296a87 | ||
|
|
e397e4d159 | ||
|
|
93c29bd388 | ||
|
|
7985a808bf | ||
|
|
aced860d52 | ||
|
|
c1bb7b00c1 | ||
|
|
856b68a34d | ||
|
|
1940bd4dce | ||
|
|
d402d3c5a6 | ||
|
|
dcce487934 | ||
|
|
53ca7f6a2f | ||
|
|
c3e24c1228 | ||
|
|
6307293469 | ||
|
|
0d0679de1b | ||
|
|
09214d1c33 | ||
|
|
914a536d82 | ||
|
|
5a085f7927 | ||
|
|
0595619d39 | ||
|
|
776c9a2cad | ||
|
|
36dabd792e | ||
|
|
ec90ac99cf | ||
|
|
299007f08b | ||
|
|
49578bb144 | ||
|
|
ead5e607fa | ||
|
|
5c3c6cd7c0 | ||
|
|
818b29386e | ||
|
|
c0f78df48d | ||
|
|
c58852a67b | ||
|
|
bca1d55280 | ||
|
|
45a362c285 | ||
|
|
355f467465 | ||
|
|
871630be88 | ||
|
|
8b813ccb43 | ||
|
|
59ac38a3da | ||
|
|
80b65b1651 | ||
|
|
7dede861e1 | ||
|
|
514b8e1776 | ||
|
|
79d643775d | ||
|
|
945ad6792f | ||
|
|
7c235566c4 | ||
|
|
d3e178becc | ||
|
|
bc432d5e52 | ||
|
|
fa10801d72 | ||
|
|
87c8478c80 | ||
|
|
535837e017 | ||
|
|
20f6383528 | ||
|
|
26fd460670 | ||
|
|
20d7264e4b | ||
|
|
3ce2159a95 | ||
|
|
968d44e4be | ||
|
|
f46d445ba2 | ||
|
|
1b0a39cd1a | ||
|
|
cb2653aee0 | ||
|
|
34445dcc68 | ||
|
|
54abcdceeb | ||
|
|
cf7554a938 | ||
|
|
fb72b3b859 | ||
|
|
03cfa61ae8 | ||
|
|
4badabce4b | ||
|
|
3cb2b365c5 | ||
|
|
178cfb1084 | ||
|
|
920df5d2d4 | ||
|
|
7b57561160 | ||
|
|
d2a41b8486 | ||
|
|
aa63151815 | ||
|
|
ba6edd42c1 | ||
|
|
7616c4ce7d | ||
|
|
925b3d2a5b | ||
|
|
b8d0fd059b | ||
|
|
a19432541e | ||
|
|
b52299872a | ||
|
|
699b863588 | ||
|
|
bdbbf94326 | ||
|
|
cdf3e101a8 | ||
|
|
06500e5f71 | ||
|
|
9de17aa206 | ||
|
|
279626a3e3 | ||
|
|
721e333a20 | ||
|
|
499730c458 | ||
|
|
baa8cf3dd0 | ||
|
|
f649b5b037 | ||
|
|
afa677b9a0 | ||
|
|
6fe884bb8a | ||
|
|
00af144085 | ||
|
|
5d893397c4 | ||
|
|
42c67cfeb7 | ||
|
|
b714c67374 | ||
|
|
00cb2f4659 | ||
|
|
24b6603c42 | ||
|
|
a82e50c07f | ||
|
|
ebc77fbd09 | ||
|
|
96457d8011 | ||
|
|
3d9f61f041 | ||
|
|
f48701544e | ||
|
|
50cf9678cb | ||
|
|
c4119f4f93 | ||
|
|
cafe74fc89 | ||
|
|
2466389397 | ||
|
|
dd3ee2a603 | ||
|
|
8e17c1dfd5 | ||
|
|
9bd0174205 | ||
|
|
522dad95be | ||
|
|
87c4839fed | ||
|
|
22b6425bac | ||
|
|
5ba92fe274 | ||
|
|
91939d67ed | ||
|
|
d0caf21b2d | ||
|
|
0d18f3cc5d | ||
|
|
a3507bf611 | ||
|
|
62bc20a181 | ||
|
|
9ded88105b | ||
|
|
aec618793f | ||
|
|
fe33906ef0 | ||
|
|
6a17bad96e | ||
|
|
4f9fa5d66e | ||
|
|
0d7c4ae6c7 | ||
|
|
2608a323eb | ||
|
|
8d612aefdd | ||
|
|
ad96c48034 | ||
|
|
12e153ecff | ||
|
|
db35bc36aa | ||
|
|
af34fbbca3 | ||
|
|
8239275edb | ||
|
|
be6509a17f | ||
|
|
01e1133219 | ||
|
|
f04527ae32 | ||
|
|
98872bbe7c | ||
|
|
bc8b72e6eb | ||
|
|
127d547632 | ||
|
|
53755d87c8 | ||
|
|
289bec0fd5 | ||
|
|
8bd1fa50dc | ||
|
|
81af6bdd48 | ||
|
|
a5a2c718b1 | ||
|
|
6b67a3f3c2 | ||
|
|
1cea80a3ab | ||
|
|
b6a202f525 | ||
|
|
7b109506c8 | ||
|
|
c277370e48 | ||
|
|
f83443feac | ||
|
|
8529ad13d6 | ||
|
|
8deedf93a2 | ||
|
|
bdcfa75220 | ||
|
|
20d39588b5 | ||
|
|
67f3d58f71 | ||
|
|
bbfb855c2e | ||
|
|
6a63a45968 | ||
|
|
70d2d4b7a1 | ||
|
|
6aa21b3db6 | ||
|
|
ff32317f5b | ||
|
|
df6436a12c | ||
|
|
0200bc1b4e | ||
|
|
bd750a21e2 | ||
|
|
8c3782c1e2 | ||
|
|
2f2a257745 | ||
|
|
ab7d2d64e7 | ||
|
|
bc18501b59 | ||
|
|
0a5ce6d740 | ||
|
|
622d4a2d50 | ||
|
|
0cff397111 | ||
|
|
fbf4486d92 | ||
|
|
2714e0939f | ||
|
|
bde6f8d2b8 | ||
|
|
4194f9f20f | ||
|
|
2c6e7ef489 | ||
|
|
cc5be5eb15 | ||
|
|
be8efe1bc7 | ||
|
|
db3c06ecd0 | ||
|
|
947b48bcf9 | ||
|
|
bed6cc7d67 | ||
|
|
63cb0eb3db | ||
|
|
89c7310a53 | ||
|
|
f244293cac | ||
|
|
3994f0dbc6 | ||
|
|
66bb7ad6ba | ||
|
|
84928ac99c | ||
|
|
6b4ec343a7 | ||
|
|
3ff85e9507 | ||
|
|
cd09cf3874 | ||
|
|
9ce79b0795 | ||
|
|
e2f964ae73 | ||
|
|
2aca526d4e | ||
|
|
0aa9f26d51 | ||
|
|
9e820a602b | ||
|
|
d38c513512 | ||
|
|
83b2a5d305 | ||
|
|
bcc282016e | ||
|
|
cdc99ac29c | ||
|
|
cf4eed0129 | ||
|
|
70306de1b1 | ||
|
|
a1a5ada68f | ||
|
|
9233069065 | ||
|
|
e5103c32f3 | ||
|
|
cadeb9654c | ||
|
|
2ed8df0d1f | ||
|
|
3636744d4f | ||
|
|
8ce7c3920c | ||
|
|
470c056b8d | ||
|
|
fd3ce5f668 | ||
|
|
f42246f171 | ||
|
|
599f5978c9 | ||
|
|
042698b508 | ||
|
|
a1ad735822 | ||
|
|
3f6bf2452a | ||
|
|
886d648568 | ||
|
|
dd299bf769 | ||
|
|
f3930ad69c | ||
|
|
b0394f1560 | ||
|
|
327403b3c9 | ||
|
|
6cd13efd48 | ||
|
|
6947f8ebc2 | ||
|
|
0623dd5b7f | ||
|
|
99ccdf4584 | ||
|
|
a332b82df5 | ||
|
|
7f5f4df562 | ||
|
|
2b4dfba2ff | ||
|
|
260080164f | ||
|
|
3f7ff22280 | ||
|
|
51c1a863f8 | ||
|
|
823b4fa61b | ||
|
|
c3f9cf41d5 | ||
|
|
ecb845f1cd | ||
|
|
0737e62161 | ||
|
|
39ee69910e | ||
|
|
2ab0facf3a | ||
|
|
6bff3e3163 | ||
|
|
ec606c89d2 | ||
|
|
9e0f1240c5 | ||
|
|
199fdb090d | ||
|
|
d6a44b67a3 | ||
|
|
2e7efe2dc0 | ||
|
|
639fd4be20 | ||
|
|
75ff9fb6c0 | ||
|
|
57c956716e | ||
|
|
cfa6f0a8a6 | ||
|
|
0961b0426b | ||
|
|
cf5fa875aa | ||
|
|
a812c6e386 | ||
|
|
dfbb6e1fba | ||
|
|
31975e0042 | ||
|
|
38ef4fa609 | ||
|
|
7f66df78ff | ||
|
|
96dc489ba8 | ||
|
|
34a7fc6084 | ||
|
|
41575b8012 | ||
|
|
cb5b95add2 | ||
|
|
372553d9da | ||
|
|
747ec243ff | ||
|
|
1bc2700137 | ||
|
|
4ee277f41b | ||
|
|
894588db54 | ||
|
|
68bcbff753 | ||
|
|
d4baf515ed | ||
|
|
d5c31ed07f | ||
|
|
9b6c59e9a6 | ||
|
|
ec0769d7ca | ||
|
|
93f5e736e7 | ||
|
|
c4058c4662 | ||
|
|
f59b84e63b | ||
|
|
c17844b815 | ||
|
|
c761bbe2ed | ||
|
|
279f32080d | ||
|
|
06a0d21734 | ||
|
|
d8513b23c2 | ||
|
|
49b4e86091 | ||
|
|
f522a96064 | ||
|
|
8f9d88f25b | ||
|
|
e88f8ad4e9 | ||
|
|
0480bf023d | ||
|
|
e3c1906eaf | ||
|
|
45f29f6425 | ||
|
|
f4c7a269bd | ||
|
|
46b2c9e24c | ||
|
|
f46864fff5 | ||
|
|
5bc408fa75 | ||
|
|
921ff6ae39 | ||
|
|
b9e72fb676 | ||
|
|
1258c16e2b | ||
|
|
35eb3aee35 | ||
|
|
12016bd0f8 | ||
|
|
3817ba642d | ||
|
|
d6ef67e817 | ||
|
|
a51a5e969f | ||
|
|
ae9d0f8288 | ||
|
|
b26b620548 | ||
|
|
d21fb85d94 | ||
|
|
bcd86d5861 | ||
|
|
5417b8c4d7 | ||
|
|
2744671211 | ||
|
|
88ffb2ad12 | ||
|
|
aa27305134 | ||
|
|
a186b6f978 | ||
|
|
e55e7ab31b | ||
|
|
e1dfb621f5 | ||
|
|
bd552aedde | ||
|
|
3f89d2d0fa | ||
|
|
c999d82a23 | ||
|
|
118b841aa2 | ||
|
|
ca1daf5a4e | ||
|
|
5e9dae8fb4 | ||
|
|
d00a82e9e9 | ||
|
|
3307604130 | ||
|
|
1ff8d225d9 | ||
|
|
489509c810 | ||
|
|
aa6e02ce8e | ||
|
|
df8ff9eb26 | ||
|
|
e051eb7d90 | ||
|
|
75b9de222e | ||
|
|
5a45fffa9e | ||
|
|
5252328dd9 | ||
|
|
a763610db1 | ||
|
|
c43cd325ca | ||
|
|
e9ba7f3d70 | ||
|
|
68809f9333 | ||
|
|
42b8b86e52 | ||
|
|
69c0b5e031 | ||
|
|
30997f3f24 | ||
|
|
bea8730a47 | ||
|
|
c3254bc981 | ||
|
|
e43a190dab | ||
|
|
4836cf83e2 | ||
|
|
44678b2ea2 | ||
|
|
70a120d4a6 | ||
|
|
28212f08b2 | ||
|
|
9bb600299f | ||
|
|
9db887748b | ||
|
|
800bc639f9 | ||
|
|
dc8e84fcb7 | ||
|
|
ad4e7ccb17 | ||
|
|
4654f6b971 | ||
|
|
6f23aeabb4 | ||
|
|
21eae0135d | ||
|
|
470beabf17 | ||
|
|
523eae83ff | ||
|
|
ca0c352278 | ||
|
|
0dc8de9dd2 | ||
|
|
b5225f5ca8 | ||
|
|
1a8d6811b7 | ||
|
|
d56eec40c9 | ||
|
|
b72d7f1447 | ||
|
|
ecad2bf7a8 | ||
|
|
f67e216b3a | ||
|
|
8b3bfa6805 | ||
|
|
01fa82fac1 | ||
|
|
d5b526914b | ||
|
|
5c66bc6dbc | ||
|
|
1eab3ecbb2 | ||
|
|
280bbde329 | ||
|
|
dd451800c7 | ||
|
|
190ced7cdd | ||
|
|
7a62a86baf | ||
|
|
1086c51019 | ||
|
|
daa79a8612 | ||
|
|
441d9078fa | ||
|
|
f0ab607ea1 | ||
|
|
afaf5b23c9 | ||
|
|
f68d48fcd3 | ||
|
|
10891081ca | ||
|
|
ecba4f71ea | ||
|
|
e003889171 | ||
|
|
1f41daf433 | ||
|
|
a2cbc2deb5 | ||
|
|
dea08ed4f8 | ||
|
|
d1bc053a9c | ||
|
|
73c30716dc | ||
|
|
8ad34e2db9 | ||
|
|
b26a32b93a | ||
|
|
f54122b90e | ||
|
|
828fc9dcd0 | ||
|
|
f0d512edf0 | ||
|
|
2758e586bd | ||
|
|
68bcfe1c8c | ||
|
|
dbd63e6fe7 | ||
|
|
a01bbd4b9c | ||
|
|
8e8e31fb9f | ||
|
|
6d3d3322e5 | ||
|
|
d02ce5dbf3 | ||
|
|
32f290dc13 | ||
|
|
1d685df928 | ||
|
|
4882f70557 | ||
|
|
7eafd51a7d | ||
|
|
e6fa9b8a85 | ||
|
|
1a54d590e1 | ||
|
|
d72d245523 | ||
|
|
7b054440ca | ||
|
|
6ed8a7624d | ||
|
|
e3a05625b2 | ||
|
|
9acb10f781 | ||
|
|
8487221654 | ||
|
|
6780a16ce9 | ||
|
|
92aa682bc5 | ||
|
|
405b4a9007 | ||
|
|
0c20092644 | ||
|
|
758d461823 | ||
|
|
29c4ed20ce | ||
|
|
fa59382215 | ||
|
|
02ba92c6b5 | ||
|
|
e58d9c7008 | ||
|
|
ac163a59e8 | ||
|
|
175e86078c | ||
|
|
3b255561b7 | ||
|
|
59379b14fa | ||
|
|
5af30086c0 | ||
|
|
b342f6db67 | ||
|
|
5d3dda1a17 | ||
|
|
70ed6e6ad3 | ||
|
|
8d031afa94 | ||
|
|
a42ba1a310 | ||
|
|
b4b524deae |
52
bld-languages.sh
Normal file
52
bld-languages.sh
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Abbreviated version of bld.sh for quicker builds
|
||||
|
||||
# Set up the build output directory
|
||||
|
||||
if [ -z "$TW5_BUILD_OUTPUT" ]; then
|
||||
TW5_BUILD_OUTPUT=../jermolene.github.com
|
||||
fi
|
||||
|
||||
if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
|
||||
echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
|
||||
|
||||
# Make the CNAME file that GitHub Pages requires
|
||||
|
||||
echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
|
||||
|
||||
# The tw5.com wiki
|
||||
# index.html: the main file, including content
|
||||
|
||||
node ./tiddlywiki.js \
|
||||
./editions/de-AT-DE \
|
||||
--verbose \
|
||||
--rendertiddler $:/core/save/all $TW5_BUILD_OUTPUT/de-AT-DE.html text/plain \
|
||||
--savetiddler $:/favicon.ico $TW5_BUILD_OUTPUT/favicon.ico \
|
||||
|| exit 1
|
||||
|
||||
node ./tiddlywiki.js \
|
||||
./editions/zh-Hant \
|
||||
--verbose \
|
||||
--rendertiddler $:/core/save/all $TW5_BUILD_OUTPUT/zh-Hant.html text/plain \
|
||||
--savetiddler $:/favicon.ico $TW5_BUILD_OUTPUT/favicon.ico \
|
||||
|| exit 1
|
||||
|
||||
node ./tiddlywiki.js \
|
||||
./editions/zh-Hans \
|
||||
--verbose \
|
||||
--rendertiddler $:/core/save/all $TW5_BUILD_OUTPUT/zh-Hans.html text/plain \
|
||||
--savetiddler $:/favicon.ico $TW5_BUILD_OUTPUT/favicon.ico \
|
||||
|| exit 1
|
||||
|
||||
node ./tiddlywiki.js \
|
||||
./editions/fr-FR \
|
||||
--verbose \
|
||||
--rendertiddler $:/core/save/all $TW5_BUILD_OUTPUT/fr-FR.html text/plain \
|
||||
--savetiddler $:/favicon.ico $TW5_BUILD_OUTPUT/favicon.ico \
|
||||
|| exit 1
|
||||
|
||||
@@ -19,8 +19,6 @@ Error message and password prompt
|
||||
left: 50%;
|
||||
margin-left: -144px; /* - width/2 - paddingHorz/2 - border */
|
||||
padding: 16px 16px 16px 16px;
|
||||
-webkit-border-radius: 8px;
|
||||
-moz-border-radius: 8px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
|
||||
526
boot/boot.js
526
boot/boot.js
@@ -32,8 +32,8 @@ if(!$tw) {
|
||||
$tw = require("./bootprefix.js").bootprefix();
|
||||
}
|
||||
|
||||
$tw.utils = $tw.utils || {};
|
||||
$tw.boot = $tw.boot || {};
|
||||
$tw.utils = $tw.utils || Object.create(null);
|
||||
$tw.boot = $tw.boot || Object.create(null);
|
||||
|
||||
/////////////////////////// Standard node.js libraries
|
||||
|
||||
@@ -73,13 +73,11 @@ Iterate through all the own properties of an object or array. Callback is invoke
|
||||
$tw.utils.each = function(object,callback) {
|
||||
var f;
|
||||
if(object) {
|
||||
if($tw.utils.isArray(object)) {
|
||||
for(f=0; f<object.length; f++) {
|
||||
callback(object[f],f,object);
|
||||
}
|
||||
if(Object.prototype.toString.call(object) == "[object Array]") {
|
||||
object.forEach(callback);
|
||||
} else {
|
||||
for(f in object) {
|
||||
if($tw.utils.hop(object,f)) {
|
||||
if(Object.prototype.hasOwnProperty.call(object,f)) {
|
||||
callback(object[f],f,object);
|
||||
}
|
||||
}
|
||||
@@ -107,7 +105,7 @@ $tw.utils.domMaker = function(tag,options) {
|
||||
element.className = options["class"];
|
||||
}
|
||||
if(options.text) {
|
||||
element.appendChild(document.createTextNode(options.text));
|
||||
element.appendChild(doc.createTextNode(options.text));
|
||||
}
|
||||
$tw.utils.each(options.children,function(child) {
|
||||
element.appendChild(child);
|
||||
@@ -201,7 +199,7 @@ $tw.utils.deepDefaults = function(object /*, sourceObjectList */) {
|
||||
Convert "&" to &, " " to nbsp, "<" to <, ">" to > and """ to "
|
||||
*/
|
||||
$tw.utils.htmlDecode = function(s) {
|
||||
return s.toString().replace(/</mg,"<").replace(/ /mg,"\x40").replace(/>/mg,">").replace(/"/mg,"\"").replace(/&/mg,"&");
|
||||
return s.toString().replace(/</mg,"<").replace(/ /mg,"\xA0").replace(/>/mg,">").replace(/"/mg,"\"").replace(/&/mg,"&");
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -282,7 +280,7 @@ $tw.utils.parseStringArray = function(value) {
|
||||
|
||||
// Parse a block of name:value fields. The `fields` object is used as the basis for the return value
|
||||
$tw.utils.parseFields = function(text,fields) {
|
||||
fields = fields || {};
|
||||
fields = fields || Object.create(null);
|
||||
text.split(/\r?\n/mg).forEach(function(line) {
|
||||
if(line.charAt(0) !== "#") {
|
||||
var p = line.indexOf(":");
|
||||
@@ -357,8 +355,13 @@ $tw.utils.parseVersion = function(version) {
|
||||
Returns true if the version string A is greater than the version string B
|
||||
*/
|
||||
$tw.utils.checkVersions = function(versionStringA,versionStringB) {
|
||||
var versionA = $tw.utils.parseVersion(versionStringA),
|
||||
versionB = $tw.utils.parseVersion(versionStringB),
|
||||
var defaultVersion = {
|
||||
major: 0,
|
||||
minor: 0,
|
||||
patch: 0
|
||||
},
|
||||
versionA = $tw.utils.parseVersion(versionStringA) || defaultVersion,
|
||||
versionB = $tw.utils.parseVersion(versionStringB) || defaultVersion,
|
||||
diff = [
|
||||
versionA.major - versionB.major,
|
||||
versionA.minor - versionB.minor,
|
||||
@@ -371,17 +374,32 @@ $tw.utils.checkVersions = function(versionStringA,versionStringB) {
|
||||
|
||||
/*
|
||||
Register file type information
|
||||
options: {flags: flags,deserializerType: deserializerType}
|
||||
flags:"image" for image types
|
||||
deserializerType: defaults to type if not specified
|
||||
*/
|
||||
$tw.utils.registerFileType = function(type,encoding,extension) {
|
||||
$tw.config.fileExtensionInfo[extension] = {type: type};
|
||||
$tw.config.contentTypeInfo[type] = {encoding: encoding, extension: extension};
|
||||
$tw.utils.registerFileType = function(type,encoding,extension,options) {
|
||||
options = options || {};
|
||||
$tw.config.fileExtensionInfo[extension] = {type: type};
|
||||
$tw.config.contentTypeInfo[type] = {encoding: encoding, extension: extension, flags: options.flags || [], deserializerType: options.deserializerType || type};
|
||||
};
|
||||
|
||||
/*
|
||||
Given an extension, get the correct encoding for that file.
|
||||
defaults to utf8
|
||||
*/
|
||||
$tw.utils.getTypeEncoding = function(ext) {
|
||||
var extensionInfo = $tw.config.fileExtensionInfo[ext],
|
||||
type = extensionInfo ? extensionInfo.type : null,
|
||||
typeInfo = type ? $tw.config.contentTypeInfo[type] : null;
|
||||
return typeInfo ? typeInfo.encoding : "utf8";
|
||||
};
|
||||
|
||||
/*
|
||||
Run code globally with specified context variables in scope
|
||||
*/
|
||||
$tw.utils.evalGlobal = function(code,context,filename) {
|
||||
var contextCopy = $tw.utils.extend({},context);
|
||||
var contextCopy = $tw.utils.extend(Object.create(null),context);
|
||||
// Get the context variables as a pair of arrays of names and values
|
||||
var contextNames = [], contextValues = [];
|
||||
$tw.utils.each(contextCopy,function(value,name) {
|
||||
@@ -393,7 +411,7 @@ $tw.utils.evalGlobal = function(code,context,filename) {
|
||||
// Compile the code into a function
|
||||
var fn;
|
||||
if($tw.browser) {
|
||||
fn = window["eval"](code);
|
||||
fn = window["eval"](code + "\n\n//# sourceURL=" + filename);
|
||||
} else {
|
||||
fn = vm.runInThisContext(code,filename);
|
||||
}
|
||||
@@ -405,7 +423,7 @@ $tw.utils.evalGlobal = function(code,context,filename) {
|
||||
Run code in a sandbox with only the specified context variables in scope
|
||||
*/
|
||||
$tw.utils.evalSandboxed = $tw.browser ? $tw.utils.evalGlobal : function(code,context,filename) {
|
||||
var sandbox = $tw.utils.extend({},context);
|
||||
var sandbox = $tw.utils.extend(Object.create(null),context);
|
||||
vm.runInNewContext(code,sandbox,filename);
|
||||
return sandbox.exports;
|
||||
};
|
||||
@@ -555,8 +573,12 @@ $tw.utils.Crypto = function() {
|
||||
this.updateCryptoStateTiddler();
|
||||
};
|
||||
this.updateCryptoStateTiddler = function() {
|
||||
if($tw.wiki && $tw.wiki.addTiddler) {
|
||||
$tw.wiki.addTiddler(new $tw.Tiddler({title: "$:/isEncrypted", text: currentPassword ? "yes" : "no"}));
|
||||
if($tw.wiki) {
|
||||
var state = currentPassword ? "yes" : "no",
|
||||
tiddler = $tw.wiki.getTiddler("$:/isEncrypted");
|
||||
if(!tiddler || tiddler.fields.text !== state) {
|
||||
$tw.wiki.addTiddler(new $tw.Tiddler({title: "$:/isEncrypted", text: state}));
|
||||
}
|
||||
}
|
||||
};
|
||||
this.hasPassword = function() {
|
||||
@@ -664,7 +686,7 @@ Apply a callback to each module of a particular type
|
||||
*/
|
||||
$tw.modules.forEachModuleOfType = function(moduleType,callback) {
|
||||
var modules = $tw.modules.types[moduleType];
|
||||
$tw.utils.each(modules,function(element,title,object) {
|
||||
$tw.utils.each(modules,function(element,title) {
|
||||
callback(title,$tw.modules.execute(title));
|
||||
});
|
||||
};
|
||||
@@ -674,7 +696,7 @@ Get all the modules of a particular type in a hashmap by their `name` field
|
||||
*/
|
||||
$tw.modules.getModulesByTypeAsHashmap = function(moduleType,nameField) {
|
||||
nameField = nameField || "name";
|
||||
var results = {};
|
||||
var results = Object.create(null);
|
||||
$tw.modules.forEachModuleOfType(moduleType,function(title,module) {
|
||||
results[module[nameField]] = module;
|
||||
});
|
||||
@@ -686,7 +708,7 @@ Apply the exports of the modules of a particular type to a target object
|
||||
*/
|
||||
$tw.modules.applyMethods = function(moduleType,targetObject) {
|
||||
if(!targetObject) {
|
||||
targetObject = {};
|
||||
targetObject = Object.create(null);
|
||||
}
|
||||
$tw.modules.forEachModuleOfType(moduleType,function(title,module) {
|
||||
$tw.utils.each(module,function(element,title,object) {
|
||||
@@ -700,7 +722,7 @@ $tw.modules.applyMethods = function(moduleType,targetObject) {
|
||||
Return an array of classes created from the modules of a specified type. Each module should export the properties to be added to those of the optional base class
|
||||
*/
|
||||
$tw.modules.createClassesFromModules = function(moduleType,subType,baseClass) {
|
||||
var classes = {};
|
||||
var classes = Object.create(null);
|
||||
$tw.modules.forEachModuleOfType(moduleType,function(title,moduleExports) {
|
||||
if(!subType || moduleExports.types[subType]) {
|
||||
var newClass = function() {};
|
||||
@@ -722,7 +744,7 @@ Construct a tiddler object from a hashmap of tiddler fields. If multiple hasmaps
|
||||
taking precedence to the right
|
||||
*/
|
||||
$tw.Tiddler = function(/* [fields,] fields */) {
|
||||
this.fields = {};
|
||||
this.fields = Object.create(null);
|
||||
for(var c=0; c<arguments.length; c++) {
|
||||
var arg = arguments[c],
|
||||
src = (arg instanceof $tw.Tiddler) ? arg.fields : arg;
|
||||
@@ -733,15 +755,23 @@ $tw.Tiddler = function(/* [fields,] fields */) {
|
||||
}
|
||||
} else {
|
||||
// Parse the field with the associated field module (if any)
|
||||
var fieldModule = $tw.Tiddler.fieldModules[t];
|
||||
var fieldModule = $tw.Tiddler.fieldModules[t],
|
||||
value;
|
||||
if(fieldModule && fieldModule.parse) {
|
||||
this.fields[t] = fieldModule.parse.call(this,src[t]);
|
||||
value = fieldModule.parse.call(this,src[t]);
|
||||
} else {
|
||||
this.fields[t] = src[t];
|
||||
value = src[t];
|
||||
}
|
||||
// Freeze the field to keep it immutable
|
||||
if(typeof value === "object") {
|
||||
Object.freeze(value);
|
||||
}
|
||||
this.fields[t] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Freeze the tiddler against modification
|
||||
Object.freeze(this.fields);
|
||||
};
|
||||
|
||||
$tw.Tiddler.prototype.hasField = function(field) {
|
||||
@@ -780,115 +810,206 @@ $tw.modules.define("$:/boot/tiddlerfields/list","tiddlerfield",{
|
||||
/////////////////////////// Barebones wiki store
|
||||
|
||||
/*
|
||||
Construct a wiki store object
|
||||
Wiki constructor. State is stored in private members that only a small number of privileged accessor methods have direct access. Methods added via the prototype have to use these accessors and cannot access the state data directly.
|
||||
options include:
|
||||
shadowTiddlers: Array of shadow tiddlers to be added
|
||||
*/
|
||||
$tw.Wiki = function() {
|
||||
this.tiddlers = {};
|
||||
this.plugins = []; // Array of registered plugins, ordered by priority
|
||||
this.shadowTiddlers = {}; // Hashmap by title of {source:, tiddler:}
|
||||
$tw.Wiki = function(options) {
|
||||
options = options || {};
|
||||
var self = this,
|
||||
tiddlers = Object.create(null), // Hashmap of tiddlers
|
||||
pluginTiddlers = [], // Array of tiddlers containing registered plugins, ordered by priority
|
||||
pluginInfo = Object.create(null), // Hashmap of parsed plugin content
|
||||
shadowTiddlers = options.shadowTiddlers || Object.create(null); // Hashmap by title of {source:, tiddler:}
|
||||
|
||||
// Add a tiddler to the store
|
||||
this.addTiddler = function(tiddler) {
|
||||
if(!(tiddler instanceof $tw.Tiddler)) {
|
||||
tiddler = new $tw.Tiddler(tiddler);
|
||||
}
|
||||
// Save the tiddler
|
||||
if(tiddler) {
|
||||
var title = tiddler.fields.title;
|
||||
if(title) {
|
||||
tiddlers[title] = tiddler;
|
||||
this.clearCache(title);
|
||||
this.clearGlobalCache();
|
||||
this.enqueueTiddlerEvent(title);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Delete a tiddler
|
||||
this.deleteTiddler = function(title) {
|
||||
delete tiddlers[title];
|
||||
this.clearCache(title);
|
||||
this.clearGlobalCache();
|
||||
this.enqueueTiddlerEvent(title,true);
|
||||
};
|
||||
|
||||
// Get a tiddler from the store
|
||||
this.getTiddler = function(title) {
|
||||
var t = tiddlers[title];
|
||||
if(t instanceof $tw.Tiddler) {
|
||||
return t;
|
||||
} else if(title !== undefined && Object.prototype.hasOwnProperty.call(shadowTiddlers,title)) {
|
||||
return shadowTiddlers[title].tiddler;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
};
|
||||
|
||||
// Get an array of all tiddler titles
|
||||
this.allTitles = function() {
|
||||
return Object.keys(tiddlers);
|
||||
};
|
||||
|
||||
// Iterate through all tiddler titles
|
||||
this.each = function(callback) {
|
||||
for(var title in tiddlers) {
|
||||
callback(tiddlers[title],title);
|
||||
}
|
||||
};
|
||||
|
||||
// Get an array of all shadow tiddler titles
|
||||
this.allShadowTitles = function() {
|
||||
return Object.keys(shadowTiddlers);
|
||||
};
|
||||
|
||||
// Iterate through all shadow tiddler titles
|
||||
this.eachShadow = function(callback) {
|
||||
for(var title in shadowTiddlers) {
|
||||
var shadowInfo = shadowTiddlers[title];
|
||||
callback(shadowInfo.tiddler,title);
|
||||
}
|
||||
};
|
||||
|
||||
// Test for the existence of a tiddler
|
||||
this.tiddlerExists = function(title) {
|
||||
return !!$tw.utils.hop(tiddlers,title);
|
||||
};
|
||||
|
||||
// Determines if a tiddler is a shadow tiddler, regardless of whether it has been overridden by a real tiddler
|
||||
this.isShadowTiddler = function(title) {
|
||||
return $tw.utils.hop(shadowTiddlers,title);
|
||||
};
|
||||
|
||||
this.getShadowSource = function(title) {
|
||||
if($tw.utils.hop(shadowTiddlers,title)) {
|
||||
return shadowTiddlers[title].source;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
// Read plugin info for all plugins
|
||||
this.readPluginInfo = function() {
|
||||
for(var title in tiddlers) {
|
||||
var tiddler = tiddlers[title];
|
||||
if(tiddler.fields.type === "application/json" && tiddler.hasField("plugin-type")) {
|
||||
pluginInfo[tiddler.fields.title] = JSON.parse(tiddler.fields.text);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
// Get plugin info for a plugin
|
||||
this.getPluginInfo = function(title) {
|
||||
return pluginInfo[title];
|
||||
};
|
||||
|
||||
// Register the plugin tiddlers of a particular type, optionally restricting registration to an array of tiddler titles. Return the array of titles affected
|
||||
this.registerPluginTiddlers = function(pluginType,titles) {
|
||||
var self = this,
|
||||
registeredTitles = [],
|
||||
checkTiddler = function(tiddler) {
|
||||
if(tiddler && tiddler.fields.type === "application/json" && tiddler.fields["plugin-type"] === pluginType) {
|
||||
pluginTiddlers.push(tiddler);
|
||||
registeredTitles.push(tiddler.fields.title);
|
||||
}
|
||||
};
|
||||
if(titles) {
|
||||
$tw.utils.each(titles,function(title) {
|
||||
checkTiddler(self.getTiddler(title));
|
||||
});
|
||||
} else {
|
||||
this.each(function(tiddler,title) {
|
||||
checkTiddler(tiddler);
|
||||
});
|
||||
}
|
||||
return registeredTitles;
|
||||
};
|
||||
|
||||
// Unregister the plugin tiddlers of a particular type, returning an array of the titles affected
|
||||
this.unregisterPluginTiddlers = function(pluginType) {
|
||||
var self = this,
|
||||
titles = [];
|
||||
// Remove any previous registered plugins of this type
|
||||
for(var t=pluginTiddlers.length-1; t>=0; t--) {
|
||||
var tiddler = pluginTiddlers[t];
|
||||
if(tiddler.fields["plugin-type"] === pluginType) {
|
||||
titles.push(tiddler.fields.title);
|
||||
pluginTiddlers.splice(t,1);
|
||||
}
|
||||
}
|
||||
return titles;
|
||||
};
|
||||
|
||||
// Unpack the currently registered plugins, creating shadow tiddlers for their constituent tiddlers
|
||||
this.unpackPluginTiddlers = function() {
|
||||
var self = this;
|
||||
// Sort the plugin titles by the `plugin-priority` field
|
||||
pluginTiddlers.sort(function(a,b) {
|
||||
if("plugin-priority" in a.fields && "plugin-priority" in b.fields) {
|
||||
return a.fields["plugin-priority"] - b.fields["plugin-priority"];
|
||||
} else if("plugin-priority" in a.fields) {
|
||||
return -1;
|
||||
} else if("plugin-priority" in b.fields) {
|
||||
return +1;
|
||||
} else if(a.fields.title < b.fields.title) {
|
||||
return -1;
|
||||
} else if(a.fields.title === b.fields.title) {
|
||||
return 0;
|
||||
} else {
|
||||
return +1;
|
||||
}
|
||||
});
|
||||
// Now go through the plugins in ascending order and assign the shadows
|
||||
shadowTiddlers = Object.create(null);
|
||||
$tw.utils.each(pluginTiddlers,function(tiddler) {
|
||||
// Extract the constituent tiddlers
|
||||
if($tw.utils.hop(pluginInfo,tiddler.fields.title)) {
|
||||
$tw.utils.each(pluginInfo[tiddler.fields.title].tiddlers,function(constituentTiddler,constituentTitle) {
|
||||
// Save the tiddler object
|
||||
if(constituentTitle) {
|
||||
shadowTiddlers[constituentTitle] = {
|
||||
source: tiddler.fields.title,
|
||||
tiddler: new $tw.Tiddler(constituentTiddler,{title: constituentTitle})
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
$tw.Wiki.prototype.addTiddler = function(tiddler) {
|
||||
if(!(tiddler instanceof $tw.Tiddler)) {
|
||||
tiddler = new $tw.Tiddler(tiddler);
|
||||
}
|
||||
if(tiddler.fields.title) {
|
||||
this.tiddlers[tiddler.fields.title] = tiddler;
|
||||
}
|
||||
};
|
||||
// Dummy methods that will be filled in after boot
|
||||
$tw.Wiki.prototype.clearCache =
|
||||
$tw.Wiki.prototype.clearGlobalCache =
|
||||
$tw.Wiki.prototype.enqueueTiddlerEvent = function() {};
|
||||
|
||||
// Add an array of tiddlers
|
||||
$tw.Wiki.prototype.addTiddlers = function(tiddlers) {
|
||||
for(var t=0; t<tiddlers.length; t++) {
|
||||
this.addTiddler(tiddlers[t]);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Register the plugin tiddlers of a particular type, optionally restricting registration to an array of tiddler titles. Return the array of titles affected
|
||||
*/
|
||||
$tw.Wiki.prototype.registerPluginTiddlers = function(pluginType,titles) {
|
||||
var self = this,
|
||||
registeredTitles = [];
|
||||
// Go through the provided titles, or the entire tiddler list, looking for plugins of this type
|
||||
var checkTiddler = function(tiddler) {
|
||||
if(tiddler && tiddler.fields.type === "application/json" && tiddler.fields["plugin-type"] === pluginType) {
|
||||
self.plugins.push(tiddler);
|
||||
registeredTitles.push(tiddler.fields.title);
|
||||
}
|
||||
};
|
||||
if(titles) {
|
||||
$tw.utils.each(titles,function(title) {
|
||||
checkTiddler(self.getTiddler(title));
|
||||
});
|
||||
} else {
|
||||
$tw.utils.each(this.tiddlers,function(tiddler,title) {
|
||||
checkTiddler(tiddler);
|
||||
});
|
||||
}
|
||||
return registeredTitles;
|
||||
};
|
||||
|
||||
/*
|
||||
Unregister the plugin tiddlers of a particular type, returning an array of the titles affected
|
||||
*/
|
||||
$tw.Wiki.prototype.unregisterPluginTiddlers = function(pluginType) {
|
||||
var self = this,
|
||||
titles = [];
|
||||
// Remove any previous registered plugins of this type
|
||||
for(var t=this.plugins.length-1; t>=0; t--) {
|
||||
var tiddler = this.plugins[t];
|
||||
if(tiddler.fields["plugin-type"] === pluginType) {
|
||||
titles.push(tiddler.fields.title);
|
||||
this.plugins.splice(t,1);
|
||||
}
|
||||
}
|
||||
return titles;
|
||||
};
|
||||
|
||||
/*
|
||||
Unpack the currently registered plugins, creating shadow tiddlers for their constituent tiddlers
|
||||
*/
|
||||
$tw.Wiki.prototype.unpackPluginTiddlers = function() {
|
||||
var self = this;
|
||||
// Sort the plugin titles by the `plugin-priority` field
|
||||
this.plugins.sort(function(a,b) {
|
||||
if("plugin-priority" in a.fields && "plugin-priority" in b.fields) {
|
||||
return a.fields["plugin-priority"] - b.fields["plugin-priority"];
|
||||
} else if("plugin-priority" in a.fields) {
|
||||
return -1;
|
||||
} else if("plugin-priority" in b.fields) {
|
||||
return +1;
|
||||
} else if(a.fields.title < b.fields.title) {
|
||||
return -1;
|
||||
} else if(a.fields.title === b.fields.title) {
|
||||
return 0;
|
||||
} else {
|
||||
return +1;
|
||||
}
|
||||
});
|
||||
// Now go through the plugins in ascending order and assign the shadows
|
||||
this.shadowTiddlers = {};
|
||||
$tw.utils.each(this.plugins,function(tiddler) {
|
||||
// Get the plugin information
|
||||
var pluginInfo = JSON.parse(tiddler.fields.text);
|
||||
// Extract the constituent tiddlers
|
||||
$tw.utils.each(pluginInfo.tiddlers,function(constituentTiddler,constituentTitle) {
|
||||
// Save the tiddler object
|
||||
if(constituentTitle) {
|
||||
self.shadowTiddlers[constituentTitle] = {
|
||||
source: tiddler.fields.title,
|
||||
tiddler: new $tw.Tiddler(constituentTiddler,{title: constituentTitle})
|
||||
};
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
Define all modules stored in ordinary tiddlers
|
||||
*/
|
||||
$tw.Wiki.prototype.defineTiddlerModules = function() {
|
||||
$tw.utils.each(this.tiddlers,function(tiddler,title,object) {
|
||||
this.each(function(tiddler,title) {
|
||||
if(tiddler.hasField("module-type")) {
|
||||
switch (tiddler.fields.type) {
|
||||
case "application/javascript":
|
||||
@@ -913,40 +1034,32 @@ Register all the module tiddlers that have a module type
|
||||
*/
|
||||
$tw.Wiki.prototype.defineShadowModules = function() {
|
||||
var self = this;
|
||||
$tw.utils.each(this.shadowTiddlers,function(element,title) {
|
||||
var tiddler = self.getTiddler(title);
|
||||
if(!$tw.utils.hop(self.tiddlers,title)) { // Don't define the module if it is overidden by an ordinary tiddler
|
||||
if(tiddler.hasField("module-type")) {
|
||||
// Define the module
|
||||
$tw.modules.define(tiddler.fields.title,tiddler.fields["module-type"],tiddler.fields.text);
|
||||
}
|
||||
this.eachShadow(function(tiddler,title) {
|
||||
// Don't define the module if it is overidden by an ordinary tiddler
|
||||
if(!self.tiddlerExists(title) && tiddler.hasField("module-type")) {
|
||||
// Define the module
|
||||
$tw.modules.define(tiddler.fields.title,tiddler.fields["module-type"],tiddler.fields.text);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$tw.Wiki.prototype.getTiddler = function(title) {
|
||||
var t = this.tiddlers[title];
|
||||
if(t instanceof $tw.Tiddler) {
|
||||
return t;
|
||||
} else if(title !== undefined && $tw.utils.hop(this.shadowTiddlers,title)) {
|
||||
return this.shadowTiddlers[title].tiddler;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Extracts tiddlers from a typed block of text, specifying default field values
|
||||
*/
|
||||
$tw.Wiki.prototype.deserializeTiddlers = function(type,text,srcFields) {
|
||||
srcFields = srcFields || {};
|
||||
srcFields = srcFields || Object.create(null);
|
||||
var deserializer = $tw.Wiki.tiddlerDeserializerModules[type],
|
||||
fields = {};
|
||||
fields = Object.create(null);
|
||||
if(!deserializer && $tw.config.fileExtensionInfo[type]) {
|
||||
// If we didn't find the serializer, try converting it from an extension to a content type
|
||||
type = $tw.config.fileExtensionInfo[type].type;
|
||||
deserializer = $tw.Wiki.tiddlerDeserializerModules[type];
|
||||
}
|
||||
if(!deserializer && $tw.config.contentTypeInfo[type]) {
|
||||
// see if this type has a different deserializer registered with it
|
||||
type = $tw.config.contentTypeInfo[type].deserializerType;
|
||||
deserializer = $tw.Wiki.tiddlerDeserializerModules[type];
|
||||
}
|
||||
if(!deserializer) {
|
||||
// If we still don't have a deserializer, treat it as plain text
|
||||
deserializer = $tw.Wiki.tiddlerDeserializerModules["text/plain"];
|
||||
@@ -991,6 +1104,34 @@ $tw.modules.define("$:/boot/tiddlerdeserializer/tid","tiddlerdeserializer",{
|
||||
return [fields];
|
||||
}
|
||||
});
|
||||
$tw.modules.define("$:/boot/tiddlerdeserializer/tids","tiddlerdeserializer",{
|
||||
"application/x-tiddlers": function(text,fields) {
|
||||
var titles = [],
|
||||
tiddlers = [],
|
||||
match = /\r?\n\r?\n/mg.exec(text);
|
||||
if(match) {
|
||||
fields = $tw.utils.parseFields(text.substr(0,match.index),fields);
|
||||
var lines = text.substr(match.index + match[0].length).split(/\r?\n/mg);
|
||||
for(var t=0; t<lines.length; t++) {
|
||||
var line = lines[t];
|
||||
if(line.charAt(0) !== "#") {
|
||||
var colonPos= line.indexOf(": ");
|
||||
if(colonPos !== -1) {
|
||||
var tiddler = $tw.utils.extend(Object.create(null),fields);
|
||||
tiddler.title = (tiddler.title || "") + line.substr(0,colonPos);
|
||||
if(titles.indexOf(tiddler.title) !== -1) {
|
||||
console.log("Warning: .multids file contains multiple definitions for " + tiddler.title);
|
||||
}
|
||||
titles.push(tiddler.title);
|
||||
tiddler.text = line.substr(colonPos + 2);
|
||||
tiddlers.push(tiddler);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return tiddlers;
|
||||
}
|
||||
});
|
||||
$tw.modules.define("$:/boot/tiddlerdeserializer/txt","tiddlerdeserializer",{
|
||||
"text/plain": function(text,fields,type) {
|
||||
fields.text = text;
|
||||
@@ -1195,7 +1336,7 @@ $tw.loadTiddlersFromPath = function(filepath,excludeRegExp) {
|
||||
// Look for a tiddlywiki.files file
|
||||
if(files.indexOf("tiddlywiki.files") !== -1) {
|
||||
// If so, process the files it describes
|
||||
var filesInfo = JSON.parse(fs.readFileSync(filepath + "/tiddlywiki.files","utf8"));
|
||||
var filesInfo = JSON.parse(fs.readFileSync(filepath + path.sep + "tiddlywiki.files","utf8"));
|
||||
$tw.utils.each(filesInfo.tiddlers,function(tidInfo) {
|
||||
var typeInfo = $tw.config.contentTypeInfo[tidInfo.fields.type || "text/plain"],
|
||||
pathname = path.resolve(filepath,tidInfo.file),
|
||||
@@ -1213,7 +1354,7 @@ $tw.loadTiddlersFromPath = function(filepath,excludeRegExp) {
|
||||
// If not, read all the files in the directory
|
||||
$tw.utils.each(files,function(file) {
|
||||
if(!excludeRegExp.test(file)) {
|
||||
tiddlers.push.apply(tiddlers,$tw.loadTiddlersFromPath(filepath + "/" + file,excludeRegExp));
|
||||
tiddlers.push.apply(tiddlers,$tw.loadTiddlersFromPath(filepath + path.sep + file,excludeRegExp));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1234,20 +1375,20 @@ $tw.loadPluginFolder = function(filepath,excludeRegExp) {
|
||||
stat = fs.statSync(filepath);
|
||||
if(stat.isDirectory()) {
|
||||
// Read the plugin information
|
||||
pluginInfo = JSON.parse(fs.readFileSync(filepath + "/plugin.info","utf8"));
|
||||
pluginInfo = JSON.parse(fs.readFileSync(filepath + path.sep + "plugin.info","utf8"));
|
||||
// Read the plugin files
|
||||
files = fs.readdirSync(filepath);
|
||||
for(f=0; f<files.length; f++) {
|
||||
file = files[f];
|
||||
if(!excludeRegExp.test(file) && file !== "plugin.info" && file !== "tiddlywiki.files") {
|
||||
var tiddlerFiles = $tw.loadTiddlersFromPath(filepath + "/" + file,excludeRegExp);
|
||||
var tiddlerFiles = $tw.loadTiddlersFromPath(filepath + path.sep + file,excludeRegExp);
|
||||
$tw.utils.each(tiddlerFiles,function(tiddlerFile) {
|
||||
pluginTiddlers.push.apply(pluginTiddlers,tiddlerFile.tiddlers);
|
||||
});
|
||||
}
|
||||
}
|
||||
// Save the plugin tiddlers into the plugin info
|
||||
pluginInfo.tiddlers = pluginInfo.tiddlers || {};
|
||||
pluginInfo.tiddlers = pluginInfo.tiddlers || Object.create(null);
|
||||
for(t=0; t<pluginTiddlers.length; t++) {
|
||||
if(pluginTiddlers[t].title) {
|
||||
pluginInfo.tiddlers[pluginTiddlers[t].title] = pluginTiddlers[t];
|
||||
@@ -1256,7 +1397,7 @@ $tw.loadPluginFolder = function(filepath,excludeRegExp) {
|
||||
}
|
||||
}
|
||||
// Give the plugin the same version number as the core if it doesn't have one
|
||||
if(!("version" in pluginInfo)) {
|
||||
if(pluginInfo && !("version" in pluginInfo)) {
|
||||
pluginInfo.version = $tw.packageInfo.version;
|
||||
}
|
||||
// Save the plugin tiddler
|
||||
@@ -1279,20 +1420,6 @@ $tw.loadPluginFolder = function(filepath,excludeRegExp) {
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Fallback tiddlywiki.info content
|
||||
*/
|
||||
$tw.boot.defaultWikiInfo = {
|
||||
"plugins": [
|
||||
"tiddlywiki/tiddlyweb",
|
||||
"tiddlywiki/filesystem"
|
||||
],
|
||||
"themes": [
|
||||
"tiddlywiki/vanilla",
|
||||
"tiddlywiki/snowwhite"
|
||||
]
|
||||
};
|
||||
|
||||
/*
|
||||
path: path of wiki directory
|
||||
parentPaths: array of parent paths that we mustn't recurse into
|
||||
@@ -1306,7 +1433,7 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
|
||||
if(fs.existsSync(wikiInfoPath)) {
|
||||
wikiInfo = JSON.parse(fs.readFileSync(wikiInfoPath,"utf8"));
|
||||
} else {
|
||||
wikiInfo = $tw.boot.defaultWikiInfo;
|
||||
return null;
|
||||
}
|
||||
// Load any parent wikis
|
||||
if(wikiInfo.includeWikis) {
|
||||
@@ -1341,10 +1468,19 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
|
||||
}
|
||||
}
|
||||
}
|
||||
// Load any languages listed in the wiki info file
|
||||
if(wikiInfo.languages) {
|
||||
var languagesBasePath = path.resolve($tw.boot.corePath,$tw.config.languagesPath);
|
||||
for(var t=0; t<wikiInfo.languages.length; t++) {
|
||||
pluginFields = $tw.loadPluginFolder(path.resolve(languagesBasePath,"./" + wikiInfo.languages[t]));
|
||||
if(pluginFields) {
|
||||
$tw.wiki.addTiddler(pluginFields);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Load the wiki files, registering them as writable
|
||||
var resolvedWikiPath = path.resolve(wikiPath,$tw.config.wikiTiddlersSubDir);
|
||||
$tw.utils.each($tw.loadTiddlersFromPath(resolvedWikiPath),function(tiddlerFile) {
|
||||
$tw.wiki.addTiddlers(tiddlerFile.tiddlers);
|
||||
if(tiddlerFile.filepath) {
|
||||
$tw.utils.each(tiddlerFile.tiddlers,function(tiddler) {
|
||||
$tw.boot.files[tiddler.title] = {
|
||||
@@ -1354,7 +1490,16 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
|
||||
};
|
||||
});
|
||||
}
|
||||
$tw.wiki.addTiddlers(tiddlerFile.tiddlers);
|
||||
});
|
||||
// Save the original tiddler file locations if requested
|
||||
if(wikiInfo.config && wikiInfo.config["retain-original-tiddler-path"]) {
|
||||
var output = [];
|
||||
for(var title in $tw.boot.files) {
|
||||
output.push(title + ": " + path.relative(resolvedWikiPath,$tw.boot.files[title].filepath) + "\n");
|
||||
}
|
||||
$tw.wiki.addTiddler({title: "$:/config/OriginalTiddlerPaths", type: "application/x-tiddler-dictionary", text: output.join("")});
|
||||
}
|
||||
// Save the path to the tiddlers folder for the filesystemadaptor
|
||||
$tw.boot.wikiTiddlersPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiTiddlersSubDir);
|
||||
// Load any plugins within the wiki folder
|
||||
@@ -1379,6 +1524,17 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
|
||||
}
|
||||
}
|
||||
}
|
||||
// Load any languages within the wiki folder
|
||||
var wikiLanguagesPath = path.resolve(wikiPath,$tw.config.wikiLanguagesSubDir);
|
||||
if(fs.existsSync(wikiLanguagesPath)) {
|
||||
var languageFolders = fs.readdirSync(wikiLanguagesPath);
|
||||
for(t=0; t<languageFolders.length; t++) {
|
||||
pluginFields = $tw.loadPluginFolder(path.resolve(wikiLanguagesPath,"./" + languageFolders[t]));
|
||||
if(pluginFields) {
|
||||
$tw.wiki.addTiddler(pluginFields);
|
||||
}
|
||||
}
|
||||
}
|
||||
return wikiInfo;
|
||||
};
|
||||
|
||||
@@ -1409,34 +1565,38 @@ $tw.boot.startup = function(options) {
|
||||
// Initialise some more $tw properties
|
||||
$tw.utils.deepDefaults($tw,{
|
||||
modules: { // Information about each module
|
||||
titles: {}, // hashmap by module title of {fn:, exports:, moduleType:}
|
||||
titles: Object.create(null), // hashmap by module title of {fn:, exports:, moduleType:}
|
||||
types: {} // hashmap by module type of hashmap of exports
|
||||
},
|
||||
config: { // Configuration overridables
|
||||
pluginsPath: "../plugins/",
|
||||
themesPath: "../themes/",
|
||||
languagesPath: "../languages/",
|
||||
editionsPath: "../editions/",
|
||||
wikiInfo: "./tiddlywiki.info",
|
||||
wikiPluginsSubDir: "./plugins",
|
||||
wikiThemesSubDir: "./themes",
|
||||
wikiLanguagesSubDir: "./languages",
|
||||
wikiTiddlersSubDir: "./tiddlers",
|
||||
jsModuleHeaderRegExpString: "^\\/\\*\\\\(?:\\r?\\n)((?:^[^\\r\\n]*(?:\\r?\\n))+?)(^\\\\\\*\\/$(?:\\r?\\n)?)",
|
||||
fileExtensionInfo: {}, // Map file extension to {type:}
|
||||
contentTypeInfo: {} // Map type to {encoding:,extension:}
|
||||
fileExtensionInfo: Object.create(null), // Map file extension to {type:}
|
||||
contentTypeInfo: Object.create(null) // Map type to {encoding:,extension:}
|
||||
}
|
||||
});
|
||||
if(!options.readBrowserTiddlers) {
|
||||
// For writable tiddler files, a hashmap of title to {filepath:,type:,hasMetaFile:}
|
||||
$tw.boot.files = {};
|
||||
$tw.boot.files = Object.create(null);
|
||||
// System paths and filenames
|
||||
$tw.boot.bootPath = path.dirname(module.filename);
|
||||
$tw.boot.corePath = path.resolve($tw.boot.bootPath,"../core");
|
||||
// If there's no arguments then default to `--help`
|
||||
if($tw.boot.argv.length === 0) {
|
||||
$tw.boot.argv = ["--help"];
|
||||
}
|
||||
// If the first command line argument doesn't start with `--` then we
|
||||
// interpret it as the path to the wiki folder, which will otherwise default
|
||||
// to the current folder
|
||||
if($tw.boot.argv[0] === "*") {
|
||||
$tw.boot.wikiPath = undefined;
|
||||
$tw.boot.argv = $tw.boot.argv.slice(1);
|
||||
} else if($tw.boot.argv[0] && $tw.boot.argv[0].indexOf("--") !== 0) {
|
||||
if($tw.boot.argv[0] && $tw.boot.argv[0].indexOf("--") !== 0) {
|
||||
$tw.boot.wikiPath = $tw.boot.argv[0];
|
||||
$tw.boot.argv = $tw.boot.argv.slice(1);
|
||||
} else {
|
||||
@@ -1452,26 +1612,28 @@ $tw.boot.startup = function(options) {
|
||||
// Add file extension information
|
||||
$tw.utils.registerFileType("text/vnd.tiddlywiki","utf8",".tid");
|
||||
$tw.utils.registerFileType("application/x-tiddler","utf8",".tid");
|
||||
$tw.utils.registerFileType("application/x-tiddlers","utf8",".multids");
|
||||
$tw.utils.registerFileType("application/x-tiddler-html-div","utf8",".tiddler");
|
||||
$tw.utils.registerFileType("text/vnd.tiddlywiki2-recipe","utf8",".recipe");
|
||||
$tw.utils.registerFileType("text/plain","utf8",".txt");
|
||||
$tw.utils.registerFileType("text/css","utf8",".css");
|
||||
$tw.utils.registerFileType("text/html","utf8",".html");
|
||||
$tw.utils.registerFileType("application/hta","utf16le",".hta",{deserializerType:"text/html"});
|
||||
$tw.utils.registerFileType("application/javascript","utf8",".js");
|
||||
$tw.utils.registerFileType("application/json","utf8",".json");
|
||||
$tw.utils.registerFileType("application/pdf","base64",".pdf");
|
||||
$tw.utils.registerFileType("image/jpeg","base64",".jpg");
|
||||
$tw.utils.registerFileType("image/png","base64",".png");
|
||||
$tw.utils.registerFileType("image/gif","base64",".gif");
|
||||
$tw.utils.registerFileType("image/svg+xml","utf8",".svg");
|
||||
$tw.utils.registerFileType("image/x-icon","base64",".ico");
|
||||
$tw.utils.registerFileType("application/pdf","base64",".pdf",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/jpeg","base64",".jpg",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/png","base64",".png",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/gif","base64",".gif",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/svg+xml","utf8",".svg",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/x-icon","base64",".ico",{flags:["image"]});
|
||||
$tw.utils.registerFileType("application/font-woff","base64",".woff");
|
||||
// Create the wiki store for the app
|
||||
$tw.wiki = new $tw.Wiki();
|
||||
// Install built in tiddler fields modules
|
||||
$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap("tiddlerfield");
|
||||
// Install the tiddler deserializer modules
|
||||
$tw.Wiki.tiddlerDeserializerModules = {};
|
||||
$tw.Wiki.tiddlerDeserializerModules = Object.create(null);
|
||||
$tw.modules.applyMethods("tiddlerdeserializer",$tw.Wiki.tiddlerDeserializerModules);
|
||||
// Load tiddlers
|
||||
if(options.readBrowserTiddlers) {
|
||||
@@ -1480,6 +1642,7 @@ $tw.boot.startup = function(options) {
|
||||
$tw.loadTiddlersNode();
|
||||
}
|
||||
// Unpack plugin tiddlers
|
||||
$tw.wiki.readPluginInfo();
|
||||
$tw.wiki.registerPluginTiddlers("plugin");
|
||||
$tw.wiki.unpackPluginTiddlers();
|
||||
// Register typed modules from the tiddlers we've just loaded
|
||||
@@ -1531,6 +1694,3 @@ if(typeof(exports) !== "undefined") {
|
||||
} else {
|
||||
_boot(window.$tw);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/bag
|
||||
|
||||
The name of the bag from which a tiddler came
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/color
|
||||
|
||||
The CSS color value associated with a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/created
|
||||
|
||||
The date a tiddler was created
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/creator
|
||||
|
||||
The name of the person who created a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/description
|
||||
|
||||
The descriptive text for a wizard
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/draft.of
|
||||
|
||||
For draft tiddlers, contains the title of the tiddler of which this is a draft
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/draft.title
|
||||
|
||||
For draft tiddlers, contains the proposed new title of the tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/footer
|
||||
|
||||
The footer text for a wizard
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/icon
|
||||
|
||||
The title of the tiddler containing the icon associated with a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/library
|
||||
|
||||
If set to "yes" indicates that a tiddler should be saved as a JavaScript library
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/list
|
||||
|
||||
An ordered list of tiddler titles associated with a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/modified
|
||||
|
||||
The date and time at which a tiddler was last modified
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/modifier
|
||||
|
||||
The tiddler title associated with the person who last modified a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/name
|
||||
|
||||
The human readable name associated with a plugin tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/plugin-priority
|
||||
|
||||
A numerical value indicating the priority of a plugin tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/plugin-type
|
||||
|
||||
The type of plugin in a plugin tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/revision
|
||||
|
||||
The revision of the tiddler held at the server
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/source
|
||||
|
||||
The source URL associated with a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/subtitle
|
||||
|
||||
The subtitle text for a wizard
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/tags
|
||||
|
||||
A list of tags associated with a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/text
|
||||
|
||||
The body text of a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/title
|
||||
|
||||
The unique name of a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/fields/type
|
||||
|
||||
The content type of a tiddler
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/moduletypes/animation
|
||||
|
||||
Animation modules contain animations that may be used with the RevealWidget.
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/types/application/json
|
||||
description: JSON data
|
||||
name: application/json
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/types/image/gif
|
||||
description: GIF image
|
||||
name: image/gif
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/docs/types/image/png
|
||||
description: PNG image
|
||||
name: image/png
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/cancel-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-cancel-button tw-image-button" viewBox="366 150 58 58" width="22pt" height="22pt"><path d="M 414.76236 158.98764 C 403.77887 148.0041 385.97113 148.0041 374.98764 158.98764 C 364.0041 169.97113 364.0041 187.77887 374.98764 198.76236 C 385.97113 209.7459 403.77887 209.7459 414.76236 198.76236 C 425.7459 187.77887 425.7459 169.97113 414.76236 158.98764 M 385.3967 165.32954 L 385.3967 165.32954 L 394.77674 174.7096 L 404.3533 165.13303 C 405.53068 163.95566 407.4396 163.95566 408.61697 165.13303 C 409.79434 166.31041 409.79434 168.21932 408.61697 169.39669 L 399.0404 178.97325 L 408.42046 188.35331 C 409.59783 189.53068 409.59783 191.43959 408.42046 192.61697 L 408.42046 192.61697 C 407.24308 193.79434 405.33417 193.79434 404.1568 192.61697 L 394.77675 183.23692 L 385.5932 192.42046 C 384.41583 193.59783 382.50692 193.59783 381.32954 192.42046 L 381.32954 192.42046 C 380.15217 191.24308 380.15217 189.33417 381.32954 188.1568 C 381.32954 188.1568 381.32954 188.1568 381.32954 188.1568 L 381.32954 188.1568 L 381.32954 188.1568 L 390.51309 178.97326 L 381.13303 169.5932 C 379.95566 168.41583 379.95566 166.50692 381.13303 165.32954 L 381.13303 165.32954 C 382.3104 164.15217 384.21932 164.15217 385.3967 165.32954 C 385.3967 165.32954 385.3967 165.32954 385.3967 165.32954 Z"/></svg>
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/close-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-close-button tw-image-button" viewBox="222 150 56 56" width="22pt" height="22pt"><path d="M 249.56668 185.88827 L 267.06757 203.38916 C 269.26427 205.58586 272.82582 205.58586 275.02252 203.38916 L 275.02252 203.38916 C 277.21922 201.19246 277.21922 197.63091 275.02252 195.43421 L 257.52163 177.93332 L 275.38916 160.06579 C 277.58586 157.86909 277.58586 154.30754 275.38916 152.11084 C 273.19246 149.91414 269.63091 149.91414 267.43421 152.11084 L 249.56668 169.97837 L 232.06579 152.47748 L 232.06579 152.47748 C 232.06579 152.47748 232.06579 152.47748 232.06579 152.47748 C 229.86909 150.28078 226.30754 150.28078 224.11084 152.47748 L 224.11084 152.47748 C 221.91414 154.674175 221.91414 158.23573 224.11084 160.43243 L 241.61173 177.93332 L 224.47748 195.06757 L 224.47748 195.06757 L 224.47748 195.06757 C 224.47748 195.06757 224.47748 195.06757 224.47748 195.06757 C 222.28078 197.26427 222.28078 200.82583 224.47748 203.02252 L 224.47748 203.02252 C 226.67418 205.21922 230.23573 205.21922 232.43243 203.02252 Z"/></svg>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/delete-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-delete-button tw-image-button" viewBox="303 155 39 50" width="17pt" height="22pt"><path d="M 333 164.25 L 333 157.25 C 333 156.14543 332.10457 155.25 331 155.25 L 314.75 155.25 C 314.75 155.25 314.75 155.25 314.75 155.25 C 313.64543 155.25 312.75 156.14543 312.75 157.25 L 312.75 164.25 L 303.75 164.25 L 303.75 168.75 L 306 168.75 L 306 201.75 L 306 201.75 L 306 201.75 C 306 203.40685 307.34315 204.75 309 204.75 L 336.75 204.75 C 338.40685 204.75 339.75 203.40685 339.75 201.75 L 339.75 168.75 L 342 168.75 L 342 164.25 Z M 317.25 160.75 L 317.25 160.75 C 317.25 160.19772 317.69772 159.75 318.25 159.75 C 318.25 159.75 318.25 159.75 318.25 159.75 L 327.5 159.75 C 328.05228 159.75 328.5 160.19772 328.5 160.75 L 328.5 164.25 L 317.25 164.25 L 317.25 160.75 Z M 310.5 168.75 L 312.75 168.75 L 312.75 200.25 L 310.5 200.25 Z M 317.25 168.75 L 319.5 168.75 L 319.5 200.25 L 317.25 200.25 Z M 324 168.75 L 326.25 168.75 L 326.25 200.25 L 324 200.25 Z M 330.75 168.75 L 333 168.75 L 333 200.25 L 330.75 200.25 Z"/></svg>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/done-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-done-button tw-image-button" viewBox="434 150 68 55" width="22pt" height="18pt"><path d="M 438.49266 178.00797 L 439.00744 177.49319 C 441.35054 175.15008 445.14946 175.15004 447.49262 177.49309 L 452.50734 182.50757 C 454.8505 184.85063 458.6494 184.85058 460.99252 182.50748 L 488.50747 154.99255 C 490.85058 152.64944 494.6495 152.6494 496.99266 154.99246 L 497.50722 155.506995 C 499.8504 157.85009 499.8505 161.64908 497.5074 163.99228 C 497.50738 163.99229 497.50736 163.99231 497.50734 163.99233 L 460.9926 200.5077 C 458.64947 202.85087 454.85048 202.8509 452.50732 200.50778 C 452.5073 200.50777 452.5073 200.50777 452.5073 200.50776 L 438.49268 186.49327 C 436.14952 184.15013 436.1495 180.35114 438.49264 178.00799 C 438.49265 178.00798 438.49265 178.00797 438.49266 178.00797 Z"/></svg>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/down-arrow
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-down-arrow tw-image-button" viewBox="441 306 59 45" width="24pt" height="22pt"><path d="M 441 306 L 470.25 351 L 499.5 306 Z"/></svg>
|
||||
<svg class="tw-image-down-arrow tw-image-button" viewBox="63 152 64 64" width="22pt" height="22pt"><path d="M 98.001786 212.81802 L 123.45763 187.36218 C 125.21499 185.60482 125.21499 182.75557 123.45763 180.99821 C 121.70027 179.24086 118.85103 179.24086 117.09367 180.99821 L 94.819805 203.27208 L 72.54594 180.99821 C 70.788582 179.24086 67.93934 179.24086 66.18198 180.99821 C 64.42462 182.75557 64.42462 185.60482 66.18198 187.36218 L 91.637825 212.81802 C 93.395184 214.57538 96.244426 214.57538 98.001786 212.81802 Z"/></svg>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/edit-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-edit-button tw-image-button" viewBox="244 193 20 22" width="20pt" height="22pt"><path d="M 257.33334 196.80951 L 245.90476 207.2857 L 244 212.0476 L 248.7619 210.14284 L 260.19048 199.66665 Z M 259.2381 194.90475 L 258.28566 195.85716 L 261.14284 198.71428 L 262.09522 197.76187 Z M 261.14286 193 L 260.19042 193.95241 L 263.04762 196.80953 L 264 195.85714 Z M 244 213.72882 C 244 213.72882 247.4281 215.43353 250.8572 213.7288 C 254.28599 212.02405 261.14284 214.86531 261.14284 214.86531 L 261.14284 213.72884 C 261.14284 213.72884 254.28577 210.88755 250.8572 212.5923 C 247.42858 214.29712 244 212.59228 244 212.59228 Z"/></svg>
|
||||
|
||||
4
core/images/home-button.tid
Normal file
4
core/images/home-button.tid
Normal file
@@ -0,0 +1,4 @@
|
||||
title: $:/core/images/home-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-home-button tw-image-button" viewBox="81 513 64 54" width="22pt" height="22pt"><g><path d="M 97.04536 522.62083 L 81.364685 531.49067 L 87.85863 531.49067 L 87.85863 566.9699 L 107.49902 566.9699 L 107.49902 552.99265 L 117.95268 552.99265 L 117.95268 566.9699 L 137.59307 566.9699 L 137.59307 531.49067 L 144.086885 531.49067 L 112.72591 513.751 L 107.49902 516.70758 L 107.49902 513.751 L 97.04536 513.751 Z M 94.669443 534.17844 L 103.222493 534.17844 L 103.222493 545.19854 L 94.669443 545.19854 Z M 108.449266 534.17844 L 117.002435 534.17844 L 117.002435 545.19854 L 108.449266 545.19854 Z M 122.387575 534.17844 L 130.9405 534.17844 L 130.9405 545.19854 L 122.387575 545.19854 Z"/></g></svg>
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/info-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-info-button tw-image-button" viewBox="294 150 58 58" width="22pt" height="22pt"><path d="M 342.76236 158.98764 C 331.77887 148.0041 313.97113 148.0041 302.98764 158.98764 C 292.0041 169.97113 292.0041 187.77887 302.98764 198.76236 C 313.97113 209.7459 331.77887 209.7459 342.76236 198.76236 C 353.7459 187.77887 353.7459 169.97113 342.76236 158.98764 M 326.5425 157.5 L 326.5425 157.5 C 327.72545 157.5 328.72201 157.91022 329.5337 158.73088 C 330.34465 159.55157 330.75 160.54402 330.75 161.7075 C 330.75 162.87172 330.33979 163.86316 329.51911 164.68385 C 328.69842 165.5045 327.70674 165.91501 326.5425 165.91501 C 325.39801 165.91501 324.4153 165.5045 323.5946 164.68385 C 322.77393 163.86316 322.36372 162.87172 322.36372 161.7075 C 322.36372 160.54402 322.76906 159.55157 323.58 158.73088 C 324.39171 157.91022 325.3793 157.5 326.5425 157.5 Z M 327.80211 190.47259 C 324.91945 195.49132 321.85778 198 318.61462 198 C 317.37452 198 316.38691 197.65158 315.65186 196.9555 C 314.9176 196.25866 314.54943 195.37617 314.54943 194.30782 C 314.54943 193.60202 314.71223 192.70572 315.03629 191.61813 L 319.0151 177.93651 C 319.39685 176.61922 319.58735 175.62754 319.58735 174.95991 C 319.58735 174.53996 319.40582 174.16692 319.04356 173.84286 C 318.68052 173.51905 318.18469 173.35701 317.55527 173.35701 C 317.26861 173.35701 316.92506 173.36677 316.5246 173.38548 L 316.89661 172.2407 L 326.59967 170.66627 L 328.31744 170.66627 L 322.44986 191.01638 C 322.12503 192.18064 321.963 192.94337 321.963 193.30666 C 321.963 193.51588 322.04862 193.71121 322.2204 193.89273 C 322.39218 194.07425 322.5737 194.16554 322.7642 194.16477 C 323.08903 194.16554 323.4131 194.02221 323.73792 193.73559 C 324.59605 193.02976 325.6267 191.75142 326.82838 189.90008 Z"/></svg>
|
||||
|
||||
4
core/images/menu-button.tid
Normal file
4
core/images/menu-button.tid
Normal file
@@ -0,0 +1,4 @@
|
||||
title: $:/core/images/menu-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-menu-button tw-image-button" viewBox="216 585 63 45" width="22pt" height="22pt"><g><path d="M 274.5 585 L 229.5 585 C 227.01472 585 225 587.01472 225 589.5 L 225 589.5 C 225 591.98528 227.01472 594 229.5 594 L 274.5 594 C 276.98528 594 279 591.98528 279 589.5 L 279 589.5 C 279 587.01472 276.98528 585 274.5 585 Z"/><path d="M 274.5 603 L 229.5 603 C 227.01472 603 225 605.01472 225 607.5 L 225 607.5 C 225 609.98528 227.01472 612 229.5 612 L 274.5 612 C 276.98528 612 279 609.98528 279 607.5 L 279 607.5 C 279 605.01472 276.98528 603 274.5 603 Z"/><path d="M 274.5 621 L 229.5 621 C 227.01472 621 225 623.01472 225 625.5 L 225 625.5 C 225 627.9853 227.01472 630 229.5 630 L 274.5 630 C 276.98528 630 279 627.9853 279 625.5 L 279 625.5 C 279 623.01472 276.98528 621 274.5 621 Z"/></g></svg>
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/new-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-new-button tw-image-button" viewBox="83 81 50 50" width="22pt" height="22pt"><path d="M 101.25 112.5 L 101.25 127.5 C 101.25 127.5 101.25 127.5 101.25 127.5 L 101.25 127.5 C 101.25 129.156855 102.593146 130.5 104.25 130.5 L 111.75 130.5 C 113.406854 130.5 114.75 129.156854 114.75 127.5 L 114.75 112.5 L 129.75 112.5 C 131.406854 112.5 132.75 111.156854 132.75 109.5 L 132.75 102 C 132.75 100.343146 131.406854 99 129.75 99 L 114.75 99 L 114.75 84 C 114.75 82.343146 113.406854 81 111.75 81 L 104.25 81 C 104.25 81 104.25 81 104.25 81 C 102.593146 81 101.25 82.343146 101.25 84 L 101.25 99 L 86.25 99 C 86.25 99 86.25 99 86.25 99 C 84.593146 99 83.25 100.343146 83.25 102 L 83.25 109.5 C 83.25 109.5 83.25 109.5 83.25 109.5 L 83.25 109.5 C 83.25 111.156855 84.593146 112.5 86.25 112.5 Z"/></svg>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/options-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-options-button tw-image-button" viewBox="434 218 68 68" width="22pt" height="22pt"><path d="M 478.39696 232.53705 L 478.39696 232.53705 C 477.11453 231.85132 475.77877 231.30146 474.4106 230.88735 L 474.4106 218.24993 L 461.58944 218.24993 L 461.58944 230.88735 C 460.22126 231.30146 458.8855 231.85132 457.60308 232.53705 L 448.66825 223.60214 L 439.6022 232.66814 L 448.53716 241.60304 C 447.8515 242.88541 447.30158 244.22116 446.88747 245.58935 L 434.25 245.58935 L 434.25 258.41052 L 446.88747 258.41052 C 447.30158 259.7787 447.8515 261.11446 448.53716 262.39689 L 439.6022 271.33173 L 448.66825 280.39779 L 457.60308 271.46281 C 458.8855 272.14862 460.22126 272.69847 461.58944 273.11251 L 461.58944 285.74986 L 474.4106 285.74986 L 474.4106 273.11251 C 475.77877 272.69847 477.11453 272.14862 478.39696 271.46281 L 487.3318 280.39779 L 496.3977 271.33173 L 487.46287 262.39689 C 488.14854 261.11446 488.6984 259.7787 489.11257 258.41052 L 501.7499 258.41052 L 501.7499 245.58935 L 489.11257 245.58935 C 488.6984 244.22116 488.14854 242.88541 487.46287 241.60304 L 496.3977 232.66814 L 487.3318 223.60214 Z M 475.3328 244.66714 C 479.38253 248.71698 479.38253 255.2829 475.3328 259.33273 C 471.28297 263.3826 464.71706 263.3826 460.66723 259.33273 C 456.61737 255.2829 456.61737 248.71698 460.66723 244.66714 C 464.71706 240.61734 471.28297 240.61734 475.3328 244.66714"/></svg>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
title: $:/core/images/save-button
|
||||
tags: $:/tags/Image
|
||||
|
||||
<svg class="tw-image-save-button tw-image-button" viewBox="4 512 64 60" width="22pt" height="21pt"><path d="M 13.5 537.75 L 11.5 537.75 C 11.5 537.75 11.5 537.75 11.5 537.75 C 7.6340064 537.75 4.4999994 540.884 4.5 544.75 L 4.5 564.5 L 4.5 564.5 C 4.5 564.5 4.5 564.5 4.5 564.5 L 4.5 564.5 C 4.5000006 568.366 7.634007 571.5 11.5 571.5 L 60.5 571.5 C 64.365993 571.5 67.5 568.366 67.5 564.5 L 67.5 544.75 C 67.5 540.884 64.365993 537.75 60.5 537.75 L 58.5 537.75 L 49.5 546.75 L 50 546.75 C 52.20914 546.75 54 548.54086 54 550.75 L 54 556.25 C 54 558.45914 52.20914 560.25 50 560.25 L 36 560.25 L 22 560.25 C 19.790861 560.25 18 558.45914 18 556.25 L 18 556.25 C 18 556.25 18 556.25 18 556.25 L 18 550.75 C 18 548.54086 19.790861 546.75 22 546.75 C 22 546.75 22 546.75 22 546.75 L 22.5 546.75 Z"/><path d="M 16.37132 533.87132 L 33.87868 551.37868 C 35.050253 552.55025 36.949747 552.55025 38.12132 551.37868 L 55.62868 533.87132 C 56.800252 532.69975 56.800252 530.80025 55.62868 529.62868 C 55.06607 529.06607 54.30301 528.75 53.50736 528.75 L 48 528.75 C 46.343146 528.75 45 527.40685 45 525.75 L 45 516 C 45 514.34315 43.656854 513 42 513 L 30 513 C 28.343146 513 27 514.34315 27 516 L 27 525.75 C 27 527.40685 25.656854 528.75 24 528.75 L 18.492641 528.75 C 16.835786 528.75 15.492641 530.09315 15.492641 531.75 C 15.492641 532.54565 15.808711 533.3087 16.37132 533.87132 Z"/></svg>
|
||||
|
||||
7
core/language/en-GB.tid
Normal file
7
core/language/en-GB.tid
Normal file
@@ -0,0 +1,7 @@
|
||||
title: $:/languages/en-GB
|
||||
name: en-GB
|
||||
description: English (British)
|
||||
author: JeremyRuston
|
||||
core-version: >=5.0.0"
|
||||
|
||||
Stub pseudo-plugin for the default language
|
||||
75
core/language/en-GB/ControlPanel.multids
Normal file
75
core/language/en-GB/ControlPanel.multids
Normal file
@@ -0,0 +1,75 @@
|
||||
title: $:/language/ControlPanel/
|
||||
|
||||
Advanced/Caption: Advanced
|
||||
Advanced/Hint: Internal information about this TiddlyWiki
|
||||
Advanced/LoadedModules/Caption: Loaded Modules
|
||||
Advanced/LoadedModules/Hint: These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process.
|
||||
Advanced/TiddlerFields/Caption: Tiddler Fields
|
||||
Advanced/TiddlerFields/Hint: This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers).
|
||||
Appearance/Caption: Appearance
|
||||
Appearance/Hint: Ways to customise the appearance of your TiddlyWiki.
|
||||
Appearance/Palette/Caption: Palette
|
||||
Appearance/Palette/Editor/Clone/Caption: clone
|
||||
Appearance/Palette/Editor/Clone/Prompt: It is recommended that you clone this shadow palette before editing it
|
||||
Appearance/Palette/Editor/Prompt/Modified: This shadow palette has been modified
|
||||
Appearance/Palette/Editor/Prompt: Editing
|
||||
Appearance/Palette/Editor/Reset/Caption: reset
|
||||
Appearance/Palette/HideEditor/Caption: hide editor
|
||||
Appearance/Palette/Prompt: Current palette:
|
||||
Appearance/Palette/ShowEditor/Caption: show editor
|
||||
Appearance/StoryView/Caption: Story View
|
||||
Appearance/StoryView/Prompt: Current view:
|
||||
Appearance/Theme/Caption: Theme
|
||||
Appearance/Theme/Prompt: Current theme:
|
||||
Basics/AnimDuration/Prompt: Animation duration:
|
||||
Basics/Caption: Basics
|
||||
Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">retain story ordering</$button>
|
||||
Basics/DefaultTiddlers/Prompt: Default tiddlers:
|
||||
Basics/DefaultTiddlers/TopHint: Choose which tiddlers are displayed at startup:
|
||||
Basics/Language/Prompt: Hello! Current language:
|
||||
Basics/OverriddenShadowTiddlers/Prompt: Number of overridden shadow tiddlers:
|
||||
Basics/ShadowTiddlers/Prompt: Number of shadow tiddlers:
|
||||
Basics/Subtitle/Prompt: Subtitle:
|
||||
Basics/SystemTiddlers/Prompt: Number of system tiddlers:
|
||||
Basics/Tags/Prompt: Number of tags:
|
||||
Basics/Tiddlers/Prompt: Number of tiddlers:
|
||||
Basics/Title/Prompt: Title of this ~TiddlyWiki:
|
||||
Basics/Username/Prompt: Username for signing edits:
|
||||
Basics/Version/Prompt: ~TiddlyWiki version:
|
||||
Plugins/Caption: Plugins
|
||||
Plugins/Fields/Description: Description
|
||||
Plugins/Fields/Title: Title
|
||||
Plugins/Fields/Version: Version
|
||||
Plugins/Language/Prompt: Languages
|
||||
Plugins/Plugin/Prompt: Plugins
|
||||
Plugins/Theme/Prompt: Themes
|
||||
Saving/AutoSave/Disabled/Button: enable
|
||||
Saving/AutoSave/Disabled/Prompt: Autosave is currently disabled
|
||||
Saving/AutoSave/Enabled/Button: disable
|
||||
Saving/AutoSave/Enabled/Prompt: Autosave is currently enabled
|
||||
Saving/AutoSave: Autosave
|
||||
Saving/Caption: Saving
|
||||
Saving/Heading: Saving
|
||||
Saving/TiddlySpot/Advanced/Heading: Advanced Settings
|
||||
Saving/TiddlySpot/BackupDir: Backup Directory
|
||||
Saving/TiddlySpot/Backups: Backups
|
||||
Saving/TiddlySpot/Filename: Upload Filename
|
||||
Saving/TiddlySpot/Heading: ~TiddlySpot
|
||||
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address//
|
||||
Saving/TiddlySpot/Password: Password
|
||||
Saving/TiddlySpot/ServerURL: Server URL
|
||||
Saving/TiddlySpot/UploadDir: Upload Directory
|
||||
Saving/TiddlySpot/UserName: Wiki Name
|
||||
Tools/Caption: Tools
|
||||
Tools/Download/Full/Caption: Download full wiki
|
||||
Tools/Encryption/ChangePassword/Button: change password
|
||||
Tools/Encryption/ClearPassword/Button: clear password
|
||||
Tools/Encryption/Disabled/Prompt: This wiki is not encrypted
|
||||
Tools/Encryption/Enabled/Prompt: This wiki is encrypted
|
||||
Tools/Encryption/Heading: Encryption
|
||||
Tools/Encryption/SetPassword/Button: set password
|
||||
Tools/Export/AllAsStaticHTML/Caption: Download all tiddlers as static HTML
|
||||
Tools/Export/Heading: Export
|
||||
Tools/Import/Heading: Import
|
||||
Tools/Import/Hint: Browse for files on your computer to import their contents (the individual tiddlers within TiddlyWiki HTML files are imported separately). You can also drag and drop files directly to the browser window.
|
||||
Tools/Import/Prompt: Import:
|
||||
22
core/language/en-GB/Docs/ModuleTypes.multids
Normal file
22
core/language/en-GB/Docs/ModuleTypes.multids
Normal file
@@ -0,0 +1,22 @@
|
||||
title: $:/language/Docs/ModuleTypes/
|
||||
|
||||
animation: Animations that may be used with the RevealWidget.
|
||||
browser-startup: Startup functions that are only executed in the browser.
|
||||
command: Commands that can be executed under Node.js.
|
||||
config: Data to be inserted into `$tw.config`.
|
||||
filteroperator: Individual filter operator methods.
|
||||
global: Global data to be inserted into `$tw`.
|
||||
isfilteroperator: Operands for the ''is'' filter operator.
|
||||
macro: JavaScript macro definitions.
|
||||
parser: Parsers for different content types.
|
||||
saver: Savers handle different methods for saving files from the browser.
|
||||
startup: Startup functions.
|
||||
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.
|
||||
utils: Adds methods to `$tw.utils`.
|
||||
utils-node: Adds Node.js-specific methods to `$tw.utils`.
|
||||
widget: Widgets encapsulate DOM rendering and refreshing.
|
||||
wikimethod: Adds methods to `$tw.Wiki`.
|
||||
wikirule: Individual parser rules for the main WikiText parser.
|
||||
100
core/language/en-GB/Docs/PaletteColours.multids
Normal file
100
core/language/en-GB/Docs/PaletteColours.multids
Normal file
@@ -0,0 +1,100 @@
|
||||
title: $:/language/Docs/PaletteColours/
|
||||
|
||||
alert-background: Alert background
|
||||
alert-border: Alert border
|
||||
alert-highlight: Alert highlight
|
||||
alert-muted-foreground: Alert muted foreground
|
||||
background: General background
|
||||
blockquote-bar: Blockquote bar
|
||||
code-background: Code background
|
||||
code-border: Code border
|
||||
code-foreground: Code foreground
|
||||
download-background: Download button background
|
||||
download-foreground: Download button foreground
|
||||
dragger-background: Dragger background
|
||||
dragger-foreground: Dragger foreground
|
||||
dropdown-background: Dropdown background
|
||||
dropdown-border: Dropdown border
|
||||
dropdown-tab-background-selected: Dropdown tab background for selected tabs
|
||||
dropdown-tab-background: Dropdown tab background
|
||||
dropzone-background: Dropzone background
|
||||
external-link-background-hover: External link background hover
|
||||
external-link-background-visited: External link background visited
|
||||
external-link-background: External link background
|
||||
external-link-foreground-hover: External link foreground hover
|
||||
external-link-foreground-visited: External link foreground visited
|
||||
external-link-foreground: External link foreground
|
||||
foreground: General foreground
|
||||
message-background: Message box background
|
||||
message-border: Message box border
|
||||
message-foreground: Message box foreground
|
||||
modal-backdrop: Modal backdrop
|
||||
modal-background: Modal background
|
||||
modal-border: Modal border
|
||||
modal-footer-background: Modal footer background
|
||||
modal-footer-border: Modal footer border
|
||||
modal-header-border: Modal header border
|
||||
muted-foreground: General muted foreground
|
||||
notification-background: Notification background
|
||||
notification-border: Notification border
|
||||
page-background: Page background
|
||||
pre-background: Preformatted code background
|
||||
pre-border: Preformatted code border
|
||||
primary: General primary
|
||||
sidebar-button-foreground: Sidebar button foreground
|
||||
sidebar-controls-foreground-hover: Sidebar controls foreground hover
|
||||
sidebar-controls-foreground: Sidebar controls foreground
|
||||
sidebar-foreground-shadow: Sidebar foreground shadow
|
||||
sidebar-foreground: Sidebar foreground
|
||||
sidebar-muted-foreground-hover: Sidebar muted foreground hover
|
||||
sidebar-muted-foreground: Sidebar muted foreground
|
||||
sidebar-tab-background-selected: Sidebar tab background for selected tabs
|
||||
sidebar-tab-background: Sidebar tab background
|
||||
sidebar-tab-border-selected: Sidebar tab border for selected tabs
|
||||
sidebar-tab-border: Sidebar tab border
|
||||
sidebar-tab-divider: Sidebar tab divider
|
||||
sidebar-tab-foreground-selected: Sidebar tab foreground for selected tabs
|
||||
sidebar-tab-foreground: Sidebar tab foreground
|
||||
sidebar-tiddler-link-foreground-hover: Sidebar tiddler link foreground hover
|
||||
sidebar-tiddler-link-foreground: Sidebar tiddler link foreground
|
||||
static-alert-foreground: Static alert foreground
|
||||
tab-background-selected: Tab background for selected tabs
|
||||
tab-background: Tab background
|
||||
tab-border-selected: Tab border for selected tabs
|
||||
tab-border: Tab border
|
||||
tab-divider: Tab divider
|
||||
tab-foreground-selected: Tab foreground for selected tabs
|
||||
tab-foreground: Tab foreground
|
||||
table-border: Table border
|
||||
table-footer-background: Table footer background
|
||||
table-header-background: Table header background
|
||||
tag-background: Tag background
|
||||
tag-foreground: Tag foreground
|
||||
tiddler-background: Tiddler background
|
||||
tiddler-border: Tiddler border
|
||||
tiddler-controls-foreground-hover: Tiddler controls foreground hover
|
||||
tiddler-controls-foreground-selected: Tiddler controls foreground for selected controls
|
||||
tiddler-controls-foreground: Tiddler controls foreground
|
||||
tiddler-editor-background: Tiddler editor background
|
||||
tiddler-editor-border-image: Tiddler editor border image
|
||||
tiddler-editor-border: Tiddler editor border
|
||||
tiddler-editor-fields-even: Tiddler editor background for even fields
|
||||
tiddler-editor-fields-odd: Tiddler editor background for odd fields
|
||||
tiddler-info-background: Tiddler info panel background
|
||||
tiddler-info-border: Tiddler info panel border
|
||||
tiddler-info-tab-background: Tiddler info panel tab background
|
||||
tiddler-link-background: Tiddler link background
|
||||
tiddler-link-foreground: Tiddler link foreground
|
||||
tiddler-subtitle-foreground: Tiddler subtitle foreground
|
||||
tiddler-title-foreground: Tiddler title foreground
|
||||
toolbar-new-button: Toolbar 'new tiddler' button foreground
|
||||
toolbar-options-button: Toolbar 'options' button foreground
|
||||
toolbar-save-button: Toolbar 'save' button foreground
|
||||
toolbar-info-button: Toolbar 'info' button foreground
|
||||
toolbar-edit-button: Toolbar 'edit' button foreground
|
||||
toolbar-close-button: Toolbar 'close' button foreground
|
||||
toolbar-delete-button: Toolbar 'delete' button foreground
|
||||
toolbar-cancel-button: Toolbar 'cancel' button foreground
|
||||
toolbar-done-button: Toolbar 'done' button foreground
|
||||
untagged-background: Untagged pill background
|
||||
very-muted-foreground: Very muted foreground
|
||||
14
core/language/en-GB/EditTemplate.multids
Normal file
14
core/language/en-GB/EditTemplate.multids
Normal file
@@ -0,0 +1,14 @@
|
||||
title: $:/language/EditTemplate/
|
||||
|
||||
Body/Hint: Use [[wiki text|http://tiddlywiki.com/static/WikiText.html]] to add formatting, images, and dynamic features
|
||||
Body/Placeholder: Type the text for this tiddler
|
||||
Body/Preview/Button/Hide: hide preview
|
||||
Body/Preview/Button/Show: show preview
|
||||
Fields/Add/Button: add
|
||||
Fields/Add/Name/Placeholder: field name
|
||||
Fields/Add/Prompt: Add a new field:
|
||||
Fields/Add/Value/Placeholder: field value
|
||||
Tags/Add/Button: add
|
||||
Tags/Add/Placeholder: tag name
|
||||
Type/Placeholder: content type
|
||||
Type/Prompt: Type:
|
||||
34
core/language/en-GB/Fields.multids
Normal file
34
core/language/en-GB/Fields.multids
Normal file
@@ -0,0 +1,34 @@
|
||||
title: $:/language/Docs/Fields/
|
||||
|
||||
bag: The name of the bag from which a tiddler came
|
||||
caption: The text to be displayed on a tab or button
|
||||
color: The CSS color value associated with a tiddler
|
||||
component: The name of the component responsible for an [[alert tiddler|AlertMechanism]]
|
||||
current-tiddler: Used to cache the top tiddler in a [[history list|HistoryMechanism]]
|
||||
created: The date a tiddler was created
|
||||
creator: The name of the person who created a tiddler
|
||||
dependents: For a plugin, lists the dependent plugin titles
|
||||
description: The descriptive text for a plugin, or a modal dialogue
|
||||
draft.of: For draft tiddlers, contains the title of the tiddler of which this is a draft
|
||||
draft.title: For draft tiddlers, contains the proposed new title of the tiddler
|
||||
footer: The footer text for a wizard
|
||||
hack-to-give-us-something-to-compare-against: A temporary storage field used in [[$:/core/templates/static.content]]
|
||||
icon: The title of the tiddler containing the icon associated with a tiddler
|
||||
library: If set to "yes" indicates that a tiddler should be saved as a JavaScript library
|
||||
list: An ordered list of tiddler titles associated with a tiddler
|
||||
list-before: If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty
|
||||
list-after: If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles
|
||||
modified: The date and time at which a tiddler was last modified
|
||||
modifier: The tiddler title associated with the person who last modified a tiddler
|
||||
name: The human readable name associated with a plugin tiddler
|
||||
plugin-priority: A numerical value indicating the priority of a plugin tiddler
|
||||
plugin-type: The type of plugin in a plugin tiddler
|
||||
revision: The revision of the tiddler held at the server
|
||||
released: Date of a TiddlyWiki release
|
||||
source: The source URL associated with a tiddler
|
||||
subtitle: The subtitle text for a wizard
|
||||
tags: A list of tags associated with a tiddler
|
||||
text: The body text of a tiddler
|
||||
title: The unique name of a tiddler
|
||||
type: The content type of a tiddler
|
||||
version: Version information for a plugin
|
||||
12
core/language/en-GB/Filters.multids
Normal file
12
core/language/en-GB/Filters.multids
Normal file
@@ -0,0 +1,12 @@
|
||||
title: $:/language/Filters/
|
||||
|
||||
AllTiddlers: All tiddlers except system tiddlers
|
||||
RecentTiddlers: Recently modified tiddlers
|
||||
AllTags: All tags except system tags
|
||||
Missing: Missing tiddlers
|
||||
Drafts: Draft tiddlers
|
||||
Orphans: Orphan tiddlers
|
||||
SystemTiddlers: System tiddlers
|
||||
ShadowTiddlers: Shadow tiddlers
|
||||
OverriddenShadowTiddlers: Overridden shadow tiddlers
|
||||
SystemTags: System tags
|
||||
22
core/language/en-GB/Help/default.tid
Normal file
22
core/language/en-GB/Help/default.tid
Normal file
@@ -0,0 +1,22 @@
|
||||
title: $:/language/Help/default
|
||||
|
||||
\define commandTitle()
|
||||
$:/language/Help/$(command)$
|
||||
\end
|
||||
```
|
||||
usage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]
|
||||
```
|
||||
|
||||
Available commands:
|
||||
|
||||
<ul>
|
||||
<$list filter="[commands[]sort[title]]" variable="command">
|
||||
<li><$link to=<<commandTitle>>><$macrocall $name="command" $type="text/plain" $output="text/plain"/></$link>: <$transclude tiddler=<<commandTitle>> field="description"/></li>
|
||||
</$list>
|
||||
</ul>
|
||||
|
||||
To get detailed help on a command:
|
||||
|
||||
```
|
||||
tiddlywiki --help <command>
|
||||
```
|
||||
10
core/language/en-GB/Help/help.tid
Normal file
10
core/language/en-GB/Help/help.tid
Normal file
@@ -0,0 +1,10 @@
|
||||
title: $:/language/Help/help
|
||||
description: Display help for TiddlyWiki commands
|
||||
|
||||
Displays help text for a command:
|
||||
|
||||
```
|
||||
--help [<command>]
|
||||
```
|
||||
|
||||
If the command name is omitted then a list of available commands is displayed.
|
||||
23
core/language/en-GB/Help/init.tid
Normal file
23
core/language/en-GB/Help/init.tid
Normal file
@@ -0,0 +1,23 @@
|
||||
title: $:/language/Help/init
|
||||
description: Initialise a new wiki folder
|
||||
|
||||
Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.
|
||||
|
||||
```
|
||||
--init <edition> [<edition> ...]
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
tiddlywiki ./MyWikiFolder --init empty
|
||||
```
|
||||
|
||||
Note:
|
||||
|
||||
* The wiki folder directory will be created if necessary
|
||||
* The "edition" defaults to ''empty''
|
||||
* The init command will fail if the wiki folder is not empty
|
||||
* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file
|
||||
* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)
|
||||
* `--help editions` returns a list of available editions
|
||||
16
core/language/en-GB/Help/load.tid
Normal file
16
core/language/en-GB/Help/load.tid
Normal file
@@ -0,0 +1,16 @@
|
||||
title: $:/language/Help/load
|
||||
description: Load tiddlers from a file
|
||||
|
||||
Load tiddlers from 2.x.x TiddlyWiki files (`.html`), `.tiddler`, `.tid`, `.json` or other files
|
||||
|
||||
```
|
||||
--load <filepath>
|
||||
```
|
||||
|
||||
To load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:
|
||||
|
||||
```
|
||||
tiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html
|
||||
```
|
||||
|
||||
Note that TiddlyWiki will not load an older version of an already loaded plugin.
|
||||
3
core/language/en-GB/Help/notfound.tid
Normal file
3
core/language/en-GB/Help/notfound.tid
Normal file
@@ -0,0 +1,3 @@
|
||||
title: $:/language/Help/notfound
|
||||
|
||||
No such help item
|
||||
9
core/language/en-GB/Help/password.tid
Normal file
9
core/language/en-GB/Help/password.tid
Normal file
@@ -0,0 +1,9 @@
|
||||
title: $:/language/Help/password
|
||||
description: Set a password for subsequent crypto operations
|
||||
|
||||
Set a password for subsequent crypto operations
|
||||
|
||||
```
|
||||
--password <password>
|
||||
```
|
||||
|
||||
8
core/language/en-GB/Help/rendertiddler.tid
Normal file
8
core/language/en-GB/Help/rendertiddler.tid
Normal file
@@ -0,0 +1,8 @@
|
||||
title: $:/language/Help/rendertiddler
|
||||
description: Render an individual tiddler as a specified ContentType
|
||||
|
||||
Render an individual tiddler as a specified ContentType, defaults to `text/html` and save it to the specified filename:
|
||||
|
||||
```
|
||||
--rendertiddler <title> <filename> [<type>]
|
||||
```
|
||||
14
core/language/en-GB/Help/rendertiddlers.tid
Normal file
14
core/language/en-GB/Help/rendertiddlers.tid
Normal file
@@ -0,0 +1,14 @@
|
||||
title: $:/language/Help/rendertiddlers
|
||||
description: Render tiddlers matching a filter to a specified ContentType
|
||||
|
||||
Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).
|
||||
|
||||
```
|
||||
--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>]
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain
|
||||
```
|
||||
8
core/language/en-GB/Help/savetiddler.tid
Normal file
8
core/language/en-GB/Help/savetiddler.tid
Normal file
@@ -0,0 +1,8 @@
|
||||
title: $:/language/Help/savetiddler
|
||||
description: Saves a raw tiddler to a file
|
||||
|
||||
Saves an individual tiddler in its raw text or binary format to the specified filename.
|
||||
|
||||
```
|
||||
--savetiddler <title> <filename>
|
||||
```
|
||||
30
core/language/en-GB/Help/server.tid
Normal file
30
core/language/en-GB/Help/server.tid
Normal file
@@ -0,0 +1,30 @@
|
||||
title: $:/language/Help/server
|
||||
description: Provides an HTTP server interface to TiddlyWiki
|
||||
|
||||
The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.
|
||||
|
||||
At the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.
|
||||
|
||||
```
|
||||
--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host>
|
||||
```
|
||||
|
||||
The parameters are:
|
||||
|
||||
* ''port'' - port number to serve from (defaults to "8080")
|
||||
* ''roottiddler'' - the tiddler to serve at the root (defaults to "$:/core/save/all")
|
||||
* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to "text/plain")
|
||||
* ''servetype'' - the content type with which the root tiddler should be served (defaults to "text/html")
|
||||
* ''username'' - the default username for signing edits
|
||||
* ''password'' - optional password for basic authentication
|
||||
* ''host'' - optional hostname to serve from (defaults to "127.0.0.1" aka "localhost")
|
||||
|
||||
If the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation isn't suitable for general use.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd
|
||||
```
|
||||
|
||||
To run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port.
|
||||
8
core/language/en-GB/Help/verbose.tid
Normal file
8
core/language/en-GB/Help/verbose.tid
Normal file
@@ -0,0 +1,8 @@
|
||||
title: $:/language/Help/verbose
|
||||
description: Triggers verbose output mode
|
||||
|
||||
Triggers verbose output, useful for debugging
|
||||
|
||||
```
|
||||
--verbose
|
||||
```
|
||||
8
core/language/en-GB/Help/version.tid
Normal file
8
core/language/en-GB/Help/version.tid
Normal file
@@ -0,0 +1,8 @@
|
||||
title: $:/language/Help/version
|
||||
description: Displays the version number of TiddlyWiki
|
||||
|
||||
Displays the version number of TiddlyWiki.
|
||||
|
||||
```
|
||||
--version
|
||||
```
|
||||
30
core/language/en-GB/Misc.multids
Normal file
30
core/language/en-GB/Misc.multids
Normal file
@@ -0,0 +1,30 @@
|
||||
title: $:/language/
|
||||
|
||||
ClassicWarning/Hint: This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See http://tiddlywiki.com/static/Upgrading.html for more details.
|
||||
ClassicWarning/Upgrade/Caption: upgrade
|
||||
CloseAll/Button: close all
|
||||
ConfirmCancelTiddler: Do you wish to discard changes to the tiddler "<$text text=<<title>>/>"?
|
||||
ConfirmDeleteTiddler: Do you wish to delete the tiddler "<$text text=<<title>>/>"?
|
||||
ConfirmOverwriteTiddler: Do you wish to overwrite the tiddler "<$text text=<<title>>/>"?
|
||||
InvalidFieldName: Illegal characters in field name "<$text text=<<fieldName>>/>". Fields can only contain lowercase letters and the characters underscore (`_`), hyphen (`-`) and period (`.`)
|
||||
MissingTiddler/Hint: Missing tiddler "<$text text=<<currentTiddler>>/>" - click {{$:/core/images/edit-button}} to create
|
||||
RecentChanges/DateFormat: DDth MMM YYYY
|
||||
RelativeDate/Future/Days: <<period>> days from now
|
||||
RelativeDate/Future/Hours: <<period>> hours from now
|
||||
RelativeDate/Future/Minutes: <<period>> minutes from now
|
||||
RelativeDate/Future/Months: <<period>> months from now
|
||||
RelativeDate/Future/Second: 1 second from now
|
||||
RelativeDate/Future/Seconds: <<period>> seconds from now
|
||||
RelativeDate/Future/Years: <<period>> years from now
|
||||
RelativeDate/Past/Days: <<period>> days ago
|
||||
RelativeDate/Past/Hours: <<period>> hours ago
|
||||
RelativeDate/Past/Minutes: <<period>> minutes ago
|
||||
RelativeDate/Past/Months: <<period>> months ago
|
||||
RelativeDate/Past/Second: 1 second ago
|
||||
RelativeDate/Past/Seconds: <<period>> seconds ago
|
||||
RelativeDate/Past/Years: <<period>> years ago
|
||||
SystemTiddler/Tooltip: This is a system tiddler
|
||||
TagManager/Colour/Heading: Colour
|
||||
TagManager/Count/Heading: Count
|
||||
TagManager/Icon/Heading: Icon
|
||||
TagManager/Tag/Heading: Tag
|
||||
@@ -1,8 +1,8 @@
|
||||
title: $:/messages/Download
|
||||
title: $:/language/Modals/Download
|
||||
type: text/vnd.tiddlywiki
|
||||
subtitle: Download changes
|
||||
footer: <$button message="tw-close-tiddler" class="btn btn-primary">Close</$button>
|
||||
help: http://five.tiddlywiki.com/static/DownloadingChanges.html
|
||||
help: http://tiddlywiki.com/static/DownloadingChanges.html
|
||||
|
||||
Your browser only supports manual saving.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
title: $:/messages/SaveInstructions
|
||||
title: $:/language/Modals/SaveInstructions
|
||||
type: text/vnd.tiddlywiki
|
||||
subtitle: Save your work
|
||||
footer: <$button message="tw-close-tiddler" class="btn btn-primary">Close</$button>
|
||||
help: http://five.tiddlywiki.com/static/SavingChanges
|
||||
help: http://tiddlywiki.com/static/SavingChanges.html
|
||||
|
||||
Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.
|
||||
|
||||
4
core/language/en-GB/Notifications.multids
Normal file
4
core/language/en-GB/Notifications.multids
Normal file
@@ -0,0 +1,4 @@
|
||||
title: $:/language/Notifications/
|
||||
|
||||
Save/Done: Saved wiki
|
||||
Save/Starting: Starting to save wiki
|
||||
10
core/language/en-GB/Search.multids
Normal file
10
core/language/en-GB/Search.multids
Normal file
@@ -0,0 +1,10 @@
|
||||
title: $:/language/Search/
|
||||
|
||||
Advanced/Matches: //<small><$count filter={{$:/temp/advancedsearch}}/> matches</small>//
|
||||
Filter/Caption: Filter
|
||||
Filter/Hint: Search via a [[filter expression|http://tiddlywiki.com/static/TiddlerFilters.html]]
|
||||
Matches: //<small><$count filter="[!is[system]search{$:/temp/search}]"/> matches</small>//
|
||||
Shadows/Caption: Shadows
|
||||
Shadows/Hint: Search for shadow tiddlers
|
||||
System/Caption: System
|
||||
System/Hint: Search for system tiddlers
|
||||
17
core/language/en-GB/SideBar.multids
Normal file
17
core/language/en-GB/SideBar.multids
Normal file
@@ -0,0 +1,17 @@
|
||||
title: $:/language/SideBar/
|
||||
|
||||
All/Caption: All
|
||||
Drafts/Caption: Drafts
|
||||
Missing/Caption: Missing
|
||||
More/Caption: More
|
||||
Open/Caption: Open
|
||||
Orphans/Caption: Orphans
|
||||
Recent/Caption: Recent
|
||||
Shadows/Caption: Shadows
|
||||
System/Caption: System
|
||||
Tags/Caption: Tags
|
||||
Tags/TagManager/Caption: Tag Manager
|
||||
Tags/Untagged/Caption: untagged
|
||||
Tools/Caption: Tools
|
||||
Types/Caption: Types
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
title: SiteSubtitle
|
||||
title: $:/SiteSubtitle
|
||||
|
||||
a non-linear personal web notebook
|
||||
3
core/language/en-GB/SiteTitle.tid
Normal file
3
core/language/en-GB/SiteTitle.tid
Normal file
@@ -0,0 +1,3 @@
|
||||
title: $:/SiteTitle
|
||||
|
||||
My ~TiddlyWiki
|
||||
20
core/language/en-GB/TiddlerInfo.multids
Normal file
20
core/language/en-GB/TiddlerInfo.multids
Normal file
@@ -0,0 +1,20 @@
|
||||
title: $:/language/TiddlerInfo/
|
||||
|
||||
Advanced/Caption: Advanced
|
||||
Advanced/PluginInfo/Empty/Hint: none
|
||||
Advanced/PluginInfo/Heading: Plugin Details
|
||||
Advanced/PluginInfo/Hint: This plugin contains the following shadow tiddlers:
|
||||
Advanced/ShadowInfo/Heading: Shadow Status
|
||||
Advanced/ShadowInfo/NotShadow/Hint: The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler
|
||||
Advanced/ShadowInfo/Shadow/Hint: The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler
|
||||
Advanced/ShadowInfo/Shadow/Source: It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>
|
||||
Advanced/ShadowInfo/OverriddenShadow/Hint: It is overridden by an ordinary tiddler
|
||||
Fields/Caption: Fields
|
||||
List/Caption: List
|
||||
List/Empty: This tiddler does not have a list
|
||||
Listed/Caption: Listed
|
||||
Listed/Empty: This tiddler is not listed by any others
|
||||
References/Caption: References
|
||||
References/Empty: No tiddlers link to this one
|
||||
Tagging/Caption: Tagging
|
||||
Tagging/Empty: No tiddlers are tagged with this one
|
||||
3
core/language/en-GB/Types/application_json.tid
Normal file
3
core/language/en-GB/Types/application_json.tid
Normal file
@@ -0,0 +1,3 @@
|
||||
title: $:/language/Docs/Types/application/json
|
||||
description: JSON data
|
||||
name: application/json
|
||||
@@ -1,3 +1,3 @@
|
||||
title: $:/docs/types/application/x-tiddler-dictionary
|
||||
title: $:/language/Docs/Types/application/x-tiddler-dictionary
|
||||
description: Data dictionary
|
||||
name: application/x-tiddler-dictionary
|
||||
3
core/language/en-GB/Types/image_gif.tid
Normal file
3
core/language/en-GB/Types/image_gif.tid
Normal file
@@ -0,0 +1,3 @@
|
||||
title: $:/language/Docs/Types/image/gif
|
||||
description: GIF image
|
||||
name: image/gif
|
||||
@@ -1,3 +1,3 @@
|
||||
title: $:/docs/types/image/jpeg
|
||||
title: $:/language/Docs/Types/image/jpeg
|
||||
description: JPEG image
|
||||
name: image/jpeg
|
||||
3
core/language/en-GB/Types/image_png.tid
Normal file
3
core/language/en-GB/Types/image_png.tid
Normal file
@@ -0,0 +1,3 @@
|
||||
title: $:/language/Docs/Types/image/png
|
||||
description: PNG image
|
||||
name: image/png
|
||||
@@ -1,3 +1,3 @@
|
||||
title: $:/docs/types/image/svg+xml
|
||||
title: $:/language/Docs/Types/image/svg+xml
|
||||
description: Structured Vector Graphics image
|
||||
name: image/svg+xml
|
||||
@@ -1,3 +1,3 @@
|
||||
title: $:/docs/types/image/x-icon
|
||||
title: $:/language/Docs/Types/image/x-icon
|
||||
description: ICO format icon file
|
||||
name: image/x-icon
|
||||
3
core/language/en-GB/Types/text_css.tid
Normal file
3
core/language/en-GB/Types/text_css.tid
Normal file
@@ -0,0 +1,3 @@
|
||||
title: $:/language/Docs/Types/text/css
|
||||
description: Static stylesheet
|
||||
name: text/css
|
||||
3
core/language/en-GB/Types/text_html.tid
Normal file
3
core/language/en-GB/Types/text_html.tid
Normal file
@@ -0,0 +1,3 @@
|
||||
title: $:/language/Docs/Types/text/html
|
||||
description: HTML markup
|
||||
name: text/html
|
||||
@@ -1,3 +1,3 @@
|
||||
title: $:/docs/types/text/plain
|
||||
title: $:/language/Docs/Types/text/plain
|
||||
description: Plain text
|
||||
name: text/plain
|
||||
@@ -1,3 +1,3 @@
|
||||
title: $:/docs/types/text/vnd.tiddlywiki
|
||||
title: $:/language/Docs/Types/text/vnd.tiddlywiki
|
||||
description: TiddlyWiki version 5 wikitext
|
||||
name: text/vnd.tiddlywiki
|
||||
@@ -1,3 +1,3 @@
|
||||
title: $:/docs/types/text/x-tiddlywiki
|
||||
title: $:/language/Docs/Types/text/x-tiddlywiki
|
||||
description: TiddlyWiki Classic wikitext
|
||||
name: text/x-tiddlywiki
|
||||
@@ -1,16 +0,0 @@
|
||||
title: $:/messages/EnterEditMode
|
||||
type: text/vnd.tiddlywiki
|
||||
subtitle: Editing this wiki
|
||||
footer: <<button close class:"btn btn-primary"><Close>>
|
||||
help: http://five.tiddlywiki.com/static/EditMode
|
||||
|
||||
You can edit this wiki and save your changes. You are strongly advised to verify that saving is working properly before trusting ~TiddlyWiki with your data.
|
||||
|
||||
The following methods of saving changes are available:
|
||||
|
||||
* Using Firefox's built-in file system access
|
||||
* Uploading to a simple server script
|
||||
* Using HTML5's data URI and download attribute
|
||||
|
||||
|
||||
[x] Don't show this message again
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/messages/Saved
|
||||
|
||||
Saved wiki
|
||||
@@ -1,3 +0,0 @@
|
||||
title: $:/messages/StartingSave
|
||||
|
||||
Starting to save wiki
|
||||
41
core/modules/commands/help.js
Normal file
41
core/modules/commands/help.js
Normal file
@@ -0,0 +1,41 @@
|
||||
/*\
|
||||
title: $:/core/modules/commands/help.js
|
||||
type: application/javascript
|
||||
module-type: command
|
||||
|
||||
Help command
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jshint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.info = {
|
||||
name: "help",
|
||||
synchronous: true
|
||||
};
|
||||
|
||||
var Command = function(params,commander) {
|
||||
this.params = params;
|
||||
this.commander = commander;
|
||||
};
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
var subhelp = this.params[0] || "default",
|
||||
helpBase = "$:/language/Help/",
|
||||
text;
|
||||
if(!this.commander.wiki.getTiddler(helpBase + subhelp)) {
|
||||
subhelp = "notfound";
|
||||
}
|
||||
// Wikify the help as formatted text (ie block elements generate newlines)
|
||||
text = this.commander.wiki.renderTiddler("text/plain-formatted",helpBase + subhelp);
|
||||
// Remove any leading linebreaks
|
||||
text = text.replace(/^(\r?\n)*/g,"");
|
||||
this.commander.streams.output.write(text);
|
||||
};
|
||||
|
||||
exports.Command = Command;
|
||||
|
||||
})();
|
||||
59
core/modules/commands/init.js
Normal file
59
core/modules/commands/init.js
Normal file
@@ -0,0 +1,59 @@
|
||||
/*\
|
||||
title: $:/core/modules/commands/init.js
|
||||
type: application/javascript
|
||||
module-type: command
|
||||
|
||||
Command to initialise an empty wiki folder
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.info = {
|
||||
name: "init",
|
||||
synchronous: true
|
||||
};
|
||||
|
||||
var Command = function(params,commander) {
|
||||
this.params = params;
|
||||
this.commander = commander;
|
||||
};
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
var fs = require("fs"),
|
||||
path = require("path");
|
||||
// Check that we don't already have a valid wiki folder
|
||||
if($tw.boot.wikiTiddlersPath) {
|
||||
return "Wiki folder is not empty";
|
||||
}
|
||||
// Loop through each of the specified editions
|
||||
var editions = this.params.length > 0 ? this.params : ["empty"];
|
||||
for(var editionIndex=0; editionIndex<editions.length; editionIndex++) {
|
||||
var editionName = editions[editionIndex];
|
||||
// Check the edition exists
|
||||
var editionPath = path.resolve($tw.boot.corePath,$tw.config.editionsPath) + path.sep + editionName;
|
||||
if(!$tw.utils.isDirectory(editionPath)) {
|
||||
return "Edition '" + editionName + "' not found";
|
||||
}
|
||||
// Copy the edition content
|
||||
var err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);
|
||||
if(!err) {
|
||||
this.commander.streams.output.write("Copied edition '" + editionName + "' to " + $tw.boot.wikiPath + "\n");
|
||||
} else {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
// Tweak the tiddlywiki.info to remove any included wikis
|
||||
var packagePath = $tw.boot.wikiPath + "/tiddlywiki.info",
|
||||
packageJson = JSON.parse(fs.readFileSync(packagePath));
|
||||
delete packageJson.includeWikis;
|
||||
fs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));
|
||||
return null;
|
||||
};
|
||||
|
||||
exports.Command = Command;
|
||||
|
||||
})();
|
||||
@@ -30,8 +30,9 @@ Command.prototype.execute = function() {
|
||||
if(this.params.length < 1) {
|
||||
return "Missing filename";
|
||||
}
|
||||
fs.readFile(this.params[0],"utf8",function(err,data) {
|
||||
if(err) {
|
||||
var ext = path.extname(self.params[0]);
|
||||
fs.readFile(this.params[0],$tw.utils.getTypeEncoding(ext),function(err,data) {
|
||||
if (err) {
|
||||
self.callback(err);
|
||||
} else {
|
||||
var fields = {title: self.params[0]},
|
||||
@@ -41,7 +42,7 @@ Command.prototype.execute = function() {
|
||||
self.callback("No tiddlers found in file \"" + self.params[0] + "\"");
|
||||
} else {
|
||||
for(var t=0; t<tiddlers.length; t++) {
|
||||
self.commander.wiki.addTiddler(new $tw.Tiddler(tiddlers[t]));
|
||||
self.commander.wiki.importTiddler(new $tw.Tiddler(tiddlers[t]));
|
||||
}
|
||||
self.callback(null);
|
||||
}
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
/*\
|
||||
title: $:/core/modules/commands/print.js
|
||||
type: application/javascript
|
||||
module-type: command
|
||||
|
||||
Print command for inspecting TiddlyWiki internals
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jshint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.info = {
|
||||
name: "print",
|
||||
synchronous: true
|
||||
};
|
||||
|
||||
var Command = function(params,commander) {
|
||||
this.params = params;
|
||||
this.commander = commander;
|
||||
this.output = commander.streams.output;
|
||||
};
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
if(this.params.length < 1) {
|
||||
return "Too few parameters for print command";
|
||||
}
|
||||
var subcommand = this.subcommands[this.params[0]];
|
||||
if(subcommand) {
|
||||
return subcommand.call(this);
|
||||
} else {
|
||||
return "Unknown subcommand (" + this.params[0] + ") for print command";
|
||||
}
|
||||
};
|
||||
|
||||
Command.prototype.subcommands = {};
|
||||
|
||||
Command.prototype.subcommands.tiddler = function() {
|
||||
if(this.params.length < 2) {
|
||||
return "Too few parameters for print tiddler command";
|
||||
}
|
||||
var tiddler = this.commander.wiki.getTiddler(this.params[1]);
|
||||
if(!tiddler) {
|
||||
return "No such tiddler as '" + this.params[1] + "'";
|
||||
}
|
||||
this.output.write("Tiddler '" + this.params[1] + "' contains these fields:\n");
|
||||
for(var t in tiddler.fields) {
|
||||
this.output.write(" " + t + ": " + tiddler.getFieldString(t) + "\n");
|
||||
}
|
||||
return null; // No error
|
||||
};
|
||||
|
||||
Command.prototype.subcommands.tiddlers = function() {
|
||||
var tiddlers = this.commander.wiki.getTiddlers();
|
||||
this.output.write("Wiki contains these tiddlers:\n");
|
||||
for(var t=0; t<tiddlers.length; t++) {
|
||||
this.output.write(tiddlers[t] + "\n");
|
||||
}
|
||||
return null; // No error
|
||||
};
|
||||
|
||||
Command.prototype.subcommands.system = function() {
|
||||
var tiddlers = this.commander.wiki.getSystemTitles();
|
||||
this.output.write("Wiki contains these system tiddlers:\n");
|
||||
for(var t=0; t<tiddlers.length; t++) {
|
||||
this.output.write(tiddlers[t] + "\n");
|
||||
}
|
||||
return null; // No error
|
||||
};
|
||||
|
||||
Command.prototype.subcommands.config = function() {
|
||||
var self = this;
|
||||
var quotePropertyName = function(p) {
|
||||
var unquotedPattern = /^[A-Za-z0-9_]*$/mg;
|
||||
if(unquotedPattern.test(p)) {
|
||||
return p;
|
||||
} else {
|
||||
return "[\"" + $tw.utils.stringify(p) + "\"]";
|
||||
}
|
||||
},
|
||||
printConfig = function(object,prefix) {
|
||||
for(var n in object) {
|
||||
var v = object[n];
|
||||
if(typeof v === "object") {
|
||||
printConfig(v,prefix + "." + quotePropertyName(n));
|
||||
} else if(typeof v === "string") {
|
||||
self.output.write(prefix + "." + quotePropertyName(n) + ": \"" + $tw.utils.stringify(v) + "\"\n");
|
||||
} else {
|
||||
self.output.write(prefix + "." + quotePropertyName(n) + ": " + v.toString() + "\n");
|
||||
}
|
||||
}
|
||||
},
|
||||
printObject = function(heading,object) {
|
||||
self.output.write(heading +"\n");
|
||||
for(var n in object) {
|
||||
self.output.write(" " + n + "\n");
|
||||
}
|
||||
};
|
||||
this.output.write("Configuration:\n");
|
||||
printConfig($tw.config," $tw.config");
|
||||
printObject("Tiddler field modules:",$tw.Tiddler.fieldModules);
|
||||
printObject("Loaded modules:",$tw.modules.titles);
|
||||
printObject("Command modules:",$tw.commands);
|
||||
printObject("Parser modules:",$tw.wiki.parsers);
|
||||
printObject("Macro modules:",$tw.wiki.macros);
|
||||
printObject("Deserializer modules:",$tw.Wiki.tiddlerDeserializerModules);
|
||||
return null; // No error
|
||||
};
|
||||
|
||||
exports.Command = Command;
|
||||
|
||||
})();
|
||||
@@ -95,8 +95,9 @@ SimpleServer.prototype.listen = function(port,host) {
|
||||
if(username && password) {
|
||||
// Check they match
|
||||
if(self.checkCredentials(request,username,password) !== "ALLOWED") {
|
||||
var servername = state.wiki.getTiddlerText("$:/SiteTitle") || "TiddlyWiki5";
|
||||
response.writeHead(401,"Authentication required",{
|
||||
"WWW-Authenticate": 'Basic realm="Please provide your username and password to login to TiddlyWiki5"'
|
||||
"WWW-Authenticate": 'Basic realm="Please provide your username and password to login to ' + servername + '"'
|
||||
});
|
||||
response.end();
|
||||
return;
|
||||
@@ -108,6 +109,9 @@ SimpleServer.prototype.listen = function(port,host) {
|
||||
response.end();
|
||||
return;
|
||||
}
|
||||
// Set the encoding for the incoming request
|
||||
// TODO: Presumably this would need tweaking if we supported PUTting binary tiddlers
|
||||
request.setEncoding("utf8");
|
||||
// Dispatch the appropriate method
|
||||
switch(request.method) {
|
||||
case "GET": // Intentional fall-through
|
||||
@@ -157,7 +161,7 @@ var Command = function(params,commander,callback) {
|
||||
state.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title}));
|
||||
var changeCount = state.wiki.getChangeCount(title).toString();
|
||||
response.writeHead(204, "OK",{
|
||||
Etag: "\"default/" + title + "/" + changeCount + ":\""
|
||||
Etag: "\"default/" + encodeURIComponent(title) + "/" + changeCount + ":\""
|
||||
});
|
||||
response.end();
|
||||
}
|
||||
|
||||
@@ -35,5 +35,8 @@ exports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:
|
||||
|
||||
exports.htmlVoidElements = "area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(",");
|
||||
|
||||
exports.htmlBlockElements = "address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video".split(",");
|
||||
|
||||
exports.htmlUnsafeElements = "script".split(",");
|
||||
|
||||
})();
|
||||
|
||||
@@ -3,7 +3,7 @@ title: $:/core/modules/filters.js
|
||||
type: application/javascript
|
||||
module-type: wikimethod
|
||||
|
||||
Adds tiddler filtering to the $tw.Wiki object.
|
||||
Adds tiddler filtering methods to the $tw.Wiki object.
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
@@ -62,7 +62,7 @@ function parseFilterOperation(operators,filterString,p) {
|
||||
nextBracketPos = filterString.indexOf(']',p);
|
||||
break;
|
||||
case '/': // regexp brackets
|
||||
var rex = /^((?:[^\\\/]*|\\.))*\/(?:\(([mygi]+)\))?/g,
|
||||
var rex = /^((?:[^\\\/]*|\\.)*)\/(?:\(([mygi]+)\))?/g,
|
||||
rexMatch = rex.exec(filterString.substring(p));
|
||||
if(rexMatch) {
|
||||
operator.regexp = new RegExp(rexMatch[1], rexMatch[2]);
|
||||
@@ -149,11 +149,16 @@ exports.getFilterOperators = function() {
|
||||
return this.filterOperators;
|
||||
};
|
||||
|
||||
exports.filterTiddlers = function(filterString,currTiddlerTitle,tiddlerList) {
|
||||
exports.filterTiddlers = function(filterString,currTiddlerTitle,source) {
|
||||
var fn = this.compileFilter(filterString);
|
||||
return fn.call(this,tiddlerList || this.tiddlers,currTiddlerTitle);
|
||||
return fn.call(this,source,currTiddlerTitle);
|
||||
};
|
||||
|
||||
/*
|
||||
Compile a filter into a function with the signature fn(source,currTiddlerTitle) where:
|
||||
source: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)
|
||||
currTiddlerTitle: the optional name of the current tiddler
|
||||
*/
|
||||
exports.compileFilter = function(filterString) {
|
||||
var filterParseTree;
|
||||
try {
|
||||
@@ -175,10 +180,15 @@ exports.compileFilter = function(filterString) {
|
||||
var accumulator = source,
|
||||
results = [];
|
||||
$tw.utils.each(operation.operators,function(operator) {
|
||||
var operatorFunction = filterOperators[operator.operator] || filterOperators.field || function(source,operator,operations) {
|
||||
return ["Filter Error: unknown operator '" + operator.operator + "'"];
|
||||
},
|
||||
operand = operator.operand;
|
||||
var operand = operator.operand,
|
||||
operatorFunction;
|
||||
if(!operator.operator) {
|
||||
operatorFunction = filterOperators.title;
|
||||
} else if(!filterOperators[operator.operator]) {
|
||||
operatorFunction = filterOperators.field;
|
||||
} else {
|
||||
operatorFunction = filterOperators[operator.operator];
|
||||
}
|
||||
if(operator.indirect) {
|
||||
operand = self.getTextReference(operator.operand,"",currTiddlerTitle);
|
||||
}
|
||||
@@ -192,7 +202,7 @@ exports.compileFilter = function(filterString) {
|
||||
wiki: self,
|
||||
currTiddlerTitle: currTiddlerTitle
|
||||
});
|
||||
accumulator = results;
|
||||
accumulator = self.makeTiddlerIterator(results);
|
||||
});
|
||||
return results;
|
||||
};
|
||||
@@ -210,21 +220,26 @@ exports.compileFilter = function(filterString) {
|
||||
case "+": // This operation is applied to the main results so far
|
||||
return function(results,source,currTiddlerTitle) {
|
||||
// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved
|
||||
source = results.slice(0);
|
||||
source = self.makeTiddlerIterator(results);
|
||||
results.splice(0,results.length);
|
||||
$tw.utils.pushTop(results,operationSubFunction(source,currTiddlerTitle));
|
||||
};
|
||||
}
|
||||
})());
|
||||
});
|
||||
// Return a function that applies the operations to a source array/hashmap of tiddler titles
|
||||
return function(source,currTiddlerTitle) {
|
||||
// Return a function that applies the operations to a source iterator of tiddler titles
|
||||
return $tw.perf.measure("filter",function filterFunction(source,currTiddlerTitle) {
|
||||
if(!source) {
|
||||
source = self.each;
|
||||
} else if(typeof source === "object") { // Array or hashmap
|
||||
source = self.makeTiddlerIterator(source);
|
||||
}
|
||||
var results = [];
|
||||
$tw.utils.each(operationFunctions,function(operationFunction) {
|
||||
operationFunction(results,source,currTiddlerTitle);
|
||||
});
|
||||
return results;
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
45
core/modules/filters/all.js
Normal file
45
core/modules/filters/all.js
Normal file
@@ -0,0 +1,45 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/all.js
|
||||
type: application/javascript
|
||||
module-type: filteroperator
|
||||
|
||||
Filter operator for selecting tiddlers
|
||||
|
||||
[all[tiddlers+shadows]]
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
var allFilterOperators;
|
||||
|
||||
function getAllFilterOperators() {
|
||||
if(!allFilterOperators) {
|
||||
allFilterOperators = {};
|
||||
$tw.modules.applyMethods("allfilteroperator",allFilterOperators);
|
||||
}
|
||||
return allFilterOperators;
|
||||
}
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
*/
|
||||
exports.all = function(source,operator,options) {
|
||||
// Get our suboperators
|
||||
var allFilterOperators = getAllFilterOperators();
|
||||
// Cycle through the suboperators accumulating their results
|
||||
var results = [],
|
||||
subops = operator.operand.split("+");
|
||||
for(var t=0; t<subops.length; t++) {
|
||||
var subop = allFilterOperators[subops[t]];
|
||||
if(subop) {
|
||||
$tw.utils.pushTop(results,subop(source,operator.prefix,options));
|
||||
}
|
||||
}
|
||||
return results;
|
||||
};
|
||||
|
||||
})();
|
||||
26
core/modules/filters/all/current.js
Normal file
26
core/modules/filters/all/current.js
Normal file
@@ -0,0 +1,26 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/all/current.js
|
||||
type: application/javascript
|
||||
module-type: allfilteroperator
|
||||
|
||||
Filter function for [all[current]]
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
*/
|
||||
exports.current = function(source,prefix,options) {
|
||||
if(options.currTiddlerTitle) {
|
||||
return [options.currTiddlerTitle];
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
22
core/modules/filters/all/missing.js
Normal file
22
core/modules/filters/all/missing.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/all/missing.js
|
||||
type: application/javascript
|
||||
module-type: allfilteroperator
|
||||
|
||||
Filter function for [all[missing]]
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
*/
|
||||
exports.missing = function(source,prefix,options) {
|
||||
return options.wiki.getMissingTitles();
|
||||
};
|
||||
|
||||
})();
|
||||
22
core/modules/filters/all/orphans.js
Normal file
22
core/modules/filters/all/orphans.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/all/orphans.js
|
||||
type: application/javascript
|
||||
module-type: allfilteroperator
|
||||
|
||||
Filter function for [all[orphans]]
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
*/
|
||||
exports.orphans = function(source,prefix,options) {
|
||||
return options.wiki.getOrphanTitles();
|
||||
};
|
||||
|
||||
})();
|
||||
22
core/modules/filters/all/shadows.js
Normal file
22
core/modules/filters/all/shadows.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/all/shadows.js
|
||||
type: application/javascript
|
||||
module-type: allfilteroperator
|
||||
|
||||
Filter function for [all[shadows]]
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
*/
|
||||
exports.shadows = function(source,prefix,options) {
|
||||
return options.wiki.allShadowTitles();
|
||||
};
|
||||
|
||||
})();
|
||||
22
core/modules/filters/all/tiddlers.js
Normal file
22
core/modules/filters/all/tiddlers.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/all/tiddlers.js
|
||||
type: application/javascript
|
||||
module-type: allfilteroperator
|
||||
|
||||
Filter function for [all[tiddlers]]
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
*/
|
||||
exports.tiddlers = function(source,prefix,options) {
|
||||
return options.wiki.allTitles();
|
||||
};
|
||||
|
||||
})();
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user