1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-25 12:23:42 +00:00

Compare commits

..

10 Commits

Author SHA1 Message Date
Jeremy Ruston
4022532455 Merge branch 'master' into dynamic-build-commands 2025-03-21 17:25:50 +00:00
Jeremy Ruston
b2b00324c2 Merge branch 'master' into dynamic-build-commands 2025-02-18 10:49:45 +00:00
Jeremy Ruston
e3714929f9 Add support for a transformFilter for prompts 2024-10-20 13:02:47 +01:00
Jeremy Ruston
b31e2cd0db Mark version in docs 2024-10-20 12:55:21 +01:00
Jeremy Ruston
8b2afd1cc2 Fix bug processing empty string tokens 2024-10-20 12:55:11 +01:00
Jeremy Ruston
bd86723b72 Enhance terminal colour support 2024-10-19 17:05:34 +01:00
Jeremy Ruston
2d89228d25 Example should match the documentation 2024-10-19 16:16:01 +01:00
Jeremy Ruston
5233d72642 Documentation 2024-10-19 16:13:28 +01:00
Jeremy Ruston
4a6501778a Add support for prompts within build scripts 2024-10-19 15:54:31 +01:00
Jeremy Ruston
50118dbe13 Initial commit
This commit adds support for dynamic tokens within build commands. See the tiddlywiki.info file. Also adds an echo command to make debugging easier.

I also intend to add a node type for prompting the user for a string.
2024-10-19 12:26:11 +01:00
743 changed files with 2868 additions and 30810 deletions

317
.eslintrc.json Normal file
View File

@@ -0,0 +1,317 @@
{
"env": {
"browser": true,
"commonjs": true,
"node": true
},
"extends": [
"eslint:recommended"
],
"globals": {
"$tw": "writable"
},
"parserOptions": {
"ecmaVersion": 5
},
"plugins": [],
"rules": {
"array-bracket-newline": "off",
"array-bracket-spacing": "off",
"array-callback-return": "off",
"array-element-newline": "off",
"arrow-body-style": "error",
"arrow-parens": [
"error",
"as-needed"
],
"arrow-spacing": [
"error",
{
"after": true,
"before": true
}
],
"block-scoped-var": "off",
"block-spacing": "off",
"brace-style": "off",
"callback-return": "off",
"camelcase": "off",
"capitalized-comments": "off",
"class-methods-use-this": "error",
"comma-dangle": "off",
"comma-spacing": "off",
"comma-style": "off",
"complexity": "off",
"computed-property-spacing": "off",
"consistent-return": "off",
"consistent-this": "off",
"curly": "off",
"default-case": "off",
"default-case-last": "error",
"default-param-last": "error",
"dot-location": "off",
"dot-notation": "off",
"eol-last": "off",
"eqeqeq": "off",
"func-call-spacing": "off",
"func-name-matching": "off",
"func-names": "off",
"func-style": "off",
"function-call-argument-newline": "off",
"function-paren-newline": "off",
"generator-star-spacing": "error",
"global-require": "off",
"grouped-accessor-pairs": "error",
"guard-for-in": "off",
"handle-callback-err": "off",
"id-blacklist": "error",
"id-denylist": "error",
"id-length": "off",
"id-match": "error",
"implicit-arrow-linebreak": "error",
"indent": "off",
"indent-legacy": "off",
"init-declarations": "off",
"jsx-quotes": "error",
"key-spacing": "off",
"keyword-spacing": [
"error",
{
"before": true,
"after": false,
"overrides": {
"case": {
"after": true
},
"do": {
"after": true
},
"else": {
"after": true
},
"return": {
"after": true
},
"throw": {
"after": true
},
"try": {
"after": true
},
"catch": {
"after": true
}
}
}
],
"line-comment-position": "off",
"linebreak-style": "off",
"lines-around-comment": "off",
"lines-around-directive": "off",
"lines-between-class-members": "error",
"max-classes-per-file": "error",
"max-depth": "off",
"max-len": "off",
"max-lines": "off",
"max-lines-per-function": "off",
"max-nested-callbacks": "error",
"max-params": "off",
"max-statements": "off",
"max-statements-per-line": "off",
"multiline-comment-style": "off",
"multiline-ternary": "off",
"new-parens": "off",
"newline-after-var": "off",
"newline-before-return": "off",
"newline-per-chained-call": "off",
"no-alert": "off",
"no-array-constructor": "off",
"no-await-in-loop": "error",
"no-bitwise": "off",
"no-buffer-constructor": "off",
"no-caller": "error",
"no-catch-shadow": "off",
"no-confusing-arrow": "error",
"no-console": "off",
"no-constant-condition": [
"error",
{
"checkLoops": false
}
],
"no-constructor-return": "error",
"no-continue": "off",
"no-div-regex": "off",
"no-duplicate-imports": "error",
"no-else-return": "off",
"no-empty-function": "off",
"no-eq-null": "off",
"no-eval": "off",
"no-extend-native": "off",
"no-extra-bind": "off",
"no-extra-label": "off",
"no-extra-parens": "off",
"no-floating-decimal": "off",
"no-implicit-coercion": [
"error",
{
"boolean": false,
"number": false,
"string": false
}
],
"no-implicit-globals": "off",
"no-implied-eval": "error",
"no-inline-comments": "off",
"no-invalid-this": "off",
"no-iterator": "error",
"no-label-var": "off",
"no-labels": "off",
"no-lone-blocks": "off",
"no-lonely-if": "off",
"no-loop-func": "off",
"no-loss-of-precision": "error",
"no-magic-numbers": "off",
"no-mixed-operators": "off",
"no-mixed-requires": "off",
"no-multi-assign": "off",
"no-multi-spaces": "off",
"no-multi-str": "error",
"no-multiple-empty-lines": ["warn", { "max": 4, "maxEOF": 0 }],
"no-native-reassign": "off",
"no-negated-condition": "off",
"no-negated-in-lhs": "error",
"no-nested-ternary": "off",
"no-new": "off",
"no-new-func": "off",
"no-new-object": "off",
"no-new-require": "error",
"no-new-wrappers": "error",
"no-octal-escape": "error",
"no-param-reassign": "off",
"no-path-concat": "error",
"no-plusplus": "off",
"no-process-env": "off",
"no-process-exit": "off",
"no-promise-executor-return": "error",
"no-proto": "off",
"no-restricted-exports": "error",
"no-restricted-globals": "error",
"no-restricted-imports": "error",
"no-restricted-modules": "error",
"no-restricted-properties": "error",
"no-restricted-syntax": "error",
"no-return-assign": "off",
"no-return-await": "error",
"no-script-url": "off",
"no-self-compare": "off",
"no-sequences": "off",
"no-shadow": "off",
"no-spaced-func": "off",
"no-sync": "off",
"no-tabs": "off",
"no-template-curly-in-string": "error",
"no-ternary": "off",
"no-throw-literal": "off",
"no-trailing-spaces": "error",
"no-undef-init": "off",
"no-undefined": "off",
"no-underscore-dangle": "off",
"no-unmodified-loop-condition": "off",
"no-unneeded-ternary": "off",
"no-unreachable-loop": "error",
"no-unused-expressions": "off",
"no-use-before-define": "off",
"no-useless-backreference": "error",
"no-useless-call": "off",
"no-useless-computed-key": "error",
"no-useless-concat": "off",
"no-useless-constructor": "error",
"no-useless-rename": "error",
"no-useless-return": "off",
"no-var": "off",
"no-void": "off",
"no-warning-comments": "off",
"no-whitespace-before-property": "error",
"nonblock-statement-body-position": [
"error",
"any"
],
"object-curly-newline": "off",
"object-curly-spacing": "off",
"object-property-newline": "off",
"object-shorthand": "off",
"one-var": "off",
"one-var-declaration-per-line": "off",
"operator-assignment": "off",
"operator-linebreak": "off",
"padded-blocks": "off",
"padding-line-between-statements": "error",
"prefer-arrow-callback": "off",
"prefer-const": "off",
"prefer-destructuring": "off",
"prefer-exponentiation-operator": "off",
"prefer-named-capture-group": "off",
"prefer-numeric-literals": "error",
"prefer-object-spread": "off",
"prefer-promise-reject-errors": "error",
"prefer-reflect": "off",
"prefer-regex-literals": "off",
"prefer-rest-params": "off",
"prefer-spread": "off",
"prefer-template": "off",
"quote-props": "off",
"quotes": "off",
"radix": "off",
"require-atomic-updates": "error",
"require-await": "error",
"require-jsdoc": "off",
"require-unicode-regexp": "off",
"rest-spread-spacing": "error",
"semi": "off",
"semi-spacing": "off",
"semi-style": "off",
"sort-imports": "error",
"sort-keys": "off",
"sort-vars": "off",
"space-before-blocks": "off",
"space-before-function-paren": "off",
"space-in-parens": "off",
"space-infix-ops": "off",
"space-unary-ops": "off",
"spaced-comment": "off",
"strict": "off",
"switch-colon-spacing": "off",
"symbol-description": "error",
"template-curly-spacing": "error",
"template-tag-spacing": "error",
"unicode-bom": [
"error",
"never"
],
"valid-jsdoc": "off",
"valid-typeof": [
"error",
{
"requireStringLiterals": false
}
],
"vars-on-top": "off",
"wrap-iife": "off",
"wrap-regex": "off",
"yield-star-spacing": "error",
"yoda": "off",
"no-useless-escape": "off",
"no-unused-vars": "off",
"no-empty": "off",
"no-extra-semi": "off",
"no-redeclare": "off",
"no-control-regex": "off",
"no-mixed-spaces-and-tabs": "off",
"no-extra-boolean-cast": "off",
"no-prototype-builtins": "off",
"no-undef": "off",
"no-unreachable": "off",
"no-self-assign": "off"
}
}

View File

@@ -1,55 +0,0 @@
name: Calculate PR build size
on:
pull_request_target:
types: [opened, reopened, synchronize]
paths:
- 'boot/**'
- 'core/**'
- 'themes/tiddlywiki/snowwhite/**'
- 'themes/tiddlywiki/vanilla/**'
jobs:
calculate-build-size:
runs-on: ubuntu-latest
permissions:
pull-requests: read
contents: read
outputs:
pr_size: ${{ steps.get_sizes.outputs.pr_size }}
base_size: ${{ steps.get_sizes.outputs.base_size }}
steps:
- name: build-size-check
id: get_sizes
uses: TiddlyWiki/cerebrus@v4
with:
pr_number: ${{ github.event.pull_request.number }}
repo: ${{ github.repository }}
base_ref: ${{ github.event.pull_request.base.ref }}
github_token: ${{ secrets.GITHUB_TOKEN }}
mode: size:calc
dispatch-followup:
needs: calculate-build-size
runs-on: ubuntu-latest
permissions:
actions: write # Required to dispatch another workflow
pull-requests: write
contents: read
steps:
- name: Trigger follow-up workflow
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'pr-comment-build-size.yml',
ref: 'master',
inputs: {
pr_number: '${{ github.event.pull_request.number }}',
base_ref: '${{ github.event.pull_request.base.ref }}',
pr_size: '${{ needs.calculate-build-size.outputs.pr_size }}',
base_size: '${{ needs.calculate-build-size.outputs.base_size }}'
}
});

View File

@@ -1,36 +0,0 @@
name: Comment on PR build size (Trusted workflow)
on:
workflow_dispatch:
inputs:
pr_number:
required: true
type: string
base_ref:
required: true
type: string
pr_size:
required: true
type: string
base_size:
required: true
type: string
jobs:
comment-on-pr:
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- name: Build and check size
uses: TiddlyWiki/cerebrus@v4
with:
pr_number: ${{ inputs.pr_number }}
repo: ${{ github.repository }}
base_ref: ${{ inputs.base_ref }}
github_token: ${{ secrets.GITHUB_TOKEN }}
mode: size:comment
pr_size: ${{ inputs.pr_size }}
base_size: ${{ inputs.base_size }}

View File

@@ -1,18 +0,0 @@
name: Validate PR Paths
on:
pull_request_target:
types: [opened, reopened, synchronize]
jobs:
validate-pr:
runs-on: ubuntu-latest
steps:
- name: Validate PR
uses: TiddlyWiki/cerebrus@v4
with:
pr_number: ${{ github.event.pull_request.number }}
repo: ${{ github.repository }}
base_ref: ${{ github.base_ref }}
github_token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -5,7 +5,7 @@
# Default to the current version number for building the plugin library
if [ -z "$TW5_BUILD_VERSION" ]; then
TW5_BUILD_VERSION=v5.3.8
TW5_BUILD_VERSION=v5.3.7
fi
echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]"
@@ -105,7 +105,6 @@ node $TW5_BUILD_TIDDLYWIKI \
fi
# /index.html Main site
# /external-(version).html External core version of main site
# /favicon.ico Favicon for main site
# /static.html Static rendering of default tiddlers
# /alltiddlers.html Static rendering of all tiddlers
@@ -118,7 +117,7 @@ node $TW5_BUILD_TIDDLYWIKI \
--version \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--build favicon static index external-js \
--build favicon static index \
|| exit 1
# /empty.html Empty
@@ -156,14 +155,7 @@ node $TW5_BUILD_TIDDLYWIKI \
node $TW5_BUILD_TIDDLYWIKI \
./editions/tour \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js tour.html text/plain \
|| exit 1
# /surveys.html surveys edition
node $TW5_BUILD_TIDDLYWIKI \
./editions/tiddlywiki-surveys \
--output $TW5_BUILD_OUTPUT \
--build index \
--rendertiddler $:/core/save/all tour.html text/plain \
|| exit 1
# /share.html Custom edition for sharing via the URL
@@ -202,7 +194,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/xlsx-utils \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT/editions/xlsx-utils/ \
--build external \
--build index \
|| exit 1
# /editions/resumebuilder/index.html Resume builder edition
@@ -218,7 +210,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/text-slicer \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT/editions/text-slicer/ \
--build external \
--build index \
|| exit 1
# /editions/translators/index.html Translators edition
@@ -250,7 +242,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/tw5.com-docs \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT/editions/tw5.com-docs/ \
--build external \
--build index \
|| exit 1
# /editions/twitter-archivist/index.html Twitter Archivist edition
@@ -273,7 +265,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/innerwikidemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/innerwiki/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/innerwiki/index.html text/plain \
|| exit 1
# /plugins/tiddlywiki/dynaview/index.html Demo wiki with DynaView plugin
@@ -283,7 +275,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/dynaviewdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/dynaview/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/dynaview/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/dynaview/empty.html text/plain \
|| exit 1
@@ -297,7 +289,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/katexdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/katex/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/katex/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/katex/empty.html text/plain \
|| exit 1
@@ -327,7 +319,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/codemirrordemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/codemirror/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/codemirror/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/codemirror/empty.html text/plain \
|| exit 1
@@ -337,7 +329,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/markdowndemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/markdown/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/markdown/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/markdown/empty.html text/plain \
|| exit 1
@@ -347,7 +339,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/classicparserdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/tw2parser/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/tw2parser/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/tw2parser/empty.html text/plain \
|| exit 1
@@ -357,7 +349,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/highlightdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/highlight/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/highlight/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/highlight/empty.html text/plain \
|| exit 1
@@ -367,7 +359,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/geospatialdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/geospatial/index.html text/plain \
--rendertiddler $:/core/save/all plugins/tiddlywiki/geospatial/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/geospatial/empty.html text/plain \
|| exit 1

