mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-01-23 11:24:40 +00:00
Compare commits
279 Commits
feat-ai-to
...
multi-wiki
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4dc2486d4b | ||
|
|
d9256707f4 | ||
|
|
e85cfdefa6 | ||
|
|
b198270cb5 | ||
|
|
3836a5d08c | ||
|
|
83f7b9023d | ||
|
|
9362121e8d | ||
|
|
07c3081e7f | ||
|
|
7c4d0d7f5e | ||
|
|
520188dc2b | ||
|
|
aa0d59e4ba | ||
|
|
c1a441b7a1 | ||
|
|
0f558a1442 | ||
|
|
31a7d648e5 | ||
|
|
a6c5b86343 | ||
|
|
ffbf24ae92 | ||
|
|
12e48af372 | ||
|
|
f61a131119 | ||
|
|
8d53a37d34 | ||
|
|
386af03f6d | ||
|
|
8ac2730eb1 | ||
|
|
e873518d6f | ||
|
|
316bd65296 | ||
|
|
3a5f67d4f5 | ||
|
|
ad901a9f50 | ||
|
|
c7531e53ab | ||
|
|
6a7612ddf8 | ||
|
|
5d6ddaee7e | ||
|
|
d0575d6e8e | ||
|
|
6dd6b7bef1 | ||
|
|
517dae8242 | ||
|
|
d0b5f413a4 | ||
|
|
6e7efeb126 | ||
|
|
0f4f60f978 | ||
|
|
a9c124cffd | ||
|
|
4050ba5f92 | ||
|
|
b698b3e9cf | ||
|
|
a930411cfd | ||
|
|
90848a1e96 | ||
|
|
c73311684b | ||
|
|
8a5a684218 | ||
|
|
3287dce40c | ||
|
|
eac8a2c3d8 | ||
|
|
535c440741 | ||
|
|
9eb28a0e5f | ||
|
|
edc32c5262 | ||
|
|
6492ed36bf | ||
|
|
2819b53c04 | ||
|
|
adb2ffcd4d | ||
|
|
97db75e741 | ||
|
|
066771e6e9 | ||
|
|
b4664bd7d1 | ||
|
|
882438db14 | ||
|
|
e9f314579d | ||
|
|
9e2962b24e | ||
|
|
5b53a14903 | ||
|
|
39b7a4fb71 | ||
|
|
f1d0e52ff7 | ||
|
|
d1edf6424d | ||
|
|
e9cbb51f68 | ||
|
|
0ff3875b8a | ||
|
|
38e1ea8f90 | ||
|
|
2b2fd4bdb7 | ||
|
|
b8f463d8ba | ||
|
|
3f30cb4991 | ||
|
|
049951e269 | ||
|
|
3c36e4bd55 | ||
|
|
d03ad0bca6 | ||
|
|
109d92ae68 | ||
|
|
e396334b20 | ||
|
|
d8fd9af63a | ||
|
|
9b6d677726 | ||
|
|
a37d50166f | ||
|
|
b4564e31bd | ||
|
|
33fb857d6b | ||
|
|
4c2c7266d7 | ||
|
|
3c7f06009b | ||
|
|
87f4a525f8 | ||
|
|
92a1c56d31 | ||
|
|
d8eb5cb459 | ||
|
|
268aaebaf0 | ||
|
|
ea318bab6e | ||
|
|
aafe775779 | ||
|
|
129bbe421c | ||
|
|
471ba99a5d | ||
|
|
516a17a6f0 | ||
|
|
2e4980bb97 | ||
|
|
db9978f8c2 | ||
|
|
cc4cb04900 | ||
|
|
9ba4556250 | ||
|
|
131a5abeb8 | ||
|
|
ce79a4add8 | ||
|
|
28a831489b | ||
|
|
51cdca6841 | ||
|
|
d51ad80f80 | ||
|
|
ad528d6b1f | ||
|
|
f2947e73b3 | ||
|
|
baee0bb301 | ||
|
|
8a2111f150 | ||
|
|
fcffff3964 | ||
|
|
cca1f21d02 | ||
|
|
37f6930bf2 | ||
|
|
4b1affee50 | ||
|
|
464d17b522 | ||
|
|
d1bb7159b8 | ||
|
|
b58cfe6324 | ||
|
|
7a0c43436f | ||
|
|
708e21951f | ||
|
|
8198574087 | ||
|
|
6c9b92400e | ||
|
|
8091db37e8 | ||
|
|
e66b67dedc | ||
|
|
a2012dcff8 | ||
|
|
08649dd1eb | ||
|
|
52f76380c7 | ||
|
|
1f63bcbbd0 | ||
|
|
3aa5607a3a | ||
|
|
eaebeb87c9 | ||
|
|
808b94468e | ||
|
|
60e6c8bcb2 | ||
|
|
891f0fd599 | ||
|
|
6154de0d2c | ||
|
|
cae9dbf5d1 | ||
|
|
ae8ef305fa | ||
|
|
9b3ca525ee | ||
|
|
38ee942d8f | ||
|
|
957329d515 | ||
|
|
6063256439 | ||
|
|
1c64646393 | ||
|
|
259b3dca1b | ||
|
|
6a673e6aea | ||
|
|
f606e33415 | ||
|
|
09de91940e | ||
|
|
3d485f0706 | ||
|
|
7eaa9b8aec | ||
|
|
faa4b9700a | ||
|
|
dea739ff07 | ||
|
|
69cc45bf5c | ||
|
|
347aa4d546 | ||
|
|
b4855b25c4 | ||
|
|
d518675e03 | ||
|
|
9b59ae2b73 | ||
|
|
f67573315e | ||
|
|
501f57499e | ||
|
|
2916cb6fd9 | ||
|
|
e553539b2a | ||
|
|
3da773c27f | ||
|
|
b923be5e94 | ||
|
|
c9ab184c65 | ||
|
|
bc45a16f40 | ||
|
|
8b6642b56d | ||
|
|
d6807cb471 | ||
|
|
f9064428c5 | ||
|
|
a443e5f0ad | ||
|
|
24413c53dd | ||
|
|
8b5c3746f8 | ||
|
|
9df625c44d | ||
|
|
54ff0446c6 | ||
|
|
0f5dfb89ad | ||
|
|
e3b27768d2 | ||
|
|
580283433e | ||
|
|
f4ac2b92e7 | ||
|
|
e35584843d | ||
|
|
3335e87ef4 | ||
|
|
abde67e5df | ||
|
|
2ba3643a0c | ||
|
|
89ae2012c7 | ||
|
|
8a209d643f | ||
|
|
1a28ec7ea4 | ||
|
|
5fe41fc896 | ||
|
|
4f9ff1ae81 | ||
|
|
d97ddf1eec | ||
|
|
9facf4a067 | ||
|
|
de4fe132a7 | ||
|
|
d7d0733177 | ||
|
|
e614e291a2 | ||
|
|
dd9a3bfeeb | ||
|
|
83229ace63 | ||
|
|
6724fa804b | ||
|
|
630b98520f | ||
|
|
1c0341de51 | ||
|
|
d5aa74d9af | ||
|
|
343cc33bbe | ||
|
|
b1edbed6a5 | ||
|
|
066e553f84 | ||
|
|
61b54125be | ||
|
|
3276703edd | ||
|
|
f9265169fd | ||
|
|
2361880c45 | ||
|
|
3ad87df154 | ||
|
|
3c58788e37 | ||
|
|
310b5f058a | ||
|
|
a33705e348 | ||
|
|
3fca82321e | ||
|
|
790f431df0 | ||
|
|
0d22bf8418 | ||
|
|
1eecfb6b3a | ||
|
|
b8c1c6c8de | ||
|
|
6503fb4a04 | ||
|
|
bab14b7053 | ||
|
|
2d4b3341f6 | ||
|
|
6f8a3b9261 | ||
|
|
8edefffbc5 | ||
|
|
59b425fd5c | ||
|
|
f2267e2af0 | ||
|
|
c26acfdb42 | ||
|
|
f925f036c9 | ||
|
|
2c810faeeb | ||
|
|
6675358e85 | ||
|
|
262a730534 | ||
|
|
4b6872aa42 | ||
|
|
3283d38867 | ||
|
|
4204ff367e | ||
|
|
51e646690c | ||
|
|
85607f7846 | ||
|
|
41a5bcc3a1 | ||
|
|
84c8a9be9b | ||
|
|
62b2fe3e2f | ||
|
|
f5fdd79c7f | ||
|
|
14752ccb0c | ||
|
|
541c166863 | ||
|
|
270f62bbb2 | ||
|
|
8290d853c9 | ||
|
|
b0a67300cc | ||
|
|
0b9749f3a4 | ||
|
|
3ad3e19392 | ||
|
|
ed71adac7e | ||
|
|
8d95c92bfb | ||
|
|
41ab94978f | ||
|
|
26e198b7d8 | ||
|
|
d16746ab38 | ||
|
|
627c3e20cc | ||
|
|
4d42d4a190 | ||
|
|
ff184822ca | ||
|
|
ddbd6d1e82 | ||
|
|
f6d6478944 | ||
|
|
138c7f2665 | ||
|
|
239ace0c07 | ||
|
|
c1312100aa | ||
|
|
e343eccdc3 | ||
|
|
da5b316358 | ||
|
|
dc8692044c | ||
|
|
4f9ba11489 | ||
|
|
f7914db019 | ||
|
|
11ecaff7db | ||
|
|
d832bbcc70 | ||
|
|
59aed49e98 | ||
|
|
e9f83ca735 | ||
|
|
afa9ad3cde | ||
|
|
01d29ed11e | ||
|
|
8f9ae7e4d5 | ||
|
|
70b048f356 | ||
|
|
5fddd3b104 | ||
|
|
02afbb4000 | ||
|
|
54432485e7 | ||
|
|
26ede2839b | ||
|
|
4b0df1a7ae | ||
|
|
9767e7d3b7 | ||
|
|
4133e7d6d6 | ||
|
|
4f37355a9f | ||
|
|
82fae45656 | ||
|
|
2f09c32d2d | ||
|
|
a16338ce11 | ||
|
|
50d0b1412d | ||
|
|
8941bd1747 | ||
|
|
615dc0c4a3 | ||
|
|
1fb8b2e279 | ||
|
|
0799177cf4 | ||
|
|
1eed61397b | ||
|
|
3f1f7c7ef7 | ||
|
|
8543dda4aa | ||
|
|
68a89b615d | ||
|
|
e9d3f67c5c | ||
|
|
a980390870 | ||
|
|
299781bdba | ||
|
|
f42d3e0536 | ||
|
|
993eb5c90d | ||
|
|
f8f8319324 | ||
|
|
12d84c43c9 |
26
.github/workflows/ci.yml
vendored
26
.github/workflows/ci.yml
vendored
@@ -4,18 +4,19 @@ on:
|
||||
branches:
|
||||
- master
|
||||
- tiddlywiki-com
|
||||
- multi-wiki-support
|
||||
env:
|
||||
NODE_VERSION: "22"
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: "${{ env.NODE_VERSION }}"
|
||||
- run: "./bin/ci-test.sh"
|
||||
- uses: actions/upload-artifact@v4
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: playwright-report
|
||||
@@ -30,8 +31,8 @@ jobs:
|
||||
TW5_BUILD_MAIN_EDITION: "./editions/prerelease"
|
||||
TW5_BUILD_OUTPUT: "./output/prerelease"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: "${{ env.NODE_VERSION }}"
|
||||
- run: "./bin/ci-pre-build.sh"
|
||||
@@ -62,8 +63,8 @@ jobs:
|
||||
TW5_BUILD_OUTPUT: "./output"
|
||||
TW5_BUILD_ARCHIVE: "./output"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: "${{ env.NODE_VERSION }}"
|
||||
- run: "./bin/ci-pre-build.sh"
|
||||
@@ -82,3 +83,14 @@ jobs:
|
||||
- run: "./bin/build-tw-org.sh"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }}
|
||||
build-mws-tiddlywiki-com:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/multi-wiki-support'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: "${{ env.NODE_VERSION }}"
|
||||
- run: "./bin/build-mws-site.sh"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }}
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,7 +5,9 @@
|
||||
tmp/
|
||||
output/
|
||||
node_modules/
|
||||
store/
|
||||
/test-results/
|
||||
/playwright-report/
|
||||
/playwright/.cache/
|
||||
$__StoryList.tid
|
||||
/editions/test/test-store/*
|
||||
4
TODO BEFORE MERGING THIS PR.md
Normal file
4
TODO BEFORE MERGING THIS PR.md
Normal file
@@ -0,0 +1,4 @@
|
||||
The `multi-wiki-support` branch includes some changes that are not intended to be merged into the `master` branch:
|
||||
|
||||
* Readme update (see `editions/tw5.com/tiddlers/readme/ReadMe.tid`)
|
||||
* Remove `multiwikiserver` plugin from `readme-bld.sh` (see `bin/readme-bld.sh`)
|
||||
97
bin/build-mws-site.sh
Executable file
97
bin/build-mws-site.sh
Executable file
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Build mws.tiddlywiki.com assets.
|
||||
|
||||
# Default to the version of TiddlyWiki installed in this repo
|
||||
|
||||
if [ -z "$MWSTWCOM_BUILD_TIDDLYWIKI" ]; then
|
||||
MWSTWCOM_BUILD_TIDDLYWIKI=./tiddlywiki.js
|
||||
fi
|
||||
|
||||
echo "Using MWSTWCOM_BUILD_TIDDLYWIKI as [$MWSTWCOM_BUILD_TIDDLYWIKI]"
|
||||
|
||||
# Set up the build details
|
||||
|
||||
if [ -z "$MWSTWCOM_BUILD_DETAILS" ]; then
|
||||
MWSTWCOM_BUILD_DETAILS="$(git symbolic-ref --short HEAD)-$(git rev-parse HEAD) from $(git remote get-url origin)"
|
||||
fi
|
||||
|
||||
echo "Using MWSTWCOM_BUILD_DETAILS as [$MWSTWCOM_BUILD_DETAILS]"
|
||||
|
||||
if [ -z "$MWSTWCOM_BUILD_COMMIT" ]; then
|
||||
MWSTWCOM_BUILD_COMMIT="$(git rev-parse HEAD)"
|
||||
fi
|
||||
|
||||
echo "Using MWSTWCOM_BUILD_COMMIT as [$MWSTWCOM_BUILD_COMMIT]"
|
||||
|
||||
# Set up the build output directory
|
||||
|
||||
if [ -z "$MWSTWCOM_BUILD_OUTPUT" ]; then
|
||||
MWSTWCOM_BUILD_OUTPUT=$(mktemp -d)
|
||||
fi
|
||||
|
||||
mkdir -p $MWSTWCOM_BUILD_OUTPUT
|
||||
|
||||
if [ ! -d "$MWSTWCOM_BUILD_OUTPUT" ]; then
|
||||
echo 'A valid MWSTWCOM_BUILD_OUTPUT environment variable must be set'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Using MWSTWCOM_BUILD_OUTPUT as [$MWSTWCOM_BUILD_OUTPUT]"
|
||||
|
||||
# Pull existing GitHub pages content
|
||||
|
||||
git clone --depth=1 --branch=main "https://github.com/TiddlyWiki/mws.tiddlywiki.com-gh-pages.git" $MWSTWCOM_BUILD_OUTPUT
|
||||
|
||||
# Make the CNAME file that GitHub Pages requires
|
||||
|
||||
echo "mws.tiddlywiki.com" > $MWSTWCOM_BUILD_OUTPUT/CNAME
|
||||
|
||||
# Delete any existing static content
|
||||
|
||||
mkdir -p $MWSTWCOM_BUILD_OUTPUT/static
|
||||
rm $MWSTWCOM_BUILD_OUTPUT/static/*
|
||||
|
||||
# Put the build details into a .tid file so that it can be included in each build (deleted at the end of this script)
|
||||
|
||||
echo -e -n "title: $:/build\ncommit: $MWSTWCOM_BUILD_COMMIT\n\n$MWSTWCOM_BUILD_DETAILS\n" > $MWSTWCOM_BUILD_OUTPUT/build.tid
|
||||
|
||||
######################################################
|
||||
#
|
||||
# mws.tiddlywiki.com distribution
|
||||
#
|
||||
######################################################
|
||||
|
||||
# /index.html Main site
|
||||
# /favicon.ico Favicon for main site
|
||||
# /static.html Static rendering of default tiddlers
|
||||
# /alltiddlers.html Static rendering of all tiddlers
|
||||
# /static/* Static single tiddlers
|
||||
# /static/static.css Static stylesheet
|
||||
# /static/favicon.ico Favicon for static pages
|
||||
node $MWSTWCOM_BUILD_TIDDLYWIKI \
|
||||
editions/multiwikidocs \
|
||||
--verbose \
|
||||
--version \
|
||||
--load $MWSTWCOM_BUILD_OUTPUT/build.tid \
|
||||
--output $MWSTWCOM_BUILD_OUTPUT \
|
||||
--build favicon static index \
|
||||
|| exit 1
|
||||
|
||||
# Delete the temporary build tiddler
|
||||
|
||||
rm $MWSTWCOM_BUILD_OUTPUT/build.tid || exit 1
|
||||
|
||||
# Push output back to GitHub
|
||||
|
||||
# Exit script immediately if any command fails
|
||||
set -e
|
||||
|
||||
pushd $MWSTWCOM_BUILD_OUTPUT
|
||||
git config --global user.email "actions@github.com"
|
||||
git config --global user.name "GitHub Actions"
|
||||
git add -A .
|
||||
git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))"
|
||||
git remote add deploy "https://$GH_TOKEN@github.com/TiddlyWiki/mws.tiddlywiki.com-gh-pages.git" &>/dev/null
|
||||
git push deploy main &>/dev/null
|
||||
popd
|
||||
@@ -105,7 +105,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
fi
|
||||
|
||||
# /index.html Main site
|
||||
# /external-(version).html External core version of main site
|
||||
# /favicon.ico Favicon for main site
|
||||
# /static.html Static rendering of default tiddlers
|
||||
# /alltiddlers.html Static rendering of all tiddlers
|
||||
@@ -118,7 +117,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
--version \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build favicon static index external-js \
|
||||
--build favicon static index \
|
||||
|| exit 1
|
||||
|
||||
# /empty.html Empty
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
# test TiddlyWiki5 for tiddlywiki.com
|
||||
|
||||
npm install
|
||||
|
||||
node ./tiddlywiki.js \
|
||||
./editions/test \
|
||||
--verbose \
|
||||
|
||||
@@ -10,6 +10,7 @@ fi
|
||||
|
||||
# tw5.com readmes
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
+plugins/tiddlywiki/multiwikiserver \
|
||||
editions/tw5.com \
|
||||
--verbose \
|
||||
--output . \
|
||||
|
||||
30
boot/boot.js
30
boot/boot.js
@@ -232,10 +232,10 @@ $tw.utils.error = function(err) {
|
||||
var link = dm("a"),
|
||||
text = JSON.stringify(tiddlers);
|
||||
if(Blob !== undefined) {
|
||||
var blob = new Blob([text], {type: "application/json"});
|
||||
var blob = new Blob([text], {type: "text/html"});
|
||||
link.setAttribute("href", URL.createObjectURL(blob));
|
||||
} else {
|
||||
link.setAttribute("href","data:application/json," + encodeURIComponent(text));
|
||||
link.setAttribute("href","data:text/html," + encodeURIComponent(text));
|
||||
}
|
||||
link.setAttribute("download","emergency-tiddlers-" + (new Date()) + ".json");
|
||||
document.body.appendChild(link);
|
||||
@@ -1470,15 +1470,17 @@ $tw.Wiki = function(options) {
|
||||
// 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, if this field is missing, default to 1
|
||||
pluginTiddlers.sort(function(a, b) {
|
||||
var priorityA = "plugin-priority" in a.fields ? a.fields["plugin-priority"] : 1;
|
||||
var priorityB = "plugin-priority" in b.fields ? b.fields["plugin-priority"] : 1;
|
||||
if (priorityA !== priorityB) {
|
||||
return priorityA - priorityB;
|
||||
} else if (a.fields.title < b.fields.title) {
|
||||
// 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 (a.fields.title === b.fields.title) {
|
||||
} 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;
|
||||
@@ -2463,15 +2465,13 @@ $tw.boot.initStartup = function(options) {
|
||||
$tw.utils.registerFileType("image/webp","base64",".webp",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/heic","base64",".heic",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/heif","base64",".heif",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/avif","base64",".avif",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/svg+xml","utf8",".svg",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/vnd.microsoft.icon","base64",".ico",{flags:["image"]});
|
||||
$tw.utils.registerFileType("image/x-icon","base64",".ico",{flags:["image"]});
|
||||
$tw.utils.registerFileType("application/wasm","base64",".wasm");
|
||||
$tw.utils.registerFileType("font/woff","base64",".woff");
|
||||
$tw.utils.registerFileType("font/woff2","base64",".woff2");
|
||||
$tw.utils.registerFileType("font/ttf","base64",".ttf");
|
||||
$tw.utils.registerFileType("font/otf","base64",".otf");
|
||||
$tw.utils.registerFileType("application/font-woff","base64",".woff");
|
||||
$tw.utils.registerFileType("application/x-font-ttf","base64",".woff");
|
||||
$tw.utils.registerFileType("application/font-woff2","base64",".woff2");
|
||||
$tw.utils.registerFileType("audio/ogg","base64",".ogg");
|
||||
$tw.utils.registerFileType("audio/mp4","base64",[".mp4",".m4a"]);
|
||||
$tw.utils.registerFileType("video/ogg","base64",[".ogm",".ogv",".ogg"]);
|
||||
|
||||
@@ -5,3 +5,7 @@ TiddlyWiki incorporates code from these fine OpenSource projects:
|
||||
* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]
|
||||
* [[The Jasmine JavaScript Test Framework|https://jasmine.github.io/]]
|
||||
* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]
|
||||
|
||||
And media from these projects:
|
||||
|
||||
* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]
|
||||
|
||||
@@ -4,7 +4,7 @@ type: text/plain
|
||||
TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)
|
||||
|
||||
Copyright (c) 2004-2007, Jeremy Ruston
|
||||
Copyright (c) 2007-2025, UnaMesa Association
|
||||
Copyright (c) 2007-2024, UnaMesa Association
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
title: $:/core/images/language
|
||||
tags: $:/tags/Image
|
||||
|
||||
\parameters (size:"22pt")
|
||||
<svg width=<<size>> height=<<size>> class="tc-image-language tc-image-button" viewBox="0 0 92 92"><path d="M0 0h2480.32v3507.87H0z" style="fill:none" transform="scale(.03696 .02613)"/><path d="M71.508 62.298c-1.243 15.83-16.758 28.344-35.714 28.344-5.713 0-11.113-1.136-15.905-3.158-2.977 2.498-8.618 4.183-15.088 4.183-.929 0-1.84-.034-2.73-.102 4.499-1.5 7.989-4.886 9.298-9.099C4.373 76.918 0 69.016 0 60.246 0 49.773 6.237 40.537 15.729 35.07c1.235 7.764 5.492 14.713 11.724 19.953l-7.269 18.453c-.393.976-.676 1.737-.847 2.285a5.326 5.326 0 0 0-.256 1.591c0 .89.368 1.686 1.103 2.388.736.702 1.583 1.052 2.542 1.052 1.13 0 1.942-.33 2.438-.988.497-.659 1.096-1.93 1.797-3.812l1.797-4.826h15.3l1.797 4.723c.239.582.526 1.254.86 2.015.333.762.646 1.327.936 1.695.291.368.65.659 1.078.873.428.213.942.32 1.54.32a3.586 3.586 0 0 0 2.632-1.09c.727-.728 1.09-1.528 1.09-2.4 0-.84-.384-2.183-1.154-4.031l-3.545-8.755c2.142.3 4.34.455 6.58.455 5.541 0 10.824-.951 15.636-2.674Zm-30.563.247 1.059 2.898H30.76l2.32-6.467a43.152 43.152 0 0 0 7.865 3.569Z"/><path d="M71.778 57.635c-4.793 2.023-10.191 3.157-15.907 3.157-19.767 0-35.793-13.61-35.793-30.396S36.104.001 55.87.001c19.772 0 35.797 13.61 35.797 30.395 0 8.77-4.373 16.674-11.371 22.221 1.309 4.211 4.8 7.6 9.299 9.1-.89.067-1.802.1-2.73.1-6.47 0-12.11-1.686-15.088-4.182Zm-15.59-15.887a44.237 44.237 0 0 0 3.3 2.496c4.284 2.942 9.06 5.381 14.33 7.315l2.334-3.517c-5.134-1.871-9.696-4.125-13.69-6.763a42.558 42.558 0 0 1-3.37-2.483c4.247-4.806 7.374-10.43 9.38-16.869h6.698V17.78h-16.7a47.226 47.226 0 0 0-1.528-2.959 52.943 52.943 0 0 0-2.885-4.562l-4.218 1.554a36.467 36.467 0 0 1 2.971 3.983c.427.661.833 1.323 1.217 1.984H36.394v4.148h6.77a36.878 36.878 0 0 0 5.422 11.56 42.918 42.918 0 0 0 4.591 5.497c-4.687 4.017-10.548 6.932-17.582 8.744l2.247 3.709c7.746-2.44 13.861-5.67 18.347-9.689Zm-9.047-19.82h16.991c-1.86 5.668-4.528 10.402-8 14.204a42.526 42.526 0 0 1-4.247-4.922c-2.126-2.883-3.71-5.977-4.744-9.283Z"/></svg>
|
||||
13
core/language/en-GB/icon.tid
Normal file
13
core/language/en-GB/icon.tid
Normal file
@@ -0,0 +1,13 @@
|
||||
title: $:/languages/en-GB/icon
|
||||
type: image/svg+xml
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 30" width="1200" height="600">
|
||||
<clipPath id="t">
|
||||
<path d="M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z"/>
|
||||
</clipPath>
|
||||
<path d="M0,0 v30 h60 v-30 z" fill="#00247d"/>
|
||||
<path d="M0,0 L60,30 M60,0 L0,30" stroke="#fff" stroke-width="6"/>
|
||||
<path d="M0,0 L60,30 M60,0 L0,30" clip-path="url(#t)" stroke="#cf142b" stroke-width="4"/>
|
||||
<path d="M30,0 v30 M0,15 h60" stroke="#fff" stroke-width="10"/>
|
||||
<path d="M30,0 v30 M0,15 h60" stroke="#cf142b" stroke-width="6"/>
|
||||
</svg>
|
||||
@@ -38,6 +38,13 @@ Commander.prototype.log = function(str) {
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Clear pending commands
|
||||
*/
|
||||
Commander.prototype.clearCommands = function() {
|
||||
this.commandTokens = this.commandTokens.slice(0,this.nextToken);
|
||||
};
|
||||
|
||||
/*
|
||||
Write a string if verbose flag is set
|
||||
*/
|
||||
|
||||
@@ -16,7 +16,7 @@ var Server = require("$:/core/modules/server/server.js").Server;
|
||||
|
||||
exports.info = {
|
||||
name: "listen",
|
||||
synchronous: true,
|
||||
synchronous: false,
|
||||
namedParameterMode: true,
|
||||
mandatoryParameters: []
|
||||
};
|
||||
@@ -38,7 +38,11 @@ Command.prototype.execute = function() {
|
||||
wiki: this.commander.wiki,
|
||||
variables: self.params
|
||||
});
|
||||
var nodeServer = this.server.listen();
|
||||
var nodeServer = this.server.listen(null,null,null,{
|
||||
callback: function() {
|
||||
self.callback();
|
||||
}
|
||||
});
|
||||
$tw.hooks.invokeHook("th-server-command-post-start",this.server,nodeServer,"tiddlywiki");
|
||||
return null;
|
||||
};
|
||||
|
||||
37
core/modules/commands/quit.js
Normal file
37
core/modules/commands/quit.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/*\
|
||||
title: $:/core/modules/commands/quit.js
|
||||
type: application/javascript
|
||||
module-type: command
|
||||
|
||||
Immediately ends the TiddlyWiki process
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.info = {
|
||||
name: "quit",
|
||||
synchronous: true
|
||||
};
|
||||
|
||||
var Command = function(params,commander,callback) {
|
||||
var self = this;
|
||||
this.params = params;
|
||||
this.commander = commander;
|
||||
this.callback = callback;
|
||||
};
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
// Clear any pending commands
|
||||
this.commander.clearCommands();
|
||||
// We don't actually quit, we just issue the "th-quit" hook to give listeners a chance to exit
|
||||
$tw.hooks.invokeHook("th-quit");
|
||||
return null;
|
||||
};
|
||||
|
||||
exports.Command = Command;
|
||||
|
||||
})();
|
||||
@@ -17,24 +17,19 @@ Export our filter function
|
||||
*/
|
||||
exports.function = function(source,operator,options) {
|
||||
var functionName = operator.operands[0],
|
||||
params = [],
|
||||
results;
|
||||
params = [];
|
||||
$tw.utils.each(operator.operands.slice(1),function(param) {
|
||||
params.push({value: param});
|
||||
});
|
||||
// console.log(`Calling ${functionName} with params ${JSON.stringify(params)}`);
|
||||
var variableInfo = options.widget && options.widget.getVariableInfo && options.widget.getVariableInfo(functionName,{params: params, source: source});
|
||||
if(variableInfo && variableInfo.srcVariable && variableInfo.srcVariable.isFunctionDefinition) {
|
||||
results = variableInfo.resultList ? variableInfo.resultList : [variableInfo.text];
|
||||
return variableInfo.resultList ? variableInfo.resultList : [variableInfo.text];
|
||||
}
|
||||
// Return the input list if the function wasn't found
|
||||
if(!results) {
|
||||
results = [];
|
||||
source(function(tiddler,title) {
|
||||
results.push(title);
|
||||
});
|
||||
}
|
||||
// console.log(`function ${functionName} with params ${JSON.stringify(params)} results: ${JSON.stringify(results)}`);
|
||||
var results = [];
|
||||
source(function(tiddler,title) {
|
||||
results.push(title);
|
||||
});
|
||||
return results;
|
||||
};
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ exports.minall = makeNumericReducingOperator(
|
||||
exports.median = makeNumericArrayOperator(
|
||||
function(values) {
|
||||
var len = values.length, median;
|
||||
values.sort(function(a,b) {return a-b});
|
||||
values.sort();
|
||||
if(len % 2) {
|
||||
// Odd, return the middle number
|
||||
median = values[(len - 1) / 2];
|
||||
|
||||
@@ -31,7 +31,7 @@ exports.run = function(baseName,separator,template,startCount) {
|
||||
}
|
||||
// $tw.wiki.generateNewTitle = function(baseTitle,options)
|
||||
// options.prefix must be a string!
|
||||
return this.wiki.generateNewTitle(baseName, {"prefix": separator, "template": template, "startCount": startCount}).trim();
|
||||
return this.wiki.generateNewTitle(baseName, {"prefix": separator, "template": template, "startCount": startCount});
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
@@ -40,7 +40,6 @@ exports["image/gif"] = ImageParser;
|
||||
exports["image/webp"] = ImageParser;
|
||||
exports["image/heic"] = ImageParser;
|
||||
exports["image/heif"] = ImageParser;
|
||||
exports["image/avif"] = ImageParser;
|
||||
exports["image/x-icon"] = ImageParser;
|
||||
exports["image/vnd.microsoft.icon"] = ImageParser;
|
||||
|
||||
|
||||
@@ -46,10 +46,8 @@ function SaverHandler(options) {
|
||||
// Filter the changes so that we only count changes to tiddlers that we care about
|
||||
var filteredChanges = self.filterFn.call(self.wiki,function(iterator) {
|
||||
$tw.utils.each(changes,function(change,title) {
|
||||
if(change.normal) {
|
||||
var tiddler = self.wiki.getTiddler(title);
|
||||
iterator(tiddler,title);
|
||||
}
|
||||
var tiddler = self.wiki.getTiddler(title);
|
||||
iterator(tiddler,title);
|
||||
});
|
||||
});
|
||||
// Adjust the number of changes
|
||||
@@ -185,7 +183,7 @@ SaverHandler.prototype.saveWiki = function(options) {
|
||||
// Call the highest priority saver that supports this method
|
||||
for(var t=this.savers.length-1; t>=0; t--) {
|
||||
var saver = this.savers[t];
|
||||
if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename, type: variables.type}})) {
|
||||
if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {
|
||||
this.logger.log("Saving wiki with method",method,"through saver",saver.info.name);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ DownloadSaver.prototype.save = function(text,method,callback,options) {
|
||||
options = options || {};
|
||||
// Get the current filename
|
||||
var filename = options.variables.filename;
|
||||
var type = options.variables.type;
|
||||
if(!filename) {
|
||||
var p = document.location.pathname.lastIndexOf("/");
|
||||
if(p !== -1) {
|
||||
@@ -33,16 +32,13 @@ DownloadSaver.prototype.save = function(text,method,callback,options) {
|
||||
if(!filename) {
|
||||
filename = "tiddlywiki.html";
|
||||
}
|
||||
if(!type) {
|
||||
type = "text/html";
|
||||
}
|
||||
// Set up the link
|
||||
var link = document.createElement("a");
|
||||
if(Blob !== undefined) {
|
||||
var blob = new Blob([text], {type: type});
|
||||
var blob = new Blob([text], {type: "text/html"});
|
||||
link.setAttribute("href", URL.createObjectURL(blob));
|
||||
} else {
|
||||
link.setAttribute("href","data:" + type + "," + encodeURIComponent(text));
|
||||
link.setAttribute("href","data:text/html," + encodeURIComponent(text));
|
||||
}
|
||||
link.setAttribute("download",filename);
|
||||
document.body.appendChild(link);
|
||||
|
||||
@@ -25,7 +25,7 @@ exports.handler = function(request,response,state) {
|
||||
response.end();
|
||||
} else {
|
||||
// Redirect to the root wiki if login worked
|
||||
var location = ($tw.syncadaptor && $tw.syncadaptor.host)? $tw.syncadaptor.host: `${state.pathPrefix}/`;
|
||||
var location = ($tw.syncadaptor && $tw.syncadaptor.host)? $tw.syncadaptor.host: "/";
|
||||
response.writeHead(302,{
|
||||
Location: location
|
||||
});
|
||||
|
||||
@@ -364,6 +364,11 @@ Server.prototype.listen = function(port,host,prefix) {
|
||||
}
|
||||
// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)
|
||||
server.on("listening",function() {
|
||||
// Stop listening when we get the "th-quit" hook
|
||||
$tw.hooks.addHook("th-quit",function() {
|
||||
server.close();
|
||||
});
|
||||
// Log listening details
|
||||
var address = server.address(),
|
||||
url = self.protocol + "://" + (address.family === "IPv6" ? "[" + address.address + "]" : address.address) + ":" + address.port + prefix;
|
||||
$tw.utils.log("Serving on " + url,"brown/orange");
|
||||
|
||||
@@ -75,7 +75,7 @@ exports.startup = function() {
|
||||
$tw.wiki.unpackPluginTiddlers();
|
||||
// Queue change events for the changed shadow tiddlers
|
||||
$tw.utils.each(Object.keys(changedShadowTiddlers),function(title) {
|
||||
$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title], true);
|
||||
$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,9 +77,8 @@ exports.startup = function() {
|
||||
$tw.rootWidget.addEventListener("tm-copy-to-clipboard",function(event) {
|
||||
$tw.utils.copyToClipboard(event.param,{
|
||||
successNotification: event.paramObject && event.paramObject.successNotification,
|
||||
failureNotification: event.paramObject && event.paramObject.failureNotification,
|
||||
plainText: event.paramObject && event.paramObject.plainText
|
||||
},event.paramObject && event.paramObject.type);
|
||||
failureNotification: event.paramObject && event.paramObject.failureNotification
|
||||
});
|
||||
});
|
||||
// Install the tm-focus-selector message
|
||||
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {
|
||||
|
||||
@@ -88,10 +88,8 @@ exports.startup = function() {
|
||||
if($tw.browser) {
|
||||
var pluginTiddler = $tw.wiki.getTiddler(plugins[0]);
|
||||
if(pluginTiddler) {
|
||||
document.documentElement.setAttribute("lang",pluginTiddler.getFieldString("name"));
|
||||
document.documentElement.setAttribute("dir",pluginTiddler.getFieldString("text-direction") || "auto");
|
||||
} else {
|
||||
document.documentElement.setAttribute("lang","en-GB");
|
||||
document.documentElement.removeAttribute("dir");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,7 +257,11 @@ Save an incoming tiddler in the store, and updates the associated tiddlerInfo
|
||||
Syncer.prototype.storeTiddler = function(tiddlerFields) {
|
||||
// Save the tiddler
|
||||
var tiddler = new $tw.Tiddler(tiddlerFields);
|
||||
this.wiki.addTiddler(tiddler);
|
||||
// Only save the tiddler if it has changed
|
||||
var existingTiddler = this.wiki.getTiddler(tiddlerFields.title);
|
||||
if(!existingTiddler || !existingTiddler.isEqual(tiddler)) {
|
||||
this.wiki.addTiddler(tiddler);
|
||||
}
|
||||
// Save the tiddler revision and changeCount details
|
||||
this.tiddlerInfo[tiddlerFields.title] = {
|
||||
revision: this.getTiddlerRevision(tiddlerFields.title),
|
||||
@@ -556,6 +560,7 @@ SaveTiddlerTask.prototype.run = function(callback) {
|
||||
// Invoke the callback
|
||||
callback(null);
|
||||
},{
|
||||
syncer: self.syncer,
|
||||
tiddlerInfo: self.syncer.tiddlerInfo[self.title]
|
||||
});
|
||||
} else {
|
||||
@@ -586,6 +591,7 @@ DeleteTiddlerTask.prototype.run = function(callback) {
|
||||
// Invoke the callback
|
||||
callback(null);
|
||||
},{
|
||||
syncer: self.syncer,
|
||||
tiddlerInfo: self.syncer.tiddlerInfo[this.title]
|
||||
});
|
||||
};
|
||||
@@ -614,6 +620,8 @@ LoadTiddlerTask.prototype.run = function(callback) {
|
||||
}
|
||||
// Invoke the callback
|
||||
callback(null);
|
||||
},{
|
||||
syncer: self.syncer
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@ exports.getFieldString = function(field,defaultValue) {
|
||||
};
|
||||
|
||||
/*
|
||||
Get the value of a field as an array / list
|
||||
Get the value of a field as a list
|
||||
*/
|
||||
exports.getFieldList = function(field) {
|
||||
var value = this.getFieldString(field,null);
|
||||
var value = this.fields[field];
|
||||
// Check for a missing field
|
||||
if(value === undefined || value === null) {
|
||||
return [];
|
||||
|
||||
@@ -268,10 +268,9 @@ exports.copyStyles = function(srcDomNode,dstDomNode) {
|
||||
/*
|
||||
Copy plain text to the clipboard on browsers that support it
|
||||
*/
|
||||
exports.copyToClipboard = function(text,options,type) {
|
||||
var text = text || "";
|
||||
var options = options || {};
|
||||
var type = type || "text/plain";
|
||||
exports.copyToClipboard = function(text,options) {
|
||||
options = options || {};
|
||||
text = text || "";
|
||||
var textArea = document.createElement("textarea");
|
||||
textArea.style.position = "fixed";
|
||||
textArea.style.top = 0;
|
||||
@@ -284,16 +283,10 @@ exports.copyToClipboard = function(text,options,type) {
|
||||
textArea.style.outline = "none";
|
||||
textArea.style.boxShadow = "none";
|
||||
textArea.style.background = "transparent";
|
||||
textArea.value = text;
|
||||
document.body.appendChild(textArea);
|
||||
textArea.select();
|
||||
textArea.setSelectionRange(0,text.length);
|
||||
textArea.addEventListener("copy",function(event) {
|
||||
event.preventDefault();
|
||||
if (options.plainText) {
|
||||
event.clipboardData.setData("text/plain",options.plainText);
|
||||
}
|
||||
event.clipboardData.setData(type,text);
|
||||
});
|
||||
var succeeded = false;
|
||||
try {
|
||||
succeeded = document.execCommand("copy");
|
||||
|
||||
@@ -216,11 +216,11 @@ HttpClientRequest.prototype.send = function(callback) {
|
||||
if(lengthComputable) {
|
||||
setBinding(self.bindProgress,"" + Math.floor((loaded/total) * 100))
|
||||
}
|
||||
self.wiki.invokeActionString(self.progressActions,undefined,$tw.utils.extend({},self.variables,{
|
||||
self.wiki.invokeActionString(self.progressActions,undefined,{
|
||||
lengthComputable: lengthComputable ? "yes" : "no",
|
||||
loaded: loaded,
|
||||
total: total
|
||||
}),{parentWidget: $tw.rootWidget});
|
||||
},{parentWidget: $tw.rootWidget});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ CreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {
|
||||
}
|
||||
this.setVariable("createTiddler-title",title);
|
||||
this.setVariable("createTiddler-draftTitle",draftTitle);
|
||||
this.refreshChildren([]);
|
||||
this.refreshChildren();
|
||||
return true; // Action was invoked
|
||||
};
|
||||
|
||||
|
||||
@@ -42,9 +42,6 @@ BrowseWidget.prototype.render = function(parent,nextSibling) {
|
||||
if(this.tooltip) {
|
||||
domNode.setAttribute("title",this.tooltip);
|
||||
}
|
||||
if(this.tabIndex) {
|
||||
domNode.setAttribute("tabindex", this.tabIndex);
|
||||
}
|
||||
// Nw.js supports "nwsaveas" to force a "save as" dialogue that allows a new or existing file to be selected
|
||||
if(this.nwsaveas) {
|
||||
domNode.setAttribute("nwsaveas",this.nwsaveas);
|
||||
@@ -59,9 +56,6 @@ BrowseWidget.prototype.render = function(parent,nextSibling) {
|
||||
if(this.nwdirectory) {
|
||||
domNode.setAttribute("nwdirectory",this.nwdirectory);
|
||||
}
|
||||
if(this.isDisabled === "yes") {
|
||||
domNode.setAttribute("disabled", true);
|
||||
}
|
||||
// Add a click event handler
|
||||
domNode.addEventListener("change",function (event) {
|
||||
if(self.message) {
|
||||
@@ -100,8 +94,6 @@ BrowseWidget.prototype.execute = function() {
|
||||
this.accept = this.getAttribute("accept");
|
||||
this.webkitdirectory = this.getAttribute("webkitdirectory");
|
||||
this.nwdirectory = this.getAttribute("nwdirectory");
|
||||
this.tabIndex = this.getAttribute("tabindex");
|
||||
this.isDisabled = this.getAttribute("disabled", "no");
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -47,9 +47,6 @@ CheckboxWidget.prototype.render = function(parent,nextSibling) {
|
||||
if(isChecked === undefined && this.checkboxIndeterminate === "yes") {
|
||||
this.inputDomNode.indeterminate = true;
|
||||
}
|
||||
if(this.tabIndex) {
|
||||
this.inputDomNode.setAttribute("tabindex", this.tabIndex);
|
||||
}
|
||||
if(this.isDisabled === "yes") {
|
||||
this.inputDomNode.setAttribute("disabled",true);
|
||||
}
|
||||
@@ -157,7 +154,7 @@ CheckboxWidget.prototype.getValue = function() {
|
||||
if(this.checkboxTag) {
|
||||
return false;
|
||||
}
|
||||
if(this.checkboxField || this.checkboxIndex) {
|
||||
if(this.checkboxField) {
|
||||
if(this.checkboxDefault === this.checkboxChecked) {
|
||||
return true;
|
||||
}
|
||||
@@ -308,7 +305,6 @@ CheckboxWidget.prototype.execute = function() {
|
||||
this.checkboxClass = this.getAttribute("class","");
|
||||
this.checkboxInvertTag = this.getAttribute("invertTag","");
|
||||
this.isDisabled = this.getAttribute("disabled","no");
|
||||
this.tabIndex = this.getAttribute();
|
||||
// Make the child widgets
|
||||
this.makeChildWidgets();
|
||||
};
|
||||
@@ -318,7 +314,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
|
||||
*/
|
||||
CheckboxWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
if(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.listField || changedAttributes.listIndex || changedAttributes.filter || changedAttributes.checked || changedAttributes.unchecked || changedAttributes["default"] || changedAttributes.indeterminate || changedAttributes["class"] || changedAttributes.disabled || changedAttributes.tabindex) {
|
||||
if(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.listField || changedAttributes.listIndex || changedAttributes.filter || changedAttributes.checked || changedAttributes.unchecked || changedAttributes["default"] || changedAttributes.indeterminate || changedAttributes["class"] || changedAttributes.disabled) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else {
|
||||
|
||||
@@ -48,9 +48,6 @@ EditShortcutWidget.prototype.render = function(parent,nextSibling) {
|
||||
if(this.shortcutAriaLabel) {
|
||||
this.inputNode.setAttribute("aria-label",this.shortcutAriaLabel);
|
||||
}
|
||||
if(this.isDisabled === "yes") {
|
||||
this.inputNode.setAttribute("disabled", true);
|
||||
}
|
||||
// Assign the current shortcut
|
||||
this.updateInputNode();
|
||||
// Add event handlers
|
||||
@@ -80,7 +77,6 @@ EditShortcutWidget.prototype.execute = function() {
|
||||
this.shortcutTooltip = this.getAttribute("tooltip");
|
||||
this.shortcutAriaLabel = this.getAttribute("aria-label");
|
||||
this.shortcutFocus = this.getAttribute("focus");
|
||||
this.isDisabled = this.getAttribute("disabled", "no");
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -142,7 +138,7 @@ Selectively refreshes the widget if needed. Returns true if the widget needed re
|
||||
*/
|
||||
EditShortcutWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes["aria-label"] || changedAttributes.focus || changedAttributes.disabled) {
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes["aria-label"] || changedAttributes.focus) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else if(changedTiddlers[this.shortcutTiddler]) {
|
||||
|
||||
@@ -43,6 +43,15 @@ EditWidget.prototype.execute = function() {
|
||||
// Get our parameters
|
||||
this.editTitle = this.getAttribute("tiddler",this.getVariable("currentTiddler"));
|
||||
this.editField = this.getAttribute("field","text");
|
||||
this.editIndex = this.getAttribute("index");
|
||||
this.editClass = this.getAttribute("class");
|
||||
this.editPlaceholder = this.getAttribute("placeholder");
|
||||
this.editTabIndex = this.getAttribute("tabindex");
|
||||
this.editFocus = this.getAttribute("focus","");
|
||||
this.editCancelPopups = this.getAttribute("cancelPopups","");
|
||||
this.editInputActions = this.getAttribute("inputActions");
|
||||
this.editRefreshTitle = this.getAttribute("refreshTitle");
|
||||
this.editAutoComplete = this.getAttribute("autocomplete");
|
||||
// Choose the appropriate edit widget
|
||||
this.editorType = this.getEditorType();
|
||||
// Make the child widgets
|
||||
@@ -80,8 +89,8 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
|
||||
*/
|
||||
EditWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
// Refresh if the editor type has changed
|
||||
if(changedAttributes.tiddler || changedAttributes.field || (this.getEditorType() !== this.editorType)) {
|
||||
// Refresh if an attribute has changed, or the type associated with the target tiddler has changed
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (this.getEditorType() !== this.editorType)) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else {
|
||||
|
||||
@@ -24,10 +24,6 @@ Inherit from the base widget class
|
||||
*/
|
||||
FillWidget.prototype = new Widget();
|
||||
|
||||
FillWidget.prototype.execute = function() {
|
||||
// Do nothing. Make no child widgets. $Fill widgets should be invisible when naturally encountered. Instead, their parseTreeNodes are made available to $slot widgets that want it.
|
||||
};
|
||||
|
||||
exports.fill = FillWidget;
|
||||
|
||||
})();
|
||||
|
||||
@@ -23,21 +23,15 @@ Inherit from the base widget class
|
||||
*/
|
||||
GenesisWidget.prototype = new Widget();
|
||||
|
||||
GenesisWidget.prototype.computeAttributes = function(options) {
|
||||
options = options || Object.create(null);
|
||||
options.filterFn = function(name) {
|
||||
// Only compute our own attributes which start with a single dollar
|
||||
return name.charAt(0) === "$" && name.charAt(1) !== "$";
|
||||
}
|
||||
return Widget.prototype.computeAttributes.call(this,options);
|
||||
};
|
||||
|
||||
/*
|
||||
Render this widget into the DOM
|
||||
*/
|
||||
GenesisWidget.prototype.render = function(parent,nextSibling) {
|
||||
this.parentDomNode = parent;
|
||||
this.computeAttributes();
|
||||
this.computeAttributes({filterFn: function(name) {
|
||||
// Only compute our own attributes which start with a single dollar
|
||||
return name.charAt(0) === "$" && name.charAt(1) !== "$";
|
||||
}});
|
||||
this.execute();
|
||||
this.renderChildren(parent,nextSibling);
|
||||
};
|
||||
|
||||
@@ -163,4 +163,4 @@ ImageWidget.prototype.refresh = function(changedTiddlers) {
|
||||
|
||||
exports.image = ImageWidget;
|
||||
|
||||
})();
|
||||
})();
|
||||
@@ -107,7 +107,6 @@ ImportVariablesWidget.prototype.execute = function(tiddlerList) {
|
||||
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
|
||||
*/
|
||||
ImportVariablesWidget.prototype.refresh = function(changedTiddlers) {
|
||||
changedTiddlers = changedTiddlers || {};
|
||||
// Recompute our attributes and the filter list
|
||||
var changedAttributes = this.computeAttributes(),
|
||||
tiddlerList = this.wiki.filterTiddlers(this.getAttribute("filter"),this);
|
||||
|
||||
@@ -44,7 +44,8 @@ NavigatorWidget.prototype.render = function(parent,nextSibling) {
|
||||
{type: "tm-fold-tiddler", handler: "handleFoldTiddlerEvent"},
|
||||
{type: "tm-fold-other-tiddlers", handler: "handleFoldOtherTiddlersEvent"},
|
||||
{type: "tm-fold-all-tiddlers", handler: "handleFoldAllTiddlersEvent"},
|
||||
{type: "tm-unfold-all-tiddlers", handler: "handleUnfoldAllTiddlersEvent"}
|
||||
{type: "tm-unfold-all-tiddlers", handler: "handleUnfoldAllTiddlersEvent"},
|
||||
{type: "tm-manage-acl", handler: "handleManageACLTiddlersEvent"}
|
||||
]);
|
||||
this.parentDomNode = parent;
|
||||
this.computeAttributes();
|
||||
@@ -277,8 +278,6 @@ NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
|
||||
}
|
||||
// Get the current value of the tiddler we're editing
|
||||
var tiddler = this.wiki.getTiddler(targetTitle);
|
||||
var defaultType = this.wiki.getTiddlerText("$:/config/DefaultMissingType", "").trim();
|
||||
var defaultFields = { type: defaultType };
|
||||
// Save the initial value of the draft tiddler
|
||||
draftTitle = this.generateDraftTitle(targetTitle);
|
||||
var draftTiddler = new $tw.Tiddler({
|
||||
@@ -290,8 +289,7 @@ NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
|
||||
"draft.title": targetTitle,
|
||||
"draft.of": targetTitle
|
||||
},
|
||||
this.wiki.getModificationFields(),
|
||||
tiddler === null || tiddler === undefined ? defaultFields : {}
|
||||
this.wiki.getModificationFields()
|
||||
);
|
||||
this.wiki.addTiddler(draftTiddler);
|
||||
return draftTiddler;
|
||||
@@ -638,6 +636,14 @@ NavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {
|
||||
});
|
||||
};
|
||||
|
||||
NavigatorWidget.prototype.handleManageACLTiddlersEvent = function() {
|
||||
var pathname = window.location.pathname;
|
||||
var paths = pathname.split("/");
|
||||
var recipeName = paths[paths.length - 1];
|
||||
var bagName = document.querySelector("h1.tc-site-title").innerHTML;
|
||||
window.location.href = "/admin/acl/"+recipeName+"/"+bagName
|
||||
};
|
||||
|
||||
exports.navigator = NavigatorWidget;
|
||||
|
||||
})();
|
||||
|
||||
@@ -47,9 +47,6 @@ RadioWidget.prototype.render = function(parent,nextSibling) {
|
||||
if(isChecked) {
|
||||
this.inputDomNode.checked = true;
|
||||
}
|
||||
if(this.tabIndex) {
|
||||
this.inputDomNode.setAttribute("tabindex", this.tabIndex);
|
||||
}
|
||||
if(this.isDisabled === "yes") {
|
||||
this.inputDomNode.setAttribute("disabled",true);
|
||||
}
|
||||
@@ -114,7 +111,6 @@ RadioWidget.prototype.execute = function() {
|
||||
this.radioClass = this.getAttribute("class","");
|
||||
this.radioDefault = this.getAttribute("default");
|
||||
this.isDisabled = this.getAttribute("disabled","no");
|
||||
this.tabIndex = this.getAttribute("tabindex");
|
||||
this.radioActions = this.getAttribute("actions","");
|
||||
// Make the child widgets
|
||||
this.makeChildWidgets();
|
||||
|
||||
@@ -46,9 +46,6 @@ RangeWidget.prototype.render = function(parent,nextSibling) {
|
||||
if(this.increment){
|
||||
this.inputDomNode.setAttribute("step", this.increment);
|
||||
}
|
||||
if(this.tabIndex) {
|
||||
this.inputDomNode.setAttribute("tabindex", this.tabIndex);
|
||||
}
|
||||
if(this.isDisabled === "yes") {
|
||||
this.inputDomNode.setAttribute("disabled",true);
|
||||
}
|
||||
@@ -167,7 +164,6 @@ RangeWidget.prototype.execute = function() {
|
||||
this.defaultValue = this.getAttribute("default","");
|
||||
this.elementClass = this.getAttribute("class","");
|
||||
this.isDisabled = this.getAttribute("disabled","no");
|
||||
this.tabIndex = this.getAttribute("tabindex");
|
||||
// Actions since 5.1.23
|
||||
// Next 2 only fire once!
|
||||
this.actionsMouseDown = this.getAttribute("actionsStart","");
|
||||
|
||||
@@ -53,9 +53,6 @@ SelectWidget.prototype.render = function(parent,nextSibling) {
|
||||
if(this.selectMultiple) {
|
||||
domNode.setAttribute("multiple","multiple");
|
||||
}
|
||||
if(this.isDisabled === "yes") {
|
||||
domNode.setAttribute("disabled", true);
|
||||
}
|
||||
if(this.selectSize) {
|
||||
domNode.setAttribute("size",this.selectSize);
|
||||
}
|
||||
@@ -175,7 +172,6 @@ SelectWidget.prototype.execute = function() {
|
||||
this.selectTabindex = this.getAttribute("tabindex");
|
||||
this.selectTooltip = this.getAttribute("tooltip");
|
||||
this.selectFocus = this.getAttribute("focus");
|
||||
this.isDisabled = this.getAttribute("disabled","no");
|
||||
// Make the child widgets
|
||||
this.makeChildWidgets();
|
||||
};
|
||||
@@ -186,7 +182,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
|
||||
SelectWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
// If we're using a different tiddler/field/index then completely refresh ourselves
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tooltip || changedAttributes.tabindex || changedAttributes.disabled) {
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tooltip || changedAttributes.tabindex) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else {
|
||||
|
||||
@@ -33,7 +33,6 @@ TestCaseWidget.prototype.render = function(parent,nextSibling) {
|
||||
this.execute();
|
||||
// Create container DOM node
|
||||
var domNode = this.document.createElement("div");
|
||||
domNode.setAttribute("class", "tc-test-case " + this.testcaseClass);
|
||||
this.domNodes.push(domNode);
|
||||
parent.insertBefore(domNode,nextSibling);
|
||||
// Render the children into a hidden DOM node
|
||||
@@ -146,7 +145,6 @@ TestCaseWidget.prototype.execute = function() {
|
||||
this.testcaseTestActions = this.getAttribute("testActions");
|
||||
this.testcaseTestExpectedResult = this.getAttribute("testExpectedResult");
|
||||
this.testcaseHideIfPass = this.getAttribute("testHideIfPass");
|
||||
this.testcaseClass = this.getAttribute("class","");
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -101,7 +101,6 @@ TranscludeWidget.prototype.execute = function() {
|
||||
}
|
||||
this.sourceText = target.text;
|
||||
this.parserType = target.type;
|
||||
this._canonical_uri = target._canonical_uri;
|
||||
// Set the legacy transclusion context variables only if we're not transcluding a variable
|
||||
if(!this.transcludeVariable) {
|
||||
var recursionMarker = this.makeRecursionMarker();
|
||||
@@ -229,8 +228,7 @@ TranscludeWidget.prototype.getTransclusionTarget = function() {
|
||||
});
|
||||
return {
|
||||
text: parserInfo.text,
|
||||
type: parserInfo.type,
|
||||
_canonical_uri: parserInfo._canonical_uri
|
||||
type: parserInfo.type
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -457,11 +455,8 @@ TranscludeWidget.prototype.makeRecursionMarker = function() {
|
||||
|
||||
TranscludeWidget.prototype.parserNeedsRefresh = function() {
|
||||
// Doesn't need to consider transcluded variables because a parent variable can't change once a widget has been created
|
||||
var parserInfo = this.wiki.getTextReferenceParserInfo(this.transcludeTitle,this.transcludeField,this.transcludeIndex,{
|
||||
subTiddler: this.transcludeSubTiddler,
|
||||
defaultType: this.transcludeType
|
||||
});
|
||||
return (this.sourceText === undefined || parserInfo.sourceText !== this.sourceText || parserInfo.parserType !== this.parserType || parserInfo._canonical_uri !== this._canonical_uri);
|
||||
var parserInfo = this.wiki.getTextReferenceParserInfo(this.transcludeTitle,this.transcludeField,this.transcludeIndex,{subTiddler:this.transcludeSubTiddler});
|
||||
return (this.sourceText === undefined || parserInfo.sourceText !== this.sourceText || parserInfo.parserType !== this.parserType)
|
||||
};
|
||||
|
||||
TranscludeWidget.prototype.functionNeedsRefresh = function() {
|
||||
|
||||
@@ -141,15 +141,12 @@ This method should be called after the changes it describes have been made to th
|
||||
title: Title of tiddler
|
||||
isDeleted: defaults to false (meaning the tiddler has been created or modified),
|
||||
true if the tiddler has been deleted
|
||||
isShadow: defaults to false (meaning the change applies to the normal tiddler),
|
||||
true if the tiddler being changed is a shadow tiddler
|
||||
*/
|
||||
exports.enqueueTiddlerEvent = function(title,isDeleted,isShadow) {
|
||||
exports.enqueueTiddlerEvent = function(title,isDeleted) {
|
||||
// Record the touch in the list of changed tiddlers
|
||||
this.changedTiddlers = this.changedTiddlers || Object.create(null);
|
||||
this.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);
|
||||
this.changedTiddlers[title][isDeleted ? "deleted" : "modified"] = true;
|
||||
this.changedTiddlers[title][isShadow ? "shadow" : "normal"] = true;
|
||||
// Increment the change count
|
||||
this.changeCount = this.changeCount || Object.create(null);
|
||||
if($tw.utils.hop(this.changeCount,title)) {
|
||||
@@ -1135,7 +1132,6 @@ exports.getTextReferenceParserInfo = function(title,field,index,options) {
|
||||
if(tiddler.fields.type) {
|
||||
parserInfo.parserType = tiddler.fields.type;
|
||||
}
|
||||
parserInfo._canonical_uri = tiddler.fields._canonical_uri;
|
||||
}
|
||||
} else if(field) {
|
||||
if(field === "title") {
|
||||
|
||||
@@ -65,8 +65,8 @@ flexoki-bl-2: <<colour flexoki-blue-600>>
|
||||
flexoki-pu-2: <<colour flexoki-purple-600>>
|
||||
flexoki-ma-2: <<colour flexoki-magenta-600>>
|
||||
|
||||
alert-background: <<colour flexoki-yellow-900>>
|
||||
alert-border: <<colour flexoki-ye>>
|
||||
alert-background: <<colour flexoki-yellow-100>>
|
||||
alert-border: <<colour flexoki-ye-2>>
|
||||
alert-highlight: <<colour flexoki-re>>
|
||||
alert-muted-foreground: <<colour flexoki-ye>>
|
||||
background: #100F0F
|
||||
@@ -78,13 +78,13 @@ code-background: <<colour background>>
|
||||
code-border: <<colour flexoki-tx>>
|
||||
code-foreground: <<colour flexoki-tx>>
|
||||
diff-delete-background: <<colour flexoki-re>>
|
||||
diff-delete-foreground: <<colour flexoki-bg-2>>
|
||||
diff-delete-foreground: <<colour flexoki-paper>>
|
||||
diff-equal-background:
|
||||
diff-equal-foreground: inherit
|
||||
diff-insert-background: <<colour flexoki-gr>>
|
||||
diff-insert-foreground: <<colour flexoki-bg-2>>
|
||||
diff-insert-foreground: <<colour flexoki-paper>>
|
||||
diff-invisible-background: <<colour flexoki-ye>>
|
||||
diff-invisible-foreground: <<colour flexoki-bg-2>>
|
||||
diff-invisible-foreground: <<colour flexoki-paper>>
|
||||
dirty-indicator: <<colour flexoki-re>>
|
||||
download-background: <<colour flexoki-cy-2>>
|
||||
download-foreground: <<colour background>>
|
||||
@@ -103,8 +103,8 @@ external-link-foreground-visited: <<colour flexoki-bl>>
|
||||
external-link-foreground: <<colour flexoki-bl>>
|
||||
footnote-target-background: <<colour flexoki-bg-2>>
|
||||
foreground: #CECDC3
|
||||
highlight-background: <<colour flexoki-yellow-900>>
|
||||
highlight-foreground: inherit
|
||||
highlight-background: #ffff00
|
||||
highlight-foreground: #000000
|
||||
menubar-background: <<colour primary>>
|
||||
menubar-foreground: <<colour flexoki-paper>>
|
||||
message-background: <<colour background>>
|
||||
@@ -118,14 +118,14 @@ modal-footer-border: <<colour flexoki-ui-3>>
|
||||
modal-header-border: <<colour flexoki-ui-3>>
|
||||
muted-foreground: <<colour flexoki-tx-2>>
|
||||
network-activity-foreground: <<colour flexoki-cy>>
|
||||
notification-background: <<colour flexoki-bg>>
|
||||
notification-border: <<colour flexoki-paper>>
|
||||
notification-background: <<colour flexoki-ui-3>>
|
||||
notification-border: <<colour flexoki-ui>>
|
||||
page-background: <<colour flexoki-bg-2>>
|
||||
pre-background: <<colour flexoki-bg-2>>
|
||||
pre-background: <<colour flexoki-ui-3>>
|
||||
pre-border: <<colour flexoki-ui-2>>
|
||||
primary: <<colour flexoki-cy>>
|
||||
selection-background: <<colour primary>>
|
||||
selection-foreground: <<colour background>>
|
||||
selection-background: #2b7b73
|
||||
selection-foreground: <<colour flexoki-tx>>
|
||||
select-tag-background: <<colour flexoki-bg>>
|
||||
select-tag-foreground: <<colour flexoki-paper>>
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
@@ -193,20 +193,20 @@ toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: <<colour flexoki-tx-3>>
|
||||
very-muted-foreground: <<colour flexoki-600>>
|
||||
wikilist-background: <<colour flexoki-ui>>
|
||||
wikilist-item: <<colour flexoki-black>>
|
||||
wikilist-info: <<colour flexoki-paper>>
|
||||
wikilist-title: <<colour flexoki-tx-2>>
|
||||
wikilist-background: #e5e5e5
|
||||
wikilist-item: #fff
|
||||
wikilist-info: #000
|
||||
wikilist-title: #666
|
||||
wikilist-title-svg: <<colour wikilist-title>>
|
||||
wikilist-url: <<colour flexoki-tx-3>>
|
||||
wikilist-button-open: <<colour flexoki-gr>>
|
||||
wikilist-button-open-hover: <<colour flexoki-gr-2>>
|
||||
wikilist-button-reveal: <<colour flexoki-cy>>
|
||||
wikilist-button-reveal-hover: <<colour flexoki-cy-2>>
|
||||
wikilist-button-remove: <<colour flexoki-re>>
|
||||
wikilist-button-remove-hover: <<colour flexoki-re-2>>
|
||||
wikilist-toolbar-background: <<colour flexoki-ui-2>>
|
||||
wikilist-toolbar-foreground: <<colour flexoki-600>>
|
||||
wikilist-droplink-dragover: <<colour flexoki-pu>>
|
||||
wikilist-button-background: <<colour flexoki-tx-3>>
|
||||
wikilist-button-foreground: <<colour flexoki-paper>>
|
||||
wikilist-url: #aaa
|
||||
wikilist-button-open: #4fb82b
|
||||
wikilist-button-open-hover: green
|
||||
wikilist-button-reveal: #5778d8
|
||||
wikilist-button-reveal-hover: blue
|
||||
wikilist-button-remove: #d85778
|
||||
wikilist-button-remove-hover: red
|
||||
wikilist-toolbar-background: #d3d3d3
|
||||
wikilist-toolbar-foreground: #888
|
||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||
wikilist-button-background: #acacac
|
||||
wikilist-button-foreground: #000
|
||||
@@ -94,8 +94,8 @@ dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
dropdown-tab-background-selected: <<colour background>>
|
||||
dropdown-tab-background: <<colour flexoki-bg-2>>
|
||||
dropdown-tab-background-selected: #fff
|
||||
dropdown-tab-background: #ececec
|
||||
dropzone-background: <<colour flexoki-gr>>
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
@@ -105,8 +105,8 @@ external-link-foreground-visited: <<colour flexoki-bl>>
|
||||
external-link-foreground: <<colour flexoki-bl>>
|
||||
footnote-target-background: <<colour flexoki-bg-2>>
|
||||
foreground: #100F0F
|
||||
highlight-background: <<colour flexoki-yellow-100>>
|
||||
highlight-foreground: inherit
|
||||
highlight-background: #ffff00
|
||||
highlight-foreground: #000000
|
||||
menubar-background: <<colour primary>>
|
||||
menubar-foreground: <<colour flexoki-paper>>
|
||||
message-background: <<colour flexoki-bg>>
|
||||
@@ -123,7 +123,7 @@ network-activity-foreground: <<colour flexoki-cy-2>>
|
||||
notification-background: <<colour flexoki-bg>>
|
||||
notification-border: <<color flexoki-black>>
|
||||
page-background: <<colour flexoki-bg-2>>
|
||||
pre-background: <<colour flexoki-bg-2>>
|
||||
pre-background: <<colour flexoki-bg>>
|
||||
pre-border: <<colour flexoki-ui-2>>
|
||||
primary: <<colour flexoki-cy-2>>
|
||||
selection-background: <<colour flexoki-cy-2>>
|
||||
@@ -196,19 +196,19 @@ toolbar-done-button:
|
||||
untagged-background: <<colour flexoki-tx-3>>
|
||||
very-muted-foreground: <<colour flexoki-500>>
|
||||
wikilist-background: <<colour flexoki-ui>>
|
||||
wikilist-item: <<colour flexoki-paper>>
|
||||
wikilist-info: <<colour flexoki-black>>
|
||||
wikilist-title: <<colour flexoki-tx-2>>
|
||||
wikilist-item: #fff
|
||||
wikilist-info: #000
|
||||
wikilist-title: #666
|
||||
wikilist-title-svg: <<colour wikilist-title>>
|
||||
wikilist-url: <<colour flexoki-tx-3>>
|
||||
wikilist-button-open: <<colour flexoki-gr-2>>
|
||||
wikilist-button-open-hover: <<colour flexoki-gr>>
|
||||
wikilist-button-reveal: <<colour flexoki-cy-2>>
|
||||
wikilist-button-reveal-hover: <<colour flexoki-cy>>
|
||||
wikilist-button-remove: <<colour flexoki-re-2>>
|
||||
wikilist-button-remove-hover: <<colour flexoki-re>>
|
||||
wikilist-toolbar-background: <<colour flexoki-ui-2>>
|
||||
wikilist-toolbar-foreground: <<colour flexoki-500>>
|
||||
wikilist-droplink-dragover: <<colour flexoki-pu>>
|
||||
wikilist-button-background: <<colour flexoki-tx-3>>
|
||||
wikilist-button-foreground: <<colour flexoki-black>>
|
||||
wikilist-url: #aaa
|
||||
wikilist-button-open: #4fb82b
|
||||
wikilist-button-open-hover: green
|
||||
wikilist-button-reveal: #5778d8
|
||||
wikilist-button-reveal-hover: blue
|
||||
wikilist-button-remove: #d85778
|
||||
wikilist-button-remove-hover: red
|
||||
wikilist-toolbar-background: #d3d3d3
|
||||
wikilist-toolbar-foreground: #888
|
||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||
wikilist-button-background: #acacac
|
||||
wikilist-button-foreground: #000
|
||||
|
||||
@@ -21,9 +21,9 @@ diff-delete-foreground: <<colour foreground>>
|
||||
diff-equal-background:
|
||||
diff-equal-foreground: <<colour foreground>>
|
||||
diff-insert-background: #b8bb26
|
||||
diff-insert-foreground: <<colour background>>
|
||||
diff-invisible-background: #ffff97
|
||||
diff-invisible-foreground: #444347
|
||||
diff-insert-foreground: <<colour foreground>>
|
||||
diff-invisible-background:
|
||||
diff-invisible-foreground: <<colour muted-foreground>>
|
||||
dirty-indicator: #fb4934
|
||||
download-background: #b8bb26
|
||||
download-foreground: <<colour background>>
|
||||
|
||||
@@ -21,8 +21,8 @@ diff-delete-foreground: <<colour foreground>>
|
||||
diff-equal-background:
|
||||
diff-equal-foreground: <<colour foreground>>
|
||||
diff-insert-background: #A3BE8C
|
||||
diff-insert-foreground: <<colour background>>
|
||||
diff-invisible-background: #f9f3b5
|
||||
diff-insert-foreground: <<colour foreground>>
|
||||
diff-invisible-background:
|
||||
diff-invisible-foreground: <<colour muted-foreground>>
|
||||
dirty-indicator: #BF616A
|
||||
download-background: #A3BE8C
|
||||
|
||||
@@ -125,14 +125,6 @@ foreground: #657b83
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
|
||||
alert-border: #b99e2f
|
||||
diff-delete-background: <<colour red>>
|
||||
diff-delete-foreground: <<colour background>>
|
||||
diff-equal-background: inherit
|
||||
diff-equal-foreground: inherit
|
||||
diff-insert-background: <<colour green>>
|
||||
diff-insert-foreground: <<colour background>>
|
||||
diff-invisible-background: <<colour yellow>>
|
||||
diff-invisible-foreground: <<colour background>>
|
||||
dirty-indicator: #ff0000
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
external-link-background-hover: inherit
|
||||
|
||||
@@ -18,14 +18,6 @@ button-foreground: #93a1a1
|
||||
code-background: #073642
|
||||
code-border: #586e75
|
||||
code-foreground: #93a1a1
|
||||
diff-delete-background: #dc322f
|
||||
diff-delete-foreground: #eee8d5
|
||||
diff-equal-background: inherit
|
||||
diff-equal-foreground: inherit
|
||||
diff-insert-background: #859900
|
||||
diff-insert-foreground: #073642
|
||||
diff-invisible-background: #b58900
|
||||
diff-invisible-foreground: #eee8d5
|
||||
dirty-indicator: #dc322f
|
||||
download-background: #859900
|
||||
download-foreground: #073642
|
||||
|
||||
@@ -18,14 +18,6 @@ button-foreground: #586e75
|
||||
code-background: #eee8d5
|
||||
code-border: #93a1a1
|
||||
code-foreground: #586e75
|
||||
diff-delete-background: #dc322f
|
||||
diff-delete-foreground: #eee8d5
|
||||
diff-equal-background: inherit
|
||||
diff-equal-foreground: inherit
|
||||
diff-insert-background: #859900
|
||||
diff-insert-foreground: #eee8d5
|
||||
diff-invisible-background: #b58900
|
||||
diff-invisible-foreground: #eee8d5
|
||||
dirty-indicator: #dc322f
|
||||
download-background: #859900
|
||||
download-foreground: #eee8d5
|
||||
|
||||
@@ -19,13 +19,13 @@ code-background: rgba(0,0,0,0.03)
|
||||
code-border: rgba(0,0,0,0.08)
|
||||
code-foreground: rgb(255, 94, 94)
|
||||
diff-delete-background: #ffc9c9
|
||||
diff-delete-foreground: <<colour background>>
|
||||
diff-delete-foreground: <<colour foreground>>
|
||||
diff-equal-background:
|
||||
diff-equal-foreground: <<colour foreground>>
|
||||
diff-insert-background: #aaefad
|
||||
diff-insert-foreground: <<colour background>>
|
||||
diff-invisible-background: #fdfcbd
|
||||
diff-invisible-foreground: <<colour background>>
|
||||
diff-insert-foreground: <<colour foreground>>
|
||||
diff-invisible-background:
|
||||
diff-invisible-foreground: <<colour muted-foreground>>
|
||||
dirty-indicator: rgb(255, 94, 94)
|
||||
download-background: #19a974
|
||||
download-foreground: rgb(38, 38, 38)
|
||||
|
||||
@@ -2,6 +2,5 @@ title: $:/core/templates/exporters/CsvFile
|
||||
tags: $:/tags/Exporter
|
||||
description: {{$:/language/Exporters/CsvFile}}
|
||||
extension: .csv
|
||||
file-type: text/csv
|
||||
|
||||
<$macrocall $name="csvtiddlers" filter=<<exportFilter>> format="quoted-comma-sep" $output="text/raw"/>
|
||||
|
||||
@@ -2,6 +2,5 @@ title: $:/core/templates/exporters/JsonFile
|
||||
tags: $:/tags/Exporter
|
||||
description: {{$:/language/Exporters/JsonFile}}
|
||||
extension: .json
|
||||
file-type: application/json
|
||||
|
||||
<$macrocall $name="jsontiddlers" filter=<<exportFilter>> $output="text/raw"/>
|
||||
|
||||
@@ -2,7 +2,6 @@ title: $:/core/templates/exporters/TidFile
|
||||
tags: $:/tags/Exporter
|
||||
description: {{$:/language/Exporters/TidFile}}
|
||||
extension: .tid
|
||||
file-type: text/vnd.tiddlywiki
|
||||
condition: [<count>compare:lte[1]]
|
||||
|
||||
\define renderContent()
|
||||
|
||||
@@ -8,8 +8,13 @@ title: $:/core/ui/EditorToolbar/link-dropdown
|
||||
<$action-deletetiddler $filter="[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]"/>
|
||||
\end
|
||||
|
||||
\procedure prefix.bracket() [
|
||||
\procedure suffix.bracket() ]
|
||||
|
||||
\function tf.get-focus-selector() [[data-tiddler-title=]addprefix[$(prefix.bracket)$]substitute[]addsuffix<cssEscapedTitle>addsuffix[$(suffix.bracket)$]substitute[]] .tc-create-wikitext-link input :and[join[ ]]
|
||||
|
||||
\procedure cancel-search-actions-inner()
|
||||
<$let userInput={{{ [<storeTitle>get[text]] }}}><$list filter="[<searchTiddler>get[text]!match<userInput>]" emptyMessage="<$action-deletetiddler $filter='[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]'/>"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text="yes"/></$list></$let>
|
||||
<$set name="userInput" value={{{ [<storeTitle>get[text]] }}}><$list filter="[<searchTiddler>get[text]!match<userInput>]" emptyMessage="<$action-deletetiddler $filter='[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]'/>"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text="yes"/></$list></$set>
|
||||
\end
|
||||
|
||||
\procedure cancel-search-actions() <$list filter="[<storeTitle>!has[text]] :and[<searchTiddler>!has[text]]" emptyMessage="<<cancel-search-actions-inner>>"><$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/></$list>
|
||||
@@ -29,9 +34,9 @@ title: $:/core/ui/EditorToolbar/link-dropdown
|
||||
\whitespace trim
|
||||
''<<lingo Hint>>''
|
||||
|
||||
<$let searchTiddler=`$(config-title)$/search` linkTiddler=`$(config-title)$/link` linktext="" searchListState=<<qualify "$:/temp/link-search/selected-item">> refreshTitle=<<qualify "$:/temp/link-search/refresh">> storeTitle=<<qualify "$:/temp/link-search/input">>>
|
||||
<$vars searchTiddler={{{ [<config-title>addsuffix[/search]] }}} linkTiddler={{{ [<config-title>addsuffix[/link]] }}} linktext="" searchListState=<<qualify "$:/temp/link-search/selected-item">> refreshTitle=<<qualify "$:/temp/link-search/refresh">> storeTitle=<<qualify "$:/temp/link-search/input">>>
|
||||
|
||||
<$let linkTiddler=<<searchTiddler>>>
|
||||
<$vars linkTiddler=<<searchTiddler>>>
|
||||
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>> class="tc-create-wikitext-link">
|
||||
<$transclude $variable="keyboard-driven-input" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>
|
||||
@@ -46,28 +51,28 @@ title: $:/core/ui/EditorToolbar/link-dropdown
|
||||
<<external-link>>
|
||||
 
|
||||
<$button class="tc-btn-invisible tc-btn-mini" style="width: auto; display: inline-block; background-colour: inherit;">
|
||||
<<cancel-search-actions>><$action-sendmessage $message="tm-focus-selector" $param=`[data-tiddler-title=${[<storyTiddler>escapecss[]]}$] .tc-create-wikitext-link input`/>
|
||||
<<cancel-search-actions>><$set name="cssEscapedTitle" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<tf.get-focus-selector>>/></$set>
|
||||
{{$:/core/images/close-button}}
|
||||
</$button>
|
||||
</$reveal>
|
||||
</$let>
|
||||
</$vars>
|
||||
|
||||
<$reveal tag="div" state=<<storeTitle>> type="nomatch" text="">
|
||||
|
||||
<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>
|
||||
|
||||
<$let userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
|
||||
<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
|
||||
|
||||
{{$:/core/ui/SearchResults}}
|
||||
|
||||
</$let>
|
||||
</$vars>
|
||||
|
||||
</$linkcatcher>
|
||||
|
||||
</$reveal>
|
||||
|
||||
</$let>
|
||||
</$vars>
|
||||
|
||||
\end
|
||||
|
||||
<$transclude $variable="body" config-title=<<qualify "$:/state/Link/">>/>
|
||||
<$transclude $variable="body" config-title=<<qualify "$:/state/Link/">>/>
|
||||
|
||||
@@ -5,7 +5,6 @@ description: {{$:/language/Buttons/AdvancedSearch/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\procedure advanced-search-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/advanced-search-button}}
|
||||
|
||||
@@ -5,7 +5,6 @@ description: {{$:/language/Buttons/ControlPanel/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\procedure control-panel-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/ControlPanel" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/options-button}}
|
||||
|
||||
@@ -7,7 +7,11 @@ description: {{$:/language/Buttons/Language/Hint}}
|
||||
<span class="tc-popup-keep">
|
||||
<$button popup=<<qualify "$:/state/popup/language">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/language}}
|
||||
<span class="tc-image-button">
|
||||
<$set name="languagePluginTitle" value={{$:/language}}>
|
||||
<$image source=`$(languagePluginTitle)$/icon`/>
|
||||
</$set>
|
||||
</span>
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Language/Caption}}/></span>
|
||||
|
||||
@@ -5,7 +5,6 @@ description: {{$:/language/Buttons/Manager/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\procedure manager-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/list}}
|
||||
|
||||
@@ -4,17 +4,10 @@ caption: {{$:/core/images/save-button-dynamic}} {{$:/language/Buttons/SaveWiki/C
|
||||
description: {{$:/language/Buttons/SaveWiki/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\procedure saveActions()
|
||||
<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$wikify name="site-title" text={{$:/config/SaveWikiButton/Filename}}>
|
||||
<$action-sendmessage $message="tm-save-wiki" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>
|
||||
<$action-sendmessage $message="tm-save-wiki" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>
|
||||
</$wikify>
|
||||
\end
|
||||
|
||||
<$button actions=<<saveActions>>
|
||||
tooltip={{$:/language/Buttons/SaveWiki/Hint}}
|
||||
aria-label={{$:/language/Buttons/SaveWiki/Caption}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
>
|
||||
<span class="tc-dirty-indicator">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/save-button-dynamic}}
|
||||
|
||||
@@ -5,7 +5,6 @@ description: {{$:/language/Buttons/TagManager/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\procedure control-panel-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/TagManager" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/tag-button}}
|
||||
|
||||
@@ -2,7 +2,6 @@ title: $:/core/ui/ViewTemplate/body/rendered-plain-text
|
||||
code-body: yes
|
||||
|
||||
\whitespace trim
|
||||
\parameters (language:"css")
|
||||
<$wikify name="text" text={{!!text}} type={{!!type}}>
|
||||
<$codeblock code=<<text>> language=<<language>>/>
|
||||
<$codeblock code=<<text>> language="css"/>
|
||||
</$wikify>
|
||||
@@ -1,4 +0,0 @@
|
||||
title: $:/core/ui/ViewTemplate/body/rendered-plain-text/html
|
||||
code-body: yes
|
||||
|
||||
{{||$:/core/ui/ViewTemplate/body/rendered-plain-text|html}}
|
||||
@@ -3,7 +3,6 @@ tags: $:/tags/ViewTemplateBodyFilter
|
||||
|
||||
testcase: [tag[$:/tags/wiki-test-spec]type[text/vnd.tiddlywiki-multiple]] [tag[$:/tags/wiki-test-spec-failing]type[text/vnd.tiddlywiki-multiple]] :then[[$:/core/ui/TestCaseTemplate]]
|
||||
stylesheet: [tag[$:/tags/Stylesheet]then[$:/core/ui/ViewTemplate/body/rendered-plain-text]]
|
||||
html: [tag[$:/tags/RawMarkupWikified]] [tag[$:/tags/RawMarkupWikified/TopHead]] [tag[$:/tags/RawMarkupWikified/TopBody]] [tag[$:/tags/RawMarkupWikified/BottomBody]] :then[[$:/core/ui/ViewTemplate/body/rendered-plain-text/html]]
|
||||
core-ui-tags: [tag[$:/tags/PageTemplate]] [tag[$:/tags/EditTemplate]] [tag[$:/tags/ViewTemplate]] [tag[$:/tags/KeyboardShortcut]] [tag[$:/tags/ImportPreview]] [tag[$:/tags/EditPreview]] [tag[$:/tags/EditorToolbar]] [tag[$:/EditorTools]] [tag[$:/tags/Actions]] [tag[$:/tags/ToolbarButtonStyle]] :then[[$:/core/ui/ViewTemplate/body/code]]
|
||||
system: [prefix[$:/boot/]] [prefix[$:/core/macros]] [prefix[$:/core/save/]] [prefix[$:/core/templates/]] [prefix[$:/config/]] [prefix[$:/core/config/]] [prefix[$:/info/]] [prefix[$:/language/]] [prefix[$:/languages/]] [prefix[$:/snippets/]] [prefix[$:/info/]] [prefix[$:/state/]] [prefix[$:/status/]] [prefix[$:/temp/]] :and[!is[image]] :then[[$:/core/ui/ViewTemplate/body/code]]
|
||||
code-body: [field:code-body[yes]then[$:/core/ui/ViewTemplate/body/code]]
|
||||
|
||||
@@ -1,12 +1,25 @@
|
||||
title: $:/snippets/languageswitcher
|
||||
|
||||
\define flag-title()
|
||||
$(languagePluginTitle)$/icon
|
||||
\end
|
||||
\whitespace trim
|
||||
|
||||
<$linkcatcher to="$:/language">
|
||||
<div class="tc-chooser tc-language-chooser">
|
||||
<$list filter="[[$:/languages/en-GB]] [plugin-type[language]sort[description]]">
|
||||
<$set name="cls" filter="[all[current]field:title{$:/language}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item">
|
||||
<div class=<<cls>> lang={{!!name}}>
|
||||
<$set name="cls" filter="[all[current]field:title{$:/language}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item"><div class=<<cls>>>
|
||||
<$link>
|
||||
<span class="tc-image-button">
|
||||
<$set name="languagePluginTitle" value=<<currentTiddler>>>
|
||||
<$transclude subtiddler=<<flag-title>>>
|
||||
<$list filter="[all[current]field:title[$:/languages/en-GB]]">
|
||||
<$transclude tiddler="$:/languages/en-GB/icon"/>
|
||||
</$list>
|
||||
</$transclude>
|
||||
</$set>
|
||||
</span>
|
||||
 
|
||||
<$view field="description">
|
||||
<$view field="name">
|
||||
<$view field="title"/>
|
||||
|
||||
@@ -1,55 +1,58 @@
|
||||
title: $:/core/macros/colour-picker
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\procedure colour-picker-update-recent()
|
||||
\define colour-picker-update-recent()
|
||||
<$action-listops
|
||||
$tiddler="$:/config/ColourPicker/Recent"
|
||||
$subfilter="[<colour-picker-value>] [list[$:/config/ColourPicker/Recent]remove<colour-picker-value>] +[limit[8]]"
|
||||
$subfilter="$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]"
|
||||
/>
|
||||
\end
|
||||
|
||||
\procedure colour-picker-inner(actions)
|
||||
<$button tag="a" tooltip=<<colour-picker-value>>>
|
||||
<<colour-picker-update-recent>>
|
||||
<$transclude $variable="actions"/>
|
||||
<span style.display="inline-block" style.backgroundColor=<<colour-picker-value>> style.width="100%" style.height="100%" style.borderRadius="50%"/>
|
||||
\define colour-picker-inner(actions)
|
||||
<$button tag="a" tooltip="""$(colour-picker-value)$""">
|
||||
$(colour-picker-update-recent)$
|
||||
<$transclude $variable="__actions__"/>
|
||||
|
||||
<span style="display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;"/>
|
||||
|
||||
</$button>
|
||||
\end
|
||||
|
||||
\define colour-picker-recent-inner(actions)
|
||||
\whitespace trim
|
||||
\procedure colour-picker-recent-inner(actions)
|
||||
<$set name="colour-picker-value" value=<<recentColour>>>
|
||||
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
|
||||
<$set name="colour-picker-value" value="$(recentColour)$">
|
||||
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
|
||||
</$set>
|
||||
\end
|
||||
|
||||
\procedure colour-picker-recent(actions)
|
||||
\define colour-picker-recent(actions)
|
||||
\whitespace trim
|
||||
{{$:/language/ColourPicker/Recent}}<$list filter="[list[$:/config/ColourPicker/Recent]]" variable="recentColour">
|
||||
 
|
||||
<$transclude $variable="colour-picker-recent-inner" actions=<<actions>>/>
|
||||
<$macrocall $name="colour-picker-recent-inner" actions=<<__actions__>>/>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\procedure colour-picker(actions)
|
||||
\define colour-picker(actions)
|
||||
\whitespace trim
|
||||
<div class="tc-colour-chooser">
|
||||
|
||||
<$transclude $variable="colour-picker-recent" actions=<<actions>>/>
|
||||
<$macrocall $name="colour-picker-recent" actions=<<__actions__>>/>
|
||||
|
||||
---
|
||||
|
||||
<$list filter="LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black" variable="colour-picker-value">
|
||||
 
|
||||
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
|
||||
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
|
||||
</$list>
|
||||
|
||||
---
|
||||
|
||||
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder="" class="tc-tiny-gap-right"/>
|
||||
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder=""/>
|
||||
 
|
||||
<$edit-text tiddler="$:/config/ColourPicker/New" type="color" tag="input"/>
|
||||
<$set name="colour-picker-value" value={{$:/config/ColourPicker/New}}>
|
||||
<%if [{$:/config/ColourPicker/New}!is[blank]] %>
|
||||
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
|
||||
<%endif%>
|
||||
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
|
||||
</$set>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -3,11 +3,9 @@ tags: $:/tags/Macro
|
||||
|
||||
\whitespace trim
|
||||
|
||||
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style,type:"text/plain",plain)
|
||||
\procedure copy-to-clipboard-actions()
|
||||
<$action-sendmessage $message="tm-copy-to-clipboard" $param=<<src>> type=<<type>> plainText=<<plain>>/>
|
||||
\end copy-to-clipboard-actions
|
||||
<$button actions=<<copy-to-clipboard-actions>>
|
||||
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style)
|
||||
<$button message="tm-copy-to-clipboard"
|
||||
param=<<src>>
|
||||
class=<<class>>
|
||||
style=<<style>>
|
||||
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
|
||||
@@ -17,12 +15,12 @@ tags: $:/tags/Macro
|
||||
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
|
||||
</span>
|
||||
</$button>
|
||||
\end copy-to-clipboard
|
||||
\end
|
||||
|
||||
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style,type:"text/plain")
|
||||
<div style.position="relative">
|
||||
<div style.position="absolute" style.bottom="0" style.right="0">
|
||||
<$transclude $variable="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>> type=<<type>> plain=<<plain>>/>
|
||||
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style)
|
||||
<div style="position: relative;">
|
||||
<div style="position: absolute; bottom: 0; right: 0;">
|
||||
<$macrocall $name="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>>/>
|
||||
</div>
|
||||
</div>
|
||||
\end
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
title: $:/core/macros/dumpvariables
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\procedure dumpvariables()
|
||||
\define dumpvariables()
|
||||
\whitespace trim
|
||||
<ul>
|
||||
<$list filter="[variables[]]" variable="varname">
|
||||
|
||||
@@ -39,7 +39,6 @@ tags: $:/tags/Macro
|
||||
$param=<<currentTiddler>>
|
||||
exportFilter=<<exportFilter>>
|
||||
filename={{{ [<baseFilename>addsuffix{!!extension}] }}}
|
||||
type={{!!file-type}}
|
||||
/>
|
||||
<$action-deletetiddler $tiddler=<<qualify "$:/state/popup/export">>/>
|
||||
<$transclude field="description"/>
|
||||
|
||||
@@ -1,36 +1,39 @@
|
||||
created: 20170715180840889
|
||||
modified: 20170715180914005
|
||||
tags: $:/tags/Macro
|
||||
title: $:/core/macros/image-picker
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
\procedure image-picker-thumbnail(actions)
|
||||
<$button tag="a" tooltip=<<imageTitle>>><$transclude $variable="actions"/><$transclude tiddler=<<imageTitle>>/></$button>
|
||||
\define image-picker-thumbnail(actions)
|
||||
<$button tag="a" tooltip="""$(imageTitle)$"""><$transclude $variable="__actions__"/><$transclude tiddler=<<imageTitle>>/></$button>
|
||||
\end
|
||||
|
||||
\procedure image-picker-list(filter,actions)
|
||||
\define image-picker-list(filter,actions)
|
||||
\whitespace trim
|
||||
<$list filter=<<filter>> variable="imageTitle">
|
||||
<$transclude $variable="image-picker-thumbnail" actions=<<actions>>/>
|
||||
<$list filter="""$filter$""" variable="imageTitle">
|
||||
<$macrocall $name="image-picker-thumbnail" actions=<<__actions__>>/>
|
||||
 
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\procedure image-picker(actions,filter:"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]",subfilter:"")
|
||||
\define image-picker(actions,filter:"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]",subfilter:"")
|
||||
\whitespace trim
|
||||
<div class="tc-image-chooser">
|
||||
<$let state-system=<<qualify "$:/state/image-picker/system">> tv-filter={{{ [<filter>search-replace[$subfilter$],<subfilter>] }}}>
|
||||
<$vars state-system=<<qualify "$:/state/image-picker/system">>>
|
||||
<$checkbox tiddler=<<state-system>> field="text" checked="show" unchecked="hide" default="hide">
|
||||
<span class="tc-tiny-gap-left">{{$:/language/SystemTiddlers/Include/Prompt}}</span>
|
||||
 
|
||||
{{$:/language/SystemTiddlers/Include/Prompt}}
|
||||
</$checkbox>
|
||||
<$reveal state=<<state-system>> type="match" text="hide" default="hide" tag="div">
|
||||
<$transclude $variable="image-picker-list" filter=`$(tv-filter)$ +[!is[system]]` actions=<<actions>>/>
|
||||
<$macrocall $name="image-picker-list" filter="""$filter$ +[!is[system]]""" actions=<<__actions__>>/>
|
||||
</$reveal>
|
||||
<$reveal state=<<state-system>> type="nomatch" text="hide" default="hide" tag="div">
|
||||
<$transclude $variable="image-picker-list" filter=<<tv-filter>> actions=<<actions>>/>
|
||||
<$macrocall $name="image-picker-list" filter="""$filter$""" actions=<<__actions__>>/>
|
||||
</$reveal>
|
||||
</$let>
|
||||
</$vars>
|
||||
</div>
|
||||
\end
|
||||
|
||||
\procedure image-picker-include-tagged-images(actions)
|
||||
<$transclude $variable="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions=<<actions>>/>
|
||||
\define image-picker-include-tagged-images(actions)
|
||||
<$macrocall $name="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions=<<__actions__>>/>
|
||||
\end
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
title: $:/core/macros/list
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\procedure list-links-draggable-drop-actions()
|
||||
<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter="+[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
||||
\end
|
||||
|
||||
\define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption")
|
||||
\whitespace trim
|
||||
\procedure list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption")
|
||||
<$genesis $type=<<type>> class=<<class>>>
|
||||
<$list filter=<<filter>> emptyMessage=<<emptyMessage>>>
|
||||
<$genesis $type=<<subtype>>>
|
||||
<$genesis $type=<<__type__>> class=<<__class__>>>
|
||||
<$list filter=<<__filter__>> emptyMessage=<<__emptyMessage__>>>
|
||||
<$genesis $type=<<__subtype__>>>
|
||||
<$link to={{!!title}}>
|
||||
<$let tv-wikilinks="no">
|
||||
<$transclude field=<<field>>>
|
||||
<$transclude field=<<__field__>>>
|
||||
<$view field="title"/>
|
||||
</$transclude>
|
||||
</$let>
|
||||
@@ -22,19 +18,24 @@ tags: $:/tags/Macro
|
||||
</$genesis>
|
||||
\end
|
||||
|
||||
\procedure list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
|
||||
\define list-links-draggable-drop-actions()
|
||||
<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter="+[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
||||
\end
|
||||
|
||||
\define list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
|
||||
\whitespace trim
|
||||
<span class="tc-links-draggable-list">
|
||||
<$let targetTiddler=<<tiddler>> targetField=<<field>>>
|
||||
<$genesis $type=<<type>> class=<<class>>>
|
||||
<$list filter="[<tiddler>get<field>enlist-input[]]" emptyMessage=<<emptyMessage>>>
|
||||
<$vars targetTiddler="""$tiddler$""" targetField="""$field$""">
|
||||
<$genesis $type=<<__type__>> class="$class$">
|
||||
<$list filter="[list[$tiddler$!!$field$]]" emptyMessage=<<__emptyMessage__>>>
|
||||
<$droppable
|
||||
actions=<<list-links-draggable-drop-actions>>
|
||||
tag=<<subtype>>
|
||||
tag="""$subtype$"""
|
||||
enable=<<tv-enable-drag-and-drop>>
|
||||
>
|
||||
<div class="tc-droppable-placeholder"/>
|
||||
<div>
|
||||
<$transclude tiddler=<<itemTemplate>>>
|
||||
<$transclude tiddler="""$itemTemplate$""">
|
||||
<$link to={{!!title}}>
|
||||
<$let tv-wikilinks="no">
|
||||
<$transclude field="caption">
|
||||
@@ -59,54 +60,52 @@ tags: $:/tags/Macro
|
||||
</$droppable>
|
||||
</$tiddler>
|
||||
</$genesis>
|
||||
</$let>
|
||||
</$vars>
|
||||
</span>
|
||||
\end
|
||||
|
||||
\procedure list-tagged-draggable-drop-actions(tag)
|
||||
\define list-tagged-draggable-drop-actions(tag)
|
||||
\whitespace trim
|
||||
<!-- Save the current ordering of the tiddlers with this tag -->
|
||||
<$set name="order" filter="[<tag>tagging[]]">
|
||||
<$set name="order" filter="[<__tag__>tagging[]]">
|
||||
<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->
|
||||
<$list filter="[<tag>tagging[]]">
|
||||
<$list filter="[<__tag__>tagging[]]">
|
||||
<$action-deletefield $field="list-before"/>
|
||||
<$action-deletefield $field="list-after"/>
|
||||
</$list>
|
||||
<!-- Save the new order to the Tag Tiddler -->
|
||||
<$action-listops $tiddler=<<tag>> $field="list" $filter="+[enlist<order>] +[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
||||
<$action-listops $tiddler=<<__tag__>> $field="list" $filter="+[enlist<order>] +[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
||||
<!-- Make sure the newly added item has the right tag -->
|
||||
<!-- Removing this line makes dragging tags within the dropdown work as intended -->
|
||||
<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<tag>>/>-->
|
||||
<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->
|
||||
<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->
|
||||
<$list filter="[<actionTiddler>!contains:tags<tag>]">
|
||||
<$list filter="[<actionTiddler>!contains:tags<__tag__>]">
|
||||
<$fieldmangler tiddler=<<actionTiddler>>>
|
||||
<$action-sendmessage $message="tm-add-tag" $param=<<tag>>/>
|
||||
<$action-sendmessage $message="tm-add-tag" $param=<<__tag__>>/>
|
||||
</$fieldmangler>
|
||||
</$list>
|
||||
</$set>
|
||||
\end
|
||||
|
||||
\procedure list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
|
||||
\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
|
||||
\whitespace trim
|
||||
<span class="tc-tagged-draggable-list">
|
||||
<$set name="tag" value=<<tag>>>
|
||||
<$set name="tag" value=<<__tag__>>>
|
||||
<$list
|
||||
filter=`[<tag>tagging[]$(subFilter)$]`
|
||||
emptyMessage=<<emptyMessage>>
|
||||
storyview=<<storyview>>
|
||||
filter="[<__tag__>tagging[]$subFilter$]"
|
||||
emptyMessage=<<__emptyMessage__>>
|
||||
storyview=<<__storyview__>>
|
||||
>
|
||||
<$genesis $type=<<elementTag>> class="tc-menu-list-item">
|
||||
<$genesis $type=<<__elementTag__>> class="tc-menu-list-item">
|
||||
<$droppable
|
||||
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<tag>>/>"""
|
||||
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>"""
|
||||
enable=<<tv-enable-drag-and-drop>>
|
||||
>
|
||||
<$genesis $type=<<elementTag>> class="tc-droppable-placeholder"/>
|
||||
<$genesis $type=<<elementTag>>>
|
||||
<$transclude tiddler=<<itemTemplate>>>
|
||||
<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/>
|
||||
<$genesis $type=<<__elementTag__>>>
|
||||
<$transclude tiddler="""$itemTemplate$""">
|
||||
<$link to={{!!title}}>
|
||||
<$let tv-wikilinks="no">
|
||||
<$transclude field="caption">
|
||||
<$view field="title"/>
|
||||
</$transclude>
|
||||
</$let>
|
||||
<$view field="title"/>
|
||||
</$link>
|
||||
</$transclude>
|
||||
</$genesis>
|
||||
@@ -115,11 +114,11 @@ tags: $:/tags/Macro
|
||||
</$list>
|
||||
<$tiddler tiddler="">
|
||||
<$droppable
|
||||
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<tag>>/>"""
|
||||
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>"""
|
||||
enable=<<tv-enable-drag-and-drop>>
|
||||
>
|
||||
<$genesis $type=<<elementTag>> class="tc-droppable-placeholder"/>
|
||||
<$genesis $type=<<elementTag>> style="height:0.5em;"/>
|
||||
<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/>
|
||||
<$genesis $type=<<__elementTag__>> style="height:0.5em;"/>
|
||||
</$droppable>
|
||||
</$tiddler>
|
||||
</$set>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
title: $:/core/macros/toc
|
||||
tags: $:/tags/Macro
|
||||
|
||||
|
||||
\define toc-open-icon() $:/core/images/down-arrow
|
||||
\define toc-closed-icon() $:/core/images/right-arrow
|
||||
|
||||
@@ -120,7 +121,7 @@ tags: $:/tags/Macro
|
||||
<$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item" >
|
||||
<li class=<<toc-item-class>>>
|
||||
<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>
|
||||
<$list filter="[all[current]tagging[]$sort$] -[subfilter<__exclude__>] +[limit[1]]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>">
|
||||
<$list filter="[all[current]tagging[]$sort$limit[1]] -[subfilter<__exclude__>]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>">
|
||||
<$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
|
||||
<$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
|
||||
<$transclude tiddler=<<toc-closed-icon>> />
|
||||
@@ -147,7 +148,7 @@ tags: $:/tags/Macro
|
||||
<$qualify name="toc-state" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>
|
||||
<$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item">
|
||||
<li class=<<toc-item-class>>>
|
||||
<$list filter="[all[current]tagging[]$sort$] -[subfilter<__exclude__>] +[limit[1]]" variable="ignore" emptyMessage="""<$button class="tc-btn-invisible">{{$:/core/images/blank}}</$button><span class="toc-item-muted"><<toc-caption>></span>""">
|
||||
<$list filter="[all[current]tagging[]$sort$limit[1]] -[subfilter<__exclude__>]" variable="ignore" emptyMessage="""<$button class="tc-btn-invisible">{{$:/core/images/blank}}</$button><span class="toc-item-muted"><<toc-caption>></span>""">
|
||||
<$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
|
||||
<$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
|
||||
<$transclude tiddler=<<toc-closed-icon>> />
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
title: $:/core/macros/translink
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\procedure translink(title,mode:"block")
|
||||
\define translink(title,mode:"block")
|
||||
\whitespace trim
|
||||
<%if [<mode>match[block]] %>
|
||||
<$list filter="[<__mode__>match[block]]">
|
||||
<div class="tc-translink">
|
||||
<div>
|
||||
<$link to=<<title>>>
|
||||
<h1><$text text=<<title>>/></h1>
|
||||
<$link to="""$title$""">
|
||||
<h1><$text text="""$title$"""/></h1>
|
||||
</$link>
|
||||
<$transclude tiddler=<<title>> mode="block">
|
||||
<$set name="currentTiddler" value=<<title>>><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
||||
<$transclude tiddler="""$title$""" mode="block">
|
||||
<$set name="currentTiddler" value="""$title$"""><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
||||
</$transclude>
|
||||
</div>
|
||||
</div>
|
||||
<%endif%>
|
||||
<%if [<mode>match[inline]] %>
|
||||
</$list>
|
||||
<$list filter="[<__mode__>match[inline]]">
|
||||
<span class="tc-translink">
|
||||
<$link to=<<title>> class="tc-tiny-gap-right">
|
||||
<$text text=<<title>>/>
|
||||
<$link to="""$title$""">
|
||||
<$text text="""$title$"""/>
|
||||
</$link>
|
||||
(<$transclude tiddler=<<title>> mode="inline">
|
||||
<$set name="currentTiddler" value=<<title>>><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
||||
 (<$transclude tiddler="""$title$""" mode="inline">
|
||||
<$set name="currentTiddler" value="""$title$"""><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
||||
</$transclude>)
|
||||
</span>
|
||||
<%endif%>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
@@ -1,58 +1,62 @@
|
||||
title: $:/core/macros/tree
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\procedure leaf-link(full-title,chunk,separator: "/")
|
||||
<$link to=<<full-title>>><$text text=<<chunk>>/></$link>
|
||||
\define leaf-link(full-title,chunk,separator: "/")
|
||||
<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>
|
||||
\end
|
||||
|
||||
\define leaf-node(prefix,chunk)
|
||||
\whitespace trim
|
||||
\procedure leaf-node(prefix,chunk)
|
||||
<li>
|
||||
<$list filter="[<prefix>addsuffix<chunk>is[shadow]] [<prefix>addsuffix<chunk>is[tiddler]]" variable="full-title">
|
||||
<$list filter="[<full-title>removeprefix<prefix>]" variable="chunk">
|
||||
<span class="tc-tiny-gap-right">{{$:/core/images/file}}</span><$transclude $variable="leaf-link" full-title=<<full-title>> chunk=<<chunk>>/>
|
||||
<$list filter="[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]" variable="full-title">
|
||||
<$list filter="[<full-title>removeprefix<__prefix__>]" variable="chunk">
|
||||
<span>{{$:/core/images/file}}</span> <$macrocall $name="leaf-link" full-title=<<full-title>> chunk=<<chunk>>/>
|
||||
</$list>
|
||||
</$list>
|
||||
</li>
|
||||
\end
|
||||
|
||||
\procedure branch-node(prefix,chunk,separator: "/")
|
||||
\define branch-node(prefix,chunk,separator: "/")
|
||||
\whitespace trim
|
||||
<li>
|
||||
<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<prefix>addsuffix<chunk>] }}}>
|
||||
<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>
|
||||
<$reveal type="nomatch" stateTitle=<<reveal-state>> text="show">
|
||||
<$button setTitle=<<reveal-state>> setTo="show" class="tc-btn-invisible">
|
||||
{{$:/core/images/folder}} <$text text=<<chunk>>/>
|
||||
{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
|
||||
<$button setTitle=<<reveal-state>> setTo="hide" class="tc-btn-invisible">
|
||||
{{$:/core/images/folder}} <$text text=<<chunk>>/>
|
||||
{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<span class="tc-tiny-gap-left">(<$count filter="[all[shadows+tiddlers]removeprefix<prefix>removeprefix<chunk>] -[<prefix>addsuffix<chunk>]"/>)</span>
|
||||
 
|
||||
<span>(<$count filter="[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]"/>)</span>
|
||||
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
|
||||
<$transclude $variable="tree-node" prefix={{{ [<prefix>addsuffix<chunk>] }}} separator=<<separator>>/>
|
||||
<$macrocall $name="tree-node" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>
|
||||
</$reveal>
|
||||
</$set>
|
||||
</li>
|
||||
\end
|
||||
|
||||
\procedure tree-node(prefix,separator: "/")
|
||||
\define tree-node(prefix,separator: "/")
|
||||
\whitespace trim
|
||||
<ol>
|
||||
<$list filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]!suffix<separator>]" variable="chunk">
|
||||
<$transclude $variable="leaf-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
|
||||
<$list filter="[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]" variable="chunk">
|
||||
<$macrocall $name="leaf-node" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>
|
||||
</$list>
|
||||
<$list filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]suffix<separator>]" variable="chunk">
|
||||
<$transclude $variable="branch-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
|
||||
<$list filter="[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]" variable="chunk">
|
||||
<$macrocall $name="branch-node" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>
|
||||
</$list>
|
||||
</ol>
|
||||
\end
|
||||
|
||||
\procedure tree(prefix: "$:/",separator: "/")
|
||||
\define tree(prefix: "$:/",separator: "/")
|
||||
\whitespace trim
|
||||
<div class="tc-tree">
|
||||
<span><$text text=<<prefix>>/></span>
|
||||
<span><$text text=<<__prefix__>>/></span>
|
||||
<div>
|
||||
<$transclude $variable="tree-node" prefix=<<prefix>> separator=<<separator>>/>
|
||||
<$macrocall $name="tree-node" prefix=<<__prefix__>> separator=<<__separator__>>/>
|
||||
</div>
|
||||
</div>
|
||||
\end
|
||||
|
||||
@@ -3,7 +3,7 @@ title: $:/snippets/paletteswitcher
|
||||
\whitespace trim
|
||||
<$linkcatcher to="$:/palette">
|
||||
<div class="tc-chooser">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Palette]!is[draft]sort[name]]">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]">
|
||||
<$set name="cls" filter="[all[current]prefix{$:/palette}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item">
|
||||
<div class=<<cls>>>
|
||||
<$link to={{!!title}}>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
title: $:/tags/ViewTemplateBodyFilter
|
||||
list: $:/config/ViewTemplateBodyFilters/testcase $:/config/ViewTemplateBodyFilters/hide-body $:/config/ViewTemplateBodyFilters/code-body $:/config/ViewTemplateBodyFilters/stylesheet $:/config/ViewTemplateBodyFilters/core-ui-advanced-search $:/config/ViewTemplateBodyFilters/core-ui-tags $:/config/ViewTemplateBodyFilters/import $:/config/ViewTemplateBodyFilters/plugin $:/config/ViewTemplateBodyFilters/html $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/default
|
||||
list: $:/config/ViewTemplateBodyFilters/testcase $:/config/ViewTemplateBodyFilters/hide-body $:/config/ViewTemplateBodyFilters/code-body $:/config/ViewTemplateBodyFilters/stylesheet $:/config/ViewTemplateBodyFilters/core-ui-advanced-search $:/config/ViewTemplateBodyFilters/core-ui-tags $:/config/ViewTemplateBodyFilters/import $:/config/ViewTemplateBodyFilters/plugin $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/default
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
code-body: yes
|
||||
created: 20241205094051389
|
||||
modified: 20241205094051389
|
||||
tags: $:/tags/PageTemplate
|
||||
title: $:/github-ribbon
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
\whitespace trim
|
||||
<$transclude $tiddler="$:/plugins/tiddlywiki/github-fork-ribbon/template" top="30px" fixed=fixed color="green"/>
|
||||
114
editions/dev/tiddlers/system/doc-macros.tid
Normal file
114
editions/dev/tiddlers/system/doc-macros.tid
Normal file
@@ -0,0 +1,114 @@
|
||||
created: 20150117152607000
|
||||
modified: 201804111739
|
||||
tags: $:/tags/Macro
|
||||
title: $:/editions/dev/doc-macros
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
\define .concat(1,2,3,4,5) $1$$2$$3$$4$$5$
|
||||
|
||||
\define .def(_) <dfn class="doc-def">$_$</dfn>
|
||||
\define .em(_) <em class="doc-em">$_$</em>
|
||||
\define .strong(_) <strong class="doc-strong">$_$</strong>
|
||||
\define .place(_) <code class="doc-place">$_$</code>
|
||||
\define .word(_) "$_$"
|
||||
|
||||
\define .preamble(_) :.doc-preamble $_$
|
||||
\define .note(_)
|
||||
@@.doc-note
|
||||
;Note
|
||||
: $_$
|
||||
@@
|
||||
\end
|
||||
|
||||
\define .tid(_) <code class="doc-tiddler">$_$</code>
|
||||
\define .tag(_) <code class="doc-tag">$_$</code>
|
||||
\define .field(_) <code class="doc-field">$_$</code>
|
||||
\define .value(_) <code class="doc-value">$_$</code>
|
||||
\define .op(_) <code class="doc-operator">$_$</code>
|
||||
\define .var(_) <code class="doc-var">$_$</code>
|
||||
\define .wid(_) <code class="doc-widget">$$_$</code>
|
||||
\define .attr(_) <code class="doc-attr">$_$</code>
|
||||
\define .param(_) <code class="doc-param">$_$</code>
|
||||
|
||||
\define .mtitle(_) $_$ Macro
|
||||
\define .otitle(_) $_$ Operator
|
||||
\define .vtitle(_) $_$ Variable
|
||||
|
||||
\define .link(_,to) <$link to="$to$">$_$</$link>
|
||||
\define .clink(_,to) <span class="doc-clink"><<.link """$_$""" "$to$">></span>
|
||||
\define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/>
|
||||
\define .dlink-ex(_,to) <a href="$to$" class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer"><<.def "$_$">></a>
|
||||
\define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/>
|
||||
\define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/>
|
||||
\define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/>
|
||||
\define .olink(_) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$_$">>/>
|
||||
\define .olink2(_,to) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$to$">>/>
|
||||
\define .vlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.vtitle "$_$">>/>
|
||||
\define .vlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/>
|
||||
\define .wlink(to) <$macrocall $name=".link" _=<<.wid {{$to$!!caption}}>> to="$to$"/>
|
||||
\define .wlink2(_,to) <$macrocall $name=".link" _="$_$" to="$to$"/>
|
||||
|
||||
\define .key(_) <span class="doc-key">$_$</span>
|
||||
\define .combokey(_) <$macrocall $name=".if" cond="$_$" then=<<.key '$_$'>>/>
|
||||
\define .keycombo(1,2,3,4) <<.combokey "$1$">><<.if "$2$" +>><<.combokey "$2$">><<.if "$3$" +>><<.combokey "$3$">><<.if "$4$" +>><<.combokey "$4$">>
|
||||
|
||||
\define .tab(_) <span class="doc-tab">{{$_$!!caption}}</span>
|
||||
\define .sidebar-tab(_) <<.tab "$:/core/ui/SideBar/$_$">>
|
||||
\define .more-tab(_) <<.tab "$:/core/ui/MoreSideBar/$_$">>
|
||||
\define .info-tab(_) <<.tab "$:/core/ui/TiddlerInfo/$_$">>
|
||||
\define .controlpanel-tab(_) <<.tab "$:/core/ui/ControlPanel/$_$">>
|
||||
\define .advancedsearch-tab(_) <<.tab "$:/core/ui/AdvancedSearch/$_$">>
|
||||
\define .toc-tab() <<.tab "TableOfContents">>
|
||||
\define .example-tab(_) <span class="doc-tab">$_$</span>
|
||||
|
||||
\define .button(_) <span class="doc-button">{{$:/core/ui/Buttons/$_$!!caption}}</span>
|
||||
|
||||
\define .tip(_) <div class="doc-icon-block"><div class="doc-block-icon">{{$:/core/images/tip}}</div> $_$</div>
|
||||
\define .warning(_) <div class="doc-icon-block"><div class="doc-block-icon">{{$:/core/images/warning}}</div> $_$</div>
|
||||
|
||||
\define .state-prefix() $:/state/editions/tw5.com/
|
||||
|
||||
\define .lorem()
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
\end
|
||||
|
||||
\define .toc-lorem()
|
||||
This is an example tiddler. See [[Table-of-Contents Macros (Examples)]].
|
||||
|
||||
<<.lorem>>
|
||||
\end
|
||||
|
||||
\define .example(n,eg,egvar:NO-SUCH-VAR)
|
||||
<div class="doc-example">
|
||||
<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR">
|
||||
<$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/>
|
||||
<$codeblock code="""$eg$"""/>
|
||||
</$reveal>
|
||||
<$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR">
|
||||
<!-- allow an example to contain """ -->
|
||||
<$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/>
|
||||
<$codeblock code=<<$egvar$>>/>
|
||||
</$reveal>
|
||||
<$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state">
|
||||
<$reveal state=<<.state>> type="nomatch" text="show">
|
||||
<dl>
|
||||
<dd><$button set=<<.state>> setTo="show">Try it</$button></dd>
|
||||
</dl>
|
||||
</$reveal>
|
||||
<$reveal state=<<.state>> type="match" text="show">
|
||||
<dl>
|
||||
<dd><$button set=<<.state>> setTo="">Hide</$button></dd>
|
||||
</dl>
|
||||
<blockquote class="doc-example-result">
|
||||
<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR">
|
||||
$eg$
|
||||
</$reveal>
|
||||
<$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR">
|
||||
<<$egvar$>>
|
||||
</$reveal>
|
||||
</blockquote>
|
||||
</$reveal>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
<pre><$view field="text"/></pre>
|
||||
40
editions/dev/tiddlers/system/doc-styles.tid
Normal file
40
editions/dev/tiddlers/system/doc-styles.tid
Normal file
@@ -0,0 +1,40 @@
|
||||
created: 20150117152612000
|
||||
modified: 20230325101137075
|
||||
tags: $:/tags/Stylesheet
|
||||
title: $:/editions/tw5.com/doc-styles
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
a.doc-from-version.tc-tiddlylink {
|
||||
display: inline-block;
|
||||
border-radius: 1em;
|
||||
background: <<colour muted-foreground>>;
|
||||
color: <<colour background>>;
|
||||
fill: <<colour background>>;
|
||||
padding: 0 0.4em;
|
||||
font-size: 0.7em;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
line-height: 1.5;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
a.doc-deprecated-version.tc-tiddlylink {
|
||||
display: inline-block;
|
||||
border-radius: 1em;
|
||||
background: red;
|
||||
color: <<colour background>>;
|
||||
fill: <<colour background>>;
|
||||
padding: 0 0.4em;
|
||||
font-size: 0.7em;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
line-height: 1.5;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.doc-deprecated-version svg,
|
||||
.doc-from-version svg {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
title: $:/_tw5.com-dev-styles
|
||||
tags: $:/tags/Stylesheet
|
||||
list-after: $:/editions/tw5.com/doc-styles
|
||||
|
||||
<!-- styles that are unique to the TW dev edition. If possible use $:/_tw_shared/styles or $:/editions/tw5.com/doc-styles -->
|
||||
14
editions/dev/tiddlers/system/version-macros.tid
Normal file
14
editions/dev/tiddlers/system/version-macros.tid
Normal file
@@ -0,0 +1,14 @@
|
||||
code-body: yes
|
||||
created: 20161008085627406
|
||||
modified: 20221007122259593
|
||||
tags: $:/tags/Macro
|
||||
title: $:/editions/tw5.com/version-macros
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
\define .from-version(version)
|
||||
<$link to={{{ [<__version__>addprefix[Release ]] }}} class="doc-from-version">{{$:/core/images/warning}} New in: <$text text=<<__version__>>/></$link>
|
||||
\end
|
||||
|
||||
\define .deprecated-since(version, superseded:"")
|
||||
<$link to="Deprecated - What does it mean" class="doc-deprecated-version tc-btn-invisible">{{$:/core/images/warning}} Deprecated from v<$text text=<<__version__>>/></$link> <%if [<__superseded__>else[]!match[]] %>(see <$link to=<<__superseded__>>><$text text=<<__superseded__>>/></$link>)<%endif%>
|
||||
\end
|
||||
@@ -1,9 +1,33 @@
|
||||
title: Translations
|
||||
|
||||
\define flag-title()
|
||||
$(languagePluginTitle)$/icon
|
||||
\end
|
||||
|
||||
TiddlyWiki is currently available in <$count filter="[[$:/languages/en-GB]] [plugin-type[language]sort[title]] -[[$:/languages/de-AT]]"/> languages:
|
||||
|
||||
<div style.height="400px" style.overflowY="auto">
|
||||
{{$:/snippets/languageswitcher}}
|
||||
<div class="tc-drop-down-language-chooser" style="font-size: 7px; line-height: 8px; -moz-columns:6; -webkit-columns:6; columns:6;">
|
||||
<$list filter="[[$:/languages/en-GB]] [plugin-type[language]sort[title]] -[[$:/languages/de-AT]]">
|
||||
<div class="tc-language-list">
|
||||
<span class="tc-language-list-name tc-image-button">
|
||||
<$set name="languagePluginTitle" value=<<currentTiddler>>>
|
||||
<$transclude subtiddler=<<flag-title>>>
|
||||
<$list filter="[all[current]field:title[$:/languages/en-GB]]">
|
||||
<$transclude tiddler="$:/languages/en-GB/icon"/>
|
||||
</$list>
|
||||
</$transclude>
|
||||
</$set>
|
||||
<$view field="description">
|
||||
<$view field="name">
|
||||
<$view field="title"/>
|
||||
</$view>
|
||||
</$view>
|
||||
<$view subtiddler="$:/language/ControlPanel/Basics/Language/Prompt">
|
||||
<$view tiddler="$:/language/ControlPanel/Basics/Language/Prompt"/>
|
||||
</$view>
|
||||
</span>
|
||||
</div>
|
||||
</$list>
|
||||
</div>
|
||||
|
||||
Find out how to [[Get Started]].
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
"de-DE",
|
||||
"el-GR",
|
||||
"en-US",
|
||||
"en-PH",
|
||||
"es-ES",
|
||||
"fa-IR",
|
||||
"fr-FR",
|
||||
@@ -35,15 +34,12 @@
|
||||
"it-IT",
|
||||
"ja-JP",
|
||||
"ko-KR",
|
||||
"mk-MK",
|
||||
"nl-NL",
|
||||
"pa-IN",
|
||||
"pl-PL",
|
||||
"pt-BR",
|
||||
"pt-PT",
|
||||
"ru-RU",
|
||||
"sk-SK",
|
||||
"sl-SI",
|
||||
"sv-SE",
|
||||
"zh-CN",
|
||||
"zh-Hans",
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
created: 20210519155910219
|
||||
modified: 20241128113941852
|
||||
original-modified: 20210519160221219
|
||||
tags: [[Hidden Settings]]
|
||||
title: Hidden Setting: Import Content Types for Editor
|
||||
ja-title: 隠し設定: エディターのインポートコンテンツタイプ
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.from-version "5.2.0">>
|
||||
|
||||
$:/config/Editor/ImportContentTypesFilter
|
||||
|
||||
このフィルターは、エディターにドラッグアンドドロップしてインポートできる`contentTypes`を決定します。これは、`contentTypesFilter`属性のために、エディターを囲むDropzoneWidgetによって使用されます。
|
||||
@@ -1,14 +0,0 @@
|
||||
created: 20240313100515958
|
||||
modified: 20241222104855231
|
||||
original-modified: 20240313103959789
|
||||
tags: Editions
|
||||
title: TiddlyWiki Docs PR Maker
|
||||
ja-title: TiddlyWikiドキュメントPRメーカー
|
||||
|
||||
[[@saqimtiaz|https://github.com/saqimtiaz/]]が作成した''~TiddlyWikiドキュメントPRメーカー''は、ドキュメントへの貢献と改善を支援するために設計された、tiddlywiki.comの特別エディションです。
|
||||
|
||||
https://saqimtiaz.github.io/tw5-docs-pr-maker/
|
||||
|
||||
ドキュメントに加えられたすべての変更は、GitHubに簡単に送信できます。 -- プルリクエストは自動的に作成されるため、エディションの名前は"PRメーカー"になります。
|
||||
|
||||
ドキュメントPRメーカーを使用する前に、無料の~GitHubアカウントを作成し、[[貢献者ライセンス契約|Contributor License Agreement]]に署名する必要があります。ドキュメントへの貢献の詳細については、[[ここ|Improving TiddlyWiki Documentation]]をご覧ください。
|
||||
@@ -1,11 +0,0 @@
|
||||
created: 20140912145139340
|
||||
modified: 20241225110311898
|
||||
original-modified: 20140916132022553
|
||||
tags: TableOfContents
|
||||
title: About
|
||||
ja-title: TiddlyWikiについて
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWikiの開発に関する情報:
|
||||
|
||||
<<list-links "[tag[About]]">>
|
||||
@@ -1,11 +0,0 @@
|
||||
created: 20140129204112515
|
||||
modified: 20241225111031964
|
||||
original-modified: 20140912145138466
|
||||
tags: About
|
||||
title: Acknowledgements
|
||||
ja-title: 謝辞
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWikiは、TiddlyWiki[[コミュニティ|Community]]の継続的なサポートなしでは成り立ちません。みなさんの注目とフィードバックにより、何が求められているかを理解することができ、その製品に対するみなさんの熱い思いから、投資する価値があることが分かります
|
||||
|
||||
{{$:/Acknowledgements}}
|
||||
@@ -1,83 +0,0 @@
|
||||
created: 20231005205623086
|
||||
modified: 20241226114558500
|
||||
original-modified: 20241115193649399
|
||||
tags: About
|
||||
title: TiddlyWiki Archive
|
||||
ja-title: TiddlyWikiアーカイブ
|
||||
|
||||
\procedure versions()
|
||||
5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9
|
||||
5.1.10 5.1.11 5.1.12 5.1.13 5.1.14 5.1.15 5.1.16 5.1.17 5.1.18 5.1.19
|
||||
5.1.20 5.1.21 5.1.22 5.1.23
|
||||
5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7
|
||||
5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6
|
||||
\end
|
||||
|
||||
TiddlyWikiの古いバージョンは[[アーカイブ|https://github.com/TiddlyWiki/tiddlywiki.com-gh-pages/tree/master/archive]]で入手できます:
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>
|
||||
バージョン
|
||||
</th>
|
||||
<th>
|
||||
リリース日
|
||||
</th>
|
||||
<th>
|
||||
生存期間
|
||||
</th>
|
||||
<th>
|
||||
概略
|
||||
</th>
|
||||
<th>
|
||||
ダウンロード
|
||||
</th>
|
||||
</tr>
|
||||
<$list filter="[enlist<versions>reverse[]]" variable="version">
|
||||
<$let
|
||||
filename=`TiddlyWiki-$(version)$`
|
||||
emptyFilename=`Empty-$(filename)$`
|
||||
releaseTiddler={{{ [<version>addprefix[Release ]] }}}
|
||||
releaseDate={{{ [<releaseTiddler>get[released]format:date[TIMESTAMP]] }}}
|
||||
nextVersion={{{ [enlist<versions>after<version>] }}}
|
||||
nextReleaseTiddler={{{ [<nextVersion>addprefix[Release ]] }}}
|
||||
nextReleaseDate={{{ [<nextReleaseTiddler>get[released]format:date[TIMESTAMP]] }}}
|
||||
lifetime={{{ [<nextReleaseDate>subtract<releaseDate>divide[86400000]add[0.5]fixed[0]] }}}
|
||||
>
|
||||
<tr>
|
||||
<td>
|
||||
<$link to=<<releaseTiddler>>>
|
||||
<$text text=`v$(version)$`/>
|
||||
</$link>
|
||||
</td>
|
||||
<td>
|
||||
<$view tiddler=<<releaseTiddler>> field="released" format="date" template="YYYY年mmmDD日"/>
|
||||
</td>
|
||||
<td>
|
||||
<$list filter="[<lifetime>compare:number:lt[0]]" variable="ignore">
|
||||
現在
|
||||
</$list>
|
||||
<$list filter="[<lifetime>compare:number:gteq[0]]" variable="ignore">
|
||||
<$text text=<<lifetime>>/>日
|
||||
</$list>
|
||||
</td>
|
||||
<td>
|
||||
<$transclude $tiddler=<<releaseTiddler>> $field="description" $format="inline">
|
||||
(none)
|
||||
</$transclude>
|
||||
</td>
|
||||
<td>
|
||||
<a href={{{ [<filename>addprefix[https://tiddlywiki.com/archive/full/]]}}} rel="noopener noreferrer" target="_blank">
|
||||
Complete
|
||||
</a>
|
||||
|
|
||||
<a href={{{ [<emptyFilename>addprefix[https://tiddlywiki.com/archive/empty/]]}}} rel="noopener noreferrer" target="_blank">
|
||||
Empty
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</$let>
|
||||
</$list>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1,45 +0,0 @@
|
||||
created: 20140916132828137
|
||||
modified: 20241225111720612
|
||||
original-modified: 20140916133148206
|
||||
tags: About
|
||||
title: Contributors
|
||||
ja-title: 貢献者
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
以下は、[[TiddlyWikiの開発に貢献|https://github.com/TiddlyWiki/TiddlyWiki5/graphs/contributors]]するために時間を割いてくれている方々です:
|
||||
|
||||
* Jeremy Ruston ([[@Jermolene|https://github.com/Jermolene]])
|
||||
* Dave Gifford ([[@giffmex|https://github.com/giffmex]])
|
||||
* Bram Chen ([[@BramChen|https://github.com/BramChen]])
|
||||
* Mario Pietsch ([[@pmario|https://github.com/pmario]])
|
||||
* Xavier Cazin ([[@xcazin|https://github.com/xcazin]])
|
||||
* Eric Shulman ([[@ericshulman|https://github.com/ericshulman]])
|
||||
* Stephan Hradek ([[@Skeeve|https://github.com/Skeeve]])
|
||||
* ~BuggyJef ([[@buggyj|https://github.com/buggyj]])
|
||||
* Nathan Cain ([[@natecain|https://github.com/natecain]])
|
||||
* Ton Gerner ([[@gernert|https://github.com/gernert]])
|
||||
* Devin Weaver ([[@sukima|https://github.com/sukima]])
|
||||
* João Bolila ([[@jbolila|https://github.com/jbolila]])
|
||||
* David Johnston ([[@Brennall|https://github.com/Brennall]])
|
||||
* David Jade ([[@davidjade|https://github.com/davidjade]])
|
||||
* Bob Robison ([[@grayeul|https://github.com/grayeul]])
|
||||
* [[@nameanyone|https://github.com/nameanyone]]
|
||||
* Maurizio Pollio ([[@mpollio|https://github.com/mpollio]])
|
||||
* Ogoshi Masayuki ([[@ogoshima|https://github.com/ogoshima]])
|
||||
* Chris Sugden ([[@csugden|https://github.com/csugden]])
|
||||
* [[@asampal|https://github.com/asampal]]
|
||||
* Bow Yi Jang ([[@Eucaly|https://github.com/Eucaly]])
|
||||
* Mal Gamble ([[@malgam|https://github.com/malgam]])
|
||||
* Michael Fogleman ([[@mwfogleman|https://github.com/mwfogleman]])
|
||||
* Daniel Barrett ([[@shendaras|https://github.com/shendaras]])
|
||||
* Simon Baird ([[@simonbaird|https://github.com/simonbaird]])
|
||||
* James Anderson ([[@welford|https://github.com/welford]])
|
||||
* Jon Lister ([[@jayfresh|https://github.com/jayfresh]])
|
||||
* [[@TheDiveO|https://github.com/TheDiveO]]
|
||||
* Danielo Rodríguez ([[@danielo515|https://github.com/danielo515]])
|
||||
* [[@willover|https://github.com/willover]]
|
||||
* [[@slotik|https://github.com/slotik]]
|
||||
* Irene Knapp ([[@IreneKnapp|https://github.com/IreneKnapp]])
|
||||
* Brian Shaver ([[@shakerlxxv|https://github.com/shakerlxxv]])
|
||||
* Tobi Beer ([[@tobibeer|https://github.com/tobibeer]])
|
||||
* Craig Cook ([[@BoyCook|https://github.com/BoyCook]])
|
||||
@@ -1,21 +0,0 @@
|
||||
title: Funding TiddlyWiki
|
||||
ja-title: TiddlyWikiへの資金提供
|
||||
tags: About HelloThere
|
||||
modified: 20241129112734981
|
||||
original-modified: 20221204165636777
|
||||
created: 20221204165636777
|
||||
|
||||
TiddlyWikiが無料で使用でき、長期的な採用に経済的な障壁がなければ、誰にとってもより便利になります。それは博愛主義とは異なります。私たちは、採用に対する障壁を取り除き減らすことが、コミュニティをより大きくより強力し、TiddlyWikiの未来を確保するのに役立つと信じています
|
||||
|
||||
それにもかかわらず、TiddlyWikiは比較的大きく複雑なマシンであり、維持や改良にはたくさんの継続的な作業が必要です。一部のコミュニティインフラストラクチャも運営に月額料金が必要です(特に[[TiddlyWikiフォーラム|Forums]])
|
||||
|
||||
作業に携わるコミュニティの人々は、さまざまなニーズを持っています:
|
||||
|
||||
* 一方では、TiddlyWikiでの作業のかなりの部分がコミュニティメンバーによって純粋に自主的に実施されています。そういった人にとっては、他人の助けとなることで満足感が得られ十分な報酬となります。実際、多くの人にとって、無給のボランティア活動は、毎日の有給の仕事に対する満足のいく解毒剤となっています
|
||||
* 他方で、JeremyRustonと他の貢献者たちは、TiddlyWikiに関する商用製品やサービスを提供することで、TiddlyWikiに携わってフルタイムで生計を立てようとしています
|
||||
* その中間では、自分の仕事に対する報酬として時折トークンを受け取ることを喜ぶ人もいます
|
||||
|
||||
コミュニティのこのようなニーズをサポートするために、私たちは2つの活動を行っています:
|
||||
|
||||
* 私たちは[[オープンコレクティブ|Open Collective]]を使用して、コミュニティのインフラストラクチャにかかる費用の寄付を集め、個人や組織による特定の開発にクラウドファンディングします
|
||||
* [[TiddlyWikiマーケットプレイス|TiddlyWiki Marketplace]]は、商用製品やサービスを提供する個人や組織にショーウィンドウを提供します
|
||||
@@ -1,88 +0,0 @@
|
||||
created: 20140908114400000
|
||||
modified: 20241225112134741
|
||||
original-modified: 20241016125145988
|
||||
tags: About
|
||||
title: History of TiddlyWiki
|
||||
ja-title: TiddlyWikiの歴史
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
! ~TiddlyWikiの20年
|
||||
|
||||
~TiddlyWikiの20周年を祝うために、いくつかのライブストリームを開催しました。録画はここで視聴できます:
|
||||
|
||||
* 2024年9月19日 - https://youtube.com/live/z9slx92TyrU
|
||||
* 2024年9月20日 - https://youtube.com/live/puFdN-FgOjg
|
||||
* 2024年9月21日 - https://youtube.com/live/0SjsHvwjHGE
|
||||
* 2024年9月22日 - https://youtube.com/live/oD7Jtq2D4lg
|
||||
|
||||
GitHubでは、TiddlyWikiの貢献者に記念日の感想を[[聞いて|https://github.com/TiddlyWiki/TiddlyWiki5/discussions/7983]]お祝いしました。興味深く思慮深い回答がいくつか寄せられました。たとえば、[[@FND|https://github.com/FND]]からの回答は次の通りです:
|
||||
|
||||
> TiddlyWikiは、私のキャリアだけでなく、価値観にも計り知れないほどの永続的な影響を与えました。今日に至るまで、私はTiddlyWikiから学んだ[[基本的なコンセプト|https://prepitaph.org/articles/creative-privacy/]] - その多くは、他では忘れられたり無視されたりしています - を頻繁に参照しています。このバックグラウンドがあることで、技術的な複雑さを崇拝したり、テクノロジーの世界に人間が存在することを思い出したりする場合でも、この業界で仕事をする上で自分の方向性を保つことができます。
|
||||
|
||||
> TiddlyWikiとは、人々のことです。このコミュニティや、Jeremyがその周りに築いたグループと交流し、そこから学ぶことができたのは、私にとって計り知れない特権でした。また、この特権がまったくの偶然によって私に与えられたものだということを思い出すのにも役立ちます。この恩返しをしていきたいと思います。
|
||||
|
||||
~TiddlyWikiを特集した最近のポッドキャスト:
|
||||
|
||||
* 2016年のチェンジログ ポッドキャスト - https://changelog.com/podcast/196 ~TiddlyWikiの背景について議論しています
|
||||
* 2021年のFloss Weeklyの録画 - https://twit.tv/shows/floss-weekly/episodes/620
|
||||
|
||||
! TiddlyWikiの起源
|
||||
|
||||
遡ること1997年に、同僚が私に[[Ward Cunningham のオリジナル wiki|http://c2.com/cgi/wiki]]を紹介してくれました。これほど強力なものがわずか700行のPerlに収まることに感銘を受け、セキュリティとパーミッションの根本的な再考に魅了されました。他の多くの開発者と同様に、私もあらゆる機会を利用してさまざまなWikiを試し、仕事での使用法を模索しました
|
||||
|
||||
私にとってWikiの魅力は、印刷物中心のドキュメントやEメールの一般的なパラダイムを最終的に破壊する可能性があるという感覚でした
|
||||
|
||||
人々がWikiを使用する様子を数年間観察した結果、パワーユーザーは複数のブラウザタブで複数のWikiページを同時に開く機能を多用しており、ページの比較やレビュー、ページ間でのテキストのコピー、未読ページの一種のキューとして用いることが容易になっていることに気づきました
|
||||
|
||||
一度に複数のページを操作するこの機能がWikiをリファクタリングする機能の中心であると感じました。また、愛情を込めてリファクタリングされたWikiはより便利になる傾向があると一般に認められています。それでも、標準のWikiユーザーインターフェイスは常に、単一ページを一度に表示し操作すること専用にデザインされてきました
|
||||
|
||||
2004年4月にGMailを見たとき、すべての考えがまとまりました。GMailは、Ajaxを巧みに使用して個々のメールをスレッド化された会話に融合させました。
|
||||
|
||||
このアイデアをさらに探求するために、HTMLとJavaScriptを試し始めました。私にはどちらの経験もなく、以前の活動で、いくつかの静的ページと単純なASPサイトをまとめただけでした。これらのクライアント側テクノロジーについて理解するのは大変でした。他の皆さんと同じように、私もWebプログラミングの非互換性と矛盾がどれほど恐ろしいものであるかを知り、愕然としました
|
||||
|
||||
! TiddlyWikiのラウンチ
|
||||
|
||||
そうして、2004年9月に、私は原始的な[[TiddlyWikiの最初のバージョン|https://classic.tiddlywiki.com/firstversion.html]]をリリースしました。これは、アイデアを実証するための最小のもので、シンプルで自己完結型の静的な48KB HTMLファイルでした
|
||||
|
||||
TiddlyWikiの最初のバージョンをこの方法で作成することの欠点は、編集に使用するのが完全に非現実的になることでした。'変更を保存'をクリックすると、ファイルシステムにHTMLページを書き込むために、保存されるデータを示すウィンドウがポップアップ表示されるだけでした
|
||||
|
||||
初期のフィードバックの多くは、TiddlyWikiは優れているが、変更を適切に保存できればさらに便利になるというものでした。ブラウザで実行されているHTMLファイルがローカルファイルシステムに変更を保存することは不可能であることはわかっていると思っていたので、少しイライラしました
|
||||
|
||||
数か月以内に、TiddlyWikiがブラウザに変更を保存できるようにする実験的なFirefox拡張機能を目にしました。コードを調べてみると、ファイルシステムへの書き込みに使用されていたAPIは、`file://` URI経由でロードされている場合に限り、実際には通常のHTMLファイルで利用できることがわかりました
|
||||
|
||||
私はFirefoxコードをTiddlyWikiのコアに適合させ、すぐにInternet Explorerにも同様の機能を追加しました(MicrosoftがInternet Explorerとともに配布した古い[[ActiveX|https://en.wikipedia.org/wiki/ActiveX]]コントロールを利用しています)
|
||||
|
||||
! TiddlyWikiの成長
|
||||
|
||||
TiddlyWikiの成長における大きなマイルストーンは、Nathan Bowersによる"GTDTiddlyWiki"の作成でした。彼はバニラのTiddlyWiki製品を採用し、一般的なGetting Things Done方法論を使用してタスクをトラックするという特定のアプリケーションに適応させました。GTDTiddlyWikiはすぐに人気を博し、[[LifeHacker|https://lifehacker.com/]]などのWebサイトで熱狂的に歓迎されました
|
||||
|
||||
その後数年間にわたって、TiddlyWikiの人気は高まり続け、新しい機能や能力も獲得しました。1年以内に、私はTiddlyWikiでオーダーメイドの開発作業を行うことで自活できるようになり、特にWikiパイオニアである[[SocialText|https://en.wikipedia.org/wiki/Socialtext]]と協力して変更をオンラインサーバと同期する機能に取り組みました
|
||||
|
||||
! BTの獲得
|
||||
|
||||
2007年5月に、[[BT]]は私のコンサルティング会社である[[Osmosoft]]を買収しました。従業員が1人で、収益がほんの少ししかない会社を買収するというのは、異例の決断でした。[[Osmosoft]]は、コミュニティの将来を保証するために私がTiddlyWikiの知的財産をUnaMesaに譲渡したため、TiddlyWikiの知的財産さえ所有していませんでした
|
||||
|
||||
[[BT]]の動機は、コミュニティベースのエコシステムを理解することでした。私は"オープンソースイノベーション責任者"として組織に加わり、オープンソースガバナンスの責任を負い、オープンソースコミュニティへの参加方法に関するアドバイスと専門知識を提供しました
|
||||
|
||||
! [[Osmosoft]]とTiddlySpace
|
||||
|
||||
私はBTに[[Osmosoft]]という名前でチームを作りました。私たちの目的は、オープンソースのメリットを広め、他のチームが実際にそのメリットを実感できるよう支援することでした。また、Webの使用全般、特にWeb標準の使用を普及する必要があることもわかりました
|
||||
|
||||
私たちのアプローチは、話すことよりも見せることに重点を置くことでした。私たちはTiddlyWikiコミュニティと協力してエコシステムを拡張し、BT用の多数の内部システムを構築しました(TiddlyWikiに基づくものもあれば、そうでないものもあります)
|
||||
|
||||
TiddlyWikiコミュニティへの[[Osmosoft]]の主な貢献は、TiddlyWebとTiddlySpaceの作成でした。TiddlyWebは、Tiddlerのための堅牢なインターネット規模のサーバであり、TiddlerのTiddlyWikiビューを構成することもできました。TiddlySpaceは、TiddlyWebをより直接的に使用可能な形式にパッケージ化する試みでした
|
||||
|
||||
! BTを離れる
|
||||
|
||||
2011年の終わりまでに、私はBTという企業の枠外でTiddlyWikiの可能性を実現するのがより適切な立場にあると感じるようになりました。そうして、私は退職して独立した開発者として働き始め、主にTiddlyWiki5という形でTiddlyWikiを新しくリブートすることに取り組みました
|
||||
|
||||
! TiddlyWiki5の開発
|
||||
|
||||
私は2011年11月からTiddlyWikiの新しいリリースに取り組みました。プログラマーとして、すでに書いたものの"バージョン 2.0"に取り組むことは非常に魅力的な提案です。これは、要件が完全に理解され、目的の機能をサポートするために必要なアーキテクチャの進化に集中できることを意味します
|
||||
|
||||
! 将来
|
||||
|
||||
TiddlyWiki5がついに"ベータ"ステータスを脱した今、私の希望は、それが長く存続することです。HTML5とNode.jsの標準機能のみを使用しているため、今後何年にもわたって完全に動作しない理由はありません。私の目標は、少なくとも25年は続けることです
|
||||
|
||||
//Jeremy Ruston, 2014年9月20日//
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
created: 20170127221457627
|
||||
modified: 20241226112706885
|
||||
original-modified: 20170127222646488
|
||||
title: License
|
||||
ja-title: ライセンス
|
||||
type: text/vnd.tiddlywiki
|
||||
tags: About
|
||||
|
||||
TiddlyWikiは、[[隠しTiddler|ShadowTiddlers]] [[$:/core/copyright.txt]]に保存されている[[寛容な3条項BSDライセンス|https://opensource.org/licenses/BSD-3-Clause]]に基づいて公開されています:
|
||||
|
||||
<div style="font-size: 0.7em;line-height:1.4;">
|
||||
|
||||
{{$:/core/copyright.txt}}
|
||||
|
||||
</div>
|
||||
|
||||
平たく言うと、このライセンスには、~TiddlyWikiの作成者やその他の者へのライセンス料の支払いやその他の法的義務を課すことなく、TiddlyWikiを利用して、やりたいことを何でもできる、と書かれています。代償として、~TiddlyWikiのようなオープンソースプロジェクトには何の保証もありません。~TiddlyWikiに関わる悲劇的な状況の連鎖によってデータが失われたとしても、~TiddlyWikiの使用による損失や損害についてTiddlyWikiの貢献者を訴えることはできません
|
||||
|
||||
プロジェクトへの関わりを明示することが求められていますが、そうする義務はありません
|
||||
|
||||
誤解を避けるために付け加えておきますが、あなたが~TiddlyWikiの自分のコピー内に保存する情報はすべて、あなたのもののままです。~TiddlyWikiを使用してコンテンツを公開しても、そのコンテンツに対してあなたが持つ権利は変更されません
|
||||
@@ -1,16 +0,0 @@
|
||||
title: Open Collective
|
||||
ja-title: オープンコレクティブ
|
||||
modified: 20241129113142285
|
||||
original-modified: 20221204165636777
|
||||
created: 20221204165636777
|
||||
tags: About HelloThere
|
||||
|
||||
オープンコレクティブは、TiddlyWikiのようなプロジェクトの透明な資金調達と経費のためのプラットフォームです。これは、TiddlyWikiコミュニティの公式募金スペースです
|
||||
|
||||
https://opencollective.com/tiddlywiki
|
||||
|
||||
1回限りの寄付を行うことも、定期的な寄付を設定することもできます
|
||||
|
||||
寄付のためにリストされている主な目標は、会談フォーラムなどのコミュニティインフラストラクチャにかかる基本的なコストをカバーすることと、TiddlyWiki Coreをサポートするという新しい目標です
|
||||
|
||||
さらに、コミュニティは特別なプロジェクトのためにプラットフォームを利用し、開発、設計、その他の費用を支払うために資金をプールすることができます。[[ファイルアップロードプラグイン|https://opencollective.com/tiddlywiki/projects/tiddlywiki-file-upload]]はその最初のものであり、誰かがここでプロジェクトを立ち上げることを歓迎したいと考えています
|
||||
@@ -1,24 +0,0 @@
|
||||
created: 20180626122427188
|
||||
modified: 20241228111603066
|
||||
original-modified: 20211117234223960
|
||||
tags: [[TiddlyWiki on Node.js]]
|
||||
title: NamedCommandParameters
|
||||
ja-title: 名前付きコマンドパラメータ
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.from-version "5.1.18">> ほとんどのTiddlyWiki[[コマンド|Commands]]は、パラメータに位置に基づくシステムを使用しており、各パラメータはコマンドで定義された正確な順序でリストされる必要があります。より複雑なコマンドの中には、名前付きコマンドパラメータの代替スキームを提供するものもあります。たとえば、ここでは"port"と"host"という2つのパラメータを提供します:
|
||||
|
||||
```
|
||||
--listen port=8090 host=0.0.0.0
|
||||
```
|
||||
|
||||
パラメータの順序は重要ではないことに注意してください。
|
||||
|
||||
パラメータ内で特殊文字を使用するには引用符が必要です。Unix、Linux、Macではシングルクォートが使用され、Windowsではダブルクォートが使用されます:
|
||||
|
||||
```
|
||||
--listen port=8090 username=joe 'password=s3cret(!'
|
||||
--listen port=8090 username=joe "password=s3cret(!"
|
||||
```
|
||||
|
||||
引用符は値の部分だけでなく、名前=値のペア全体を括ることに注意してください。
|
||||
@@ -1,19 +0,0 @@
|
||||
created: 20130302085406905
|
||||
modified: 20241130111024987
|
||||
original-modified: 20130302084548184
|
||||
tags: Examples
|
||||
title: "A Thesis Notebook" by Alberto Molina
|
||||
ja-title: Alberto Molinaの"論文ノート"
|
||||
url: http://tesis.tiddlyspot.com/
|
||||
|
||||
TiddlyWikiを使った論文ノート。
|
||||
|
||||
{{!!url}}
|
||||
|
||||
<<<
|
||||
これは、TiddlyWiki 5.0.8-betaを利用した論文ノートの例です。
|
||||
|
||||
TiddlyWikiは、Jeremy Rustonが作成した優れたソフトウェアです。このソフトウェアを使用すると、メモを取ったり、アイデアを整理したり、情報を保存したり、すべてのものを好きなように表示したりできます。これは、ほぼすべてのニーズに合わせて調整できる、非常に柔軟なツールです。
|
||||
|
||||
このTiddlyWikiは、著者、書籍や論文、概念や理論、個人的なメモを中心とした哲学ノートとして機能するようにカスタマイズされています。私はこれを、専用の参考文献ソフトウェアであるZoteroと一緒に使用しています。どちらも無料のオープンソースプロジェクトです。TiddlyWikiはhttps://tiddlywiki.comからダウンロードできます。
|
||||
<<<
|
||||
@@ -1,16 +0,0 @@
|
||||
created: 20150621212120755
|
||||
modified: 20241201110715436
|
||||
original-modified: 20150621214507584
|
||||
tags: Examples
|
||||
title: Interactive Git Documentation by Devin Weaver
|
||||
ja-title: Devin WeaverのインタラクティブGitドキュメント
|
||||
url: http://sukima.github.io/GitFixUm/
|
||||
|
||||
A git choose-your-own-adventure!ⓡ for walking yourself though fixing a //broken// Git repository.
|
||||
//壊れた//Gitリポジトリを自分で修復するための、git choose-your-own-adventure!ⓡ。
|
||||
|
||||
{{!!url}}
|
||||
|
||||
<<<
|
||||
このドキュメントは、gitの使用時に意図していなかった事態から回復するための、かなり包括的なガイドとなることを目指しています。gitが非常に複雑で、特定の問題に対処するために大きなドキュメントが必要なわけではありません。むしろ、実行した可能性のある操作のセットが非常に大きいため、実行した操作と実行したい操作に応じて異なるテクニックが必要になります。
|
||||
<<<
|
||||
@@ -1,16 +0,0 @@
|
||||
created: 20150403104722092
|
||||
modified: 20241201111442269
|
||||
original-modified: 20150403105247619
|
||||
tags: Examples
|
||||
title: PESpot Lesson Planner by Patrick Detzner
|
||||
ja-title: Patrick DetznerのPESpotレッスンプランナー
|
||||
type: text/vnd.tiddlywiki
|
||||
url: http://pespot.tiddlyspot.com
|
||||
|
||||
TiddlyWikiで構築されたレッスンプランニングシステム。
|
||||
|
||||
{{!!url}}
|
||||
|
||||
<<<
|
||||
私は、レッスンプラン情報を入力して保存し、実際のレッスンプラン文書の作成に伴う面倒な作業の一部を容易化/自動化するプログラムを構築しました。
|
||||
<<<
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user