diff --git a/bin/2bld.cmd b/bin/2bld.cmd
index bf2a64ae4..9d18f6327 100644
--- a/bin/2bld.cmd
+++ b/bin/2bld.cmd
@@ -2,15 +2,6 @@
rem build TiddlyWiki 2.x
-rem Prepare the readme file from the revelant content in the tw5.com wiki
-
-node .\tiddlywiki.js ^
- editions\tw5.com ^
- --verbose ^
- --output editions\tw2 ^
- --rendertiddler TiddlyWiki2ReadMe readme.md text/html ^
- || exit 1
-
rem cook the TiddlyWiki 2.x.x index file
node .\tiddlywiki.js ^
diff --git a/bin/2bld.sh b/bin/2bld.sh
index e0b8d30c1..530466540 100755
--- a/bin/2bld.sh
+++ b/bin/2bld.sh
@@ -2,15 +2,6 @@
# build TiddlyWiki 2.x
-# Prepare the readme file from the revelant content in the tw5.com wiki
-
-node ./tiddlywiki.js \
- editions/tw5.com \
- --verbose \
- --output editions/tw2 \
- --rendertiddler TiddlyWiki2ReadMe readme.md text/html \
- || exit 1
-
# cook the TiddlyWiki 2.x.x index file
node ./tiddlywiki.js \
diff --git a/bin/bld-languages.sh b/bin/bld-languages.sh
deleted file mode 100755
index 19561c08e..000000000
--- a/bin/bld-languages.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-# Abbreviated version of bld.sh for quicker builds
-
-# Set up the build output directory
-
-if [ -z "$TW5_BUILD_OUTPUT" ]; then
- TW5_BUILD_OUTPUT=../jermolene.github.com
-fi
-
-if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
- echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
- exit 1
-fi
-
-echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
-
-# /languages/de-AT/index.html Demo wiki with de-AT language
-# /languages/de-AT/empty.html Empty wiki with de-AT language
-node ./tiddlywiki.js \
- ./editions/de-AT \
- --verbose \
- --output $TW5_BUILD_OUTPUT/languages/de-AT \
- --build favicon empty static index \
- || exit 1
-
-# /languages/de-DE/index.html Demo wiki with de-DE language
-# /languages/de-DE/empty.html Empty wiki with de-DE language
-node ./tiddlywiki.js \
- ./editions/de-DE \
- --verbose \
- --output $TW5_BUILD_OUTPUT/languages/de-DE \
- --build favicon empty static index \
- || exit 1
-
-# /languages/fr-FR/index.html Demo wiki with fr-FR language
-# /languages/fr-FR/empty.html Empty wiki with fr-FR language
-node ./tiddlywiki.js \
- ./editions/fr-FR \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all languages/fr-FR/index.html text/plain \
- --rendertiddler $:/core/save/empty languages/fr-FR/empty.html text/plain \
- || exit 1
-
-# /languages/zh-Hans/index.html Demo wiki with zh-Hans language
-# /languages/zh-Hans/empty.html Empty wiki with zh-Hans language
-node ./tiddlywiki.js \
- ./editions/zh-Hans \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all languages/zh-Hans/index.html text/plain \
- --rendertiddler $:/core/save/empty languages/zh-Hans/empty.html text/plain \
- || exit 1
-
-# /languages/zh-Hant/index.html Demo wiki with zh-Hant language
-# /languages/zh-Hant/empty.html Empty wiki with zh-Hant language
-node ./tiddlywiki.js \
- ./editions/zh-Hant \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all languages/zh-Hant/index.html text/plain \
- --rendertiddler $:/core/save/empty languages/zh-Hant/empty.html text/plain \
- || exit 1
-
diff --git a/bin/bld.cmd b/bin/bld.cmd
deleted file mode 100644
index ef4be5b80..000000000
--- a/bin/bld.cmd
+++ /dev/null
@@ -1,130 +0,0 @@
-@echo off
-
-rem build TiddlyWiki5 for tiddlywiki.com
-
-rem Set up the build output directory
-
-if "x%TW5_BUILD_OUTPUT%" == "x" (
- set TW5_BUILD_OUTPUT=..\jermolene.github.com
-)
-
-if not exist %TW5_BUILD_OUTPUT%\nul (
- echo A valid TW5_BUILD_OUTPUT environment variable must be set
- exit 1
-)
-
-echo Using TW5_BUILD_OUTPUT as %TW5_BUILD_OUTPUT%
-echo.
-
-rem Create the `static` directories if necessary
-
-setlocal enableextensions
-mkdir %TW5_BUILD_OUTPUT%\static
-setlocal disableextensions
-
-rem Delete any existing content
-
-del /q /s %TW5_BUILD_OUTPUT%\static
-
-rem The tw5.com wiki
-rem index.html: the main file, including content
-rem empty.html: the main file, excluding content
-rem static.html: the static version of the default tiddlers
-
-node .\tiddlywiki.js ^
- .\editions\tw5.com ^
- --verbose ^
- --output . ^
- --build readmes ^
- --output %TW5_BUILD_OUTPUT% ^
- --build favicon empty static index ^
- || exit 1
-
-rem dev/: developer material
-
-node .\tiddlywiki.js ^
- .\editions\dev ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT%\dev ^
- --build index favicon static ^
- || exit 1
-
-rem upgrade.html: custom edition for handling upgrades
-
-node .\tiddlywiki.js ^
- .\editions\upgrade ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --build upgrade ^
- || exit 1
-
-rem encrypted.html: a version of the main file encrypted with the password "password"
-
-node .\tiddlywiki.js ^
- .\editions\tw5.com ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --build encrypted ^
- || exit 1
-
-rem tahoelafs.html: empty wiki with plugin for Tahoe-LAFS
-
-node .\tiddlywiki.js ^
- .\editions\tahoelafs ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --rendertiddler $:/core/save/all tahoelafs.html text/plain ^
- || exit 1
-
-rem d3demo.html: wiki to demo d3 plugin
-
-node .\tiddlywiki.js ^
- .\editions\d3demo ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --rendertiddler $:/core/save/all d3demo.html text/plain ^
- || exit 1
-
-rem codemirrordemo.html: wiki to demo codemirror plugin
-
-node .\tiddlywiki.js ^
- .\editions\codemirrordemo ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --rendertiddler $:/core/save/all codemirrordemo.html text/plain ^
- || exit 1
-
-rem markdowndemo.html: wiki to demo markdown plugin
-
-node .\tiddlywiki.js ^
- .\editions\markdowndemo ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --rendertiddler $:/core/save/all markdowndemo.html text/plain ^
- || exit 1
-
-rem classicparserdemo.html: wiki to demo classicparser plugin
-
-node .\tiddlywiki.js ^
- .\editions\classicparserdemo ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --rendertiddler $:/core/save/all classicparserdemo.html text/plain ^
- || exit 1
-
-rem highlightdemo.html: wiki to demo highlight plugin
-
-node .\tiddlywiki.js ^
- .\editions\highlightdemo ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --rendertiddler $:/core/save/all highlightdemo.html text/plain ^
- || exit 1
-
-rem Make the CNAME file that GitHub Pages requires
-
-echo tiddlywiki.com > %TW5_BUILD_OUTPUT%\CNAME
-
-rem Run the test edition to run the Node.js tests and to generate test.html for tests in the browser
-
-.\bin\test.cmd
diff --git a/bin/bld.sh b/bin/bld.sh
deleted file mode 100755
index 5c2db5d1b..000000000
--- a/bin/bld.sh
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/bin/bash
-
-# build TiddlyWiki5 for tiddlywiki.com
-
-# Set up the build output directory
-
-if [ -z "$TW5_BUILD_OUTPUT" ]; then
- TW5_BUILD_OUTPUT=../jermolene.github.com
-fi
-
-if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
- echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
- exit 1
-fi
-
-echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
-
-# Make the CNAME file that GitHub Pages requires
-
-echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
-
-# Create the `static` directories if necessary
-
-mkdir -p $TW5_BUILD_OUTPUT/static
-
-# Delete any existing content
-
-rm $TW5_BUILD_OUTPUT/static/*
-
-# The tw5.com wiki
-# index.html: the main file, including content
-# empty.html: the main file, excluding content
-# static.html: the static version of the default tiddlers
-
-node ./tiddlywiki.js \
- ./editions/tw5.com \
- --verbose \
- --output . \
- --build readmes \
- --output $TW5_BUILD_OUTPUT \
- --build favicon empty static index \
- || exit 1
-
-# dev/: developer material
-
-node ./tiddlywiki.js \
- ./editions/dev \
- --verbose \
- --output $TW5_BUILD_OUTPUT/dev \
- --build index favicon static \
- || exit 1
-
-# upgrade.html: custom edition for handling upgrades
-
-node ./tiddlywiki.js \
- ./editions/upgrade \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --build upgrade \
- || exit 1
-
-# encrypted.html: a version of the main file encrypted with the password "password"
-
-node ./tiddlywiki.js \
- ./editions/tw5.com \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --build encrypted \
- || exit 1
-
-# tahoelafs.html: empty wiki with plugin for Tahoe-LAFS
-
-node ./tiddlywiki.js \
- ./editions/tahoelafs \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all tahoelafs.html text/plain \
- || exit 1
-
-# d3demo.html: wiki to demo d3 plugin
-
-node ./tiddlywiki.js \
- ./editions/d3demo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all d3demo.html text/plain \
- || exit 1
-
-# codemirrordemo.html: wiki to demo codemirror plugin
-
-node ./tiddlywiki.js \
- ./editions/codemirrordemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all codemirrordemo.html text/plain \
- || exit 1
-
-# markdowndemo.html: wiki to demo markdown plugin
-
-node ./tiddlywiki.js \
- ./editions/markdowndemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all markdowndemo.html text/plain \
- || exit 1
-
-# classicparserdemo.html: wiki to demo classicparser plugin
-
-node ./tiddlywiki.js \
- ./editions/classicparserdemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all classicparserdemo.html text/plain \
- || exit 1
-
-# highlightdemo.html: wiki to demo highlight plugin
-
-node ./tiddlywiki.js \
- ./editions/highlightdemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all highlightdemo.html text/plain \
- || exit 1
-
-# Run the test edition to run the Node.js tests and to generate test.html for tests in the browser
-
-./bin/test.sh
diff --git a/bin/deploy.cmd b/bin/deploy.cmd
deleted file mode 100644
index d1bf0cf5c..000000000
--- a/bin/deploy.cmd
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-
-rem Publish to NPM
-
-npm publish || exit 1
-
-rem Deploy latest build to github
-
-pushd ..\jermolene.github.com
-
-git add --all || exit 1
-
-git commit -m "Updates" || exit 1
-
-git push origin || exit 1
-
-popd
diff --git a/bin/deploy.sh b/bin/deploy.sh
deleted file mode 100755
index 7c392005c..000000000
--- a/bin/deploy.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# Publish to NPM
-
-npm publish || exit 1
-
-# Deploy latest build to github
-
-pushd ../jermolene.github.com
-
-git add --all || exit 1
-
-git commit -m "Updates" || exit 1
-
-git push origin || exit 1
-
-popd
diff --git a/bin/devbld.sh b/bin/devbld.sh
deleted file mode 100755
index e3a50de5a..000000000
--- a/bin/devbld.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# Build the dev wiki
-
-# Set up the build output directory
-
-if [ -z "$TW5_BUILD_OUTPUT" ]; then
- TW5_BUILD_OUTPUT=../jermolene.github.com
-fi
-
-if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
- echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
- exit 1
-fi
-
-echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
-
-# Make the CNAME file that GitHub Pages requires
-
-echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
-
-# The tw5.com wiki
-# index.html: the main file, including content
-
-node ./tiddlywiki.js \
- ./editions/dev \
- --verbose \
- --output $TW5_BUILD_OUTPUT/dev \
- --build index favicon \
- || exit 1
diff --git a/bin/fullbld.sh b/bin/fullbld.sh
deleted file mode 100755
index c54ef8a9f..000000000
--- a/bin/fullbld.sh
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/bin/bash
-
-# Perform a full build for tiddlywiki.com
-
-# Set up the build output directory
-
-if [ -z "$TW5_BUILD_OUTPUT" ]; then
- TW5_BUILD_OUTPUT=../jermolene.github.com
-fi
-
-if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
- echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
- exit 1
-fi
-
-echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
-
-# Make the CNAME file that GitHub Pages requires
-
-echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
-
-# Delete any existing static content
-
-mkdir -p $TW5_BUILD_OUTPUT/static
-mkdir -p $TW5_BUILD_OUTPUT/dev
-mkdir -p $TW5_BUILD_OUTPUT/dev/static
-rm $TW5_BUILD_OUTPUT/static/*
-rm $TW5_BUILD_OUTPUT/dev/static/*
-
-rm $TW5_BUILD_OUTPUT/languages/de_AT/static/*
-rm $TW5_BUILD_OUTPUT/languages/de_DE/static/*
-
-# Redirects
-
-echo "Moved to http://tiddlywiki.com/plugins/tiddlywiki/tw2parser/index.html" > $TW5_BUILD_OUTPUT/classicparserdemo.html
-echo "Moved to http://tiddlywiki.com/plugins/tiddlywiki/codemirror/index.html" > $TW5_BUILD_OUTPUT/codemirrordemo.html
-echo "Moved to http://tiddlywiki.com/plugins/tiddlywiki/d3/index.html" > $TW5_BUILD_OUTPUT/d3demo.html
-echo "Moved to http://tiddlywiki.com/plugins/tiddlywiki/highlight/index.html" > $TW5_BUILD_OUTPUT/highlightdemo.html
-echo "Moved to http://tiddlywiki.com/plugins/tiddlywiki/markdown/index.html" > $TW5_BUILD_OUTPUT/markdowndemo.html
-echo "Moved to http://tiddlywiki.com/plugins/tiddlywiki/tahoelafs/index.html" > $TW5_BUILD_OUTPUT/tahoelafs.html
-
-######################################################
-#
-# Core distribution
-#
-######################################################
-
-# /index.html Main site
-# /favicon.ico Favicon for main site
-# /empty.html Empty
-# /empty.hta For Internet Explorer
-# /static.html Static rendering of default tiddlers
-# /alltiddlers.html Static rendering of all tiddlers
-# /static/* Static single tiddlers
-# /static/static.css Static stylesheet
-# /static/favicon.ico Favicon for static pages
-node ./tiddlywiki.js \
- ./editions/tw5.com \
- --verbose \
- --output . \
- --build readmes \
- --output $TW5_BUILD_OUTPUT \
- --build favicon empty static index \
- || exit 1
-
-# /dev/index.html Developer docs
-# /dev/favicon.ico Favicon for dev site
-# /dev/static.html Static rendering of default tiddlers
-# /dev/alltiddlers.html Static rendering of all tiddlers
-# /dev/static/* Static single tiddlers
-# /dev/static/static.css Static stylesheet
-node ./tiddlywiki.js \
- ./editions/dev \
- --verbose \
- --output $TW5_BUILD_OUTPUT/dev \
- --build index favicon static \
- || exit 1
-
-# /upgrade.html Custom edition for performing upgrades
-node ./tiddlywiki.js \
- ./editions/upgrade \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --build upgrade \
- || exit 1
-
-# /encrypted.html Copy of the main file encrypted with the password "password"
-node ./tiddlywiki.js \
- ./editions/tw5.com \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --build encrypted \
- || exit 1
-
-######################################################
-#
-# Plugin demos
-#
-######################################################
-
-# /plugins/tiddlywiki/katex/index.html Demo wiki with KaTeX plugin
-# /plugins/tiddlywiki/katex/empty.html Empty wiki with KaTeX plugin
-node ./tiddlywiki.js \
- ./editions/katexdemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all plugins/tiddlywiki/katex/index.html text/plain \
- --rendertiddler $:/core/save/empty plugins/tiddlywiki/katex/empty.html text/plain \
- || exit 1
-
-# /plugins/tiddlywiki/tahoelafs/index.html Demo wiki with Tahoe-LAFS plugin
-# /plugins/tiddlywiki/tahoelafs/empty.html Empty wiki with Tahoe-LAFS plugin
-node ./tiddlywiki.js \
- ./editions/tahoelafs \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all plugins/tiddlywiki/tahoelafs/index.html text/plain \
- --rendertiddler $:/core/save/empty plugins/tiddlywiki/tahoelafs/empty.html text/plain \
- || exit 1
-
-# /plugins/tiddlywiki/d3/index.html Demo wiki with D3 plugin
-# /plugins/tiddlywiki/d3/empty.html Empty wiki with D3 plugin
-node ./tiddlywiki.js \
- ./editions/d3demo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all plugins/tiddlywiki/d3/index.html text/plain \
- --rendertiddler $:/core/save/empty plugins/tiddlywiki/d3/empty.html text/plain \
- || exit 1
-
-# /plugins/tiddlywiki/codemirror/index.html Demo wiki with codemirror plugin
-# /plugins/tiddlywiki/codemirror/empty.html Empty wiki with codemirror plugin
-node ./tiddlywiki.js \
- ./editions/codemirrordemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all plugins/tiddlywiki/codemirror/index.html text/plain \
- --rendertiddler $:/core/save/empty plugins/tiddlywiki/codemirror/empty.html text/plain \
- || exit 1
-
-# /plugins/tiddlywiki/markdown/index.html Demo wiki with Markdown plugin
-# /plugins/tiddlywiki/markdown/empty.html Empty wiki with Markdown plugin
-node ./tiddlywiki.js \
- ./editions/markdowndemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all plugins/tiddlywiki/markdown/index.html text/plain \
- --rendertiddler $:/core/save/empty plugins/tiddlywiki/markdown/empty.html text/plain \
- || exit 1
-
-# /plugins/tiddlywiki/tw2parser/index.html Demo wiki with tw2parser plugin
-# /plugins/tiddlywiki/tw2parser/empty.html Empty wiki with tw2parser plugin
-node ./tiddlywiki.js \
- ./editions/classicparserdemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all plugins/tiddlywiki/tw2parser/index.html text/plain \
- --rendertiddler $:/core/save/empty plugins/tiddlywiki/tw2parser/empty.html text/plain \
- || exit 1
-
-# /plugins/tiddlywiki/highlight/index.html Demo wiki with highlight plugin
-# /plugins/tiddlywiki/highlight/empty.html Empty wiki with highlight plugin
-node ./tiddlywiki.js \
- ./editions/highlightdemo \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all plugins/tiddlywiki/highlight/index.html text/plain \
- --rendertiddler $:/core/save/empty plugins/tiddlywiki/highlight/empty.html text/plain \
- || exit 1
-
-######################################################
-#
-# Language editions
-#
-######################################################
-
-# /languages/de-AT/index.html Demo wiki with de-AT language
-# /languages/de-AT/empty.html Empty wiki with de-AT language
-node ./tiddlywiki.js \
- ./editions/de-AT \
- --verbose \
- --output $TW5_BUILD_OUTPUT/languages/de-AT \
- --build favicon empty static index \
- || exit 1
-
-# /languages/de-DE/index.html Demo wiki with de-DE language
-# /languages/de-DE/empty.html Empty wiki with de-DE language
-node ./tiddlywiki.js \
- ./editions/de-DE \
- --verbose \
- --output $TW5_BUILD_OUTPUT/languages/de-DE \
- --build favicon empty static index \
- || exit 1
-
-# /languages/fr-FR/index.html Demo wiki with fr-FR language
-# /languages/fr-FR/empty.html Empty wiki with fr-FR language
-node ./tiddlywiki.js \
- ./editions/fr-FR \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all languages/fr-FR/index.html text/plain \
- --rendertiddler $:/core/save/empty languages/fr-FR/empty.html text/plain \
- || exit 1
-
-# /languages/zh-Hans/index.html Demo wiki with zh-Hans language
-# /languages/zh-Hans/empty.html Empty wiki with zh-Hans language
-node ./tiddlywiki.js \
- ./editions/zh-Hans \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all languages/zh-Hans/index.html text/plain \
- --rendertiddler $:/core/save/empty languages/zh-Hans/empty.html text/plain \
- || exit 1
-
-# /languages/zh-Hant/index.html Demo wiki with zh-Hant language
-# /languages/zh-Hant/empty.html Empty wiki with zh-Hant language
-node ./tiddlywiki.js \
- ./editions/zh-Hant \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all languages/zh-Hant/index.html text/plain \
- --rendertiddler $:/core/save/empty languages/zh-Hant/empty.html text/plain \
- || exit 1
-
-######################################################
-#
-# Tests
-#
-######################################################
-
-# /test.html Wiki for running tests in browser
-# Also runs the serverside tests
-node ./tiddlywiki.js \
- ./editions/test \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --rendertiddler $:/core/save/all test.html text/plain \
- || exit 1
diff --git a/bin/qbld.cmd b/bin/qbld.cmd
deleted file mode 100644
index 4eb772b3b..000000000
--- a/bin/qbld.cmd
+++ /dev/null
@@ -1,28 +0,0 @@
-@echo off
-
-rem Abbreviated version of bld.sh for quicker builds
-
-rem Set up the build output directory
-
-if "x%TW5_BUILD_OUTPUT%" == "x" (
- set TW5_BUILD_OUTPUT=..\jermolene.github.com
-)
-
-if not exist %TW5_BUILD_OUTPUT%\nul (
- echo A valid TW5_BUILD_OUTPUT environment variable must be set
- exit 1
-)
-
-echo Using TW5_BUILD_OUTPUT as %TW5_BUILD_OUTPUT%
-echo.
-
-rem The tw5.com wiki
-rem index.html: the main file, including content
-
-node .\tiddlywiki.js ^
- .\editions\tw5.com ^
- --verbose ^
- --output %TW5_BUILD_OUTPUT% ^
- --rendertiddler $:/core/save/all index.html text/plain ^
- --savetiddler $:/favicon.ico favicon.ico ^
- || exit 1
diff --git a/bin/qbld.sh b/bin/qbld.sh
deleted file mode 100755
index a7a2d2534..000000000
--- a/bin/qbld.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# Abbreviated version of bld.sh for quicker builds
-
-# Set up the build output directory
-
-if [ -z "$TW5_BUILD_OUTPUT" ]; then
- TW5_BUILD_OUTPUT=../jermolene.github.com
-fi
-
-if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
- echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
- exit 1
-fi
-
-echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
-
-# Make the CNAME file that GitHub Pages requires
-
-echo "tiddlywiki.com" > $TW5_BUILD_OUTPUT/CNAME
-
-# The tw5.com wiki
-# index.html: the main file, including content
-
-node ./tiddlywiki.js \
- ./editions/tw5.com \
- --verbose \
- --output $TW5_BUILD_OUTPUT \
- --build index favicon \
- || exit 1
diff --git a/bin/readme.md b/bin/readme.md
index 5b1443f95..d69837069 100644
--- a/bin/readme.md
+++ b/bin/readme.md
@@ -1,7 +1,3 @@
-
Script Files
The TiddlyWiki5 repository contains several scripts in the bin folder that are used to build and deploy TiddlyWiki (.sh for *nix and .cmd for Windows). They can serve as a useful starting point for your own scripts.
All the scripts expect to be run from the root folder of the repository.
fullbld: builds tw5.com
This script builds several variants of TiddlyWiki5 for deployment on tiddlywiki.com.
By default, files are output to a folder called jermolene.github.com, sibling to the TiddlyWiki5 repo directory. For example:
/TiddlyWork/ - Directory for working with TiddlyWiki5
- |
- +--+-- /TiddlyWiki5/ - Directory containing the TiddlyWiki5 repo from GitHub
- |
- +-- /jermolene.github.com/ - Directory for output files
You can override the build output directory by defining the environment variable TW5_BUILD_OUTPUT. The easiest way to do this is to create a personal batch file to invoke TiddlyWiki5 that first sets the environment variable and then invokes fullbld.
The TiddlyWiki5 repository contains several scripts in the bin folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See Scripts for building tiddlywiki.com for details of the scripts used to build and release http://tiddlywiki.com/.
All the scripts expect to be run from the root folder of the repository.
This script starts TiddlyWiki5 running as an HTTP server, defaulting to the content from the tw5.com-server edition. By default, the Node.js serves on port 8080. If the optional username parameter is provided, it is used for signing edits. If the password is provided then HTTP basic authentication is used. Run the script with the -h parameter to see online help.
To experiment with this configuration, run the script and then visit http://127.0.0.1:8080 in a browser.
Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).
test: build and run tests
This script runs the test edition of TiddlyWiki on the server to perform the server-side tests and to build test.html for running the tests in the browser.
lazy: serves tw5.com with lazily loaded images
./bin/lazy.sh <username> [<password>]
Or:
./bin/lazy.cmd <username> [<password>]
This script serves the tw5.com-server edition content with LazyLoading applied to images.
\ No newline at end of file
+./bin/serve.cmd [edition dir] [username] [password] [host] [port]
This script starts TiddlyWiki5 running as an HTTP server, defaulting to the content from the tw5.com-server edition. By default, the Node.js serves on port 8080. If the optional username parameter is provided, it is used for signing edits. If the password is provided then HTTP basic authentication is used. Run the script with the -h parameter to see online help.
To experiment with this configuration, run the script and then visit http://127.0.0.1:8080 in a browser.
Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).
test: build and run tests
This script runs the test edition of TiddlyWiki on the server to perform the server-side tests and to build test.html for running the tests in the browser.
lazy: serves tw5.com with lazily loaded images
./bin/lazy.sh <username> [<password>]
Or:
./bin/lazy.cmd <username> [<password>]
This script serves the tw5.com-server edition content with LazyLoading applied to images.
This script builds TiddlyWiki 2.6.5 from the original source and then displays the differences between them (diff is used for *nix, fc for Windows).
\ No newline at end of file
diff --git a/bin/serve.cmd b/bin/serve.cmd
index 898904cdc..3f0b69e1c 100644
--- a/bin/serve.cmd
+++ b/bin/serve.cmd
@@ -43,8 +43,8 @@ echo - %%3 .. password .. can be empty like this: '""'
echo - %%4 .. IP address or HOST .. defaults to localhost
echo - %%5 .. PORT .. defaults to 8080
echo.
-echo Example 1 .\serve .\edition\tw5.com-server username
-echo Example 2 .\serve .\edition\tw5.com-server '""' '""' localhost 9090
+echo Example 1 .\serve .\editions\tw5.com-server username
+echo Example 2 .\serve .\editions\tw5.com-server '""' '""' localhost 9090
echo .. Example 2 defines: empty username, empty password
echo.
echo Help information
diff --git a/bin/serve.sh b/bin/serve.sh
index 3d28d5297..9b9d9da71 100755
--- a/bin/serve.sh
+++ b/bin/serve.sh
@@ -45,8 +45,8 @@ help() {
echo $'\t'-v .. Version
echo $'\t'-h .. Help
echo
- echo Example 1 ./serve ./edition/tw5.com-server username
- echo Example 2 ./serve ./edition/tw5.com-server \"\" \"\" localhost 9090
+ echo Example 1 ./serve ./editions/tw5.com-server username
+ echo Example 2 ./serve ./editions/tw5.com-server \"\" \"\" localhost 9090
echo .. Example 2 defines: empty username, empty password
echo
}
diff --git a/bin/test.cmd b/bin/test.cmd
index f5a3085eb..554277b57 100644
--- a/bin/test.cmd
+++ b/bin/test.cmd
@@ -2,24 +2,10 @@
rem test TiddlyWiki5 for tiddlywiki.com
-rem Set up the build output directory
-
-if "x%TW5_BUILD_OUTPUT%" == "x" (
- set TW5_BUILD_OUTPUT=..\jermolene.github.com
-)
-
-if not exist %TW5_BUILD_OUTPUT%\nul (
- echo A valid TW5_BUILD_OUTPUT environment variable must be set
- exit 1
-)
-
-echo Using TW5_BUILD_OUTPUT as %TW5_BUILD_OUTPUT%
-
rem Run the test edition to run the node.js tests and to generate test.html for tests in the browser
node .\tiddlywiki.js ^
.\editions\test ^
- --output %TW5_BUILD_OUTPUT% ^
--verbose ^
--rendertiddler $:/core/save/all test.html text/plain ^
|| exit 1
diff --git a/bin/test.sh b/bin/test.sh
index 00036cd7d..38bb7fbb8 100755
--- a/bin/test.sh
+++ b/bin/test.sh
@@ -2,24 +2,12 @@
# test TiddlyWiki5 for tiddlywiki.com
-# Set up the build output directory
-
-if [ -z "$TW5_BUILD_OUTPUT" ]; then
- TW5_BUILD_OUTPUT=../jermolene.github.com
-fi
-
-if [ ! -d "$TW5_BUILD_OUTPUT" ]; then
- echo 'A valid TW5_BUILD_OUTPUT environment variable must be set'
- exit 1
-fi
-
-echo "Using TW5_BUILD_OUTPUT as [$TW5_BUILD_OUTPUT]"
-
# Run the test edition to run the node.js tests and to generate test.html for tests in the browser
node ./tiddlywiki.js \
./editions/test \
--verbose \
- --output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all test.html text/plain \
|| exit 1
+
+echo To run the tests in a browser, open "editions/test/output/test.html"
diff --git a/bin/verbump.cmd b/bin/verbump.cmd
deleted file mode 100644
index 378a3e3e8..000000000
--- a/bin/verbump.cmd
+++ /dev/null
@@ -1,16 +0,0 @@
-@echo off
-
-rem Bump to a new version number
-
-if "x%1" == "x" (
- echo Missing version (eg '5.0.0-alpha'^)
- exit 1
-)
-
-rem Set the new version number (will also commit and tag the release)
-
-npm version %1 -m "Version number update for %1" || exit 1
-
-rem Make sure our tags are pushed to the origin server
-
-git push origin --tags || exit 1
diff --git a/bin/verbump.sh b/bin/verbump.sh
deleted file mode 100755
index fe97908ef..000000000
--- a/bin/verbump.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# Bump to a new version number
-
-if [ -z "$1" ]
- then
- echo "Missing version (eg '5.0.0-alpha')"
- exit 1
-fi
-
-# Set the new version number (will also commit and tag the release)
-
-npm version $1 -m "Version number update for $1" || exit 1
-
-# Make sure our tags are pushed to the origin server
-
-git push origin --tags || exit 1
diff --git a/bin/wbld.cmd b/bin/wbld.cmd
deleted file mode 100644
index 31c028d39..000000000
--- a/bin/wbld.cmd
+++ /dev/null
@@ -1,26 +0,0 @@
-@echo off
-
-rem build the TiddlyWeb edition of TiddlyWiki5 and upload it to TiddlySpace. Requires the TiddlySpace credentials
-rem of a member of the tw5tiddlyweb space
-
-rem usage:
-rem .\wbld.cmd
-
-rem Open the tw5tiddlyweb edition in TW5 and save the template for the main HTML file
-
-node .\tiddlywiki.js ^
- editions\tw5tiddlyweb ^
- --verbose ^
- --output tmp ^
- --rendertiddler $:/core/save/all tiddlyweb.html text/plain ^
- || exit 1
-
-rem Prepend the type information that TiddlyWeb needs to turn the .html file into a .tid file
-
-echo "type: text/html" > tmp\tiddlerforupload.txt
-echo "" >> tmp\tiddlerforupload.txt
-type tmp\tiddlyweb.html >> tmp\tiddlerforupload.txt
-
-rem Upload the tiddler file
-
-curl -u %1:%2 -X PUT -H "content-type: text/plain" http://tw5tiddlyweb.tiddlyspace.com/bags/tw5tiddlyweb_public/tiddlers/tw5 --data-binary @tmp/tiddlerforupload.txt
diff --git a/bin/wbld.sh b/bin/wbld.sh
deleted file mode 100755
index a50ba3042..000000000
--- a/bin/wbld.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# build the TiddlyWeb edition of TiddlyWiki5 and upload it to TiddlySpace. Requires the TiddlySpace credentials
-# of a member of the tw5tiddlyweb space
-
-# usage:
-# ./wbld.sh
-
-# Create the tmp directory if needed
-
-mkdir -p tmp
-
-# Open the tw5tiddlyweb edition in TW5 and save the template for the main HTML file
-
-node ./tiddlywiki.js \
- editions/tw5tiddlyweb \
- --verbose \
- --output tmp \
- --rendertiddler $:/core/save/all tiddlyweb.html text/plain \
- || exit 1
-
-# Prepend the type information that TiddlyWeb needs to turn the .html file into a .tid file
-
-echo "type: text/html" > tmp/tiddlerforupload.txt
-echo "" >> tmp/tiddlerforupload.txt
-cat tmp/tiddlyweb.html >> tmp/tiddlerforupload.txt
-
-# Upload the tiddler file
-
-curl -u $1:$2 -X PUT -H "content-type: text/plain" http://tw5tiddlyweb.tiddlyspace.com/bags/tw5tiddlyweb_public/tiddlers/tw5 --data-binary @tmp/tiddlerforupload.txt
diff --git a/boot/boot.js b/boot/boot.js
index 9d838a0d6..0748f5c86 100644
--- a/boot/boot.js
+++ b/boot/boot.js
@@ -477,6 +477,7 @@ submitText: text to use for submit button (defaults to "Login")
serviceName: text of the human readable service name
noUserName: set true to disable username prompt
canCancel: set true to enable a cancel button (callback called with null)
+repeatPassword: set true to prompt for the password twice
callback: function to be called on submission with parameter of object {username:,password:}. Callback must return `true` to remove the password prompt
*/
$tw.utils.PasswordPrompt.prototype.createPrompt = function(options) {
@@ -493,6 +494,11 @@ $tw.utils.PasswordPrompt.prototype.createPrompt = function(options) {
children.push(dm("input",{
attributes: {type: "password", name: "password", placeholder: "Password"}
}));
+ if(options.repeatPassword) {
+ children.push(dm("input",{
+ attributes: {type: "password", name: "password2", placeholder: "Repeat password"}
+ }));
+ }
if(options.canCancel) {
children.push(dm("button",{
text: "Cancel",
@@ -527,18 +533,23 @@ $tw.utils.PasswordPrompt.prototype.createPrompt = function(options) {
data[element.name] = element.value;
}
});
- // Call the callback
- if(options.callback(data)) {
- // Remove the prompt if the callback returned true
- self.removePrompt(promptInfo);
+ // Check that the passwords match
+ if(options.repeatPassword && data.password !== data.password2) {
+ alert("Passwords do not match");
} else {
- // Clear the password if the callback returned false
- $tw.utils.each(form.elements,function(element) {
- if(element.name === "password") {
- element.value = "";
- }
- });
- }
+ // Call the callback
+ if(options.callback(data)) {
+ // Remove the prompt if the callback returned true
+ self.removePrompt(promptInfo);
+ } else {
+ // Clear the password if the callback returned false
+ $tw.utils.each(form.elements,function(element) {
+ if(element.name === "password" || element.name === "password2") {
+ element.value = "";
+ }
+ });
+ }
+ }
event.preventDefault();
return false;
},true);
@@ -1244,10 +1255,14 @@ Decrypt any tiddlers stored within the element with the ID "encryptedArea". The
$tw.boot.decryptEncryptedTiddlers = function(callback) {
var encryptedArea = document.getElementById("encryptedStoreArea");
if(encryptedArea) {
- var encryptedText = encryptedArea.innerHTML;
+ var encryptedText = encryptedArea.innerHTML,
+ prompt = "Enter a password to decrypt this TiddlyWiki";
// Prompt for the password
+ if($tw.utils.hop($tw.boot,"encryptionPrompts")) {
+ prompt = $tw.boot.encryptionPrompts.decrypt;
+ }
$tw.passwordPrompt.createPrompt({
- serviceName: "Enter a password to decrypt this TiddlyWiki",
+ serviceName: prompt,
noUserName: true,
submitText: "Decrypt",
callback: function(data) {
@@ -1568,7 +1583,9 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
$tw.utils.each(wikiInfo.includeWikis,function(includedWikiPath) {
var resolvedIncludedWikiPath = path.resolve(wikiPath,includedWikiPath);
if(parentPaths.indexOf(resolvedIncludedWikiPath) === -1) {
- $tw.loadWikiTiddlers(resolvedIncludedWikiPath,parentPaths);
+ var subWikiInfo = $tw.loadWikiTiddlers(resolvedIncludedWikiPath,parentPaths);
+ // Merge the build targets
+ wikiInfo.build = $tw.utils.extend([],subWikiInfo.build,wikiInfo.build);
} else {
$tw.utils.error("Cannot recursively include wiki " + resolvedIncludedWikiPath);
}
diff --git a/boot/bootprefix.js b/boot/bootprefix.js
index d22620858..bff9a2aa2 100644
--- a/boot/bootprefix.js
+++ b/boot/bootprefix.js
@@ -99,7 +99,7 @@ return $tw
if(typeof(exports) === "undefined") {
// Set up $tw global for the browser
- window.$tw = _bootprefix();
+ window.$tw = _bootprefix(window.$tw);
} else {
// Export functionality as a module
exports.bootprefix = _bootprefix;
diff --git a/contributing.md b/contributing.md
index 832b9432f..58e64e879 100644
--- a/contributing.md
+++ b/contributing.md
@@ -1,3 +1,3 @@
-
Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).
Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).
eg: Jeremy Ruston, @Jermolene, 2011/11/22
The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".
+
Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).
in cla-individual.md or cla-entity.md click icon on the top-right corner (clicking this button will fork the project so you can edit the file)
add your name at the bottom
eg: Jeremy Ruston, @Jermolene, 2011/11/22
The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".
This file was automatically generated by TiddlyWiki5
\ No newline at end of file
diff --git a/core/images/new-here-button.tid b/core/images/new-here-button.tid
new file mode 100644
index 000000000..e8f7f3e27
--- /dev/null
+++ b/core/images/new-here-button.tid
@@ -0,0 +1,8 @@
+title: $:/core/images/new-here-button
+tags: $:/tags/Image
+
+
diff --git a/core/images/new-journal-button.tid b/core/images/new-journal-button.tid
new file mode 100644
index 000000000..7aaaca045
--- /dev/null
+++ b/core/images/new-journal-button.tid
@@ -0,0 +1,16 @@
+title: $:/core/images/new-journal-button
+tags: $:/tags/Image
+
+
diff --git a/core/language/en-GB/Buttons.multids b/core/language/en-GB/Buttons.multids
index dac85e315..2888f4768 100644
--- a/core/language/en-GB/Buttons.multids
+++ b/core/language/en-GB/Buttons.multids
@@ -34,10 +34,16 @@ Home/Caption: home
Home/Hint: Open the default tiddlers
Language/Caption: language
Language/Hint: Choose the user interface language
-NewTiddler/Caption: new tiddler
-NewTiddler/Hint: Create a new tiddler
More/Caption: more
More/Hint: More actions
+NewHere/Caption: new here
+NewHere/Hint: Create a new tiddler tagged with this one
+NewJournal/Caption: new journal
+NewJournal/Hint: Create a new journal tiddler
+NewJournalHere/Caption: new journal here
+NewJournalHere/Hint: Create a new journal tiddler tagged with this one
+NewTiddler/Caption: new tiddler
+NewTiddler/Hint: Create a new tiddler
Permalink/Caption: permalink
Permalink/Hint: Set browser address bar to a direct link to this tiddler
Permaview/Caption: permaview
diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids
index 7bb60a790..a9a9ab822 100644
--- a/core/language/en-GB/ControlPanel.multids
+++ b/core/language/en-GB/ControlPanel.multids
@@ -10,6 +10,8 @@ Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]]
Basics/DefaultTiddlers/Prompt: Default tiddlers:
Basics/DefaultTiddlers/TopHint: Choose which tiddlers are displayed at startup:
Basics/Language/Prompt: Hello! Current language:
+Basics/NewJournal/Title/Prompt: Title of new journal tiddlers
+Basics/NewJournal/Tags/Prompt: Tags for new journal tiddlers
Basics/OverriddenShadowTiddlers/Prompt: Number of overridden shadow tiddlers:
Basics/ShadowTiddlers/Prompt: Number of shadow tiddlers:
Basics/Subtitle/Prompt: Subtitle:
diff --git a/core/language/en-GB/Dates.multids b/core/language/en-GB/Dates.multids
new file mode 100644
index 000000000..6859c0324
--- /dev/null
+++ b/core/language/en-GB/Dates.multids
@@ -0,0 +1,87 @@
+title: $:/language/
+
+Date/DaySuffix/1: st
+Date/DaySuffix/2: nd
+Date/DaySuffix/3: rd
+Date/DaySuffix/4: th
+Date/DaySuffix/5: th
+Date/DaySuffix/6: th
+Date/DaySuffix/7: th
+Date/DaySuffix/8: th
+Date/DaySuffix/9: th
+Date/DaySuffix/10: th
+Date/DaySuffix/11: th
+Date/DaySuffix/12: th
+Date/DaySuffix/13: th
+Date/DaySuffix/14: th
+Date/DaySuffix/15: th
+Date/DaySuffix/16: th
+Date/DaySuffix/17: th
+Date/DaySuffix/18: th
+Date/DaySuffix/19: th
+Date/DaySuffix/20: th
+Date/DaySuffix/21: st
+Date/DaySuffix/22: nd
+Date/DaySuffix/23: rd
+Date/DaySuffix/24: th
+Date/DaySuffix/25: th
+Date/DaySuffix/26: th
+Date/DaySuffix/27: th
+Date/DaySuffix/28: th
+Date/DaySuffix/29: th
+Date/DaySuffix/30: th
+Date/DaySuffix/31: st
+Date/Long/Day/0: Sunday
+Date/Long/Day/1: Monday
+Date/Long/Day/2: Tuesday
+Date/Long/Day/3: Wednesday
+Date/Long/Day/4: Thursday
+Date/Long/Day/5: Friday
+Date/Long/Day/6: Saturday
+Date/Long/Month/1: January
+Date/Long/Month/2: February
+Date/Long/Month/3: March
+Date/Long/Month/4: April
+Date/Long/Month/5: May
+Date/Long/Month/6: June
+Date/Long/Month/7: July
+Date/Long/Month/8: August
+Date/Long/Month/9: September
+Date/Long/Month/10: October
+Date/Long/Month/11: November
+Date/Long/Month/12: December
+Date/Period/am: am
+Date/Period/pm: pm
+Date/Short/Day/0: Sun
+Date/Short/Day/1: Mon
+Date/Short/Day/2: Tue
+Date/Short/Day/3: Wed
+Date/Short/Day/4: Thu
+Date/Short/Day/5: Fri
+Date/Short/Day/6: Sat
+Date/Short/Month/1: Jan
+Date/Short/Month/2: Feb
+Date/Short/Month/3: Mar
+Date/Short/Month/4: Apr
+Date/Short/Month/5: May
+Date/Short/Month/6: Jun
+Date/Short/Month/7: Jul
+Date/Short/Month/8: Aug
+Date/Short/Month/9: Sep
+Date/Short/Month/10: Oct
+Date/Short/Month/11: Nov
+Date/Short/Month/12: Dec
+RelativeDate/Future/Days: <> days from now
+RelativeDate/Future/Hours: <> hours from now
+RelativeDate/Future/Minutes: <> minutes from now
+RelativeDate/Future/Months: <> months from now
+RelativeDate/Future/Second: 1 second from now
+RelativeDate/Future/Seconds: <> seconds from now
+RelativeDate/Future/Years: <> years from now
+RelativeDate/Past/Days: <> days ago
+RelativeDate/Past/Hours: <> hours ago
+RelativeDate/Past/Minutes: <> minutes ago
+RelativeDate/Past/Months: <> months ago
+RelativeDate/Past/Second: 1 second ago
+RelativeDate/Past/Seconds: <> seconds ago
+RelativeDate/Past/Years: <> years ago
diff --git a/core/language/en-GB/Docs/ModuleTypes.multids b/core/language/en-GB/Docs/ModuleTypes.multids
index 6f7f08d30..7d666e309 100644
--- a/core/language/en-GB/Docs/ModuleTypes.multids
+++ b/core/language/en-GB/Docs/ModuleTypes.multids
@@ -14,6 +14,7 @@ storyview: Story views customise the animation and behaviour of list widgets.
tiddlerdeserializer: Converts different content types into tiddlers.
tiddlerfield: Defines the behaviour of an individual tiddler field.
tiddlermethod: Adds methods to the `$tw.Tiddler` prototype.
+upgrader: Applies upgrade processing to tiddlers during an upgrade/import.
utils: Adds methods to `$tw.utils`.
utils-node: Adds Node.js-specific methods to `$tw.utils`.
widget: Widgets encapsulate DOM rendering and refreshing.
diff --git a/core/language/en-GB/Misc.multids b/core/language/en-GB/Misc.multids
index 0e9b91d2c..c1f46473a 100644
--- a/core/language/en-GB/Misc.multids
+++ b/core/language/en-GB/Misc.multids
@@ -8,24 +8,13 @@ ConfirmCancelTiddler: Do you wish to discard changes to the tiddler "<$text text
ConfirmDeleteTiddler: Do you wish to delete the tiddler "<$text text=<>/>"?
ConfirmOverwriteTiddler: Do you wish to overwrite the tiddler "<$text text=<>/>"?
ConfirmEditShadowTiddler: You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit "<$text text=<>/>"?
+DefaultNewTiddlerTitle: New Tiddler
DropMessage: Drop here (or click escape to cancel)
+Encryption/ConfirmClearPassword: Do you wish to clear the password? This will remove the encryption applied when saving this wiki
+Encryption/PromptSetPassword: Set a new password for this TiddlyWiki
InvalidFieldName: Illegal characters in field name "<$text text=<>/>". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)
MissingTiddler/Hint: Missing tiddler "<$text text=<>/>" - click {{$:/core/images/edit-button}} to create
RecentChanges/DateFormat: DDth MMM YYYY
-RelativeDate/Future/Days: <> days from now
-RelativeDate/Future/Hours: <> hours from now
-RelativeDate/Future/Minutes: <> minutes from now
-RelativeDate/Future/Months: <> months from now
-RelativeDate/Future/Second: 1 second from now
-RelativeDate/Future/Seconds: <> seconds from now
-RelativeDate/Future/Years: <> years from now
-RelativeDate/Past/Days: <> days ago
-RelativeDate/Past/Hours: <> hours ago
-RelativeDate/Past/Minutes: <> minutes ago
-RelativeDate/Past/Months: <> months ago
-RelativeDate/Past/Second: 1 second ago
-RelativeDate/Past/Seconds: <> seconds ago
-RelativeDate/Past/Years: <> years ago
SystemTiddler/Tooltip: This is a system tiddler
TagManager/Colour/Heading: Colour
TagManager/Icon/Heading: Icon
diff --git a/core/language/en-GB/NewJournal.multids b/core/language/en-GB/NewJournal.multids
new file mode 100644
index 000000000..ff566fabe
--- /dev/null
+++ b/core/language/en-GB/NewJournal.multids
@@ -0,0 +1,4 @@
+title: $:/config/NewJournal/
+
+Title: DDth MMM YYYY
+Tags: Journal
diff --git a/core/modules/config.js b/core/modules/config.js
index a7d90082b..c9996f62c 100644
--- a/core/modules/config.js
+++ b/core/modules/config.js
@@ -17,20 +17,6 @@ exports.preferences = {};
exports.preferences.notificationDuration = 3 * 1000;
exports.preferences.jsonSpaces = 4;
-exports.dateFormats = {
- months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November","December"],
- days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
- shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
-// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
- daySuffixes: ["st","nd","rd","th","th","th","th","th","th","th",
- "th","th","th","th","th","th","th","th","th","th",
- "st","nd","rd","th","th","th","th","th","th","th",
- "st"],
- am: "am",
- pm: "pm"
-};
-
exports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };
exports.htmlVoidElements = "area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(",");
diff --git a/core/modules/filters/addprefix.js b/core/modules/filters/addprefix.js
new file mode 100644
index 000000000..d1f0a822b
--- /dev/null
+++ b/core/modules/filters/addprefix.js
@@ -0,0 +1,28 @@
+/*\
+title: $:/core/modules/filters/addprefix.js
+type: application/javascript
+module-type: filteroperator
+
+Filter operator for adding a prefix to each title in the list. This is
+especially useful in contexts where only a filter expression is allowed
+and macro substitution isn't available.
+
+\*/
+(function(){
+
+/*jslint node: true, browser: true */
+/*global $tw: false */
+"use strict";
+
+/*
+Export our filter function
+*/
+exports.addprefix = function(source,operator,options) {
+ var results = [];
+ source(function(tiddler,title) {
+ results.push(operator.operand + title);
+ });
+ return results;
+};
+
+})();
diff --git a/core/modules/filters/addsuffix.js b/core/modules/filters/addsuffix.js
new file mode 100644
index 000000000..fb80c2573
--- /dev/null
+++ b/core/modules/filters/addsuffix.js
@@ -0,0 +1,28 @@
+/*\
+title: $:/core/modules/filters/addsuffix.js
+type: application/javascript
+module-type: filteroperator
+
+Filter operator for adding a suffix to each title in the list. This is
+especially useful in contexts where only a filter expression is allowed
+and macro substitution isn't available.
+
+\*/
+(function(){
+
+/*jslint node: true, browser: true */
+/*global $tw: false */
+"use strict";
+
+/*
+Export our filter function
+*/
+exports.addsuffix = function(source,operator,options) {
+ var results = [];
+ source(function(tiddler,title) {
+ results.push(title + operator.operand);
+ });
+ return results;
+};
+
+})();
diff --git a/core/modules/macros/now.js b/core/modules/macros/now.js
new file mode 100644
index 000000000..d0a15dce2
--- /dev/null
+++ b/core/modules/macros/now.js
@@ -0,0 +1,32 @@
+/*\
+title: $:/core/modules/macros/now.js
+type: application/javascript
+module-type: macro
+
+Macro to return a formatted version of the current time
+
+\*/
+(function(){
+
+/*jslint node: true, browser: true */
+/*global $tw: false */
+"use strict";
+
+/*
+Information about this macro
+*/
+
+exports.name = "now";
+
+exports.params = [
+ {name: "format"}
+];
+
+/*
+Run the macro
+*/
+exports.run = function(format) {
+ return $tw.utils.formatDateString(new Date(),format || "0hh:0mm, DDth MMM YYYY");
+};
+
+})();
diff --git a/core/modules/startup/password.js b/core/modules/startup/password.js
index 41902e9e9..6205b3e7d 100644
--- a/core/modules/startup/password.js
+++ b/core/modules/startup/password.js
@@ -21,10 +21,11 @@ exports.synchronous = true;
exports.startup = function() {
$tw.rootWidget.addEventListener("tm-set-password",function(event) {
$tw.passwordPrompt.createPrompt({
- serviceName: "Set a new password for this TiddlyWiki",
+ serviceName: $tw.language.getString("Encryption/PromptSetPassword"),
noUserName: true,
submitText: "Set password",
canCancel: true,
+ repeatPassword: true,
callback: function(data) {
if(data) {
$tw.crypto.setPassword(data.password);
@@ -34,6 +35,11 @@ exports.startup = function() {
});
});
$tw.rootWidget.addEventListener("tm-clear-password",function(event) {
+ if($tw.browser) {
+ if(!confirm($tw.language.getString("Encryption/ConfirmClearPassword"))) {
+ return;
+ }
+ }
$tw.crypto.setPassword(null);
});
// Ensure that $:/isEncrypted is maintained properly
diff --git a/core/modules/startup/story.js b/core/modules/startup/story.js
index 6c7258485..460e48ba3 100644
--- a/core/modules/startup/story.js
+++ b/core/modules/startup/story.js
@@ -59,6 +59,9 @@ exports.startup = function() {
var storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),
storyList = $tw.wiki.filterTiddlers(storyFilter);
$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: "", list: storyList},$tw.wiki.getModificationFields());
+ if(storyList[0]) {
+ $tw.wiki.addToHistory(storyList[0]);
+ }
});
// Listen for the tm-permalink message
$tw.rootWidget.addEventListener("tm-permalink",function(event) {
diff --git a/core/modules/storyviews/zoomin.js b/core/modules/storyviews/zoomin.js
index 0ae8e8f46..1a66bdf33 100644
--- a/core/modules/storyviews/zoomin.js
+++ b/core/modules/storyviews/zoomin.js
@@ -35,7 +35,7 @@ var ZoominListView = function(listWidget) {
} else {
self.currentTiddlerDomNode = domNode;
}
- domNode.style.position = "absolute";
+ $tw.utils.addClass(domNode,"tc-storyview-zoomin-tiddler");
});
};
@@ -52,8 +52,8 @@ ZoominListView.prototype.navigateTo = function(historyInfo) {
return;
}
// Make the new tiddler be position absolute and visible so that we can measure it
+ $tw.utils.addClass(targetElement,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(targetElement,[
- {position: "absolute"},
{display: "block"},
{transformOrigin: "0 0"},
{transform: "translateX(0px) translateY(0px) scale(1)"},
@@ -134,9 +134,9 @@ ZoominListView.prototype.insert = function(widget) {
return;
}
// Make the newly inserted node position absolute and hidden
+ $tw.utils.addClass(targetElement,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(targetElement,[
- {display: "none"},
- {position: "absolute"}
+ {display: "none"}
]);
};
@@ -152,8 +152,8 @@ ZoominListView.prototype.remove = function(widget) {
return;
}
// Set up the tiddler that is being closed
+ $tw.utils.addClass(targetElement,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(targetElement,[
- {position: "absolute"},
{display: "block"},
{transformOrigin: "50% 50%"},
{transform: "translateX(0px) translateY(0px) scale(1)"},
@@ -168,8 +168,8 @@ ZoominListView.prototype.remove = function(widget) {
var toWidgetDomNode = toWidget && toWidget.findFirstDomNode();
// Set up the tiddler we're moving back in
if(toWidgetDomNode) {
+ $tw.utils.addClass(toWidgetDomNode,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(toWidgetDomNode,[
- {position: "absolute"},
{display: "block"},
{transformOrigin: "50% 50%"},
{transform: "translateX(0px) translateY(0px) scale(10)"},
diff --git a/core/modules/utils/fakedom.js b/core/modules/utils/fakedom.js
index dd36369a2..1c4bf2755 100755
--- a/core/modules/utils/fakedom.js
+++ b/core/modules/utils/fakedom.js
@@ -39,6 +39,7 @@ var TW_Element = function(tag,namespace) {
this.attributes = {};
this.isRaw = false;
this.children = [];
+ this.style = {};
this.namespaceURI = namespace || "http://www.w3.org/1999/xhtml";
};
@@ -137,6 +138,15 @@ Object.defineProperty(TW_Element.prototype, "outerHTML", {
}
}
}
+ if(this.style) {
+ var style = [];
+ for(var s in this.style) {
+ style.push(s + ":" + this.style[s] + ";");
+ }
+ if(style.length > 0) {
+ output.push(" style='",style.join(""),"'")
+ }
+ }
output.push(">");
if($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {
output.push(this.innerHTML);
@@ -179,6 +189,9 @@ Object.defineProperty(TW_Element.prototype, "textContent", {
});
return b.join("");
}
+ },
+ set: function(value) {
+ this.children = [new TW_TextNode(value)];
}
});
diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js
index 0ed21f88c..b4242e1d0 100644
--- a/core/modules/utils/utils.js
+++ b/core/modules/utils/utils.js
@@ -87,6 +87,7 @@ exports.pushTop = function(array,value) {
}
array.push(value);
}
+ return array;
};
/*
@@ -167,61 +168,118 @@ exports.slowInSlowOut = function(t) {
return (1 - ((Math.cos(t * Math.PI) + 1) / 2));
};
-exports.formatDateString = function (date,template) {
- var t = template.replace(/0hh12/g,$tw.utils.pad($tw.utils.getHours12(date)));
- t = t.replace(/hh12/g,$tw.utils.getHours12(date));
- t = t.replace(/0hh/g,$tw.utils.pad(date.getHours()));
- t = t.replace(/hh/g,date.getHours());
- t = t.replace(/mmm/g,$tw.config.dateFormats.shortMonths[date.getMonth()]);
- t = t.replace(/0mm/g,$tw.utils.pad(date.getMinutes()));
- t = t.replace(/mm/g,date.getMinutes());
- t = t.replace(/0ss/g,$tw.utils.pad(date.getSeconds()));
- t = t.replace(/ss/g,date.getSeconds());
- t = t.replace(/[ap]m/g,$tw.utils.getAmPm(date).toLowerCase());
- t = t.replace(/[AP]M/g,$tw.utils.getAmPm(date).toUpperCase());
- t = t.replace(/wYYYY/g,$tw.utils.getYearForWeekNo(date));
- t = t.replace(/wYY/g,$tw.utils.pad($tw.utils.getYearForWeekNo(date)-2000));
- t = t.replace(/YYYY/g,date.getFullYear());
- t = t.replace(/YY/g,$tw.utils.pad(date.getFullYear()-2000));
- t = t.replace(/MMM/g,$tw.config.dateFormats.months[date.getMonth()]);
- t = t.replace(/0MM/g,$tw.utils.pad(date.getMonth()+1));
- t = t.replace(/MM/g,date.getMonth()+1);
- t = t.replace(/0WW/g,$tw.utils.pad($tw.utils.getWeek(date)));
- t = t.replace(/WW/g,$tw.utils.getWeek(date));
- t = t.replace(/DDD/g,$tw.config.dateFormats.days[date.getDay()]);
- t = t.replace(/ddd/g,$tw.config.dateFormats.shortDays[date.getDay()]);
- t = t.replace(/0DD/g,$tw.utils.pad(date.getDate()));
- t = t.replace(/DDth/g,date.getDate()+$tw.utils.getDaySuffix(date));
- t = t.replace(/DD/g,date.getDate());
- var tz = date.getTimezoneOffset();
- var atz = Math.abs(tz);
- t = t.replace(/TZD/g,(tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60));
+exports.formatDateString = function(date,template) {
+ var t = template;
+ t = t.replace(/0hh12/g,function() {
+ return $tw.utils.pad($tw.utils.getHours12(date));
+ });
+ t = t.replace(/hh12/g,function() {
+ return $tw.utils.getHours12(date);
+ });
+ t = t.replace(/0hh/g,function() {
+ return $tw.utils.pad(date.getHours());
+ });
+ t = t.replace(/hh/g,function() {
+ return date.getHours();
+ });
+ t = t.replace(/mmm/g,function() {
+ return $tw.language.getString("Date/Short/Month/" + (date.getMonth() + 1));
+ });
+ t = t.replace(/0mm/g,function() {
+ return $tw.utils.pad(date.getMinutes());
+ });
+ t = t.replace(/mm/g,function() {
+ return date.getMinutes();
+ });
+ t = t.replace(/0ss/g,function() {
+ return $tw.utils.pad(date.getSeconds());
+ });
+ t = t.replace(/ss/g,function() {
+ return date.getSeconds();
+ });
+ t = t.replace(/[ap]m/g,function() {
+ return $tw.utils.getAmPm(date).toLowerCase();
+ });
+ t = t.replace(/[AP]M/g,function() {
+ return $tw.utils.getAmPm(date).toUpperCase();
+ });
+ t = t.replace(/wYYYY/g,function() {
+ return $tw.utils.getYearForWeekNo(date);
+ });
+ t = t.replace(/wYY/g,function() {
+ return $tw.utils.pad($tw.utils.getYearForWeekNo(date)-2000);
+ });
+ t = t.replace(/YYYY/g,function() {
+ return date.getFullYear();
+ });
+ t = t.replace(/YY/g,function() {
+ return $tw.utils.pad(date.getFullYear()-2000);
+ });
+ t = t.replace(/MMM/g,function() {
+ return $tw.language.getString("Date/Long/Month/" + (date.getMonth() + 1));
+ });
+ t = t.replace(/0MM/g,function() {
+ return $tw.utils.pad(date.getMonth()+1);
+ });
+ t = t.replace(/MM/g,function() {
+ return date.getMonth() + 1;
+ });
+ t = t.replace(/0WW/g,function() {
+ return $tw.utils.pad($tw.utils.getWeek(date));
+ });
+ t = t.replace(/WW/g,function() {
+ return $tw.utils.getWeek(date);
+ });
+ t = t.replace(/DDD/g,function() {
+ return $tw.language.getString("Date/Long/Day/" + date.getDay());
+ });
+ t = t.replace(/ddd/g,function() {
+ return $tw.language.getString("Date/Short/Day/" + date.getDay());
+ });
+ t = t.replace(/0DD/g,function() {
+ return $tw.utils.pad(date.getDate());
+ });
+ t = t.replace(/DDth/g,function() {
+ return date.getDate() + $tw.utils.getDaySuffix(date);
+ });
+ t = t.replace(/DD/g,function() {
+ return date.getDate();
+ });
+ t = t.replace(/TZD/g,function() {
+ var tz = date.getTimezoneOffset(),
+ atz = Math.abs(tz);
+ return (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);
+ });
t = t.replace(/\\(.)/g,"$1");
return t;
};
exports.getAmPm = function(date) {
- return date.getHours() >= 12 ? $tw.config.dateFormats.pm : $tw.config.dateFormats.am;
+ return $tw.language.getString("Date/Period/" + (date.getHours() >= 12 ? "pm" : "am"));
};
exports.getDaySuffix = function(date) {
- return $tw.config.dateFormats.daySuffixes[date.getDate()-1];
+ return $tw.language.getString("Date/DaySuffix/" + date.getDate());
};
exports.getWeek = function(date) {
var dt = new Date(date.getTime());
var d = dt.getDay();
- if(d === 0) d=7;// JavaScript Sun=0, ISO Sun=7
- dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week to calculate weekNo
- var n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1)+3600000)/86400000);
- return Math.floor(n/7)+1;
+ if(d === 0) {
+ d = 7; // JavaScript Sun=0, ISO Sun=7
+ }
+ dt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo
+ var n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1) + 3600000) / 86400000);
+ return Math.floor(n / 7) + 1;
};
exports.getYearForWeekNo = function(date) {
var dt = new Date(date.getTime());
var d = dt.getDay();
- if(d === 0) d=7;// JavaScript Sun=0, ISO Sun=7
- dt.setTime(dt.getTime()+(4-d)*86400000);// shift day to Thurs of same week
+ if(d === 0) {
+ d = 7; // JavaScript Sun=0, ISO Sun=7
+ }
+ dt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week
return dt.getFullYear();
};
diff --git a/core/modules/widgets/action-navigate.js b/core/modules/widgets/action-navigate.js
new file mode 100644
index 000000000..b6688df08
--- /dev/null
+++ b/core/modules/widgets/action-navigate.js
@@ -0,0 +1,79 @@
+/*\
+title: $:/core/modules/widgets/action-navigate.js
+type: application/javascript
+module-type: widget
+
+Action widget to navigate to a tiddler
+
+\*/
+(function(){
+
+/*jslint node: true, browser: true */
+/*global $tw: false */
+"use strict";
+
+var Widget = require("$:/core/modules/widgets/widget.js").widget;
+
+var NavigateWidget = function(parseTreeNode,options) {
+ this.initialise(parseTreeNode,options);
+};
+
+/*
+Inherit from the base widget class
+*/
+NavigateWidget.prototype = new Widget();
+
+/*
+Render this widget into the DOM
+*/
+NavigateWidget.prototype.render = function(parent,nextSibling) {
+ this.computeAttributes();
+ this.execute();
+};
+
+/*
+Compute the internal state of the widget
+*/
+NavigateWidget.prototype.execute = function() {
+ this.actionTo = this.getAttribute("$to");
+ this.actionScroll = this.getAttribute("$scroll");
+};
+
+/*
+Refresh the widget by ensuring our attributes are up to date
+*/
+NavigateWidget.prototype.refresh = function(changedTiddlers) {
+ var changedAttributes = this.computeAttributes();
+ if(changedAttributes["$to"] || changedAttributes["$scroll"]) {
+ this.refreshSelf();
+ return true;
+ }
+ return this.refreshChildren(changedTiddlers);
+};
+
+/*
+Invoke the action associated with this widget
+*/
+NavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {
+ var bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),
+ suppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);
+ if(this.actionScroll === "yes") {
+ suppressNavigation = false;
+ } else if(this.actionScroll === "no") {
+ suppressNavigation = true;
+ }
+ this.dispatchEvent({
+ type: "tm-navigate",
+ navigateTo: this.actionTo === undefined ? this.getVariable("currentTiddler") : this.actionTo,
+ navigateFromTitle: this.getVariable("storyTiddler"),
+ navigateFromNode: triggeringWidget,
+ navigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height
+ },
+ navigateSuppressNavigation: suppressNavigation
+ });
+ return true; // Action was invoked
+};
+
+exports["action-navigate"] = NavigateWidget;
+
+})();
diff --git a/core/modules/widgets/action-sendmessage.js b/core/modules/widgets/action-sendmessage.js
new file mode 100644
index 000000000..fa788240a
--- /dev/null
+++ b/core/modules/widgets/action-sendmessage.js
@@ -0,0 +1,82 @@
+/*\
+title: $:/core/modules/widgets/action-sendmessage.js
+type: application/javascript
+module-type: widget
+
+Action widget to send a message
+
+\*/
+(function(){
+
+/*jslint node: true, browser: true */
+/*global $tw: false */
+"use strict";
+
+var Widget = require("$:/core/modules/widgets/widget.js").widget;
+
+var SendMessageWidget = function(parseTreeNode,options) {
+ this.initialise(parseTreeNode,options);
+};
+
+/*
+Inherit from the base widget class
+*/
+SendMessageWidget.prototype = new Widget();
+
+/*
+Render this widget into the DOM
+*/
+SendMessageWidget.prototype.render = function(parent,nextSibling) {
+ this.computeAttributes();
+ this.execute();
+};
+
+/*
+Compute the internal state of the widget
+*/
+SendMessageWidget.prototype.execute = function() {
+ this.actionMessage = this.getAttribute("$message");
+ this.actionParam = this.getAttribute("$param");
+};
+
+/*
+Refresh the widget by ensuring our attributes are up to date
+*/
+SendMessageWidget.prototype.refresh = function(changedTiddlers) {
+ var changedAttributes = this.computeAttributes();
+ if(changedAttributes["$message"] || changedAttributes["$param"]) {
+ this.refreshSelf();
+ return true;
+ }
+ return this.refreshChildren(changedTiddlers);
+};
+
+/*
+Invoke the action associated with this widget
+*/
+SendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {
+ // Get the parameter
+ var param = this.actionParam;
+ // If the parameter is missing then we'll assemble the attributes as a hashmap
+ if(!param) {
+ param = Object.create(null);
+ var count = 0;
+ $tw.utils.each(this.attributes,function(attribute,name) {
+ if(name.charAt(0) !== "$") {
+ param[name] = attribute;
+ count++;
+ }
+ });
+ // Revert to an empty parameter if no values were found
+ if(!count) {
+ param = undefined;
+ }
+ }
+ // Dispatch the message
+ this.dispatchEvent({type: this.actionMessage, param: param, tiddlerTitle: this.getVariable("currentTiddler")});
+ return true; // Action was invoked
+};
+
+exports["action-sendmessage"] = SendMessageWidget;
+
+})();
diff --git a/core/modules/widgets/button.js b/core/modules/widgets/button.js
index 21268d7a5..142c13ada 100644
--- a/core/modules/widgets/button.js
+++ b/core/modules/widgets/button.js
@@ -59,6 +59,9 @@ ButtonWidget.prototype.render = function(parent,nextSibling) {
// Add a click event handler
domNode.addEventListener("click",function (event) {
var handled = false;
+ if(self.invokeActions(event)) {
+ handled = true;
+ }
if(self.to) {
self.navigateTo(event);
handled = true;
@@ -87,6 +90,10 @@ ButtonWidget.prototype.render = function(parent,nextSibling) {
this.domNodes.push(domNode);
};
+ButtonWidget.prototype.getBoundingClientRect = function() {
+ return this.domNodes[0].getBoundingClientRect();
+}
+
ButtonWidget.prototype.isSelected = function() {
var tiddler = this.wiki.getTiddler(this.set);
return tiddler ? tiddler.fields.text === this.setTo : this.defaultSetValue === this.setTo;
@@ -99,7 +106,7 @@ ButtonWidget.prototype.isPoppedUp = function() {
};
ButtonWidget.prototype.navigateTo = function(event) {
- var bounds = this.domNodes[0].getBoundingClientRect();
+ var bounds = this.getBoundingClientRect();
this.dispatchEvent({
type: "tm-navigate",
navigateTo: this.to,
diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js
index 2241180e4..f4a164c62 100755
--- a/core/modules/widgets/navigator.js
+++ b/core/modules/widgets/navigator.js
@@ -177,12 +177,7 @@ NavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {
NavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {
var self = this;
function isUnmodifiedShadow(title) {
- // jshint eqnull:true
- var tiddler = self.wiki.getTiddler(title);
- return (
- self.wiki.isShadowTiddler(title) &&
- tiddler.fields.modified == null
- );
+ return self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);
}
function confirmEditShadow(title) {
return confirm($tw.language.getString(
@@ -253,19 +248,14 @@ Create/reuse the draft tiddler for a given title
*/
NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
// See if there is already a draft tiddler for this tiddler
- var drafts = [];
- this.wiki.forEachTiddler({includeSystem: true},function(title,tiddler) {
- if(tiddler.fields["draft.title"] && tiddler.fields["draft.of"] === targetTitle) {
- drafts.push(tiddler);
- }
- });
- if(drafts.length > 0) {
- return drafts[0];
+ var draftTitle = this.wiki.findDraft(targetTitle);
+ if(draftTitle) {
+ return this.wiki.getTiddler(draftTitle);
}
// Get the current value of the tiddler we're editing
- var tiddler = this.wiki.getTiddler(targetTitle),
- draftTitle = this.generateDraftTitle(targetTitle);
+ var tiddler = this.wiki.getTiddler(targetTitle);
// Save the initial value of the draft tiddler
+ draftTitle = this.generateDraftTitle(targetTitle);
var draftTiddler = new $tw.Tiddler(
tiddler,
{
@@ -372,29 +362,76 @@ NavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {
};
// Create a new draft tiddler
+// event.param can either be the title of a template tiddler, or a hashmap of fields.
+//
+// The title of the newly created tiddler follows these rules:
+// * If a hashmap was used and a title field was specified, use that title
+// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix
+// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix
+//
+// If a draft of the target tiddler already exists then it is reused
NavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {
// Get the story details
- var storyList = this.getStoryList();
- // Get the template tiddler if there is one
- var templateTiddler = this.wiki.getTiddler(event.param);
- // Title the new tiddler
- var title = this.wiki.generateNewTitle((templateTiddler && templateTiddler.fields.title) || "New Tiddler");
- // Create the draft tiddler
- var draftTitle = this.generateDraftTitle(title),
- draftTiddler = new $tw.Tiddler({
- text: ""
- },templateTiddler,
+ var storyList = this.getStoryList(),
+ templateTiddler, title, draftTitle, existingTiddler, mergedTags;
+ // Work out the title of the target tiddler
+ if(typeof event.param === "object") {
+ // If we got a hashmap use it as the template
+ templateTiddler = event.param;
+ if(templateTiddler.title) {
+ // Use the provided title
+ title = templateTiddler.title
+ } else {
+ // Generate a new unique title
+ title = this.wiki.generateNewTitle($tw.language.getString("DefaultNewTiddlerTitle"));
+ }
+ } else {
+ // If we got a string, use it as the template and generate a new title
+ templateTiddler = this.wiki.getTiddler(event.param);
+ title = this.wiki.generateNewTitle(event.param || $tw.language.getString("DefaultNewTiddlerTitle"));
+ }
+ // Find any existing draft for this tiddler
+ draftTitle = this.wiki.findDraft(title);
+ // Pull in any existing tiddler
+ if(draftTitle) {
+ existingTiddler = this.wiki.getTiddler(draftTitle);
+ } else {
+ draftTitle = this.generateDraftTitle(title);
+ existingTiddler = this.wiki.getTiddler(title);
+ }
+ // Merge the tags
+ if(existingTiddler && existingTiddler.fields.tags && templateTiddler && templateTiddler.tags) {
+ // Merge tags
+ mergedTags = $tw.utils.pushTop($tw.utils.parseStringArray(templateTiddler.tags),existingTiddler.fields.tags);
+ } else if(existingTiddler && existingTiddler.fields.tags) {
+ mergedTags = existingTiddler.fields.tags;
+ } else if(templateTiddler && templateTiddler.tags) {
+ mergedTags = templateTiddler.tags;
+ } else if(templateTiddler && templateTiddler.fields && templateTiddler.fields.tags) {
+ mergedTags = templateTiddler.fields.tags;
+ }
+ // Save the draft tiddler
+ var draftTiddler = new $tw.Tiddler({
+ text: "",
+ "draft.title": title
+ },
+ templateTiddler,
+ existingTiddler,
this.wiki.getCreationFields(),
{
title: draftTitle,
- "draft.title": title,
- "draft.of": title
+ "draft.of": title,
+ tags: mergedTags
},this.wiki.getModificationFields());
this.wiki.addTiddler(draftTiddler);
- // Update the story to insert the new draft at the top
- var slot = storyList.indexOf(event.navigateFromTitle);
- storyList.splice(slot + 1,0,draftTitle);
- // Save the updated story
+ // Update the story to insert the new draft at the top and remove any existing tiddler
+ if(storyList.indexOf(draftTitle) === -1) {
+ var slot = storyList.indexOf(event.navigateFromTitle);
+ storyList.splice(slot + 1,0,draftTitle);
+ }
+ if(storyList.indexOf(title) !== -1) {
+ storyList.splice(storyList.indexOf(title),1);
+ }
this.saveStoryList(storyList);
// Add a new record to the top of the history stack
this.addToHistory(draftTitle);
diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js
index df434973c..a4942a86f 100755
--- a/core/modules/widgets/widget.js
+++ b/core/modules/widgets/widget.js
@@ -475,6 +475,20 @@ Widget.prototype.removeChildDomNodes = function() {
}
};
+/*
+Invoke any action widgets that are immediate children of this widget
+*/
+Widget.prototype.invokeActions = function(event) {
+ var handled = false;
+ for(var t=0; t>
-<$list filter="[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]]" template="$:/core/ui/ListItemTemplate"/>
+<$list filter="[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/AdvancedSearch/Standard.tid b/core/ui/AdvancedSearch/Standard.tid
index ddc99be78..3f125f68e 100644
--- a/core/ui/AdvancedSearch/Standard.tid
+++ b/core/ui/AdvancedSearch/Standard.tid
@@ -17,7 +17,7 @@ caption: {{$:/language/Search/Standard/Caption}}
<>
-<$list filter="[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]" template="$:/core/ui/ListItemTemplate"/>
+<$list filter="[!is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/AdvancedSearch/System.tid b/core/ui/AdvancedSearch/System.tid
index dd51f323e..801f7d4cc 100644
--- a/core/ui/AdvancedSearch/System.tid
+++ b/core/ui/AdvancedSearch/System.tid
@@ -17,7 +17,7 @@ caption: {{$:/language/Search/System/Caption}}
<>
-<$list filter="[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]]" template="$:/core/ui/ListItemTemplate"/>
+<$list filter="[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/ControlPanel/Basics.tid b/core/ui/ControlPanel/Basics.tid
index 81cbaa76e..604326cdd 100644
--- a/core/ui/ControlPanel/Basics.tid
+++ b/core/ui/ControlPanel/Basics.tid
@@ -9,6 +9,8 @@ caption: {{$:/language/ControlPanel/Basics/Caption}}
|<$link to="$:/status/UserName"><>$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> |
|<$link to="$:/config/AnimationDuration"><>$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> |
|<$link to="$:/DefaultTiddlers"><>$link> |<> <$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/> //<>// |
+|<$link to="$:/config/NewJournal/Title"><>$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> |
+|<$link to="$:/config/NewJournal/Tags"><>$link> |<$edit-text tiddler="$:/config/NewJournal/Tags" default="" tag="input"/> |
|<> |{{$:/snippets/minilanguageswitcher}} |
|<> |''<$count filter="[!is[system]]"/>'' |
|<> |''<$count filter="[tags[]]"/>'' |
diff --git a/core/ui/ControlPanel/Toolbars/EditToolbar.tid b/core/ui/ControlPanel/Toolbars/EditToolbar.tid
index c8f51b137..68d78f854 100644
--- a/core/ui/ControlPanel/Toolbars/EditToolbar.tid
+++ b/core/ui/ControlPanel/Toolbars/EditToolbar.tid
@@ -15,7 +15,7 @@ $:/config/EditToolbarButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem">
-<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<> field="caption"/> -- <$transclude tiddler=<> field="description"/>$checkbox>
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<> field="caption"/> -- <$transclude tiddler=<> field="description"/>
$list>
diff --git a/core/ui/ControlPanel/Toolbars/PageControls.tid b/core/ui/ControlPanel/Toolbars/PageControls.tid
index 9acb3dc24..981b6be27 100644
--- a/core/ui/ControlPanel/Toolbars/PageControls.tid
+++ b/core/ui/ControlPanel/Toolbars/PageControls.tid
@@ -15,7 +15,7 @@ $:/config/PageControlButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
-<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<> field="caption"/> -- <$transclude tiddler=<> field="description"/>$checkbox>
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<> field="caption"/> -- <$transclude tiddler=<> field="description"/>
$list>
diff --git a/core/ui/ControlPanel/Toolbars/ViewToolbar.tid b/core/ui/ControlPanel/Toolbars/ViewToolbar.tid
index c151ef0c8..071fb206c 100644
--- a/core/ui/ControlPanel/Toolbars/ViewToolbar.tid
+++ b/core/ui/ControlPanel/Toolbars/ViewToolbar.tid
@@ -15,7 +15,7 @@ $:/config/ViewToolbarButtons/Visibility/$(listItem)$
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem">
-<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"> <$transclude tiddler=<> field="caption"/> -- <$transclude tiddler=<> field="description"/>$checkbox>
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<> field="caption"/> -- <$transclude tiddler=<> field="description"/>
$list>
diff --git a/core/ui/EditTemplate/controls.tid b/core/ui/EditTemplate/controls.tid
index 4369d34ef..e2dcab626 100644
--- a/core/ui/EditTemplate/controls.tid
+++ b/core/ui/EditTemplate/controls.tid
@@ -4,7 +4,7 @@ tags: $:/tags/EditTemplate
\define config-title()
$:/config/EditToolbarButtons/Visibility/$(listItem)$
\end
-
<$link to={{!!title}}>
<$view field="title"/>
diff --git a/core/wiki/tags/PageControls.tid b/core/wiki/tags/PageControls.tid
index 233ef5443..81d1e46a7 100644
--- a/core/wiki/tags/PageControls.tid
+++ b/core/wiki/tags/PageControls.tid
@@ -1,2 +1,2 @@
title: $:/tags/PageControls
-list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]
+list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]
diff --git a/core/wiki/tags/ViewToolbar.tid b/core/wiki/tags/ViewToolbar.tid
index 230a2d680..aebed7cdd 100644
--- a/core/wiki/tags/ViewToolbar.tid
+++ b/core/wiki/tags/ViewToolbar.tid
@@ -1,2 +1,2 @@
title: $:/tags/ViewToolbar
-list: [[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]]
+list: [[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]]
diff --git a/editions/classicparserdemo/tiddlers/Classic Parser Plugin Demo.tid b/editions/classicparserdemo/tiddlers/Classic Parser Plugin Demo.tid
index a35f261d4..6258f1e9c 100644
--- a/editions/classicparserdemo/tiddlers/Classic Parser Plugin Demo.tid
+++ b/editions/classicparserdemo/tiddlers/Classic Parser Plugin Demo.tid
@@ -12,3 +12,8 @@ At present there is limited support for Classic macros. See below for examples o
!!Status
See here for <>
!!See also [[Developers Notes]]
+! Installation
+To add this plugin to your own TiddlyWiki5, just drag this link to your tiddlywiki's browser window:
+
+[[$:/plugins/tiddlywiki/tw2parser]]
+
diff --git a/editions/de-AT/tiddlers/Willkommen.tid b/editions/de-AT/tiddlers/Willkommen.tid
index c586614ce..fce990a38 100644
--- a/editions/de-AT/tiddlers/Willkommen.tid
+++ b/editions/de-AT/tiddlers/Willkommen.tid
@@ -6,22 +6,22 @@ tags: InhaltsVerzeichnis Intro
title: Willkommen!
type: text/vnd.tiddlywiki
-~TiddlyWiki ist eine Web-Applikation, die sie frei herunterladen können. Sie können sie speichern, wo sie wollen:
+~TiddlyWiki ist eine Web-Applikation, die Sie frei herunterladen können. Sie können sie speichern, wo Sie wollen:
-* Auf ihrem Laufwerk,
+* Auf Ihrem Laufwerk,
* USB-Wechselspeicher
-* oder ihrem "Cloud Speicher"
+* oder Ihrem "Cloud Speicher"
-Sie sind der Herr über ihre Daten!
+Sie sind der Herr über Ihre Daten!
-Sie können ~TiddlyWiki verwenden um Ihre Notizen zu erstellen / organisieren / oder mit Freunden zu teilen, in einer Weise, die kein anderes Textverarbeitungsprogramm vermag. ~TiddlyWiki speichert ihre Texte in einer "nicht-linearen" Form, mit Hilfe von [[Tags]], [[Hyperlinks]] und vielen weiteren Möglichkeiten. So können sie Ihre Notizen strukturieren, in einer
+Sie können ~TiddlyWiki verwenden um Ihre Notizen zu erstellen / organisieren / oder mit Freunden zu teilen, in einer Weise, die kein anderes Textverarbeitungsprogramm vermag. ~TiddlyWiki speichert Ihre Texte in einer "nicht-linearen" Form, mit Hilfe von [[Tags]], [[Hyperlinks]] und vielen weiteren Möglichkeiten. So können Sie Ihre Notizen strukturieren, in einer
Weise, die mehr dem entspricht, "wie wir denken", nicht in einem vom Entwickler vorgegebenen starren Korsett.
-Sie können TiddlyWiki als eine einzige Datei speichern, die sie mit dem Web-Browser, online oder offline, verwenden können. Für geübte Benutzer kann ~TiddlyWiki als [[Node.js Applikation|Node.js]] verwendet werden, die jeden [[Tiddler]] als einzelne Datei behandelt und dabei als zentrales Archiv fungiert.
+Sie können TiddlyWiki als eine einzige Datei speichern, die Sie mit dem Web-Browser, online oder offline, verwenden können. Für geübte Benutzer kann ~TiddlyWiki als [[Node.js Applikation|Node.js]] verwendet werden, die jeden [[Tiddler]] als einzelne Datei behandelt und dabei als zentrales Archiv fungiert.
-!!! Wie können sie ~TiddlyWiki nun für sich nutzen?
+!!! Wie können Sie ~TiddlyWiki nun für sich nutzen?
-* Im Anschluss sind einige Links aufgeführt, mit denen sie starten sollten, oder sie können jederzeit das InhaltsVerzeichnis verwenden.
+* Im Anschluss sind einige Links aufgeführt, mit denen Sie starten sollten, oder Sie können jederzeit das InhaltsVerzeichnis verwenden.
* Das ~InhaltsVerzeichnis kann auch über den Reiter "Inhalt" auf der rechten Seite aufgerufen werden.
diff --git a/editions/de-AT/tiddlers/howto/Speichern auf TiddlySpot.tid b/editions/de-AT/tiddlers/howto/Speichern auf TiddlySpot.tid
index f1bf57ee5..0d220b37a 100644
--- a/editions/de-AT/tiddlers/howto/Speichern auf TiddlySpot.tid
+++ b/editions/de-AT/tiddlers/howto/Speichern auf TiddlySpot.tid
@@ -11,13 +11,13 @@ TiddlySpot ist ein freier Hosting Service von Simon und Daniel Baird. Er ist bei
~TiddlyWiki5 wird momentan noch nicht als Standard Wiki angeboten, Sie können aber folgende Schritte verwenden um ~TiddlyWiki auf ~TiddlySpot zu speichern.
# Erstellen Sie ein Wiki auf http://tiddlyspot.com/ und merken Sie sich den Namen und Ihr Passwort!
-# Für Österreich: öffnen Sie http://tiddlywiki.com/languages/de-AT/empty.html in ihrem Browser.
+# Für Österreich: öffnen Sie http://tiddlywiki.com/languages/de-AT/empty.html in Ihrem Browser.
#* Für Deutschland: http://tiddlywiki.com/languages/de-DE/empty.html
# Wählen Sie im [[Control Panel|$:/ControlPanel]], den "Speichern" Tab und tragen Sie im "~TiddlySpot" Bereich, den Wiki Namen und das Passwort ein.
# Klicken Sie den "Speichern" Button. Nach einiger Zeit, bekommen Sie rechts oben die Mitteilung "Wiki gespeichert". Das Speichern kann je nach Internetverbindung und Wiki Größe einige Sekunden dauern.
#* //Das Erstellen eines neuen Wikis funktioniert nicht mit Firefox, da die Sicherheitseinstellungen diese Vorgehensweise nicht erlauben. Google Chrome kann verwendet werden. Ein späteres Editieren von tiddlyspot.com ist auch mit Firefox möglich!//
-# Gehen Sie nun zu ihrem Wiki: ~http://{wikiname}.tiddlyspot.com/
+# Gehen Sie nun zu Ihrem Wiki: ~http://{wikiname}.tiddlyspot.com/
# Beim ersten Besuch müssen Sie eventuell den Wiki-Namen und das Passwort neu eingeben.
-# Sie sollten jetzt eine Kopie ihres Wikis sehen. Sie können nun Änderungen vornehmen und mit "Speichern" direkt in "die Cloud" speichern.
+# Sie sollten jetzt eine Kopie Ihres Wikis sehen. Sie können nun Änderungen vornehmen und mit "Speichern" direkt in "die Cloud" speichern.
# Die ~TiddlySpot Verwaltungs-Seite ist unter: ~http://{wikiname}.tiddlyspot.com/controlpanel zu finden.
diff --git a/editions/de-AT/tiddlers/howto/Speichern mit Chrome.tid b/editions/de-AT/tiddlers/howto/Speichern mit Chrome.tid
index ebe0bbd0a..8463b75ec 100644
--- a/editions/de-AT/tiddlers/howto/Speichern mit Chrome.tid
+++ b/editions/de-AT/tiddlers/howto/Speichern mit Chrome.tid
@@ -1,20 +1,26 @@
created: 20131129092604900
creator: pmario
-modified: 20140922125135926
-modifier: ChrisK
+modified: 20141012120259664
+modifier: pmario
tags: howto
title: Speichern mit Chrome
type: text/vnd.tiddlywiki
Diese Methode ist etwas umständlich, da man Einstellungen immer wieder manuell vornehmen muss. Der Vorteil ist, dass diese Methode jedoch mit fast allen Desktop- und vielen mobilen Browsern funktioniert.
+!! Video
+
+
+
+!! Speichern mit Chrome
+
# Speichern Sie eine leere Datei der deutschen Version.
#> {{$:/editions/de-AT-DE/snippets/download-empty-button}}
#> Wenn der Button nicht funktioniert, dann klicken Sie den Link mit der rechten Maustaste und wählen: "Ziel Speichern unter ..." http://tiddlywiki.com/languages/de-AT/empty.html oder http://tiddlywiki.com/languages/de-DE/empty.html
#> Je nach Browser folgen Sie den Dialogen!
# Suchen Sie die eben geladene Datei im Datei Manager.
#* Geben Sie der Datei einen vernünftigen Namen und stellen Sie sicher, dass die Endung `.html` oder `.htm` ist.
-# Öffnen Sie die Datei mit ihrem Browser.
+# Öffnen Sie die Datei mit Ihrem Browser.
# Erstellen Sie einen neuen Tiddler mit dem {{$:/core/images/new-button}} ''plus'' im rechten Menü.
# Geben Sie den Text ein und bestätigen die Eingabe mit dem {{$:/core/images/done-button}} ''OK''.
# Speichern Sie die Änderungen mit: {{$:/core/images/save-button}} ''speichern'' im rechten Menü
@@ -22,4 +28,4 @@ Diese Methode ist etwas umständlich, da man Einstellungen immer wieder manuell
# Suchen Sie die eben geladene Datei im Datei Manager.
# Überprüfen sie, ob die Änderungen richtig gespeichert wurden.
-''Tip'': Die meisten Browser haben eine Einstellung, dass der "Datei Speichern" Dialog immer angezeigt wird. Das ermöglicht ihnen, die bestehende Datei auszuwählen und zu überschreiben.
+''Tip'': Die meisten Browser haben eine Einstellung, dass der "Datei Speichern" Dialog immer angezeigt wird. Das ermöglicht Ihnen, die bestehende Datei auszuwählen und zu überschreiben.
diff --git a/editions/de-AT/tiddlers/howto/Speichern mit Safari.tid b/editions/de-AT/tiddlers/howto/Speichern mit Safari.tid
index 508bd75c2..2b2e77b56 100644
--- a/editions/de-AT/tiddlers/howto/Speichern mit Safari.tid
+++ b/editions/de-AT/tiddlers/howto/Speichern mit Safari.tid
@@ -13,7 +13,7 @@ Diese Methode ist etwas umständlich, da jeder Schritt manuell gemacht werden mu
#> Ihr Browser kann eventuell nachfragen, ob die Datei gespeichert werden soll.
# Suchen Sie die eben geladene Datei im Datei Manager.
#* Geben Sie der Datei einen vernünftigen Namen und stellen Sie sicher, dass die Endung `.html` oder `.htm` ist.
-# Öffnen Sie die Datei mit ihrem Browser.
+# Öffnen Sie die Datei mit Ihrem Browser.
# Erstellen Sie einen neuen Tiddler mit dem {{$:/core/images/new-button}} ''plus'' im rechten Menü.
# Geben Sie den Text ein und bestätigen die Eingabe mit dem {{$:/core/images/done-button}} ''OK''.
# Speichern Sie die Änderungen mit: {{$:/core/images/save-button}} ''speichern'' im rechten Menü
diff --git a/editions/de-AT/tiddlers/howto/Speichern mit TiddlyFox.tid b/editions/de-AT/tiddlers/howto/Speichern mit TiddlyFox.tid
index abb19a97e..1b7e5a52a 100644
--- a/editions/de-AT/tiddlers/howto/Speichern mit TiddlyFox.tid
+++ b/editions/de-AT/tiddlers/howto/Speichern mit TiddlyFox.tid
@@ -1,13 +1,20 @@
created: 20131221085742684
creator: pmario
-modified: 20140922125640163
-modifier: ChrisK
+modified: 20141012083445443
+modifier: pmario
tags: howto TiddlyFox
title: Speichern mit TiddlyFox
type: text/vnd.tiddlywiki
+!! Android
+
Wenn Sie "Firefox for Android" verwenden, dann beachten sie: [[Speichern mit TiddlyFox - Android]].
+!! Video (de)
+
+
+
+!! Speichern mit TiddlyFox
# Stellen Sie sicher, dass Sie die [[aktuelle Version von Firefox|http://getfirefox.com]] verwenden.
# Installieren Sie die aktuelle TiddlyFox Erweiterung von: https://addons.mozilla.org/en-US/firefox/addon/tiddlyfox/
# Firefox neu starten!
diff --git a/editions/de-AT/tiddlers/howto/Speichern mit TiddlyIE.tid b/editions/de-AT/tiddlers/howto/Speichern mit TiddlyIE.tid
index 461f2f944..c34906521 100644
--- a/editions/de-AT/tiddlers/howto/Speichern mit TiddlyIE.tid
+++ b/editions/de-AT/tiddlers/howto/Speichern mit TiddlyIE.tid
@@ -1,11 +1,17 @@
created: 20131211220000000
creator: pmario
-modified: 20140918102257399
+modified: 20141012141931383
modifier: pmario
tags: howto
title: Speichern mit TiddlyIE
type: text/vnd.tiddlywiki
+!! Video
+
+
+
+!! Speichern mit TiddlyIE
+
# Installieren Sie TiddlyIE AddOn von:
#* https://github.com/davidjade/TiddlyIE/releases
# Starten Sie Internet Explorer neu. IE wird beim Start einen Dialog anzeigen, mit dem Sie das AddOn freischalten können.
@@ -14,7 +20,7 @@ type: text/vnd.tiddlywiki
#> http://tiddlywiki.com/languages/de-AT/empty.html oder
#> http://tiddlywiki.com/languages/de-DE/empty.html
# Suchen Sie die eben geladene Datei im Datei Manager.
-#* Geben Sie der Datei einen vernünftigen Namen und stellen Sie sicher, dass die Endung `.html` oder `.htm` ist.
+#* Geben Sie der Datei einen vernünftigen Namen und stellen Sie sicher, dass die Endung `.html` ist.
# Öffnen Sie die Datei mit dem Internet Explorer
# Erstellen Sie einen neuen Tiddler mit dem {{$:/core/images/new-button}} ''plus'' im rechten Menü.
# Geben Sie den Text ein und bestätigen die Eingabe mit dem {{$:/core/images/done-button}} ''OK''.
diff --git a/editions/de-AT/tiddlers/howto/Windows HTA Hack.tid b/editions/de-AT/tiddlers/howto/Windows HTA Hack.tid
index 00abaeee0..40f91b062 100644
--- a/editions/de-AT/tiddlers/howto/Windows HTA Hack.tid
+++ b/editions/de-AT/tiddlers/howto/Windows HTA Hack.tid
@@ -1,7 +1,7 @@
created: 20131212223146250
creator: pmario
-modified: 20140922132924816
-modifier: ChrisK
+modified: 20141012142437720
+modifier: pmario
tags: howto
title: Windows HTA Hack
type: text/vnd.tiddlywiki
@@ -12,4 +12,8 @@ Achtung!
Der Nachteil dieser Änderung ist, dass die Datei im UTF-16 format gespeichert wird, was sie ungefähr doppelt so groß macht.
TW wird standardmäßig im UTF-8 Format gespeichert. Wird die Datei wieder mit einer TW spezifischen Methode gespeichert, dann wird sie wieder kleiner.
+Hier ist ein Video von Mario Pietsch, dass den Umgang IE, HTA und TiddlyWiki zeigt.
+
+
+
Siehe Wikipedia (englisch): http://en.wikipedia.org/wiki/HTML_Application
diff --git a/editions/de-AT/tiddlers/lexikon/Status Tiddler.tid b/editions/de-AT/tiddlers/lexikon/Status Tiddler.tid
index 58704f3ac..d40e6d907 100644
--- a/editions/de-AT/tiddlers/lexikon/Status Tiddler.tid
+++ b/editions/de-AT/tiddlers/lexikon/Status Tiddler.tid
@@ -12,7 +12,7 @@ Diese Status Tiddler werden meist mit einem System Prefix versehen, damit sie in
Wenn Sie im rechten Menü den Reiter: "Mehr: System" wählen, dann können Sie Status Tiddler mit den Namen: `$:/state/xxxxxx` sehen.
-''Wichtig'': `$:/state/*` Tiddler werden nicht gespeichert. Wenn Sie also den Status ihres `<>` Makros speichern wollen, dann verwenden Sie einen anderen Namen. zB: `$:/_state/tabx`
+''Wichtig'': `$:/state/*` Tiddler werden nicht gespeichert. Wenn Sie also den Status Ihres `<>` Makros speichern wollen, dann verwenden Sie einen anderen Namen. zB: `$:/_state/tabx`
Siehe auch:
diff --git a/editions/de-AT/tiddlers/wikitext/Makros in WikiText.tid b/editions/de-AT/tiddlers/wikitext/Makros in WikiText.tid
index 51f149d68..dd336588e 100644
--- a/editions/de-AT/tiddlers/wikitext/Makros in WikiText.tid
+++ b/editions/de-AT/tiddlers/wikitext/Makros in WikiText.tid
@@ -112,7 +112,7 @@ Rodentville,
Ratland.">>
```
-Wenn sie 3 doppelte Anführungszeichen verwenden, dann können die Parameter einfache Anführungszeichen enthalten:
+Wenn Sie 3 doppelte Anführungszeichen verwenden, dann können die Parameter einfache Anführungszeichen enthalten:
```
<:: |,unten links |, unten mitte |, unten rechts| :: :: |
| :: | ::::::::::::::::::::::::::: | ::::::::::::::::::::::::::: | ::::::::::::::::::::::::::: | :: |
-Wenn sie die Zeichen `^` und `,` als erste Zeichen benötigen, dann können sie "HTML escaping" verwenden.
+Wenn Sie die Zeichen `^` und `,` als erste Zeichen benötigen, dann können Sie "HTML escaping" verwenden.
| `^` | ^ |
| `,` | , |
diff --git a/editions/de-AT/tiddlers/wikitext/Typisierte Blocke in WikiText.tid b/editions/de-AT/tiddlers/wikitext/Typisierte Blocke in WikiText.tid
index 0599fe9b5..4e4c6b842 100644
--- a/editions/de-AT/tiddlers/wikitext/Typisierte Blocke in WikiText.tid
+++ b/editions/de-AT/tiddlers/wikitext/Typisierte Blocke in WikiText.tid
@@ -7,7 +7,7 @@ tags: WikiText
title: Typisierte Blöcke in WikiText
type: text/vnd.tiddlywiki
-WikiText kann Textblöcke direkt darstellen, wenn Ihr Inhalts-Typ ([[MIME-Type]]) bekannt ist:
+WikiText kann Textblöcke direkt darstellen, wenn ihr Inhalts-Typ ([[MIME-Type]]) bekannt ist:
```
$$$image/svg+xml
diff --git a/editions/de-AT/tiddlers/wikitext/WikiText.tid b/editions/de-AT/tiddlers/wikitext/WikiText.tid
index 1796d1d81..8ff026af4 100644
--- a/editions/de-AT/tiddlers/wikitext/WikiText.tid
+++ b/editions/de-AT/tiddlers/wikitext/WikiText.tid
@@ -7,7 +7,7 @@ tags: Konzept Referenz InhaltsVerzeichnis
title: WikiText
type: text/vnd.tiddlywiki
-~WikiText ist eine Auszeichnungssprache, die es erlaubt, auf einfache Weise Texte und ihre Formatierung in Textform einzugeben. Das erlaubt es ihnen, sich auf das Schreiben zu konzentrieren und nicht auf eine komplexe Oberfläche, die vom Wesentlichen ablenkt. Für Anwender, die bereits MarkDown kennen, sollte es relativ leicht sein, sich in ~WikiText einzuarbeiten. WikiText bietet mehr Möglichkeiten zum Verlinken und zur Erstellung von interaktiven Inhalten.
+~WikiText ist eine Auszeichnungssprache, die es erlaubt, auf einfache Weise Texte und ihre Formatierung in Textform einzugeben. Das erlaubt es Ihnen, sich auf das Schreiben zu konzentrieren und nicht auf eine komplexe Oberfläche, die vom Wesentlichen ablenkt. Für Anwender, die bereits MarkDown kennen, sollte es relativ leicht sein, sich in ~WikiText einzuarbeiten. WikiText bietet mehr Möglichkeiten zum Verlinken und zur Erstellung von interaktiven Inhalten.
Die folgenden Elemente sind im TW Kern enthalten:
diff --git a/editions/de-AT/tiddlers/wikitext/Zitate in WikiText.tid b/editions/de-AT/tiddlers/wikitext/Zitate in WikiText.tid
index c0bfcef63..49752d691 100644
--- a/editions/de-AT/tiddlers/wikitext/Zitate in WikiText.tid
+++ b/editions/de-AT/tiddlers/wikitext/Zitate in WikiText.tid
@@ -23,7 +23,7 @@ Das Ergebnis wird zusammenhängend dargestellt.
!! Zitat mit Autor
-Wenn sie den Autor anführen möchten, dann schreiben sie wie folgt:
+Wenn Sie den Autor anführen möchten, dann schreiben Sie wie folgt:
<` to upload the release to TiddlySpace
diff --git a/editions/dev/tiddlers/build/Releasing new content for TiddlyWiki.tid b/editions/dev/tiddlers/build/Releasing new content for TiddlyWiki.tid
new file mode 100644
index 000000000..662fbdf41
--- /dev/null
+++ b/editions/dev/tiddlers/build/Releasing new content for TiddlyWiki.tid
@@ -0,0 +1,8 @@
+title: Releasing new content for TiddlyWiki
+
+# Change current directory to the `TiddlyWiki5` directory
+# Run `../build.jermolene.github.io/bld.sh` to build the content files
+# Run `../build.jermolene.github.io/readme-bld.sh` to build the readmes
+# Commit the readmes to `TiddlyWiki5` and `build.jermolene.github.io` if necessary
+# Verify that the files in the `jermolene.github.io` directory are correct
+# Run `../build.jermolene.github.io/github-push.sh` to push the new files to GitHub
diff --git a/editions/dev/tiddlers/build/Scripts for building tiddlywiki.com.tid b/editions/dev/tiddlers/build/Scripts for building tiddlywiki.com.tid
new file mode 100644
index 000000000..c78b80d26
--- /dev/null
+++ b/editions/dev/tiddlers/build/Scripts for building tiddlywiki.com.tid
@@ -0,0 +1,94 @@
+title: Scripts for building tiddlywiki.com
+
+These scripts are used to build and release the content for tiddlywiki.com. They are not designed for general purpose use -- they resolve problems that are specific to the task of building tiddlywiki.com: pushing to GitHub Pages, handling the prerelease builds and bumping version numbers.
+
+Nonetheless, you may find techniques that are useful for your own scripts.
+
+! Hosting
+
+http://tiddlywiki.com is served by [[GitHub Pages|https://pages.github.com]] from the repository https://github.com/Jermolene/jermolene.github.io
+
+The scripts live in the repository https://github.com/Jermolene/build.jermolene.github.io
+
+! Directory structure
+
+These scripts require the following directories to be siblings:
+
+* `build.jermolene.github.io` - a local copy of https://github.com/Jermolene/build.jermolene.github.io
+* `jermolene.github.io` - a local copy of the repo https://github.com/Jermolene/jermolene.github.io
+* `TiddlyWiki5` - a local copy of the repo https://github.com/Jermolene/TiddlyWiki5
+
+The scripts are designed to be executed with the current directory being the `TiddlyWiki5` directory.
+
+! Configuration
+
+!! package.json
+
+The `package.json` in the root of the `build.jermolene.github.io` repository contains a dependency declaration that specifies the latest official released version of TiddlyWiki to be used when building the release targets:
+
+```
+
+ "dependencies": {
+ "tiddlywiki": "5.1.2"
+ }
+```
+
+!! Environment variables
+
+Some of the scripts use the following environment variables:
+
+* ''TW5_BUILD_MAIN_EDITION'' - the path to the wiki folder to be used as the main edition, generating `index.html` and `encrypted.html`
+* ''TW5_BUILD_OUTPUT'' - the path to the output folder (defaults to `../jermolene.github.io`)
+* ''TW5_BUILD_TIDDLYWIKI'' - the pathname of the `tiddlywiki.js` to be used (defaults to `../build.jermolene.github.io/node_modules/tiddlywiki/tiddlywiki.js`)
+
+! Scripts
+
+!! `bld.sh`
+
+Builds the `tiddlywiki.com` target files. By default, it uses the version of tiddlywiki specified in the `package.json` file. This can be overridden with the ''TW5_BUILD_TIDDLYWIKI'' environment variable. The following command would select the latest prerelease version of tiddlywiki from the `TiddlyWiki5` directory:
+
+```
+ TW5_BUILD_TIDDLYWIKI=./tiddlywiki.js
+```
+
+!! `readme-bld.sh`
+
+Builds the readme files for the `TiddlyWiki5` and `build.jermolene.github.io` repos using the released version of TiddlyWiki specified in `package.json`.
+
+!! `prerelease-bld.sh`
+
+Builds the `tiddlywiki.com/prerelease` target files using the latest TiddlyWiki prerelease code and special ''prerelease'' edition for the content.
+
+!! `github-push.sh`
+
+Pushes the latest changes to the `jermolene.github.io` directory to GitHub.
+
+!! `dev-bld.sh`
+
+Builds the ''dev'' prerelease edition.
+
+!! `quick-bld.sh`
+
+Builds the ''prerelease'' prerelease edition.
+
+!! `tiddlyspace-upload.sh`
+
+Builds the ''tw5tiddlyweb'' edition and uploads it to TiddlySpace.
+
+!! `verbump.sh`
+
+Bumps the version number of the `package.json` in the `TiddlyWiki5` repo and applies the correct version tag to the repo.
+
+!! `npm-publish.sh`
+
+Publishes the `TiddlyWiki5` repo to npm.
+
+! Procedures
+
+!! Releasing a new version of TiddlyWiki
+
+{{Releasing a new version of TiddlyWiki}}
+
+!! Releasing new content for TiddlyWiki
+
+{{Releasing new content for TiddlyWiki}}
diff --git a/editions/dev/tiddlers/from tw5.com/Contributing to the TiddlyWiki Core.tid b/editions/dev/tiddlers/from tw5.com/Contributing to the TiddlyWiki Core.tid
new file mode 100644
index 000000000..9e1e08c5c
--- /dev/null
+++ b/editions/dev/tiddlers/from tw5.com/Contributing to the TiddlyWiki Core.tid
@@ -0,0 +1,22 @@
+created: 20141016083308219
+modified: 20141016083333808
+title: Contributing to the TiddlyWiki Core
+type: text/vnd.tiddlywiki
+
+The TiddlyWiki core is the container for all the generic features of TiddlyWiki that are of universal utility. Concretely, it comprises the tiddlers in the `$:/core` plugin.
+
+! Core Contribution Requirements
+
+There are requirements that must be met for any contribution that is to be accepted into the core:
+
+* If appropriate, the new functionality must support both standalone and Node.js configurations. For example, any new widgets must be capable of being rendered on the server
+* The contribution must not compromise the backwards compatibility of the existing code
+* Code contributions must comply with the [[TiddlyWiki Coding Style Guidelines]]
+* Generic components are preferred over point solutions for specific problems (which belong in plugins)
+
+! The Core and Innovation
+
+If you've created something new and innovative, don't try to rush to get it included into the core. Once new stuff is in the core it is subject to the core policies of strict backwards compatibility, making it frozen as far as radical innovation is concerned. It's usually better to release the new thing as a plugin so that it can be shared with the rest of the community for feedback.
+
+The expected model of innovation is that the core development will move relatively slowly as more and more of the initial planned functionality is implemented. Innovation can take place in the much more unconstrained environment of plugins. Over time, as these third party plugins gain popularity and become more polished, some or all of their functionality will be migrated into the core.
+
diff --git a/editions/dev/tiddlers/from tw5.com/Contributing to the TiddlyWiki Plugin Library.tid b/editions/dev/tiddlers/from tw5.com/Contributing to the TiddlyWiki Plugin Library.tid
new file mode 100644
index 000000000..cc3bec88e
--- /dev/null
+++ b/editions/dev/tiddlers/from tw5.com/Contributing to the TiddlyWiki Plugin Library.tid
@@ -0,0 +1,14 @@
+created: 20141016083308219
+modified: 20141016083333808
+title: Contributing to the TiddlyWiki Plugin Library
+type: text/vnd.tiddlywiki
+
+The TiddlyWiki Plugin library is the set of plugins, themes and languages that are distributed via http://tiddlywiki.com.
+
+The plugin library is intended to help end users of TiddlyWiki in the following ways:
+
+* By being a reliable, official source of community assets
+* Permitting automatic upgrading of plugins during the upgrade process
+* Providing a guarantee of backwards compatibility
+
+Plugins in the library need a maintainer who is prepared to make a commitment to keep them tested and fully operational with successive releases of the core code. Many plugins are maintained by the core team.
diff --git a/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid b/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid
index 97fbeb635..9d271de77 100644
--- a/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid
+++ b/editions/dev/tiddlers/from tw5.com/Developing plugins using Node.js and GitHub.tid
@@ -87,7 +87,7 @@ For example files see the plugins in the tiddlywiki5 repository i.e. those locat
Modify editions/tw5.com/tiddlywiki.info to include a reference to your plugin directory, i.e. find `"plugins": [ ` and add `"yourname/pluginname"`.
-From the TW5 directory issue command
+From the TW5 directory issue the command
```
./bin/qbld.sh
diff --git a/editions/dev/tiddlers/from tw5.com/How to create a translation for TiddlyWiki.tid b/editions/dev/tiddlers/from tw5.com/How to create a translation for TiddlyWiki.tid
index 36a66e84b..c8ad7300a 100644
--- a/editions/dev/tiddlers/from tw5.com/How to create a translation for TiddlyWiki.tid
+++ b/editions/dev/tiddlers/from tw5.com/How to create a translation for TiddlyWiki.tid
@@ -21,7 +21,7 @@ type: text/vnd.tiddlywiki
# Copy the contents of `/core/language/en-GB` into your translation folder
# Create a `plugin.info` file (see below) in your translation folder
# Edit `/editions/tw5.com/tiddlywiki.info` to add your language to the list
-# Run `./bin/qbld.sh` to build TiddlyWiki
+# Run `../build.jermolene.github.io/quick-bld.sh` to build TiddlyWiki
# Open the TiddlyWiki file at `/MyTranslation/jermolene.github.com/index.html`
# You should see your translation listed in the control panel, but the text of the translation will still be in British English
# Edit the `.tid` and `.multids` files in your language folder to translate the English text
diff --git a/editions/dev/tiddlers/from tw5.com/How to customise the password prompt.tid b/editions/dev/tiddlers/from tw5.com/How to customise the password prompt.tid
new file mode 100644
index 000000000..53eb35433
--- /dev/null
+++ b/editions/dev/tiddlers/from tw5.com/How to customise the password prompt.tid
@@ -0,0 +1,15 @@
+title: How to customise the password prompt
+tags: howto
+created: 20141006085526118
+modified: 20141006085526118
+
+You can customise the text and appearance of the password prompt that is displayed when encrypted TiddlyWiki files are first opened.
+
+To do so, create a tiddler tagged {{$:/core/wiki/rawmarkup|$:/core/ui/TagTemplate}} containing:
+
+# A JavaScript `
+
diff --git a/editions/dev/tiddlywiki.info b/editions/dev/tiddlywiki.info
index 5d4be5dfb..d737e127b 100644
--- a/editions/dev/tiddlywiki.info
+++ b/editions/dev/tiddlywiki.info
@@ -32,6 +32,8 @@
"--setfield","[tag[external-image]]","_canonical_uri","$:/core/templates/canonical-uri-external-image","text/plain",
"--setfield","[tag[external-image]]","text","","text/plain",
"--rendertiddler","$:/core/save/all","index.html","text/plain"],
+ "build-readme": [
+ "--rendertiddler","ReadMe for build.jermolene.github.io","readme.md","text/html"],
"favicon": [
"--savetiddler","$:/favicon.ico","favicon.ico"],
"static": [
diff --git a/editions/katexdemo/tiddlers/HelloThere.tid b/editions/katexdemo/tiddlers/HelloThere.tid
index 719121c1e..c3ecef5bb 100644
--- a/editions/katexdemo/tiddlers/HelloThere.tid
+++ b/editions/katexdemo/tiddlers/HelloThere.tid
@@ -2,9 +2,7 @@ title: HelloThere
This is a TiddlyWiki plugin for mathematical typesetting based on KaTeX from Khan Academy.
-It is completely self-contained, and doesn't need an Internet connection in order to work.
-
-//This first version of the plugin cannot be used to generate static content under Node.js, but that capability will come in a future update. (Note that you can still use it when running the client-server configuration under Node.js).//
+It is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.
! Installation
diff --git a/editions/katexdemo/tiddlywiki.info b/editions/katexdemo/tiddlywiki.info
index 8f24a036e..b45c7b950 100644
--- a/editions/katexdemo/tiddlywiki.info
+++ b/editions/katexdemo/tiddlywiki.info
@@ -10,6 +10,11 @@
],
"build": {
"index": [
- "--rendertiddler","$:/core/save/all","katexdemo.html","text/plain"]
+ "--rendertiddler","$:/core/save/all","katexdemo.html","text/plain"],
+ "static": [
+ "--rendertiddler","$:/core/templates/static.template.html","static.html","text/plain",
+ "--rendertiddler","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain",
+ "--rendertiddlers","[!is[system]]","$:/core/templates/static.tiddler.html","static","text/plain",
+ "--rendertiddler","$:/core/templates/static.template.css","static/static.css","text/plain"]
}
}
diff --git a/editions/prerelease/tiddlers/Release 5.1.3.tid b/editions/prerelease/tiddlers/Release 5.1.3.tid
new file mode 100644
index 000000000..a05f31f35
--- /dev/null
+++ b/editions/prerelease/tiddlers/Release 5.1.3.tid
@@ -0,0 +1,62 @@
+caption: 5.1.3
+created: 20140928085506951
+modified: 20140928085506951
+tags: ReleaseNotes
+title: Release 5.1.3
+type: text/vnd.tiddlywiki
+
+//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.2...v5.1.3]]//
+
+!! Usability Improvements
+
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/e872f17842809e33eae177980e9ea0650b6a4c03]] "new journal" button; see [[Creating journal tiddlers]]
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/70984aa39f8a4061162d4e404bfd158e515c7e6e]] "new here" button; see [[Creating and editing tiddlers]]
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/00cdd04edd49c2bf0e461071c0c7c50f8aab4e42]] "new journal here" button; see [[Creating journal tiddlers]]
+* [[Made|https://github.com/Jermolene/TiddlyWiki5/commit/c6951ee912d1f2717a8c208cbb920e54edf9e5d9]] date format strings be translateable
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/tree/master/languages/ru-RU]] Russian translation
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/ef1d5310918dae088ce9361c1682ce0f99cf568a]] confirmation when clearing password
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/b7bbcfa05659808c1e51a4f2f5f1d6afbc2ed3a1]] additional prompt when setting password
+* [[Increased|https://github.com/Jermolene/TiddlyWiki5/commit/dc9981322aeb508d5ebac0b691b0d703f8c1995e]] size of the clear search button
+
+
+!! Hackability Improvements
+
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/0dcf54c3b59ed04645928f0ec4ced647e5a0da7f]] support for ActionWidgets
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/65504d5d41e45326ab1b1b6c0c21eea4c9772797]] new [[FilterOperator: addprefix]] and [[FilterOperator: addsuffix]]
+* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/0c8e5380778303cdd3308bed4a15290214841f8b]] support for custom password prompts
+* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/c26bd4c5a872f56c47e9f5cfc3fada468c53ddde]] the ListMacro to display ''caption'' field if present
+
+!! Bug Fixes
+
+* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/cc576b052e2b05fd93fcb4f3eb8d9ee5278abf3e]] [[FilterOperator: each]] to work with missing tiddlers
+* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/5dd6ebff05a3380db2901294b2cfc89c1a0e71bf]] problem with tiddler width in zoomin storyview with the sidebar hidden
+* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/09b6540998fec6bf1fb14842be8e8c53dbd5c46a]] bug whereby the `tm-home` message wasn't navigating to a tiddler, causing problems in zoomin storyview
+* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/3ca8d7b6cca46ffa424bcf9bdc134da464fc84f4]] problem with jumping toolbar icons under Firefox
+* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/f85b07e70b71d0622a9459e4b04e2027540abda8]] problem with untagged label being incorrectly coloured
+* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/b3dcd7d625ec83701ef3a77f3fb8101af57c154f]] problem with title background colours with the "Sticky Titles" theme
+* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/5211f9c40c874a167174e8c0d439db34189d3329]] problem with subfilter parameter of TimelineMacro
+* [[Exclude|https://groups.google.com/d/topic/tiddlywiki/YPACpXhH9PY/discussion]] search string tiddler from search results
+
+!! Node.js Changes
+
+//These changes are only relevant to people using TiddlyWiki under Node.js//
+
+* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/63c174d7ed56284e80ad6cd6ae966b81f9181cc9]] ~KaTeX plugin to be able to work under Node.js to generate static HTML
+* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/49dc5694a391a391264a4473e4f4422e2472a3b3]] "includeWikis" to merge build targets
+* [[Refactored|https://github.com/Jermolene/TiddlyWiki5/issues/969]] the build scripts for tiddlywiki.com into a separate repository at https://github.com/Jermolene/build.jermolene.github.io
+
+!! Contributors
+
+[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
+
+* [[@andrey013|https://github.com/andrey013]]
+* [[@BramChen|https://github.com/BramChen]]
+* [[@buggyj|https://github.com/buggyj]]
+* [[@Eucaly|https://github.com/Eucaly]]
+* [[@fghhfg|https://github.com/fghhfg]]
+* [[@gernert|https://github.com/gernert]]
+* [[@pmario|https://github.com/pmario]]
+* [[@simonbaird|https://github.com/simonbaird]]
+* [[@TheDiveO|https://github.com/TheDiveO]]
+* [[@xcazin|https://github.com/xcazin]]
+
diff --git a/editions/prerelease/tiddlers/system/DefaultTiddlers.tid b/editions/prerelease/tiddlers/system/DefaultTiddlers.tid
new file mode 100644
index 000000000..19dd8b2fd
--- /dev/null
+++ b/editions/prerelease/tiddlers/system/DefaultTiddlers.tid
@@ -0,0 +1,10 @@
+created: 20131127215321439
+modified: 20140912135951542
+title: $:/DefaultTiddlers
+type: text/vnd.tiddlywiki
+
+[[TiddlyWiki Pre-release]]
+[tag[ReleaseNotes]!has[released]]
+HelloThere
+GettingStarted
+Community
diff --git a/editions/prerelease/tiddlers/system/GoogleAnalyticsAccount.tid b/editions/prerelease/tiddlers/system/GoogleAnalyticsAccount.tid
new file mode 100644
index 000000000..1e0f77e7c
--- /dev/null
+++ b/editions/prerelease/tiddlers/system/GoogleAnalyticsAccount.tid
@@ -0,0 +1,3 @@
+title: $:/GoogleAnalyticsAccount
+
+UA-32839735-1
\ No newline at end of file
diff --git a/editions/prerelease/tiddlers/system/GoogleAnalyticsDomain.tid b/editions/prerelease/tiddlers/system/GoogleAnalyticsDomain.tid
new file mode 100644
index 000000000..ee2e3f723
--- /dev/null
+++ b/editions/prerelease/tiddlers/system/GoogleAnalyticsDomain.tid
@@ -0,0 +1,3 @@
+title: $:/GoogleAnalyticsDomain
+
+tiddlywiki.com
\ No newline at end of file
diff --git a/editions/prerelease/tiddlers/system/SiteSubtitle.tid b/editions/prerelease/tiddlers/system/SiteSubtitle.tid
new file mode 100644
index 000000000..07d2ed13d
--- /dev/null
+++ b/editions/prerelease/tiddlers/system/SiteSubtitle.tid
@@ -0,0 +1,3 @@
+title: $:/SiteSubtitle
+
+<>
\ No newline at end of file
diff --git a/editions/prerelease/tiddlers/system/SiteTitle.tid b/editions/prerelease/tiddlers/system/SiteTitle.tid
new file mode 100644
index 000000000..eb3d1d643
--- /dev/null
+++ b/editions/prerelease/tiddlers/system/SiteTitle.tid
@@ -0,0 +1,6 @@
+created: 20131211131022562
+modified: 20131211131023829
+title: $:/SiteTitle
+type: text/vnd.tiddlywiki
+
+TiddlyWiki Pre-release
\ No newline at end of file
diff --git a/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid b/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid
new file mode 100644
index 000000000..68a5f431f
--- /dev/null
+++ b/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid
@@ -0,0 +1,6 @@
+title: TiddlyWiki Pre-release
+modified: 20141013204930183
+
+This is a pre-release build of TiddlyWiki.
+
+It is provided for testing purposes. Please don't try to use it for anything important -- you should use the latest official release from http://tiddlywiki.com.
diff --git a/editions/prerelease/tiddlywiki.info b/editions/prerelease/tiddlywiki.info
new file mode 100644
index 000000000..85e38ccce
--- /dev/null
+++ b/editions/prerelease/tiddlywiki.info
@@ -0,0 +1,34 @@
+{
+ "plugins": [
+ "tiddlywiki/cecily",
+ "tiddlywiki/googleanalytics",
+ "tiddlywiki/nodewebkitsaver",
+ "tiddlywiki/github-fork-ribbon",
+ "tiddlywiki/browser-sniff"
+ ],
+ "themes": [
+ "tiddlywiki/vanilla",
+ "tiddlywiki/snowwhite",
+ "tiddlywiki/nighttime",
+ "tiddlywiki/starlight",
+ "tiddlywiki/seamless",
+ "tiddlywiki/stickytitles",
+ "tiddlywiki/centralised",
+ "tiddlywiki/readonly"
+ ],
+ "languages": [
+ "en-US",
+ "en-GB",
+ "de-AT",
+ "de-DE",
+ "fr-FR",
+ "zh-Hans",
+ "zh-Hant",
+ "it-IT",
+ "ja-JP",
+ "ru-RU"
+ ],
+ "includeWikis": [
+ "../tw5.com"
+ ]
+}
diff --git a/editions/tw2/readme.md b/editions/tw2/readme.md
deleted file mode 100644
index 5eaadaea2..000000000
--- a/editions/tw2/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
Building TiddlyWikiClassic
TiddlyWiki5 can be used to build older 2.x.x versions of TiddlyWikiClassic from their constituent components. Doing so involves these features:
The tiddlywiki/classictools plugin, containing a deserializer module which allows tiddlers to be loaded from TiddlyWiki 2.x.x .recipe files
The stripcomments format for the ViewWidget, which strips single line JavaScript comments starting //#
The stripTitlePrefix='yes' attribute of the FieldsWidget, which removes prefixes wrapped in curly braces from the title attribute
For example, {tiddler}HelloThere would be transformed to HelloThere
Usage
TiddlyWikiClassic is built from the command line by running TiddlyWiki on Node.js. A typical usage would be:
\ No newline at end of file
diff --git a/editions/tw5.com/tiddlers/TableOfContentsInProcess b/editions/tw5.com/tiddlers/TableOfContentsInProcess
deleted file mode 100644
index dfdd99e07..000000000
--- a/editions/tw5.com/tiddlers/TableOfContentsInProcess
+++ /dev/null
@@ -1,8 +0,0 @@
-title: TableOfContentsInProcess
-tags:
-created: 201409041006
-modified: 201409041006
-
-
-<>
-
diff --git a/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid b/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid
index 30afe03ed..25456498c 100644
--- a/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid
+++ b/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid
@@ -62,4 +62,7 @@ I worked on new release of TiddlyWiki from November 2011. As a programmer, worki
! The Future
-Now that TiddlyWiki5 has finally left "beta" status behind, my hope is that it will have a long life. Because it only uses standard features of HTML5 and Node.js, there is no reason why it cannot be fully operational for many years to come. My goal is for it last for at least 25 years.
+Now that TiddlyWiki5 has finally left "beta" status behind, my hope is that it will have a long life. Because it only uses standard features of HTML5 and Node.js, there is no reason why it cannot be fully operational for many years to come. My goal is for it to last for at least 25 years.
+
+//Jeremy Ruston, 20th September 2014//
+
diff --git a/editions/tw5.com/tiddlers/community/Contributing.tid b/editions/tw5.com/tiddlers/community/Contributing.tid
index bca4442f0..e07553141 100644
--- a/editions/tw5.com/tiddlers/community/Contributing.tid
+++ b/editions/tw5.com/tiddlers/community/Contributing.tid
@@ -24,6 +24,12 @@ Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license a
Create a GitHub pull request to add your name to `cla-individual.md` or `cla-entity.md`, with the date in the format (YYYY/MM/DD).
+''step by step''
+
+# click [[licenses/CLA-individual|https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-individual.md]] or [[licenses/CLA-entity|https://github.com/Jermolene/TiddlyWiki5/tree/master/licenses/cla-entity.md]]
+# in `cla-individual.md` or `cla-entity.md` click icon on the top-right corner (clicking this button will fork the project so you can edit the file)
+# add your name at the bottom
+
eg: `Jeremy Ruston, @Jermolene, 2011/11/22`
---
diff --git a/editions/tw5.com/tiddlers/community/Examples.tid b/editions/tw5.com/tiddlers/community/Examples.tid
index 450897730..e4dd64d3e 100644
--- a/editions/tw5.com/tiddlers/community/Examples.tid
+++ b/editions/tw5.com/tiddlers/community/Examples.tid
@@ -2,7 +2,6 @@ created: 20140320230543190
modified: 20140916121854696
tags: HelloThere Community
title: Examples
-caption: Examples of ~TiddlyWiki being used in the wild
type: text/vnd.tiddlywiki
This collection showcases inspiring and interesting examples of TiddlyWiki being used in the wild.
diff --git a/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid b/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid
index e9dce6324..fb9fda85b 100644
--- a/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid
+++ b/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid
@@ -8,4 +8,4 @@ The TiddlyWiki community holds regular Google Hangouts, usually every Tuesday fr
Past Hangouts are archived in this YouTube playlist:
-
+
diff --git a/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Squared by Iannis Zannos.tid b/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Squared by Iannis Zannos.tid
new file mode 100644
index 000000000..0c695547f
--- /dev/null
+++ b/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Squared by Iannis Zannos.tid
@@ -0,0 +1,16 @@
+created: 20141009170239174
+modified: 20141009170711343
+tags: Resources
+title: "TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos
+type: text/vnd.tiddlywiki
+url: http://larigot.avarts.ionio.gr/users/iani/wikis/tw5square.html
+
+A wealth of hints, tips and notes about using [[TiddlyWiki on Node.js]]:
+
+<<<
+TiddlyWiki is different from other wikis because of its principle of dynamically customizeable "storyline" based on tiddlers as basic units of information. That is, the user "composes" their own version of the webpage by clicking on tiddler links, which add tiddlers to the page in order to compose a storyline.
+
+The Node.js implementation in TiddlyWiki5 adds all the advantages of flat-file markup language based type of site. This makes TiddlyWiki an excellent alternative to flat-file based CMS/webpage/blog authoring systems for the web.
+
+Also very cool is the treatment of tags as menus everywhere.
+<<<
diff --git a/editions/tw5.com/tiddlers/concepts/CurrentTiddler.tid b/editions/tw5.com/tiddlers/concepts/CurrentTiddler.tid
index 59d35f1dd..bc673c507 100644
--- a/editions/tw5.com/tiddlers/concepts/CurrentTiddler.tid
+++ b/editions/tw5.com/tiddlers/concepts/CurrentTiddler.tid
@@ -1,9 +1,9 @@
created: 20130825144900000
-modified: 20140107114307809
+modified: 20141012154500719
tags: Concepts
title: CurrentTiddler
type: text/vnd.tiddlywiki
-The CurrentTiddler is the current tiddler during WikiText processing. A context tiddler is set by the TiddlerWidget. It allows you to write references like `<$view field="title" format="link"/>` in TemplateTiddlers without explicitly specifying the tiddler that it applies to.
+The CurrentTiddler is the current tiddler during WikiText rendering. It is usually set by the TiddlerWidget. It allows you to write references like `<$view field="title"/>` in TemplateTiddlers without explicitly specifying the tiddler that it applies to.
-The title of the current tiddler is contained in the widget variable ''currentTiddler''.
+The title of the current tiddler is contained in the [[WidgetVariable: currentTiddler]].
diff --git a/editions/tw5.com/tiddlers/concepts/TiddlyWikiFolders.tid b/editions/tw5.com/tiddlers/concepts/TiddlyWikiFolders.tid
index 30baeef3d..d0e14d8ce 100644
--- a/editions/tw5.com/tiddlers/concepts/TiddlyWikiFolders.tid
+++ b/editions/tw5.com/tiddlers/concepts/TiddlyWikiFolders.tid
@@ -1,5 +1,5 @@
created: 20130825214200000
-modified: 20140912141727308
+modified: 20141013204930183
tags: [[TiddlyWiki on Node.js]]
title: TiddlyWikiFolders
type: text/vnd.tiddlywiki
@@ -27,6 +27,8 @@ The `tiddlywiki.info` file in a wiki folder contains a JSON object comprising th
* ''build'' - a hashmap of named build targets, each defined by an array of command tokens (see BuildCommand)
* ''config'' - an optional hashmap of configuration options (see below)
+Note that the build targets of included wikis are merged if a target of that name isn't defined in the current `tiddlywiki.info` file.
+
Configuration options include:
* ''default-tiddler-location'' - a string path to the default location for the filesystem adaptor to save new tiddlers (resolved relative to the wiki folder)
diff --git a/editions/tw5.com/tiddlers/features/Searching.tid b/editions/tw5.com/tiddlers/features/Searching.tid
index ff85bec79..1d01b9481 100644
--- a/editions/tw5.com/tiddlers/features/Searching.tid
+++ b/editions/tw5.com/tiddlers/features/Searching.tid
@@ -22,4 +22,4 @@ To the right of the search box, when there are no search results displayed below
* The ''shadows'' tab allows you to limit your search to shadow tiddlers.
-* The ''filter'' tab is not a search box, per se, but a way to obtain a list of all tiddlers that meet the specific criteria described by that filter, for example, "All tags except system tags".
+* The ''filter'' tab is not a search box, per se, but a way to obtain a list of all tiddlers that meet the specific criteria described by that filter, for example, "All tags except system tags". More information in [[Introduction to Filters]].
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperator addprefix.tid b/editions/tw5.com/tiddlers/filters/FilterOperator addprefix.tid
new file mode 100644
index 000000000..48ac8129d
--- /dev/null
+++ b/editions/tw5.com/tiddlers/filters/FilterOperator addprefix.tid
@@ -0,0 +1,15 @@
+created: 20140410103123179
+modified: 20140410103123179
+tags: Filters
+caption: addprefix
+title: FilterOperator: addprefix
+type: text/vnd.tiddlywiki
+
+The ''addprefix'' filter operator add a prefix to all titles in the current list.
+
+For example:
+
+|!Filter String |!Description |
+|`one two three +[addprefix[tid-]]` |Returns `tid-one`, `tid-two`, `tid-three` |
+
+See also [[FilterOperator: prefix]], [[FilterOperator: suffix]], [[FilterOperator: addsuffix]], [[FilterOperator: removeprefix]] and [[FilterOperator: removesuffix]].
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperator addsuffix.tid b/editions/tw5.com/tiddlers/filters/FilterOperator addsuffix.tid
new file mode 100644
index 000000000..ecd3748b7
--- /dev/null
+++ b/editions/tw5.com/tiddlers/filters/FilterOperator addsuffix.tid
@@ -0,0 +1,15 @@
+created: 20140828133830424
+modified: 20140902145613329
+tags: Filters
+caption: addsuffix
+title: FilterOperator: addsuffix
+type: text/vnd.tiddlywiki
+
+The ''addsuffix'' filter operator adds a suffix to all titles in the current list.
+
+For example:
+
+|!Filter String |!Description |
+|`one two three +[addsuffix[-tid]]` |Returns `one-tid`, `two-tid`, `three-tid` |
+
+See also [[FilterOperator: suffix]], [[FilterOperator: prefix]], [[FilterOperator: addprefix]], [[FilterOperator: removesuffix]], and [[FilterOperator: removeprefix]].
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperator list.tid b/editions/tw5.com/tiddlers/filters/FilterOperator list.tid
index d5870a281..c546a3e40 100644
--- a/editions/tw5.com/tiddlers/filters/FilterOperator list.tid
+++ b/editions/tw5.com/tiddlers/filters/FilterOperator list.tid
@@ -5,7 +5,7 @@ caption: list
title: FilterOperator: list
type: text/vnd.tiddlywiki
-The ''list'' filter operator replaces the current list with the list contained in the [[TextReference|TextReferences]] specified in the operand. The default field for the text reference is `list`.
+The ''list'' filter operator replaces the current list with the list contained in the TextReference specified in the operand. The default field for the text reference is `list`.
Preceding the operator name with `!` inverts the logic so that the filter only returns the tiddlers in the current list that are not listed in the specified list.
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperator prefix.tid b/editions/tw5.com/tiddlers/filters/FilterOperator prefix.tid
index 41139bbb4..af965c7c6 100644
--- a/editions/tw5.com/tiddlers/filters/FilterOperator prefix.tid
+++ b/editions/tw5.com/tiddlers/filters/FilterOperator prefix.tid
@@ -13,4 +13,4 @@ For example:
|`[tag[task]!prefix[hidden]]` |Returns tiddlers tagged `task` whose titles do not start with `hidden` |
|`[prefix[$:/]]` |Equivalent to `[is[system]]` |
-See also [[FilterOperator: removeprefix]], [[FilterOperator: removesuffix]] and [[FilterOperator: removesuffix]].
+See also [[FilterOperator: removeprefix]], [[FilterOperator: removesuffix]], [[FilterOperator: removesuffix]], [[FilterOperator: addprefix]], and [[FilterOperator: addsuffix]].
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperator removeprefix.tid b/editions/tw5.com/tiddlers/filters/FilterOperator removeprefix.tid
index a3aebd3bd..c9ab7b69a 100644
--- a/editions/tw5.com/tiddlers/filters/FilterOperator removeprefix.tid
+++ b/editions/tw5.com/tiddlers/filters/FilterOperator removeprefix.tid
@@ -12,4 +12,4 @@ For example:
|!Filter String |!Description |
|`tid-one tid-two three +[removeprefix[tid-]]` |Returns `one`, `two` |
-See also [[FilterOperator: prefix]], [[FilterOperator: suffix]] and [[FilterOperator: removesuffix]].
+See also [[FilterOperator: prefix]], [[FilterOperator: suffix]], [[FilterOperator: removesuffix]], [[FilterOperator: addprefix]], and [[FilterOperator: addsuffix]].
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperator removesuffix.tid b/editions/tw5.com/tiddlers/filters/FilterOperator removesuffix.tid
index b07a4e3d2..9b55a9383 100644
--- a/editions/tw5.com/tiddlers/filters/FilterOperator removesuffix.tid
+++ b/editions/tw5.com/tiddlers/filters/FilterOperator removesuffix.tid
@@ -12,4 +12,4 @@ For example:
|!Filter String |!Description |
|`one-tid two-tid three +[removesuffix[-tid]]` |Returns `one`, `two` |
-See also [[FilterOperator: suffix]], [[FilterOperator: prefix]] and [[FilterOperator: removeprefix]].
+See also [[FilterOperator: suffix]], [[FilterOperator: prefix]], [[FilterOperator: removeprefix]], [[FilterOperator: addprefix]], and [[FilterOperator: addsuffix]].
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperator suffix.tid b/editions/tw5.com/tiddlers/filters/FilterOperator suffix.tid
index a82c9fca5..0c12a01a2 100644
--- a/editions/tw5.com/tiddlers/filters/FilterOperator suffix.tid
+++ b/editions/tw5.com/tiddlers/filters/FilterOperator suffix.tid
@@ -13,4 +13,4 @@ For example:
|`[tag[task]!suffix[hidden]]` |Returns tiddlers tagged `task` whose titles do not end with `hidden` |
|`[suffix[.jpg]]` |Returns tiddlers whose titles end with `.jpg` |
-See also [[FilterOperator: removesuffix]], [[FilterOperator: prefix]] and [[FilterOperator: removeprefix]].
+See also [[FilterOperator: removesuffix]], [[FilterOperator: prefix]], [[FilterOperator: removeprefix]], [[FilterOperator: addprefix]], and [[FilterOperator: addsuffix]].
diff --git a/editions/tw5.com/tiddlers/filters/FilterOperators.tid b/editions/tw5.com/tiddlers/filters/FilterOperators.tid
index 23d5be995..478f33888 100644
--- a/editions/tw5.com/tiddlers/filters/FilterOperators.tid
+++ b/editions/tw5.com/tiddlers/filters/FilterOperators.tid
@@ -1,14 +1,11 @@
created: 20140410103123179
-modified: 20140410103123179
+modified: 20141007213204936
tags: Concepts
title: FilterOperators
type: text/vnd.tiddlywiki
-\define bulletList(filter)
-