View File

@@ -2000,7 +2000,7 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) {
var value = tiddler[name];
switch(fieldInfo.source) {
case "subdirectories":
value = $tw.utils.stringifyList(path.relative(rootPath, filename).split(path.sep).slice(0, -1));
value = path.relative(rootPath, filename).split(path.sep).slice(0, -1);
break;
case "filepath":
value = path.relative(rootPath, filename).split(path.sep).join('/');
@@ -2021,10 +2021,10 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) {
value = path.extname(filename);
break;
case "created":
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).birthtime));
value = new Date(fs.statSync(pathname).birthtime);
break;
case "modified":
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).mtime));
value = new Date(fs.statSync(pathname).mtime);
break;
}
if(fieldInfo.prefix) {

View File

@@ -131,14 +131,15 @@ Saving/GitService/Gitea/Caption: Gitea Saver
Saving/GitService/Gitea/Password: Personal access token for API (via Giteas web interface: `Settings | Applications | Generate New Token`)
Saving/TiddlySpot/Advanced/Heading: Advanced Settings
Saving/TiddlySpot/BackupDir: Backup Directory
Saving/TiddlySpot/ControlPanel: ~TiddlyHost Control Panel
Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel
Saving/TiddlySpot/Backups: Backups
Saving/TiddlySpot/Caption: ~TiddlyHost Saver
Saving/TiddlySpot/Description: These settings are only used when saving to [[TiddlyHost|https://tiddlyhost.com]] or a compatible remote server. See [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] for information on ~TiddlyHost saving configuration
Saving/TiddlySpot/Caption: ~TiddlySpot Saver
Saving/TiddlySpot/Description: These settings are only used when saving to [[TiddlySpot|http://tiddlyspot.com]], [[TiddlyHost|https://tiddlyhost.com]], or a compatible remote server. See [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] for information on ~TiddlySpot and ~TiddlyHost saving configuration.
Saving/TiddlySpot/Filename: Upload Filename
Saving/TiddlySpot/Heading: ~TiddlyHost
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
Saving/TiddlySpot/Heading: ~TiddlySpot
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
Saving/TiddlySpot/Password: Password
Saving/TiddlySpot/ReadOnly: Note that [[TiddlySpot|http://tiddlyspot.com]] no longer allows the creation of new sites. For new sites, you can use [[TiddlyHost|https://tiddlyhost.com]], a new hosting service that replaces ~TiddlySpot.
Saving/TiddlySpot/ServerURL: Server URL
Saving/TiddlySpot/UploadDir: Upload Directory
Saving/TiddlySpot/UserName: Wiki Name
@@ -189,8 +190,6 @@ Settings/DefaultSidebarTab/Caption: Default Sidebar Tab
Settings/DefaultSidebarTab/Hint: Specify which sidebar tab is displayed by default
Settings/DefaultMoreSidebarTab/Caption: Default More Sidebar Tab
Settings/DefaultMoreSidebarTab/Hint: Specify which More sidebar tab is displayed by default
Settings/DefaultTiddlerInfoTab/Caption: Default Tiddler Info Tab
Settings/DefaultTiddlerInfoTab/Hint: Specify which tab is displayed by default when tiddler info panel is opened
Settings/LinkToBehaviour/Caption: Tiddler Opening Behaviour
Settings/LinkToBehaviour/InsideRiver/Hint: Navigation from //within// the story river
Settings/LinkToBehaviour/OutsideRiver/Hint: Navigation from //outside// the story river
@@ -252,6 +251,3 @@ ViewTemplateSubtitle/Caption: View Template Subtitle
ViewTemplateSubtitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the subtitle of a tiddler.
ViewTemplateTags/Caption: View Template Tags
ViewTemplateTags/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the tags area of a tiddler.
WikiInformation/Caption: Wiki Information
WikiInformation/Hint: This page summarises high level information about the configuration of this ~TiddlyWiki. It is designed to enable users to quickly share relevant aspects of the configuration of their ~TiddlyWiki with others, for example when seeking help in one of the forums. No private or personal information is included, and nothing is shared without being explicitly copied and pasted elsewhere
WikiInformation/Drag/Caption: Drag this link to copy this tool to another wiki

View File

@@ -4,12 +4,12 @@ _canonical_uri: The full URI of an external image tiddler
author: Name of the author of a plugin
bag: The name of the bag from which a tiddler came
caption: The text to be displayed on a tab or button
class: The CSS class applied to a tiddler when rendering it. Also used for Modals
class: The CSS class applied to a tiddler when rendering it - see [[Custom styles by user-class]]. Also used for [[Modals]]
code-body: The view template will display the tiddler as code if set to ''yes''
color: The CSS color value associated with a tiddler
component: The name of the component responsible for an alert tiddler
component: The name of the component responsible for an [[alert tiddler|AlertMechanism]]
core-version: For a plugin, indicates what version of TiddlyWiki with which it is compatible
current-tiddler: Used to cache the top tiddler in a history list
current-tiddler: Used to cache the top tiddler in a [[history list|HistoryMechanism]]
created: The date a tiddler was created
creator: The name of the person who created a tiddler
dependents: For a plugin, lists the dependent plugin titles

View File

@@ -0,0 +1,8 @@
title: $:/language/Help/echo
description: Displays all the passed arguments
Displays all the passed arguments to a command. Useful for debugging.
```
--echo <text> *
```

View File

@@ -13,7 +13,7 @@ The $tw.Commander class is a command interpreter
Parse a sequence of commands
commandTokens: an array of command string tokens
wiki: reference to the wiki store object
streams: {output:, error:}, each of which has a write(string) method
streams: {output:, input:, error:}
callback: a callback invoked as callback(err) where err is null if there was no error
*/
var Commander = function(commandTokens,callback,wiki,streams) {
@@ -61,69 +61,172 @@ Commander.prototype.execute = function() {
this.executeNextCommand();
};
/*
Returns the next string token without consuming it, or null if there are none left. Callback invoked(err,data)
*/
Commander.prototype.peekNextToken = function(callback) {
var self = this;
if(this.nextToken >= this.commandTokens.length) {
return callback(null,null);
} else {
return this.stringifyToken(this.nextToken,function(err,data) {
if(!err) {
// Save the stringified token for next time so that we don't run prompts twice
self.commandTokens[self.nextToken] = data;
}
callback(err,data);
});
}
};
/*
Returns and consumes the next string token, or null if there are none left. Callback invoked(err,data)
*/
Commander.prototype.getNextToken = function(callback) {
if(this.nextToken >= this.commandTokens.length) {
return callback(null,null);
} else {
return this.stringifyToken(this.nextToken++,callback);
}
};
/*
Returns and consumes the string tokens until the end of the token stream or the first token that starts with "--".
Callback invoked(err,tokenArray)
*/
Commander.prototype.getTokensUntilCommand = function(callback) {
var self = this,
tokens = [];
function processNextToken() {
self.peekNextToken(function(err,data) {
if(err) {
return callback(err);
}
if(data === null || data.substr(0,2) === "--") {
return callback(null,tokens);
} else {
self.getNextToken(function(err,data) {
if(err) {
return callback(err);
}
tokens.push(data);
processNextToken();
});
}
});
}
processNextToken();
};
/*
Returns a specified stringified token, or null if the index does not exist. Callback invoked(err,data)
*/
Commander.prototype.stringifyToken = function(index,callback) {
var self = this;
if(index >= this.commandTokens.length) {
return callback(null,null);
} else {
var token = this.commandTokens[index];
if(typeof token === "string") {
return callback(null,token);
} else if(typeof token === "object") {
switch(token.type) {
case "filter":
return callback(null,this.wiki.filterTiddlers(token.text)[0] || "");
case "wikify":
return callback(null,this.wiki.renderText("text/plain","text/vnd.tiddlywiki",token.text,{
parseAsInline: false,
parentWidget: $tw.rootWidget
}));
case "prompt":
$tw.utils.terminalQuestion({
promptText: token.prompt || "Please enter a value",
defaultResult: token["default"] || "",
callback: function(err,userText) {
if(err) {
callback(err);
} else {
if(token.transformFilter) {
userText = self.wiki.filterTiddlers(token.transformFilter,null,self.wiki.makeTiddlerIterator([userText]))[0] || "";
}
callback(null,userText);
}
},
input: self.streams.input,
output: self.streams.output,
});
break;
default:
throw "Unknown dynamic command token type: " + token.type;
}
}
}
};
/*
Execute the next command in the sequence
*/
Commander.prototype.executeNextCommand = function() {
var self = this;
// Invoke the callback if there are no more commands
if(this.nextToken >= this.commandTokens.length) {
this.callback(null);
} else {
// Get and check the command token
var commandName = this.commandTokens[this.nextToken++];
// Get and check the command token
var commandName = this.getNextToken(function(err,commandName) {
if(err) {
return self.callback(err);
}
if(!commandName) {
return self.callback(null);
}
if(commandName.substr(0,2) !== "--") {
this.callback("Missing command: " + commandName);
return self.callback("Missing command: " + commandName);
} else {
commandName = commandName.substr(2); // Trim off the --
// Accumulate the parameters to the command
var params = [];
while(this.nextToken < this.commandTokens.length &&
this.commandTokens[this.nextToken].substr(0,2) !== "--") {
params.push(this.commandTokens[this.nextToken++]);
}
// Get the command info
var command = $tw.commands[commandName],
c,err;
if(!command) {
this.callback("Unknown command: " + commandName);
} else {
if(this.verbose) {
this.streams.output.write("Executing command: " + commandName + " " + params.join(" ") + "\n");
// Get the parameters to the command
self.getTokensUntilCommand(function(err,params) {
if(err) {
return self.callback(err);
}
// Parse named parameters if required
if(command.info.namedParameterMode) {
params = this.extractNamedParameters(params,command.info.mandatoryParameters);
if(typeof params === "string") {
return this.callback(params);
}
}
if(command.info.synchronous) {
// Synchronous command
c = new command.Command(params,this);
err = c.execute();
if(err) {
this.callback(err);
} else {
this.executeNextCommand();
}
var command = $tw.commands[commandName],
c,err;
if(!command) {
self.callback("Unknown command: " + commandName);
} else {
// Asynchronous command
c = new command.Command(params,this,function(err) {
if(self.verbose) {
self.streams.output.write("Executing command: " + commandName + " " + params.join(" ") + "\n");
}
// Parse named parameters if required
if(command.info.namedParameterMode) {
params = self.extractNamedParameters(params,command.info.mandatoryParameters);
if(typeof params === "string") {
return self.callback(params);
}
}
if(command.info.synchronous) {
// Synchronous command
c = new command.Command(params,self);
err = c.execute();
if(err) {
self.callback(err);
} else {
self.executeNextCommand();
}
});
err = c.execute();
if(err) {
this.callback(err);
} else {
// Asynchronous command
c = new command.Command(params,self,function(err) {
if(err) {
self.callback(err);
} else {
self.executeNextCommand();
}
});
err = c.execute();
if(err) {
self.callback(err);
}
}
}
}
});
}
}
});
};
/*

View File

@@ -0,0 +1,32 @@
/*\
title: $:/core/modules/commands/echo.js
type: application/javascript
module-type: command
Command to echo input parameters
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.info = {
name: "echo",
synchronous: true
};
var Command = function(params,commander) {
this.params = params;
this.commander = commander;
};
Command.prototype.execute = function() {
this.commander.streams.output.write(JSON.stringify(this.params,null,4) + "\n");
return null;
};
exports.Command = Command;
})();

View File

@@ -69,9 +69,6 @@ function FramedEngine(options) {
if(this.widget.editRows) {
this.domNode.setAttribute("rows",this.widget.editRows);
}
if(this.widget.editDir) {
this.domNode.setAttribute("dir",this.widget.editDir);
}
if(this.widget.editTabIndex) {
this.iframeNode.setAttribute("tabindex",this.widget.editTabIndex);
}
@@ -120,7 +117,6 @@ FramedEngine.prototype.copyStyles = function() {
this.domNode.style["-webkit-text-fill-color"] = "currentcolor";
// Ensure we don't force text direction to LTR
this.domNode.style.removeProperty("direction");
this.domNode.style.removeProperty("unicodeBidi");
};
/*

View File

@@ -49,9 +49,6 @@ function SimpleEngine(options) {
if(this.widget.editTabIndex) {
this.domNode.setAttribute("tabindex",this.widget.editTabIndex);
}
if(this.widget.editDir) {
this.domNode.setAttribute("dir",this.widget.editDir);
}
if(this.widget.editAutoComplete) {
this.domNode.setAttribute("autocomplete",this.widget.editAutoComplete);
}

View File

@@ -180,7 +180,6 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
this.editFocusSelectFromStart = $tw.utils.parseNumber(this.getAttribute("focusSelectFromStart","0"));
this.editFocusSelectFromEnd = $tw.utils.parseNumber(this.getAttribute("focusSelectFromEnd","0"));
this.editTabIndex = this.getAttribute("tabindex");
this.editDir = this.getAttribute("dir");
this.editCancelPopups = this.getAttribute("cancelPopups","") === "yes";
this.editInputActions = this.getAttribute("inputActions");
this.editRefreshTitle = this.getAttribute("refreshTitle");
@@ -218,7 +217,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
EditTextWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
// Completely rerender if any of our attributes have changed
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedAttributes.dir || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE] || changedTiddlers["$:/palette"] || changedAttributes.disabled || changedAttributes.fileDrop) {
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE] || changedTiddlers["$:/palette"] || changedAttributes.disabled || changedAttributes.fileDrop) {
this.refreshSelf();
return true;
} else if (changedTiddlers[this.editRefreshTitle]) {

View File

@@ -248,7 +248,8 @@ exports.compileFilter = function(filterString) {
// Create a function for the chain of operators in the operation
var operationSubFunction = function(source,widget) {
var accumulator = source,
results = [];
results = [],
currTiddlerTitle = widget && widget.getVariable("currentTiddler");
$tw.utils.each(operation.operators,function(operator) {
var operands = [],
operatorFunction;
@@ -264,7 +265,6 @@ exports.compileFilter = function(filterString) {
}
$tw.utils.each(operator.operands,function(operand) {
if(operand.indirect) {
var currTiddlerTitle = widget && widget.getVariable("currentTiddler");
operand.value = self.getTextReference(operand.text,"",currTiddlerTitle);
} else if(operand.variable) {
var varTree = $tw.utils.parseFilterVariable(operand.text);

View File

@@ -6,6 +6,7 @@ module-type: filteroperator
Filter operator for returning all the backtranscludes from a tiddler
\*/
(function(){
"use strict";
/*
@@ -18,3 +19,5 @@ exports.backtranscludes = function(source,operator,options) {
});
return results.makeTiddlerIterator(options.wiki);
};
})();

View File

@@ -6,6 +6,7 @@ module-type: filteroperator
Filter operator for returning all the transcludes from a tiddler
\*/
(function(){
"use strict";
/*
@@ -18,3 +19,5 @@ exports.transcludes = function(source,operator,options) {
});
return results.makeTiddlerIterator(options.wiki);
};
})();

View File

@@ -10,6 +10,7 @@ This is a <%if [{something}] %>Elephant<%elseif [{else}] %>Pelican<%else%>Crocod
```
\*/
(function(){
"use strict";
exports.name = "conditional";
@@ -112,3 +113,5 @@ exports.parseIfClause = function(filterCondition) {
// Return the parse tree node
return [listWidget];
};
})();

View File

@@ -1,51 +0,0 @@
/*\
title: $:/core/modules/parsers/wikiparser/rules/dir.js
type: application/javascript
module-type: wikirule
Wiki pragma rule for specifying text direction
```
\dir rtl
\dir ltr
\dir auto
```
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "dir";
exports.types = {pragma: true};
/*
Instantiate parse rule
*/
exports.init = function(parser) {
this.parser = parser;
// Regexp to match
this.matchRegExp = /^\\dir[^\S\n]*(\S+)\r?\n/mg;
};
/*
Parse the most recent match
*/
exports.parse = function() {
var self = this;
// Move past the pragma invocation
this.parser.pos = this.matchRegExp.lastIndex;
// Parse tree nodes to return
return [{
type: "element",
tag: this.parser.parseAsInline ? "span" : "div",
attributes: {
dir: {type: "string", value: this.match[1]}
},
children: []
}];
};
})();

View File

@@ -50,7 +50,7 @@ exports.parse = function() {
var reEnd;
if(this.match[5]) {
// If so, it is a multiline definition and the end of the body is marked with \end
reEnd = new RegExp("((:?^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[2]) + ")?\\s*?(?:$|\\r?\\n))","mg");
reEnd = new RegExp("((:?^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[2]) + ")?(?:$|\\r?\\n))","mg");
} else {
// Otherwise, the end of the definition is marked by the end of the line
reEnd = /($|\r?\n)/mg;

View File

@@ -55,7 +55,7 @@ exports.parse = function() {
var reEnd;
if(this.match[3]) {
// If so, it is a multiline definition and the end of the body is marked with \end
reEnd = new RegExp("((?:^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?\\s*?(?:$|\\r?\\n))","mg");
reEnd = new RegExp("((?:^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?(?:$|\\r?\\n))","mg");
} else {
// Otherwise, the end of the definition is marked by the end of the line
reEnd = /($|\r?\n)/mg;

View File

@@ -33,7 +33,6 @@ options: see below:
*/
var WikiParser = function(type,text,options) {
this.wiki = options.wiki;
this.parseAsInline = options.parseAsInline;
var self = this;
// Check for an externally linked tiddler
if($tw.browser && (text || "") === "" && options._canonical_uri) {
@@ -257,7 +256,7 @@ WikiParser.prototype.parseBlock = function(terminatorRegExpString) {
var start = this.pos;
var children = this.parseInlineRun(terminatorRegExp);
var end = this.pos;
return [{type: "element", tag: "p", attributes: {dir: {type: "string", value: "auto"}}, children: children, start: start, end: end }];
return [{type: "element", tag: "p", children: children, start: start, end: end }];
};
/*

View File

@@ -44,7 +44,7 @@ UploadSaver.prototype.save = function(text,method,callback) {
}
// Construct the url if not provided
if(!url) {
url = "http://" + username + ".tiddlyhost.com/";
url = "http://" + username + ".tiddlyspot.com/store.cgi";
}
// Assemble the header
var boundary = "---------------------------" + "AaB03x";

View File

@@ -26,7 +26,11 @@ exports.startup = function(callback) {
callback();
},
$tw.wiki,
{output: process.stdout, error: process.stderr}
{
output: process.stdout,
input: process.stdin,
error: process.stderr
}
);
commander.execute();
};

View File

@@ -74,8 +74,9 @@ exports.startup = function() {
$tw.rootWidget.addEventListener("tm-copy-to-clipboard",function(event) {
$tw.utils.copyToClipboard(event.param,{
successNotification: event.paramObject && event.paramObject.successNotification,
failureNotification: event.paramObject && event.paramObject.failureNotification
});
failureNotification: event.paramObject && event.paramObject.failureNotification,
plainText: event.paramObject && event.paramObject.plainText
},event.paramObject && event.paramObject.type);
});
// Install the tm-focus-selector message
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {

View File

@@ -265,9 +265,10 @@ exports.copyStyles = function(srcDomNode,dstDomNode) {
/*
Copy plain text to the clipboard on browsers that support it
*/
exports.copyToClipboard = function(text,options) {
options = options || {};
text = text || "";
exports.copyToClipboard = function(text,options,type) {
var text = text || "";
var options = options || {};
var type = type || "text/plain";
var textArea = document.createElement("textarea");
textArea.style.position = "fixed";
textArea.style.top = 0;
@@ -280,10 +281,16 @@ exports.copyToClipboard = function(text,options) {
textArea.style.outline = "none";
textArea.style.boxShadow = "none";
textArea.style.background = "transparent";
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
textArea.setSelectionRange(0,text.length);
textArea.addEventListener("copy",function(event) {
event.preventDefault();
if (options.plainText) {
event.clipboardData.setData("text/plain",options.plainText);
}
event.clipboardData.setData(type,text);
});
var succeeded = false;
try {
succeeded = document.execCommand("copy");

View File

@@ -143,7 +143,6 @@ Modal.prototype.display = function(title,options) {
link.setAttribute("href",tiddler.fields.help);
link.setAttribute("target","_blank");
link.setAttribute("rel","noopener noreferrer");
link.setAttribute("class","tc-tiddlylink-external");
link.appendChild(this.srcDocument.createTextNode("Help"));
modalFooterHelp.appendChild(link);
modalFooterHelp.style.float = "left";

View File

@@ -6,6 +6,8 @@ module-type: utils
Custom errors for TiddlyWiki.
\*/
(function(){
function TranscludeRecursionError() {
Error.apply(this,arguments);
this.signatures = Object.create(null);
@@ -17,3 +19,5 @@ TranscludeRecursionError.MAX_WIDGET_TREE_DEPTH = 1000;
TranscludeRecursionError.prototype = Object.create(Error);
exports.TranscludeRecursionError = TranscludeRecursionError;
})();

View File

@@ -6,6 +6,7 @@ module-type: utils
Utilities for working with the TiddlyWiki repository file structure
\*/
(function(){
"use strict";
/*
@@ -44,3 +45,5 @@ exports.getAllPlugins = function(options) {
$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,options.ignoreEnvironmentVariables ? undefined : $tw.config.languagesEnvVar),collectPlugins);
return tiddlers;
};
})();

View File

@@ -18,29 +18,127 @@ exports.log = function(text,colour) {
console.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);
};
exports.terminalColour = function(colour) {
/*
Prompts the user for input and handles the input using a callback function. Options:
promptText: Prompt text
defaultResult: Default result returned if the user types enter
callback: callback invoked (err,usertext)
input: optional input stream
output: optional output stream
*/
exports.terminalQuestion = function(options) {
var readline = require("readline"),
promptText = options.promptText,
defaultResult = options.defaultResult,
callback = options.callback,
inputStream = options.input || process.stdin,
outputStream = options.output || process.stdout;
var rl = readline.createInterface({
input: inputStream,
output: outputStream
});
// Handle errors on the input stream
rl.on("error",function(err) {
rl.close();
callback(err); // Pass the error to the callback
});
// Prompt user for input
var prompt = exports.terminalColourText(promptText,["yellow","bold"]);
if(defaultResult) {
prompt += " ";
prompt += exports.terminalColourText("(" + defaultResult + ")",["blue","underline"]);
}
prompt += exports.terminalColourText(": ");
rl.question(prompt,function(input) {
// Use default value for the empty string
if(input === "" && defaultResult) {
input = defaultResult;
}
callback(null,input); // Pass the input to the callback
rl.close();
});
};
/*
Wrap a string in colour codes. Colour can be an array
*/
exports.terminalColourText = function(text,colour) {
if(!$tw.utils.isArray(colour)) {
colour = [colour];
}
$tw.utils.each(colour,function(code) {
text = exports.terminalColour(code) + text + exports.terminalColour(code,true);
});
return text;
};
/*
Returns a terminal colour string. Set "closed" to true to return the closing code
*/
exports.terminalColour = function(colour,closed) {
if(!$tw.browser && $tw.node && process.stdout.isTTY) {
if(colour) {
var code = exports.terminalColourLookup[colour];
if(code) {
return "\x1b[" + code + "m";
return "\x1b[" + code[closed ? 1 : 0] + "m";
}
} else {
return "\x1b[0m"; // Cancel colour
}
return "\x1b[0m"; // Reset
}
return "";
};
exports.terminalColourLookup = {
"black": "0;30",
"red": "0;31",
"green": "0;32",
"brown/orange": "0;33",
"blue": "0;34",
"purple": "0;35",
"cyan": "0;36",
"light gray": "0;37"
// Modifiers
"reset": [0,0],
"bold": [1,22],
"dim": [2,22],
"italic": [3,23],
"underline": [4,24],
"overline": [53,55],
"inverse": [7,27],
"hidden": [8,28],
"strikethrough": [9,29],
// Colours
"black": [30,39],
"red": [31,39],
"green": [32,39],
"yellow": [33,39],
"brown/orange": [33,39], // Backwards compatbility
"blue": [34,39],
"magenta": [35,39], // Backwards compatbility
"purple": [35,39],
"cyan": [36,39],
"white": [37,39],
"gray": [90,39],
"light red": [91,39],
"light green": [92,39],
"light yellow": [93,39],
"light blue": [94,39],
"light magenta": [95,39],
"light purple": [95,39], // Backwards compatbility
"light cyan": [96,39],
"light gray": [97,39],
// Background colours
"black background": [40,49],
"red background": [41,49],
"green background": [42,49],
"yellow background": [43,49],
"brown/orange background": [43,49], // Backwards compatbility
"blue background": [44,49],
"magenta background": [45,49], // Backwards compatbility
"purple background": [45,49],
"cyan background": [46,49],
"white background": [47,49],
"gray background": [100,49],
"light red background": [101,49],
"light green background": [102,49],
"light yellow background": [103,49],
"light blue background": [104,49],
"light magenta background": [105,49],
"light purple background": [105,49], // Backwards compatbility
"light cyan background": [106,49],
"light gray background": [107,49]
};
/*

View File

@@ -6,6 +6,7 @@ module-type: widget
Widget to dynamically represent one or more tiddlers
\*/
(function(){
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
@@ -186,3 +187,5 @@ function hasPayloadChanged(a,b) {
}
exports.data = DataWidget;
})();

View File

@@ -519,3 +519,36 @@ ListJoinWidget.prototype.render = function() {}
ListJoinWidget.prototype.refresh = function() { return false; }
exports["list-join"] = ListJoinWidget;
/*
Make <$list-template> and <$list-empty> widgets that do nothing
*/
var ListTemplateWidget = function(parseTreeNode,options) {
// Main initialisation inherited from widget.js
this.initialise(parseTreeNode,options);
};
ListTemplateWidget.prototype = new Widget();
ListTemplateWidget.prototype.render = function() {}
ListTemplateWidget.prototype.refresh = function() { return false; }
exports["list-template"] = ListTemplateWidget;
var ListEmptyWidget = function(parseTreeNode,options) {
// Main initialisation inherited from widget.js
this.initialise(parseTreeNode,options);
};
ListEmptyWidget.prototype = new Widget();
ListEmptyWidget.prototype.render = function() {}
ListEmptyWidget.prototype.refresh = function() { return false; }
exports["list-empty"] = ListEmptyWidget;
var ListJoinWidget = function(parseTreeNode,options) {
// Main initialisation inherited from widget.js
this.initialise(parseTreeNode,options);
};
ListJoinWidget.prototype = new Widget();
ListJoinWidget.prototype.render = function() {}
ListJoinWidget.prototype.refresh = function() { return false; }
exports["list-join"] = ListJoinWidget;

View File

@@ -39,9 +39,6 @@ RevealWidget.prototype.render = function(parent,nextSibling) {
if(this.style) {
domNode.setAttribute("style",this.style);
}
if(this.direction) {
domNode.setAttribute("dir",this.direction);
}
parent.insertBefore(domNode,nextSibling);
this.renderChildren(domNode,null);
if(!domNode.isTiddlyWikiFakeDom && this.type === "popup" && this.isOpen) {
@@ -123,7 +120,6 @@ RevealWidget.prototype.execute = function() {
this["default"] = this.getAttribute("default","");
this.animate = this.getAttribute("animate","no");
this.retain = this.getAttribute("retain","no");
this.direction = this.getAttribute("dir");
this.openAnimation = this.animate === "no" ? undefined : "open";
this.closeAnimation = this.animate === "no" ? undefined : "close";
this.updatePopupPosition = this.getAttribute("updatePopupPosition","no") === "yes";
@@ -215,7 +211,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
*/
RevealWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes["default"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex || changedAttributes.dir) {
if(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes["default"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {
this.refreshSelf();
return true;
} else {

View File

@@ -6,6 +6,7 @@ module-type: widget
Widget to display a test case
\*/
(function(){
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
@@ -159,3 +160,5 @@ TestCaseWidget.prototype.refresh = function(changedTiddlers) {
};
exports["testcase"] = TestCaseWidget;
})();

View File

@@ -267,9 +267,6 @@ TranscludeWidget.prototype.parseTransclusionTarget = function(parseAsInline) {
parser.tree[0] = {
type: "element",
tag: "p",
attributes: {
dir: {type: "string", value: "auto"}
},
children: [{
type: "text",
text: this.transcludeFunctionResult

View File

@@ -1173,7 +1173,7 @@ exports.getSubstitutedText = function(text,widget,options) {
output = $tw.utils.replaceString(output,new RegExp("\\$" + $tw.utils.escapeRegExp(substitute.name) + "\\$","mg"),substitute.value);
});
// Substitute any variable references with their values
return output.replace(/\$\((.+?)\)\$/g, function(match,varname) {
return output.replace(/\$\(([^\)\$]+)\)\$/g, function(match,varname) {
return widget.getVariable(varname,{defaultValue: ""})
});
};

View File

@@ -18,7 +18,7 @@ code-background: #f7f7f9
code-border: #e1e1e8
code-foreground: #dd1144
dirty-indicator: #ff0000
download-background: #3aafaf
download-background: #66cccc
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -26,7 +26,7 @@ dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #fff
dropdown-tab-background: #ececec
dropzone-background: #00d900
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
@@ -52,30 +52,26 @@ notification-border: #999999
page-background: #ffffff
pre-background: #f5f5f5
pre-border: #cccccc
primary: #6387f1
primary: #7897f3
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #aaaaaa
sidebar-foreground-shadow: #ffffff
sidebar-controls-foreground: #ccc
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #aaaaaa
sidebar-muted-foreground: #c0c0c0
sidebar-tab-background-selected: #ffffff
sidebar-tab-background: <<colour tab-background>>
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: <<colour tab-divider>>
sidebar-tab-foreground-selected: <<colour tab-foreground>>
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #444444
sidebar-tiddler-link-foreground: <<colour primary>>
sidebar-tiddler-link-foreground: #7897f3
site-title-foreground: <<colour tiddler-title-foreground>>
stability-stable: #008000
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #0000ff
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #eeeeee
@@ -87,10 +83,10 @@ tab-foreground: #666666
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #ffd5aa
tag-foreground: #000000
tag-background: #ffeedd
tag-foreground: #000
tiddler-background: <<colour background>>
tiddler-border: #eeeeee
tiddler-border: #eee
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
@@ -101,7 +97,7 @@ tiddler-editor-fields-even: #e0e8e0
tiddler-editor-fields-odd: #f0f4f0
tiddler-info-background: #f8f8f8
tiddler-info-border: #dddddd
tiddler-info-tab-background: <<colour tiddler-info-background>>
tiddler-info-tab-background: #f8f8f8
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #c0c0c0
@@ -115,6 +111,5 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #cccccc
untagged-background: #999999
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -85,7 +85,6 @@ table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #d5ad34
tag-foreground: #ffffff
testcase-accent-level-1: #b1b3e3
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888

View File

@@ -5,11 +5,11 @@ description: High contrast and unambiguous (dark version)
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
alert-background: #ff0000
alert-background: #f00
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #880000
background: #000000
alert-muted-foreground: #800
background: #000
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour background>>
button-foreground: <<colour foreground>>
@@ -17,24 +17,24 @@ button-border: <<colour foreground>>
code-background: <<colour background>>
code-border: <<colour foreground>>
code-foreground: <<colour foreground>>
dirty-indicator: #ff0000
download-background: #48ff48
dirty-indicator: #f00
download-background: #080
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #868686
dropdown-tab-background: #515151
dropzone-background: #1aff1a
dropdown-tab-background-selected: <<colour foreground>>
dropdown-tab-background: <<colour foreground>>
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #5353ff
external-link-foreground: #9595ff
external-link-foreground-visited: #00a
external-link-foreground: #00e
footnote-target-background: #4c4c4c
foreground: #ffffff
foreground: #fff
highlight-background: #ffff00
highlight-foreground: #000000
message-background: <<colour foreground>>
@@ -52,11 +52,11 @@ notification-border: <<colour foreground>>
page-background: <<colour background>>
pre-background: <<colour background>>
pre-border: <<colour foreground>>
primary: #8a8aff
primary: #00f
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #ffff00
sidebar-controls-foreground-hover: <<colour background>>
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground: <<colour foreground>>
@@ -72,10 +72,6 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
sidebar-tiddler-link-foreground: <<colour primary>>
site-title-foreground: <<colour tiddler-title-foreground>>
stability-stable: #00f400
stability-experimental: #ffaf1c
stability-deprecated: #ff2b2b
stability-legacy: #ceceff
static-alert-foreground: #aaaaaa
tab-background-selected: <<colour background>>
tab-background: <<colour foreground>>
@@ -85,15 +81,14 @@ tab-divider: <<colour foreground>>
tab-foreground-selected: <<colour foreground>>
tab-foreground: <<colour background>>
table-border: #dddddd
table-footer-background: #444444
table-header-background: #444444
tag-background: #ffffff
tag-foreground: #000000
testcase-accent-level-1: #144a8c
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #fff
tag-foreground: #000
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #ae0000
tiddler-controls-foreground-selected: #fdd
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
@@ -107,15 +102,14 @@ tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour foreground>>
tiddler-title-foreground: <<colour foreground>>
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour foreground>>
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -5,7 +5,7 @@ description: High contrast and unambiguous (light version)
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
alert-background: #ff4a4a
alert-background: #f00
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #800
@@ -18,13 +18,13 @@ code-background: <<colour background>>
code-border: <<colour foreground>>
code-foreground: <<colour foreground>>
dirty-indicator: #f00
download-background: #008200
download-background: #080
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: <<colour background>>
dropdown-tab-background-selected: <<colour foreground>>
dropdown-tab-background: <<colour foreground>>
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
@@ -52,13 +52,13 @@ notification-border: <<colour foreground>>
page-background: <<colour background>>
pre-background: <<colour background>>
pre-border: <<colour foreground>>
primary: #0000ff
primary: #00f
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #606060
sidebar-controls-foreground-hover: <<colour background>>
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: #000000
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground: <<colour foreground>>
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: <<colour foreground>>
@@ -72,10 +72,6 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
sidebar-tiddler-link-foreground: <<colour primary>>
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #ff0000
stability-experimental: #b37400
stability-legacy: #000075
stability-stable: #008000
static-alert-foreground: #aaaaaa
tab-background-selected: <<colour background>>
tab-background: <<colour foreground>>
@@ -92,7 +88,7 @@ tag-foreground: #fff
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #c5abf3
tiddler-controls-foreground-selected: #fdd
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
@@ -117,4 +113,3 @@ toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour foreground>>
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -5,30 +5,30 @@ name: Cupertino Dark
description: A macOS inspired dark palette
type: application/x-tiddler-dictionary
alert-background: #ff4b42
alert-border: #950700
alert-background: #FF453A
alert-border: #FF453A
alert-highlight: #FFD60A
alert-muted-foreground: #323234
alert-muted-foreground: <<colour muted-foreground>>
background: #282828
blockquote-bar: #8d8d8d
blockquote-bar: <<colour page-background>>
button-foreground: <<colour foreground>>
code-background: <<colour pre-background>>
code-border: <<colour pre-border>>
code-foreground: #c7c7c7
code-foreground: rgba(255, 255, 255, 0.54)
dirty-indicator: #FF453A
download-background: <<colour primary>>
download-foreground: <<colour background>>
download-foreground: <<colour foreground>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour tiddler-info-background>>
dropdown-border: <<colour dropdown-background>>
dropdown-tab-background-selected: #3F638B
dropdown-tab-background: #707070
dropdown-tab-background: #323232
dropzone-background: #30D158
external-link-background-hover: transparent
external-link-background-visited: transparent
external-link-background: transparent
external-link-foreground-hover: #9511d5
external-link-foreground-hover:
external-link-foreground-visited: #BF5AF2
external-link-foreground: #32D74B
footnote-target-background: #747474
@@ -60,36 +60,31 @@ sidebar-controls-foreground-hover: #FF9F0A
sidebar-controls-foreground: #8E8E93
sidebar-foreground-shadow: transparent
sidebar-foreground: rgba(255, 255, 255, 0.54)
sidebar-muted-foreground-hover: #acacac
sidebar-muted-foreground: #787878
sidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)
sidebar-muted-foreground: rgba(255, 255, 255, 0.38)
sidebar-tab-background-selected: #3F638B
sidebar-tab-background: <<colour background>>
sidebar-tab-border-selected: #313131
sidebar-tab-border: #404040
sidebar-tab-divider: #282828
sidebar-tab-foreground-selected: #d2d2d2
sidebar-tab-foreground: #d2d2d2
sidebar-tiddler-link-foreground-hover: #535353
sidebar-tiddler-link-foreground: #949494
sidebar-tab-border-selected: <<colour background>>
sidebar-tab-border: <<colour background>>
sidebar-tab-divider: <<colour background>>
sidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)
sidebar-tab-foreground: rgba(255, 255, 255, 0.54)
sidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)
sidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)
site-title-foreground: #ffffff
stability-stable: #009f00
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #6c6cff
static-alert-foreground: #B4B4B4
tab-background-selected: #3F638B
tab-background: <<colour page-background>>
tab-border-selected: <<colour page-background>>
tab-border: #4a4a4a
tab-border: <<colour page-background>>
tab-divider: <<colour page-background>>
tab-foreground-selected: #ffffff
tab-foreground: #adadad
tab-foreground-selected: rgba(255, 255, 255, 0.87)
tab-foreground: rgba(255, 255, 255, 0.54)
table-border: #464646
table-footer-background: #7f7f7f
table-header-background: <<colour table-border>>
table-footer-background: <<colour tiddler-editor-fields-odd>>
table-header-background: <<colour tiddler-editor-fields-even>>
tag-background: #48484A
tag-foreground: #323232
testcase-accent-level-1: #345173
tiddler-background: <<colour background>>
tiddler-border: transparent
tiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>
@@ -97,9 +92,9 @@ tiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover
tiddler-controls-foreground: #48484A
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image:
tiddler-editor-border: #444444
tiddler-editor-fields-even: #1f1f1f
tiddler-editor-fields-odd: #464646
tiddler-editor-border: rgba(255, 255, 255, 0.08)
tiddler-editor-fields-even: rgba(255, 255, 255, 0.1)
tiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)
tiddler-info-background: #1E1E1E
tiddler-info-border: #1E1E1E
tiddler-info-tab-background: #3F638B
@@ -116,8 +111,8 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #5f5f5f
very-muted-foreground: #3f3f3f
untagged-background: <<colour very-muted-foreground>>
very-muted-foreground: #464646
selection-background: #3F638B
selection-foreground: #ffffff
wikilist-background: <<colour page-background>>
@@ -136,4 +131,3 @@ wikilist-title: <<colour foreground>>
wikilist-title-svg: <<colour foreground>>
wikilist-toolbar-foreground: <<colour foreground>>
wikilist-url: <<colour muted-foreground>>
network-activity-foreground: <<colour primary>>

View File

@@ -20,7 +20,7 @@ code-background: #f7f7f9
code-border: #e1e1e8
code-foreground: #dd1144
dirty-indicator: #ff0000
download-background: #30b830
download-background: #34c734
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -58,26 +58,22 @@ primary: #5778d8
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #a6a6ff
sidebar-controls-foreground: #eeeeee
sidebar-foreground-shadow: transparent
sidebar-foreground: #eeeeee
sidebar-muted-foreground-hover: #999999
sidebar-muted-foreground: #eeeeee
sidebar-tab-background-selected: <<colour page-background>>
sidebar-tab-background: #e0e0e0
sidebar-controls-foreground-hover: #ccf
sidebar-controls-foreground: #fff
sidebar-foreground-shadow: rgba(0,0,0, 0.5)
sidebar-foreground: #fff
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #eee
sidebar-tab-background-selected: rgba(255,255,255, 0.8)
sidebar-tab-background: rgba(255,255,255, 0.4)
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: #e4e4e4
sidebar-tab-foreground-selected: #ddddff
sidebar-tab-divider: rgba(255,255,255, 0.2)
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #aaaaff
sidebar-tiddler-link-foreground: #ddddff
site-title-foreground: #ffffff
stability-stable: #008000
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #0000ff
sidebar-tiddler-link-foreground-hover: #aaf
sidebar-tiddler-link-foreground: #ddf
site-title-foreground: #fff
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #d8d8d8
@@ -94,7 +90,7 @@ tag-foreground: #ffffff
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #6a6aff
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
tiddler-editor-background: #f8f8f8
tiddler-editor-border-image: #ffffff
@@ -119,4 +115,3 @@ toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
network-activity-foreground: #11ff23

View File

@@ -22,9 +22,9 @@ diff-equal-foreground: <<colour foreground>>
diff-insert-background: #91c093
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: #d3d2cb
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #ad3434
download-background: #5eae62
download-background: #6ca16c
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -32,13 +32,14 @@ dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #E9E0C7
dropdown-tab-background: #BAB29C
dropzone-background: #00c600
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: #7474ba
external-link-foreground-hover: inherit
external-link-foreground-visited: #313163
external-link-foreground: #555592
footnote-target-background: #fff7d9
foreground: #2D2A23
highlight-background: #ffff00
highlight-foreground: #000000
@@ -70,7 +71,7 @@ sidebar-controls-foreground: #867F69
sidebar-foreground-shadow: transparent
sidebar-foreground: #867F69
sidebar-muted-foreground-hover: #706A58
sidebar-muted-foreground: #aba081
sidebar-muted-foreground: #B3A98C
sidebar-tab-background-selected: #e0d3af
sidebar-tab-background: #A6A193
sidebar-tab-border-selected: #C3BAA1
@@ -81,10 +82,6 @@ sidebar-tab-foreground: #2D2A23
sidebar-tiddler-link-foreground-hover: #433F35
sidebar-tiddler-link-foreground: #706A58
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
static-alert-foreground: #A6A193
tab-background-selected: #E9E0C7
tab-background: #A6A193
@@ -98,7 +95,6 @@ table-footer-background: #8A8885
table-header-background: #B0AA98
tag-background: #706A58
tag-foreground: #E3D7B7
testcase-accent-level-1: #b3adc9
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #9D947B
@@ -144,4 +140,3 @@ wikilist-toolbar-foreground: #2D2A23
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #A6A193
wikilist-button-foreground: #161512
network-activity-foreground: <<colour primary>>

View File

@@ -9,13 +9,13 @@ license: https://github.com/morhetz/gruvbox
alert-background: #cc241d
alert-border: #cc241d
alert-highlight: #d79921
alert-muted-foreground: #272321
alert-muted-foreground: #504945
background: #3c3836
blockquote-bar: <<colour muted-foreground>>
button-foreground: <<colour foreground>>
code-background: #504945
code-border: #504945
code-foreground: #fc5e4b
code-foreground: #fb4934
diff-delete-background: #fb4934
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
@@ -25,7 +25,7 @@ diff-insert-foreground: <<colour background>>
diff-invisible-background: #ffff97
diff-invisible-foreground: #444347
dirty-indicator: #fb4934
download-background: #1daf24
download-background: #b8bb26
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -46,53 +46,52 @@ highlight-background: #ffff79
highlight-foreground: #000000
menubar-background: #504945
menubar-foreground: <<colour foreground>>
message-background: #b4c9c1
message-background: #83a598
message-border: #83a598
message-foreground: #3c3836
modal-backdrop: #625a57
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #504945
modal-footer-background: #3c3836
modal-footer-border: #3c3836
modal-header-border: #3c3836
muted-foreground: #d5c4a1
network-activity-foreground: <<colour primary>>
notification-background: <<colour primary>>
notification-border: <<colour primary>>
page-background: #282828
pre-background: #504945
pre-border: #504945
primary: #da9921
primary: #d79921
select-tag-background: #665c54
select-tag-foreground: <<colour foreground>>
selection-background: #458588
selection-foreground: <<colour foreground>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #e3e0dd
sidebar-controls-foreground: #978b84
sidebar-controls-foreground-hover: #7c6f64
sidebar-controls-foreground: #504945
sidebar-foreground-shadow: transparent
sidebar-foreground: #fbf1c7
sidebar-muted-foreground-hover: <<colour sidebar-controls-foreground-hover>>
sidebar-muted-foreground: <<colour sidebar-controls-foreground>>
sidebar-muted-foreground-hover: #7c6f64
sidebar-muted-foreground: #504945
sidebar-tab-background-selected: #bdae93
sidebar-tab-background: #3c3836
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: #bdae93
sidebar-tab-divider: <<colour page-background>>
sidebar-tab-foreground-selected: <<colour page-background>>
sidebar-tab-foreground-selected: #282828
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #458588
sidebar-tiddler-link-foreground: #98971a
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #cc241d
stability-experimental: #b37d1c
stability-legacy: #529ca0
stability-stable: #649618
stability-experimental: #d79921
stability-legacy: #458588
stability-stable: #98971a
static-alert-foreground: #B48EAD
tab-background-selected: #ebdbb2
tab-background: #665c54
tab-border-selected: <<colour tab-background-selected>>
tab-border: #82746a
tab-border-selected: #665c54
tab-border: #665c54
tab-divider: #bdae93
tab-foreground-selected: #282828
tab-foreground: #ebdbb2
@@ -101,7 +100,6 @@ table-footer-background: #665c54
table-header-background: #504945
tag-background: #d3869b
tag-foreground: #282828
testcase-accent-level-1: #456d88
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #7c6f64
@@ -128,7 +126,7 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #887b75
untagged-background: #504945
very-muted-foreground: #bdae93
wikilist-background: <<colour page-background>>
wikilist-button-background: #acacac

View File

@@ -7,15 +7,15 @@ type: application/x-tiddler-dictionary
license: MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md
alert-background: #D08770
alert-border: <<colour alert-background>>
alert-highlight: #a3436f
alert-muted-foreground: #495367
alert-border: #D08770
alert-highlight: #B48EAD
alert-muted-foreground: #4C566A
background: #3b4252
blockquote-bar: <<colour muted-foreground>>
button-foreground: <<colour foreground>>
code-background: #2E3440
code-border: #2E3440
code-foreground: #c7747c
code-foreground: #BF616A
diff-delete-background: #BF616A
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
@@ -48,32 +48,31 @@ menubar-background: #2E3440
menubar-foreground: #d8dee9
message-background: #2E3440
message-border: #2E3440
message-foreground: #6485aa
modal-backdrop: #435678
message-foreground: #547599
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #3b4252
modal-footer-background: #3b4252
modal-footer-border: #3b4252
modal-header-border: #3b4252
muted-foreground: #687693
network-activity-foreground: <<colour primary>>
muted-foreground: #4C566A
notification-background: <<colour primary>>
notification-border: #EBCB8B
page-background: #2e3440
pre-background: #2E3440
pre-border: #2E3440
primary: #7b98bb
primary: #5E81AC
select-tag-background: #3b4252
select-tag-foreground: <<colour foreground>>
selection-background: #52749e
selection-background: #5E81AC
selection-foreground: <<colour foreground>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #D8DEE9
sidebar-controls-foreground: #5e6a84
sidebar-controls-foreground: #4C566A
sidebar-foreground-shadow: transparent
sidebar-foreground: #D8DEE9
sidebar-muted-foreground-hover: #9fa8bb
sidebar-muted-foreground: #6c7b97
sidebar-muted-foreground-hover: #4C566A
sidebar-muted-foreground: #4C566A
sidebar-tab-background-selected: #ECEFF4
sidebar-tab-background: #4C566A
sidebar-tab-border-selected: <<colour tab-border-selected>>
@@ -84,40 +83,39 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #A3BE8C
sidebar-tiddler-link-foreground: #81A1C1
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #ff595e
stability-experimental: #f29d00
stability-legacy: #2ddbca
stability-stable: #04ff04
stability-deprecated: #bf616a
stability-experimental: #d08770
stability-legacy: #88c0d0
stability-stable: #a3be8c
static-alert-foreground: #B48EAD
tab-background-selected: #ECEFF4
tab-background: #4C566A
tab-border-selected: #4C566A
tab-border: #5c6883
tab-border: #4C566A
tab-divider: #4C566A
tab-foreground-selected: #6c7a97
tab-foreground-selected: #4C566A
tab-foreground: #D8DEE9
table-border: #4C566A
table-footer-background: #2e3440
table-header-background: #2e3440
tag-background: #A3BE8C
tag-foreground: #4C566A
testcase-accent-level-1: #455e7d
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover:
tiddler-controls-foreground-selected: #EBCB8B
tiddler-controls-foreground: #5e6a84
tiddler-controls-foreground: #4C566A
tiddler-editor-background: #2e3440
tiddler-editor-border-image: #2e3440
tiddler-editor-border: #232732
tiddler-editor-border: #3b4252
tiddler-editor-fields-even: #2e3440
tiddler-editor-fields-odd: #424a5b
tiddler-editor-fields-odd: #2e3440
tiddler-info-background: #2e3440
tiddler-info-border: #2e3440
tiddler-info-tab-background: #2e3440
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #5c6881
tiddler-subtitle-foreground: #4C566A
tiddler-title-foreground: #81A1C1
toolbar-new-button:
toolbar-options-button:
@@ -140,4 +138,4 @@ wikilist-button-open-hover: #A3BE8C
wikilist-button-reveal: #81A1C1
wikilist-button-reveal-hover: #81A1C1
wikilist-button-remove: #B48EAD
wikilist-button-remove-hover: #B48EAD
wikilist-button-remove-hover: #B48EAD

View File

@@ -11,7 +11,7 @@ alert-highlight: #881122
alert-muted-foreground: #b99e2f
background: #ffffff
blockquote-bar: <<colour muted-foreground>>
button-background: #adadad
button-background:
button-foreground:
button-border:
code-background: #f7f7f9
@@ -47,41 +47,36 @@ modal-footer-background: #f5f5f5
modal-footer-border: #dddddd
modal-header-border: #eeeeee
muted-foreground: #999999
network-activity-foreground: <<colour primary>>
notification-background: #ffffdd
notification-border: #999999
page-background: #000
pre-background: #f5f5f5
pre-border: #cccccc
primary: #cc0000
select-tag-background: <<colour foreground>>
select-tag-foreground: <<colour foreground>>
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #797979
sidebar-controls-foreground: #cacaca
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #ffffff
sidebar-foreground-shadow: rgba(255,255,255, 0.0)
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
sidebar-tab-background-selected: #000000
sidebar-tab-background-selected: #000
sidebar-tab-background: <<colour tab-background>>
sidebar-tab-border-selected: #7c7c7c
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: <<colour tab-divider>>
sidebar-tab-foreground-selected: #ff0909
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #ffbb99
sidebar-tiddler-link-foreground: #cc0000
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #ff0000
stability-experimental: #c07c00
stability-legacy: #0000ff
stability-stable: #008000
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #d8d8d8
tab-border-selected: #d8d8d8
tab-border: #bbbbbb
tab-border: #cccccc
tab-divider: #d8d8d8
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #666666
@@ -90,7 +85,6 @@ table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #ffbb99
tag-foreground: #000
testcase-accent-level-1: #9e9eff
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888
@@ -118,4 +112,4 @@ toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
very-muted-foreground: #888888

View File

@@ -5,24 +5,24 @@ description: Warm, relaxing earth colours
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
# Background Tones
: Background Tones
base03: #002b36
base02: #073642
# Content Tones
: Content Tones
base01: #586e75
base00: #657b83
base0: #839496
base1: #93a1a1
# Background Tones
: Background Tones
base2: #eee8d5
base3: #fdf6e3
# Accent Colors
: Accent Colors
yellow: #b58900
orange: #cb4b16
@@ -33,7 +33,7 @@ blue: #268bd2
cyan: #2aa198
green: #859900
# Additional Tones (RA)
: Additional Tones (RA)
base10: #c0c4bb
violet-muted: #7c81b0
@@ -45,9 +45,9 @@ red-hot: #ff2222
blue-hot: #2298ee
green-hot: #98ee22
# Palette
: Palette
# Do not use colour macro for background and foreground
: Do not use colour macro for background and foreground
background: #fdf6e3
download-foreground: <<colour background>>
dragger-foreground: <<colour background>>
@@ -68,28 +68,24 @@ foreground: #657b83
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground: <<colour foreground>>
# base03
# base02
# base01
: base03
: base02
: base01
alert-muted-foreground: <<colour base01>>
# base00
: base00
code-foreground: <<colour base00>>
message-foreground: <<colour base00>>
tag-foreground: <<colour base00>>
# base0
: base0
sidebar-tiddler-link-foreground: <<colour base0>>
# base1
: base1
muted-foreground: <<colour base1>>
blockquote-bar: <<colour muted-foreground>>
dropdown-border: <<colour muted-foreground>>
sidebar-muted-foreground: <<colour muted-foreground>>
tiddler-title-foreground: <<colour muted-foreground>>
site-title-foreground: <<colour tiddler-title-foreground>>
# base2
stability-deprecated: <<colour red>>
stability-experimental: <<colour yellow>>
stability-legacy: <<colour blue-hot>>
stability-stable: <<colour green>>
: base2
modal-footer-background: <<colour base2>>
page-background: <<colour base2>>
modal-backdrop: <<colour page-background>>
@@ -103,31 +99,31 @@ foreground: #657b83
tag-background: <<colour base2>>
tiddler-editor-background: <<colour base2>>
tiddler-info-background: <<colour base2>>
tiddler-info-tab-background: <<colour tiddler-info-border>>
tiddler-info-tab-background: <<colour base2>>
tab-background: <<colour base2>>
dropdown-tab-background: <<colour tab-background>>
# base3
dropdown-tab-background: <<colour tab-background>>
: base3
alert-background: <<colour base3>>
message-background: <<colour base3>>
# yellow
# orange
# red
# magenta
: yellow
: orange
: red
: magenta
alert-highlight: <<colour magenta>>
# violet
: violet
external-link-foreground: <<colour violet>>
# blue
# cyan
# green
# base10
: blue
: cyan
: green
: base10
tiddler-controls-foreground: <<colour base10>>
# violet-muted
: violet-muted
external-link-foreground-visited: <<colour violet-muted>>
# blue-muted
: blue-muted
primary: <<colour blue-muted>>
download-background: #5bb83d
download-background: <<colour primary>>
tiddler-link-foreground: <<colour primary>>
alert-border: #b99e2f
diff-delete-background: <<colour red>>
diff-delete-foreground: <<colour background>>
@@ -138,7 +134,7 @@ diff-insert-foreground: <<colour background>>
diff-invisible-background: <<colour yellow>>
diff-invisible-foreground: <<colour background>>
dirty-indicator: #ff0000
dropzone-background: #008800
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
@@ -150,10 +146,14 @@ message-border: #cfd6e6
modal-border: #999999
select-tag-background:
select-tag-foreground:
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground-hover:
sidebar-muted-foreground-hover:
sidebar-tab-background: #ded8c5
sidebar-tiddler-link-foreground-hover:
stability-deprecated: <<colour red>>
stability-experimental: <<colour yellow>>
stability-legacy: <<colour blue>>
stability-stable: <<colour green>>
static-alert-foreground: #aaaaaa
tab-border: #cccccc
modal-footer-border: <<colour tab-border>>
@@ -166,7 +166,6 @@ tab-divider: #d8d8d8
sidebar-tab-divider: <<colour tab-divider>>
table-border: #dddddd
table-footer-background: #a8a8a8
testcase-accent-level-1: #bec8cc
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-editor-border-image: #ffffff
@@ -186,4 +185,3 @@ toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -40,7 +40,7 @@ external-link-background: inherit
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-foreground: #268bd2
external-link-foreground-hover: #1d669c
external-link-foreground-hover:
external-link-foreground-visited: #268bd2
footnote-target-background: #073642
foreground: #839496
@@ -56,7 +56,6 @@ modal-footer-background: #073642
modal-footer-border: #586e75
modal-header-border: #586e75
muted-foreground: #93a1a1
network-activity-foreground: <<colour primary>>
notification-background: #002b36
notification-border: #586e75
page-background: #073642
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #93a1a1
sidebar-tiddler-link-foreground: #2aa198
sidebar-tiddler-link-foreground-hover: #eee8d5
site-title-foreground: #d33682
stability-deprecated: #aa1a9f
stability-experimental: #806000
stability-legacy: #1d669c
stability-stable: #00df11
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
static-alert-foreground: #93a1a1
tab-background: #073642
tab-background-selected: #002b36
@@ -99,7 +98,6 @@ table-footer-background: #073642
table-header-background: #073642
tag-background: #b58900
tag-foreground: #002b36
testcase-accent-level-1: #073642
tiddler-background: #002b36
tiddler-border: #586e75
tiddler-controls-foreground: inherit
@@ -127,4 +125,4 @@ toolbar-new-button: #839496
toolbar-options-button: #839496
toolbar-save-button: inherit
untagged-background: #586e75
very-muted-foreground: #586e75
very-muted-foreground: #586e75

View File

@@ -27,7 +27,7 @@ diff-insert-foreground: #eee8d5
diff-invisible-background: #b58900
diff-invisible-foreground: #eee8d5
dirty-indicator: #dc322f
download-background: #00910b
download-background: #859900
download-foreground: #eee8d5
dragger-background: #eee8d5
dragger-foreground: #657b83
@@ -56,7 +56,6 @@ modal-footer-background: #eee8d5
modal-footer-border: #93a1a1
modal-header-border: #93a1a1
muted-foreground: #586e75
network-activity-foreground: <<colour primary>>
notification-background: #fdf6e3
notification-border: #93a1a1
page-background: #eee8d5
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #586e75
sidebar-tiddler-link-foreground: #2aa198
sidebar-tiddler-link-foreground-hover: #002b36
site-title-foreground: #d33682
stability-deprecated: #d21a1a
stability-experimental: #771e00
stability-legacy: #227abb
stability-stable: #576400
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
static-alert-foreground: #586e75
tab-background: #eee8d5
tab-background-selected: #fdf6e3
@@ -99,7 +98,6 @@ table-footer-background: #eee8d5
table-header-background: #eee8d5
tag-background: #b58900
tag-foreground: #fdf6e3
testcase-accent-level-1: #afc2db
tiddler-background: #fdf6e3
tiddler-border: #93a1a1
tiddler-controls-foreground: inherit

View File

@@ -94,7 +94,6 @@ table-footer-background: rgba(0,0,0,.4)
table-header-background: rgba(0,0,0,.1)
tag-background: rgb(255, 201, 102)
tag-foreground: rgb(25, 25, 25)
testcase-accent-level-1: rgb(13, 52, 99)
tiddler-background: rgb(38, 38, 38)
tiddler-border: rgba(240, 196, 117, 0.7)
tiddler-controls-foreground: rgb(128, 128, 128)

View File

@@ -69,7 +69,7 @@ select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #aaaaaa
sidebar-foreground-shadow: #ffffff
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
@@ -83,7 +83,7 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #444444
sidebar-tiddler-link-foreground: #999999
site-title-foreground: <<colour tiddler-title-foreground>>
stability-stable: #00b700
stability-stable: #008000
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #0000ff
@@ -138,13 +138,13 @@ wikilist-title: #666666
wikilist-title-svg: <<colour wikilist-title>>
wikilist-url: #aaaaaa
wikilist-button-open: #4fb82b
wikilist-button-open-hover: #009300
wikilist-button-open-hover: green
wikilist-button-reveal: #5778d8
wikilist-button-reveal-hover: #0000ff
wikilist-button-reveal-hover: blue
wikilist-button-remove: #d85778
wikilist-button-remove-hover: #ff0000
wikilist-button-remove-hover: red
wikilist-toolbar-background: #d3d3d3
wikilist-toolbar-foreground: #888888
wikilist-droplink-dragover: #ffc0c0
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #acacac
wikilist-button-foreground: #000000
wikilist-button-foreground: #000000

View File

@@ -12,8 +12,7 @@ tc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$
tv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}
tv-show-missing-links={{$:/config/MissingLinks}}
storyviewTitle={{$:/view}}
languageTitle={{{ [{$:/language}get[name]] }}}
tv-text-direction={{$:/config/DefaultTextDirection}}>
languageTitle={{{ [{$:/language}get[name]] }}}>
<div class=<<containerClasses>>>

View File

@@ -37,7 +37,7 @@ caption: {{$:/language/Search/Standard/Caption}}
inputCancelActions=<<cancel-search-actions>>
inputAcceptActions=<<input-accept-actions>>
inputAcceptVariantActions=<<input-accept-variant-actions>>
configTiddlerFilter="[[$:/state/advancedsearch/standard/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"
filterMinLength={{$:/config/Search/MinLength}}/>
</$keyboard>
</$keyboard>

View File

@@ -21,6 +21,12 @@ http://$(userName)$.tiddlyspot.com/$path$/
</$reveal>
\end
<div class="tc-message-box">
<<lingo ReadOnly>>
</div>
<<lingo Description>>
|<<lingo UserName>> |<$edit-text tiddler="$:/UploadName" default="" tag="input"/> |

View File

@@ -3,7 +3,7 @@ tags: $:/tags/ControlPanel/Saving
caption: {{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}
\define lingo-base() $:/language/ControlPanel/Saving/GitService/
\define service-name() Gitea
\define service-name() ~Gitea
<<lingo Description>>

View File

@@ -1,19 +0,0 @@
caption: {{$:/language/ControlPanel/Settings/DefaultTiddlerInfoTab/Caption}}
tags: $:/tags/ControlPanel/Settings
title: $:/core/ui/ControlPanel/Settings/DefaultTiddlerInfoTab
\whitespace trim
\define lingo-base() $:/language/ControlPanel/Settings/DefaultTiddlerInfoTab/
<$link to="$:/config/TiddlerInfo/Default" class="tc-control-panel-item">
<<lingo Hint>>
</$link>
<$select tiddler="$:/config/TiddlerInfo/Default" class="tc-select">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!is[draft]]">
<option value=<<currentTiddler>>><$transclude field="caption">
<$text text=<<currentTiddler>>/>
</$transclude>
</option>
</$list>
</$select>

View File

@@ -30,7 +30,6 @@ title: $:/core/ui/EditTemplate
data-tiddler-title=<<currentTiddler>>
data-tags={{!!tags}}
class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}
dir=<<tv-text-direction>>
role="region"
aria-label={{$:/language/EditTemplate/Caption}}>
<$fieldmangler>

View File

@@ -9,7 +9,6 @@ title: $:/core/ui/EditTemplate/body/editor
placeholder={{$:/language/EditTemplate/Body/Placeholder}}
tabindex={{$:/config/EditTabIndex}}
focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}
dir=<<tv-text-direction>>
cancelPopups="yes"
fileDrop={{{ [{$:/config/DragAndDrop/Enable}match[no]] :else[subfilter{$:/config/Editor/EnableImportFilter}then[yes]else[no]] }}}

View File

@@ -20,7 +20,7 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
importState=<<qualify $:/state/ImportImage>> >
<$dropzone importTitle=<<importTitle>> autoOpenOnImport="no" contentTypesFilter={{$:/config/Editor/ImportContentTypesFilter}} class="tc-dropzone-editor" enable={{{ [{$:/config/DragAndDrop/Enable}match[no]] :else[subfilter{$:/config/Editor/EnableImportFilter}then[yes]else[no]] }}} filesOnly="yes" actions=<<importFileActions>> >
<div>
<div class={{{ [<edit-preview-state>match[yes]then[tc-tiddler-preview]else[tc-tiddler-preview-hidden]] [[tc-tiddler-editor]] +[join[ ]] }}} dir=<<tv-text-direction>>>
<div class={{{ [<edit-preview-state>match[yes]then[tc-tiddler-preview]else[tc-tiddler-preview-hidden]] [[tc-tiddler-editor]] +[join[ ]] }}}>
<$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/>

View File

@@ -3,7 +3,7 @@ tags: $:/tags/EditTemplate
\define config-title() $:/config/EditToolbarButtons/Visibility/$(listItem)$
\whitespace trim
<div class="tc-tiddler-title tc-tiddler-edit-title tc-clearfix" dir=<<tv-text-direction>> >
<div class="tc-tiddler-title tc-tiddler-edit-title tc-clearfix">
<$view field="title"/>
<span class="tc-tiddler-controls tc-titlebar">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem">

View File

@@ -71,7 +71,7 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
\whitespace trim
<$set name="newFieldValueTiddlerPrefix" value=<<newFieldValueTiddlerPrefix>> emptyValue=<<qualify "$:/temp/NewFieldValue">> >
<div class="tc-edit-fields" dir=<<tv-text-direction>>>
<div class="tc-edit-fields">
<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] :and[count[]!match[0]] :and[then[tc-edit-fields]] :else[[tc-edit-fields tc-edit-fields-small]] }}}>
<tbody>
<$list filter="[all[current]fields[]] :and[sort[title]]" variable="currentField" storyview="pop">
@@ -98,7 +98,7 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
</div>
<$fieldmangler>
<div class="tc-edit-field-add" dir=<<tv-text-direction>>>
<div class="tc-edit-field-add">
<em class="tc-edit tc-small-gap-right">
<<lingo Fields/Add/Prompt>>
</em>

View File

@@ -14,7 +14,7 @@ tags: $:/tags/EditTemplate
<$list filter="[all[current]shadowsource[]]" variable="pluginTitle">
<$set name="pluginLink" value=<<pluginLinkBody>>>
<div class="tc-message-box" dir=<<tv-text-direction>>>
<div class="tc-message-box">
<<lingo Warning>>
@@ -29,7 +29,7 @@ tags: $:/tags/EditTemplate
<$list filter="[all[current]shadowsource[]]" variable="pluginTitle">
<$set name="pluginLink" value=<<pluginLinkBody>>>
<div class="tc-message-box" dir=<<tv-text-direction>>>
<div class="tc-message-box">
<<lingo OverriddenWarning>>

View File

@@ -17,7 +17,9 @@ tags: $:/tags/EditTemplate
<$let backgroundColor=<<colour>> >
<span class="tc-tag-label tc-tag-list-item tc-small-gap-right"
data-tag-title=<<currentTiddler>>
style=`color:$(foregroundColor)$; fill:$(foregroundColor)$; background-color:$(backgroundColor)$;`
style.color=<<foregroundColor>>
style.fill=<<foregroundColor>>
style.background-color=<<backgroundColor>>
>
<$transclude tiddler=<<icon>>/>
<$view field="title" format="text"/>
@@ -44,7 +46,7 @@ tags: $:/tags/EditTemplate
\end
\procedure edit-tags-template(tagField:"tags")
<div class="tc-edit-tags" dir=<<tv-text-direction>>>
<div class="tc-edit-tags">
<$list filter="[<currentTiddler>get<tagField>enlist-input[]sort[title]]" storyview="pop">
<$macrocall $name="tag-body"
colour={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}}

View File

@@ -2,13 +2,13 @@ title: $:/core/ui/EditTemplate/title
tags: $:/tags/EditTemplate
\whitespace trim
<$edit-text field="draft.title" class="tc-titlebar tc-edit-texteditor" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups="yes" dir=<<tv-text-direction>>/>
<$edit-text field="draft.title" class="tc-titlebar tc-edit-texteditor" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/>
<$vars pattern="""[\|\[\]{}]""" bad-chars="""`| [ ] { }`""">
<$list filter="[all[current]regexp:draft.title<pattern>]" variable="listItem">
<div class="tc-message-box" dir=<<tv-text-direction>>>
<div class="tc-message-box">
{{$:/core/images/warning}}&#32;{{$:/language/EditTemplate/Title/BadCharacterWarning}}
@@ -18,7 +18,7 @@ tags: $:/tags/EditTemplate
</$vars>
<$reveal state="!!draft.title" type="nomatch" text={{!!draft.of}} tag="div" dir=<<tv-text-direction>>>
<$reveal state="!!draft.title" type="nomatch" text={{!!draft.of}} tag="div">
<$list filter="[{!!draft.title}!is[missing]]" variable="listItem">

View File

@@ -9,7 +9,7 @@ first-search-filter: [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[d
<div class="tc-edit-type-selector-wrapper">
<em class="tc-edit tc-small-gap-right"><<lingo Type/Prompt>></em>
<div class="tc-type-selector-dropdown-wrapper">
<div class="tc-type-selector" dir=<<tv-text-direction>>><$fieldmangler>
<div class="tc-type-selector"><$fieldmangler>
<$transclude $variable="keyboard-driven-input" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field="type" tag="input" default="" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify "$:/state/popup/type-dropdown">> class="tc-edit-typeeditor tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] :else[[false]] }}} cancelPopups="yes" configTiddlerFilter="[[$:/core/ui/EditTemplate/type]]" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify "$:/state/popup/type-dropdown">> class="tc-btn-invisible tc-btn-dropdown tc-small-gap" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message="tm-remove-field" param="type" class="tc-btn-invisible tc-btn-icon" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter="[<typeInputTiddler>] [<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]"/></$button>
</$fieldmangler></div>

View File

@@ -12,7 +12,7 @@ Export the TiddlyWiki core JavaScript code for running with external JavaScript:
tooltip="Export the TiddlyWiki core code for running with external JavaScript"
aria-label="export TiddlyWiki core"
class="tc-btn-big-green">
<$action-sendmessage $message='tm-download-file' $param='$:/core/templates/tiddlywiki5.js' filename=<<jsFileName>> type="application/javascript"/>
<$action-sendmessage $message='tm-download-file' $param='$:/core/templates/tiddlywiki5.js' filename=<<jsFileName>>/>
{{$:/core/images/download-button}}
<span class="tc-tiny-gap-left">
Download TiddlyWiki core

View File

@@ -51,7 +51,6 @@ title: $:/core/ui/ImportListing
\end
\whitespace trim
<div class="tc-table-wrapper">
<table class="tc-import-table">
<tbody>
<tr>
@@ -130,4 +129,3 @@ title: $:/core/ui/ImportListing
</$list>
</tbody>
</table>
</div>

View File

@@ -12,7 +12,7 @@ element, and right-click its `src` URI. Save the link as ''$(jsFileName)$''</p>
Export the ~TiddlyWiki core ~JavaScript code for running with external ~JavaScript:
<$button tooltip="Export the ~TiddlyWiki core code for running with external ~JavaScript" aria-label="export TiddlyWiki core" class="tc-btn-big-green">
<$list filter="[[$:/boot/boot.js]is[missing]]" variable="ignore" emptyMessage="""<$action-sendmessage $message="tm-download-file" $param="$:/core/templates/tiddlywiki5.js" filename=<<jsFileName>> type="application/javascript"/>""" >
<$list filter="[[$:/boot/boot.js]is[missing]]" variable="ignore" emptyMessage="""<$action-sendmessage $message="tm-download-file" $param="$:/core/templates/tiddlywiki5.js" filename=<<jsFileName>>/>""" >
<$action-setfield $tiddler=<<qualify "$:/temp/alert">> text=<<noExportMsg>> subtitle="Export ~TiddllyWiki Core"/>
<$action-sendmessage $message="tm-modal" $param=<<qualify "$:/temp/alert">>/>
</$list>

View File

@@ -14,8 +14,7 @@ code-body: yes
tv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}
tv-show-missing-links={{$:/config/MissingLinks}}
storyviewTitle={{$:/view}}
languageTitle={{{ [{$:/language}get[name]] }}}
tv-text-direction={{$:/config/DefaultTextDirection}}>
languageTitle={{{ [{$:/language}get[name]] }}}>
<div class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/PageTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-page-container [[tc-page-view-]addsuffix<storyviewTitle>] [[tc-language-]addsuffix<languageTitle>] :and[unique[]join[ ]] }}} >

View File

@@ -2,26 +2,31 @@ title: $:/core/ui/SideBar/Tools
tags: $:/tags/SideBar
caption: {{$:/language/SideBar/Tools/Caption}}
\whitespace trim
\procedure lingo-base() $:/language/ControlPanel/
\function config-title() [[$:/config/PageControlButtons/Visibility/$(listItem)$]substitute[]]
\define lingo-base() $:/language/ControlPanel/
\define config-title()
$:/config/PageControlButtons/Visibility/$(listItem)$
\end
<<lingo Basics/Version/Prompt>> <<version>>
<$let tv-config-toolbar-icons="yes"
tv-config-toolbar-text="yes"
tv-config-toolbar-class=""
>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
<div class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] tc-sidebar-tools-item +[join[ ]] }}}
data-title=<<listItem>>
>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show" class="tc-tiny-gap-right"/>
<$transclude $tiddler=<<listItem>>/>
<i class="tc-tiny-gap-left tc-muted">
<$transclude $tiddler=<<listItem>> $field="description"/>
</i>
</div>
</$list>
</$let>
<$set name="tv-config-toolbar-icons" value="yes">
<$set name="tv-config-toolbar-text" value="yes">
<$set name="tv-config-toolbar-class" value="">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
<div style="position:relative;" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i>
</div>
</$list>
</$set>
</$set>
</$set>

View File

@@ -8,7 +8,7 @@ $:/state/folded/$(currentTiddler)$
\define cancel-delete-tiddler-actions(message) <$action-sendmessage $message="tm-$message$-tiddler"/>
\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!is[draft]] [all[shadows+tiddlers]tag[$:/tags/Global/View]!is[draft]]
<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify "$:/state/popup/tiddler-info">>>
<div dir=<<tv-text-direction>> data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} role="article">
<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ [all[shadows+tiddlers]tag[$:/tags/ClassFilters/TiddlerTemplate]!is[draft]] :map:flat[subfilter{!!text}] tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}} role="article">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!is[draft]]" variable="listItem">
<$transclude tiddler=<<listItem>>/>
</$list>

View File

@@ -3,7 +3,7 @@ tags: $:/tags/ViewTemplate
\import [all[shadows+tiddlers]tag[$:/tags/Macro/View/Body]!is[draft]] [all[shadows+tiddlers]tag[$:/tags/Global/View/Body]!is[draft]]
<$reveal tag="div" class="tc-tiddler-body tc-clearfix" type="nomatch" stateTitle=<<folded-state>> text="hide" retain="yes" animate="yes" dir=<<tv-text-direction>>>
<$reveal tag="div" class="tc-tiddler-body tc-clearfix" type="nomatch" stateTitle=<<folded-state>> text="hide" retain="yes" animate="yes">
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateBodyFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/body/default]] }}} />

View File

@@ -2,4 +2,4 @@ title: $:/core/ui/ViewTemplate/subtitle
tags: $:/tags/ViewTemplate
\whitespace trim
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateSubtitleFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/subtitle/default]] }}} />
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateSubtitleFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/subtitle/default]] }}} />

View File

@@ -2,7 +2,7 @@ title: $:/core/ui/ViewTemplate/subtitle/default
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-subtitle tc-clearfix" dir=<<tv-text-direction>>>
<div class="tc-subtitle tc-clearfix">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Subtitle]!has[draft.of]]" variable="subtitleTiddler">
<$transclude tiddler=<<subtitleTiddler>> mode="inline"/>
</$list>

View File

@@ -2,4 +2,4 @@ title: $:/core/ui/ViewTemplate/tags
tags: $:/tags/ViewTemplate
\whitespace trim
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateTagsFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/tags/default]] }}} />
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateTagsFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/tags/default]] }}} />

View File

@@ -2,7 +2,7 @@ title: $:/core/ui/ViewTemplate/tags/default
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-tags-wrapper" dir=<<tv-text-direction>>>
<div class="tc-tags-wrapper">
<$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Tags]!has[draft.of]]">
<$transclude mode="inline"/>

View File

@@ -5,7 +5,7 @@ tags: $:/tags/ViewTemplate
\define title-styles() fill:$(foregroundColor)$;
<div class="tc-tiddler-title tc-clearfix">
<div class="tc-titlebar" dir=<<tv-text-direction>>>
<div class="tc-titlebar">
<span class="tc-tiddler-controls">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] :filter[lookup[$:/config/ViewToolbarButtons/Visibility/]!match[hide]]"
storyview="pop"

View File

@@ -1,122 +0,0 @@
title: $:/core/ui/ControlPanel/WikiInformation
tags: $:/tags/ControlPanel/Info
caption: <%if [[$:/language/ControlPanel/WikiInformation/Caption]is[shadow]] %>{{$:/language/ControlPanel/WikiInformation/Caption}}<%else%>Wiki Information<%endif%>
subtitle: <%if [[$:/language/ControlPanel/WikiInformation/Caption]is[shadow]] %>{{$:/language/ControlPanel/WikiInformation/Caption}}<%else%>Wiki Information<%endif%>
\procedure lingo-base() $:/language/ControlPanel/WikiInformation/
<!--
A custom implementation of the lingo macro that works even if this tiddler has been copied to an earlier version of TiddlyWiki that doesn't include the necessary lingo tiddlers in the core.
-->
\procedure intrinsic-lingo-Hint()
This page summarises high level information about the configuration of this ~TiddlyWiki. It is designed to enable users to quickly share relevant aspects of the configuration of their ~TiddlyWiki with others, for example when seeking help in one of the forums. No private or personal information is included, and nothing is shared without being explicitly copied and pasted elsewhere
\end intrinsic-lingo-Hint
\procedure intrinsic-lingo-Drag/Caption()
Drag this link to copy this tool to another wiki
\end intrinsic-lingo-Drag/Caption
\procedure lingo(title,mode:"inline")
<%if [<title>addprefix<lingo-base>is[shadow]] %>
<$transclude $tiddler={{{ [<title>addprefix<lingo-base>] }}} $mode=<<mode>>/>
<%else%>
<$transclude $variable={{{ [<title>addprefix[intrinsic-lingo-]] }}} $mode=<<mode>>/>
<%endif%>
\end lingo
\whitespace trim
\procedure capture-item(label,value)
<$action-setfield $tiddler=<<tempWikiInfo>> text={{{ [<tempWikiInfo>get[text]addsuffix<label>addsuffix[: ]addsuffix<value>addsuffix<crlf>] }}}/>
\end capture-item
\procedure capture-item-wikified(label,value)
<$wikify name="text" text=<<value>> mode="inline">
<$transclude
$variable="capture-item"
label=<<label>>
value=<<text>>
/>
</$wikify>
\end capture-item-wikified
\procedure capture-wiki-info(tempWikiInfo)
<$transclude $variable="capture-item-wikified" label="TiddlyWiki Version" value="<<version>>"/>
<$transclude $variable="capture-item" label="Current palette" value={{$:/palette}}/>
<$transclude $variable="capture-item" label="Current theme" value={{$:/theme}}/>
<$transclude $variable="capture-item" label="Current layout" value={{$:/layout}}/>
<$transclude $variable="capture-item" label="Browser language setting" value={{$:/info/browser/language}}/>
<$transclude $variable="capture-item" label="Default type for missing tiddlers" value={{$:/config/DefaultMissingType}}/>
<$transclude $variable="capture-item" label="Auto save setting" value={{$:/config/AutoSave}}/>
<$transclude $variable="capture-item" label="Code wrapping setting" value={{$:/themes/tiddlywiki/vanilla/options/codewrapping}}/>
<$transclude $variable="capture-item" label="Sticky titles setting" value={{$:/themes/tiddlywiki/vanilla/options/stickytitles}}/>
<$transclude $variable="capture-item" label="Sidebar layout setting" value={{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}}/>
<$transclude $variable="capture-item" label="Auto focus field setting for new tiddlers" value={{$:/config/AutoFocus}}/>
<$transclude $variable="capture-item" label="Current storyview setting" value={{$:/view}}/>
<$transclude $variable="capture-item" label="Toolbar text setting" value={{$:/config/Toolbar/Text}}/>
<$transclude $variable="capture-item" label="Toolbar icon setting" value={{$:/config/Toolbar/Icons}}/>
<$transclude $variable="capture-item" label="Button class setting" value={{$:/config/Toolbar/ButtonClass}}/>
<$transclude $variable="capture-item" label="Navigation address bar setting" value={{$:/config/Navigation/UpdateAddressBar}}/>
<$transclude $variable="capture-item" label="Tiddler opening behaviour setting for navigations from outside the story river" value={{$:/config/Navigation/openLinkFromOutsideRiver}}/>
<$transclude $variable="capture-item" label="Tiddler opening behaviour setting for navigations from within the story river" value={{$:/config/Navigation/openLinkFromInsideRiver}}/>
<$transclude $variable="capture-item" label="CamelCase linking setting" value={{$:/config/WikiParserRules/Inline/wikilink}}/>
<$transclude $variable="capture-item" label="Keyboard shortcuts that have been customised" value={{{ [all[tiddlers]prefix[$:/config/shortcuts]] +[join[,]] }}}/>
<$transclude $variable="capture-item" label="Disabled plugins" value={{{ [all[tiddlers]prefix[$:/config/Plugins/Disabled/]] :filter[{!!text}match[yes]] :map[<currentTiddler>removeprefix[$:/config/Plugins/Disabled/]] +[join[,]] }}}/>
<$transclude $variable="capture-item" label="Plugins" value={{{ [has[plugin-type]sort[]] :filter[<currentTiddler>addprefix[$:/config/Plugins/Disabled/]get[text]else[no]!match[yes]] :map[{!!version}addprefix[ - ]addprefix<currentTiddler>] +[addprefix[ ]addprefix<crlf>join[]] }}}/>
\end capture-wiki-info
\procedure template-header()
<details><summary>Wiki Information</summary><pre><code>
\end template-header
\procedure template-footer()
</code></pre></details>
\end template-footer
\procedure display-wiki-info-modal()
<$let
tempWikiInfo="$:/temp/wiki-info"
crlf={{{ [charcode[13],[10]] }}}
>
<$action-sendmessage
$message="tm-modal"
$param="$:/core/ui/ControlPanel/WikiInformation"
isModal="yes"
tempWikiInfo=<<tempWikiInfo>>
/>
<$action-deletetiddler $tiddler=<<tempWikiInfo>>/>
<$action-setfield $tiddler=<<tempWikiInfo>> text=<<template-header>>/>
<$transclude
$variable="capture-wiki-info"
tempWikiInfo=<<tempWikiInfo>>
/>
<$action-setfield $tiddler=<<tempWikiInfo>> text={{{ [<tempWikiInfo>get[text]addsuffix<template-footer>] }}}/>
</$let>
\end display-wiki-info-modal
\procedure story-content()
<<lingo title:"Hint" mode:"block">>
<$button>
<<display-wiki-info-modal>>
Click to generate wiki information report
</$button>
<$link to="$:/core/ui/ControlPanel/WikiInformation">
<<lingo title:"Drag/Caption" mode:"inline">>
</$link>
\end story-content
\procedure modal-content()
<p>
<$transclude $variable="copy-to-clipboard" src={{{ [<tempWikiInfo>get[text]] }}}/>
</p>
<p>
<$edit-text tiddler=<<tempWikiInfo>> tag="textarea" disabled="yes" class="tc-max-width"/>
</p>
\end modal-content
<$transclude $variable={{{ [<isModal>match[yes]then[modal-content]else[story-content]] }}} $mode="block"/>

View File

@@ -1,2 +0,0 @@
title: $:/config/DefaultTextDirection
text: auto

View File

@@ -1,6 +1,6 @@
title: $:/config/OfficialPluginLibrary
tags: $:/tags/PluginLibrary
url: https://tiddlywiki.com/library/v5.3.8/index.html
url: https://tiddlywiki.com/library/v5.3.7/index.html
caption: {{$:/language/OfficialPluginLibrary}}
{{$:/language/OfficialPluginLibrary/Hint}}

View File

@@ -3,9 +3,11 @@ tags: $:/tags/Macro
\whitespace trim
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style)
<$button message="tm-copy-to-clipboard"
param=<<src>>
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style,type:"text/plain",plain)
\procedure copy-to-clipboard-actions()
<$action-sendmessage $message="tm-copy-to-clipboard" $param=<<src>> type=<<type>> plainText=<<plain>>/>
\end copy-to-clipboard-actions
<$button actions=<<copy-to-clipboard-actions>>
class=<<class>>
style=<<style>>
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
@@ -15,12 +17,12 @@ tags: $:/tags/Macro
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
</span>
</$button>
\end
\end copy-to-clipboard
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style)
<div style="position: relative;">
<div style="position: absolute; bottom: 0; right: 0;">
<$macrocall $name="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>>/>
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style,type:"text/plain")
<div style.position="relative">
<div style.position="absolute" style.bottom="0" style.right="0">
<$transclude $variable="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>> type=<<type>> plain=<<plain>>/>
</div>
</div>
\end

View File

@@ -102,7 +102,11 @@ tags: $:/tags/Macro
<$genesis $type=<<elementTag>>>
<$transclude tiddler=<<itemTemplate>>>
<$link to={{!!title}}>
<$view field="title"/>
<$let tv-wikilinks="no">
<$transclude field="caption">
<$view field="title"/>
</$transclude>
</$let>
</$link>
</$transclude>
</$genesis>

View File

@@ -1,4 +0,0 @@
title: $:/coreURL
tags: $:/tags/Global
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]

View File

@@ -11,9 +11,6 @@
],
"build": {
"index": [
"--rendertiddler","$:/core/save/all","classicparserdemo.html","text/plain"],
"external": [
"--render","$:/core/save/all-external-js","classicparserdemo.html","text/plain"
]
"--rendertiddler","$:/core/save/all","classicparserdemo.html","text/plain"]
}
}

View File

@@ -1,4 +0,0 @@
title: $:/coreURL
tags: $:/tags/Global
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]

View File

@@ -11,7 +11,6 @@ The ~CodeMirror plugin can be extended with ~AddOns for more functionality:
* Keymaps in the style of Emacs, Sublime Text or Vim
* Closing Brackets
* Closing Tags
* Display trailing whitespace
NOTE: This demo has the ''Sublime Text'' keymap installed.

View File

@@ -8,16 +8,11 @@
"tiddlywiki/codemirror-search-replace",
"tiddlywiki/codemirror-fullscreen-editing",
"tiddlywiki/codemirror-mode-xml",
"tiddlywiki/codemirror-mode-htmlembedded",
"tiddlywiki/codemirror-mode-htmlmixed",
"tiddlywiki/codemirror-mode-javascript",
"tiddlywiki/codemirror-mode-css",
"tiddlywiki/codemirror-mode-x-tiddlywiki",
"tiddlywiki/codemirror-mode-markdown",
"tiddlywiki/codemirror-trailingspace",
"tiddlywiki/codemirror-keymap-emacs",
"tiddlywiki/codemirror-keymap-sublime-text",
"tiddlywiki/codemirror-keymap-vim"
"tiddlywiki/codemirror-keymap-sublime-text"
],
"themes": [
"tiddlywiki/vanilla",
@@ -27,9 +22,6 @@
],
"build": {
"index": [
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"],
"external": [
"--render","$:/core/save/all-external-js","codemirrordemo.html","text/plain"
]
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"]
}
}

View File

@@ -1,5 +1,5 @@
created: 20190809095728085
modified: 20250707151538845
modified: 20190809123445125
title: Releasing a new version of TiddlyWiki
type: text/vnd.tiddlywiki
@@ -15,35 +15,32 @@ type: text/vnd.tiddlywiki
# Adjust the modified time of HelloThere
# Make sure ''master'' is fully committed
!! Update Readmes and release note
!! Update Readmes
# Edit `package.json` to the new version number
# Run `./bin/readme-bld.sh` to build the readme files
# Commit the new readme files to ''master''
# Restore `package.json` to the previous version number
# Adjust the link for "GitHub for detailed change history of this release" in the release note
# Add the credits for the new release banner to the release note, including a link to the GitHub instance of the image from the commit history
!! Make New Release
# Run `./bin/verbump "5.1.3"` (substituting the correct version number) to update the version number and assign it a tag
# Run `./bin/verbump "5.1.3"` (substituting the correct version number) to update the version number, assign it a tag
# Run `./bin/npm-publish.sh` to publish the release to npm
# Verify that the new release of TiddlyWiki is available at https://www.npmjs.org/package/tiddlywiki
!! Update tiddlywiki.com release
# Update ''tiddlywiki-com'' from ''master'' and push to ~GitHub
# Wait until https://tiddlywiki.com is updated with the new release
!! Announcements
!! Cleaning Up
# Announce the new release on [[TalkTW|https://talk.tiddlywiki.org]]
# Tweet the release with the text "TiddlyWiki v5.x.x released to https://tiddlywiki.com #newtiddlywikirelease"
!! Preparation for the next release in ''master''
# Adjust version number in `package.json`
# Adjust version number in `bin/build-site.sh`
# Adjust version number in [[$:/config/OfficialPluginLibrary]] (both in `editions/tw5.com` and `editions/prerelease/tiddlers/system`) and [[$:/config/LocalPluginLibrary]]
# Create temporary new release banner
# Adjust new release banner
# Create the release note for the new release
# Commit changes to ''master'' and push to ~GitHub

View File

@@ -28,4 +28,5 @@ Note that JavaScript macros work on both the client and the server, and so do no
!! Macro Behaviour
Macros are just used to return a chunk of wikitext for further processing. They should not make modifications to tiddlers in the wiki store. The reason is that you cannot control when the macro is called; it may be called repeatedly as part of refresh processing. So it is important that macros do not have any other side effects beyond generating their text.
Macros are just used to return a chunk of wikitext for further processing. They should not make modifications to tiddlers in the wiki store. The reason is that you cannott control when the macro is called; it may be called repeatedly as part of refresh processing. So it is important that macros do not have any other side effects beyond generating their text.

View File

@@ -34,11 +34,13 @@ Suppose we want to make a filter operator that returns every other tiddler from
We make a new tiddler, set its `type` and `module-type` appropriately, and begin writing the code:
```
(function(){
"use strict";
exports.everyother = function(source, operator, options) {
// TODO
}
})();
```
For the example filter syntax, our function will be called with
@@ -52,6 +54,7 @@ As is usually the case, we don't care about `operator.operator` here (since that
We could implement the operator by iterating over the input tiddlers and explicitly building a result array of titles:
```
(function(){
"use strict";
exports.everyother = function(source, operator, options) {
@@ -63,6 +66,7 @@ exports.everyother = function(source, operator, options) {
});
return result;
}
})();
```
That is, we supply a callback to `source` that negates `include` each time through (in order to grab every other result) and pushes the `title` of every other tiddler onto the result.
@@ -70,6 +74,7 @@ That is, we supply a callback to `source` that negates `include` each time throu
Alternatively, we can return our own iterator, by returning a function that accepts a similar callback and only calls it on every other tiddler:
```
(function(){
"use strict";
exports.everyother = function(source, operator, options) {
@@ -81,6 +86,7 @@ exports.everyother = function(source, operator, options) {
});
};
}
})();
```
Either way, we could interpret the `!` flag on the filter, if present, to mean that we want the //other// half of the tiddlers, by using it to set the initial value of `include`: `var include = operator.prefix !== "!";`

View File

@@ -40,7 +40,10 @@ module-type: startup
YOUR DISCRCRIPTION COMES HERE!
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false, exports: true */
"use strict";
// Export name and synchronous status
@@ -60,4 +63,6 @@ exports.startup = function() {
});
};
})();
```

View File

@@ -11,7 +11,10 @@ The wikitext parser subclassing mechanism makes it possible for custom parsers t
Here is an example of a subclass of the checkbox widget that adds logging to the event handler:
```js
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var WikiParser = require("$:/core/modules/parsers/wikiparser/wikiparser.js")["text/vnd.tiddlywiki"],
@@ -35,4 +38,5 @@ var MyCustomWikiParser = function(type,text,options) {
exports["text/vnd.my-custom-type"] = MyCustomWikiParser;
})();
```

View File

@@ -26,7 +26,10 @@ module-type: widget-subclass
Widget base class
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.baseClass = "checkbox"; // Extend the <$checkbox> widget
@@ -47,4 +50,5 @@ exports.prototype.handleChangeEvent = function(event) {
console.log("Checkbox status:",this.inputDomNode.checked);
};
})();
```

View File

@@ -1,4 +0,0 @@
title: $:/coreURL
tags: $:/tags/Global
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]

View File

@@ -9,9 +9,6 @@
],
"build": {
"index": [
"--rendertiddler","$:/core/save/all","index.html","text/plain"],
"external": [
"--render","$:/core/save/all-external-js","index.html","text/plain"
]
"--rendertiddler","$:/core/save/all","index.html","text/plain"]
}
}

View File

@@ -1,4 +0,0 @@
title: $:/coreURL
tags: $:/tags/Global
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]

View File

@@ -15,9 +15,6 @@
"build": {
"index": [
"--render","$:/core/save/all","index.html","text/plain"],
"external": [
"--render","$:/core/save/all-external-js","index.html","text/plain"
],
"favicon": [],
"static": [],
"empty": [],

View File

@@ -1,4 +0,0 @@
title: $:/coreURL
tags: $:/tags/Global
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]

View File

@@ -16,9 +16,6 @@
"--render","$:/core/templates/static.template.html","static.html","text/plain",
"--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain",
"--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html",
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"],
"external": [
"--render","$:/core/save/all-external-js","highlightdemo.html","text/plain"
]
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"]
}
}

View File

@@ -1,4 +0,0 @@
title: $:/coreURL
tags: $:/tags/Global
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]

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