1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2025-12-07 09:18:06 +00:00

Merge branch 'master' into new-bidi-improvements

This commit is contained in:
Jeremy Ruston
2025-07-17 16:48:45 +01:00
528 changed files with 30343 additions and 2193 deletions

View File

@@ -1,317 +0,0 @@
{
"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

@@ -0,0 +1,55 @@
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

@@ -0,0 +1,36 @@
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

@@ -0,0 +1,18 @@
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.7
TW5_BUILD_VERSION=v5.3.8
fi
echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]"
@@ -105,6 +105,7 @@ 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
@@ -117,7 +118,7 @@ node $TW5_BUILD_TIDDLYWIKI \
--version \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--build favicon static index \
--build favicon static index external-js \
|| exit 1
# /empty.html Empty
@@ -155,7 +156,14 @@ node $TW5_BUILD_TIDDLYWIKI \
node $TW5_BUILD_TIDDLYWIKI \
./editions/tour \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all tour.html text/plain \
--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 \
|| exit 1
# /share.html Custom edition for sharing via the URL
@@ -194,7 +202,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/xlsx-utils \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT/editions/xlsx-utils/ \
--build index \
--build external \
|| exit 1
# /editions/resumebuilder/index.html Resume builder edition
@@ -210,7 +218,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/text-slicer \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT/editions/text-slicer/ \
--build index \
--build external \
|| exit 1
# /editions/translators/index.html Translators edition
@@ -242,7 +250,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/tw5.com-docs \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT/editions/tw5.com-docs/ \
--build index \
--build external \
|| exit 1
# /editions/twitter-archivist/index.html Twitter Archivist edition
@@ -265,7 +273,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/innerwikidemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/innerwiki/index.html text/plain \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/innerwiki/index.html text/plain \
|| exit 1
# /plugins/tiddlywiki/dynaview/index.html Demo wiki with DynaView plugin
@@ -275,7 +283,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/dynaviewdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/dynaview/index.html text/plain \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/dynaview/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/dynaview/empty.html text/plain \
|| exit 1
@@ -289,7 +297,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/katexdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/katex/index.html text/plain \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/katex/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/katex/empty.html text/plain \
|| exit 1
@@ -319,7 +327,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/codemirrordemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/codemirror/index.html text/plain \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/codemirror/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/codemirror/empty.html text/plain \
|| exit 1
@@ -329,7 +337,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/markdowndemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/markdown/index.html text/plain \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/markdown/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/markdown/empty.html text/plain \
|| exit 1
@@ -339,7 +347,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/classicparserdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/tw2parser/index.html text/plain \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/tw2parser/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/tw2parser/empty.html text/plain \
|| exit 1
@@ -349,7 +357,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/highlightdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/highlight/index.html text/plain \
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/highlight/index.html text/plain \
--rendertiddler $:/core/save/empty plugins/tiddlywiki/highlight/empty.html text/plain \
|| exit 1
@@ -359,7 +367,7 @@ node $TW5_BUILD_TIDDLYWIKI \
./editions/geospatialdemo \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--rendertiddler $:/core/save/all plugins/tiddlywiki/geospatial/index.html text/plain \
--rendertiddler $:/core/save/all-external-js 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 = path.relative(rootPath, filename).split(path.sep).slice(0, -1);
value = $tw.utils.stringifyList(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 = new Date(fs.statSync(pathname).birthtime);
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).birthtime));
break;
case "modified":
value = new Date(fs.statSync(pathname).mtime);
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).mtime));
break;
}
if(fieldInfo.prefix) {

View File

@@ -131,15 +131,14 @@ 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: ~TiddlySpot Control Panel
Saving/TiddlySpot/ControlPanel: ~TiddlyHost Control Panel
Saving/TiddlySpot/Backups: Backups
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/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/Filename: Upload Filename
Saving/TiddlySpot/Heading: ~TiddlySpot
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
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/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
@@ -190,6 +189,8 @@ 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
@@ -251,3 +252,6 @@ 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 - see [[Custom styles by user-class]]. Also used for [[Modals]]
class: The CSS class applied to a tiddler when rendering it. 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|AlertMechanism]]
component: The name of the component responsible for an alert tiddler
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|HistoryMechanism]]
current-tiddler: Used to cache the top tiddler in a history list
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

@@ -248,8 +248,7 @@ exports.compileFilter = function(filterString) {
// Create a function for the chain of operators in the operation
var operationSubFunction = function(source,widget) {
var accumulator = source,
results = [],
currTiddlerTitle = widget && widget.getVariable("currentTiddler");
results = [];
$tw.utils.each(operation.operators,function(operator) {
var operands = [],
operatorFunction;
@@ -265,6 +264,7 @@ 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,7 +6,6 @@ module-type: filteroperator
Filter operator for returning all the backtranscludes from a tiddler
\*/
(function(){
"use strict";
/*
@@ -19,5 +18,3 @@ exports.backtranscludes = function(source,operator,options) {
});
return results.makeTiddlerIterator(options.wiki);
};
})();

View File

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

View File

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

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]) + ")?(?:$|\\r?\\n))","mg");
reEnd = new RegExp("((:?^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[2]) + ")?\\s*?(?:$|\\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]) + ")?(?:$|\\r?\\n))","mg");
reEnd = new RegExp("((?:^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?\\s*?(?:$|\\r?\\n))","mg");
} else {
// Otherwise, the end of the definition is marked by the end of the line
reEnd = /($|\r?\n)/mg;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -519,36 +519,3 @@ 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

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

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: #66cccc
download-background: #3aafaf
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: rgba(0,200,0,0.7)
dropzone-background: #00d900
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
@@ -52,26 +52,30 @@ notification-border: #999999
page-background: #ffffff
pre-background: #f5f5f5
pre-border: #cccccc
primary: #7897f3
primary: #6387f1
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #ccc
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
sidebar-controls-foreground: #aaaaaa
sidebar-foreground-shadow: #ffffff
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
sidebar-muted-foreground: #aaaaaa
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:
sidebar-tab-foreground-selected: <<colour tab-foreground>>
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #444444
sidebar-tiddler-link-foreground: #7897f3
sidebar-tiddler-link-foreground: <<colour primary>>
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
@@ -83,10 +87,10 @@ tab-foreground: #666666
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #ffeedd
tag-foreground: #000
tag-background: #ffd5aa
tag-foreground: #000000
tiddler-background: <<colour background>>
tiddler-border: #eee
tiddler-border: #eeeeee
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
@@ -97,7 +101,7 @@ tiddler-editor-fields-even: #e0e8e0
tiddler-editor-fields-odd: #f0f4f0
tiddler-info-background: #f8f8f8
tiddler-info-border: #dddddd
tiddler-info-tab-background: #f8f8f8
tiddler-info-tab-background: <<colour tiddler-info-background>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #c0c0c0
@@ -111,5 +115,6 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
untagged-background: #cccccc
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -85,6 +85,7 @@ 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: #f00
alert-background: #ff0000
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #800
background: #000
alert-muted-foreground: #880000
background: #000000
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: #f00
download-background: #080
dirty-indicator: #ff0000
download-background: #48ff48
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 foreground>>
dropdown-tab-background: <<colour foreground>>
dropzone-background: rgba(0,200,0,0.7)
dropdown-tab-background-selected: #868686
dropdown-tab-background: #515151
dropzone-background: #1aff1a
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #00a
external-link-foreground: #00e
external-link-foreground-visited: #5353ff
external-link-foreground: #9595ff
footnote-target-background: #4c4c4c
foreground: #fff
foreground: #ffffff
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: #00f
primary: #8a8aff
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: <<colour background>>
sidebar-controls-foreground-hover: #ffff00
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground: <<colour foreground>>
@@ -72,6 +72,10 @@ 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>>
@@ -81,14 +85,15 @@ tab-divider: <<colour foreground>>
tab-foreground-selected: <<colour foreground>>
tab-foreground: <<colour background>>
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #fff
tag-foreground: #000
table-footer-background: #444444
table-header-background: #444444
tag-background: #ffffff
tag-foreground: #000000
testcase-accent-level-1: #144a8c
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #fdd
tiddler-controls-foreground-selected: #ae0000
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
@@ -102,14 +107,15 @@ 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: #f00
alert-background: #ff4a4a
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: #080
download-background: #008200
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 foreground>>
dropdown-tab-background-selected: <<colour background>>
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: #00f
primary: #0000ff
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: <<colour background>>
sidebar-controls-foreground-hover: #606060
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground-shadow: #000000
sidebar-foreground: <<colour foreground>>
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: <<colour foreground>>
@@ -72,6 +72,10 @@ 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>>
@@ -88,7 +92,7 @@ tag-foreground: #fff
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #fdd
tiddler-controls-foreground-selected: #c5abf3
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
@@ -113,3 +117,4 @@ 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: #FF453A
alert-border: #FF453A
alert-background: #ff4b42
alert-border: #950700
alert-highlight: #FFD60A
alert-muted-foreground: <<colour muted-foreground>>
alert-muted-foreground: #323234
background: #282828
blockquote-bar: <<colour page-background>>
blockquote-bar: #8d8d8d
button-foreground: <<colour foreground>>
code-background: <<colour pre-background>>
code-border: <<colour pre-border>>
code-foreground: rgba(255, 255, 255, 0.54)
code-foreground: #c7c7c7
dirty-indicator: #FF453A
download-background: <<colour primary>>
download-foreground: <<colour foreground>>
download-foreground: <<colour background>>
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: #323232
dropdown-tab-background: #707070
dropzone-background: #30D158
external-link-background-hover: transparent
external-link-background-visited: transparent
external-link-background: transparent
external-link-foreground-hover:
external-link-foreground-hover: #9511d5
external-link-foreground-visited: #BF5AF2
external-link-foreground: #32D74B
footnote-target-background: #747474
@@ -60,31 +60,36 @@ 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: rgba(255, 255, 255, 0.54)
sidebar-muted-foreground: rgba(255, 255, 255, 0.38)
sidebar-muted-foreground-hover: #acacac
sidebar-muted-foreground: #787878
sidebar-tab-background-selected: #3F638B
sidebar-tab-background: <<colour background>>
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)
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
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: <<colour page-background>>
tab-border: #4a4a4a
tab-divider: <<colour page-background>>
tab-foreground-selected: rgba(255, 255, 255, 0.87)
tab-foreground: rgba(255, 255, 255, 0.54)
tab-foreground-selected: #ffffff
tab-foreground: #adadad
table-border: #464646
table-footer-background: <<colour tiddler-editor-fields-odd>>
table-header-background: <<colour tiddler-editor-fields-even>>
table-footer-background: #7f7f7f
table-header-background: <<colour table-border>>
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>>
@@ -92,9 +97,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: 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-editor-border: #444444
tiddler-editor-fields-even: #1f1f1f
tiddler-editor-fields-odd: #464646
tiddler-info-background: #1E1E1E
tiddler-info-border: #1E1E1E
tiddler-info-tab-background: #3F638B
@@ -111,8 +116,8 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour very-muted-foreground>>
very-muted-foreground: #464646
untagged-background: #5f5f5f
very-muted-foreground: #3f3f3f
selection-background: #3F638B
selection-foreground: #ffffff
wikilist-background: <<colour page-background>>
@@ -131,3 +136,4 @@ 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: #34c734
download-background: #30b830
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -58,22 +58,26 @@ primary: #5778d8
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
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-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-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: rgba(255,255,255, 0.2)
sidebar-tab-foreground-selected:
sidebar-tab-divider: #e4e4e4
sidebar-tab-foreground-selected: #ddddff
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #aaf
sidebar-tiddler-link-foreground: #ddf
site-title-foreground: #fff
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
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #d8d8d8
@@ -90,7 +94,7 @@ tag-foreground: #ffffff
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground-selected: #6a6aff
tiddler-controls-foreground: #cccccc
tiddler-editor-background: #f8f8f8
tiddler-editor-border-image: #ffffff
@@ -115,3 +119,4 @@ 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: <<colour muted-foreground>>
diff-invisible-foreground: #d3d2cb
dirty-indicator: #ad3434
download-background: #6ca16c
download-background: #5eae62
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -32,14 +32,13 @@ dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #E9E0C7
dropdown-tab-background: #BAB29C
dropzone-background: rgba(0,200,0,0.7)
dropzone-background: #00c600
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-hover: #7474ba
external-link-foreground-visited: #313163
external-link-foreground: #555592
footnote-target-background: #fff7d9
foreground: #2D2A23
highlight-background: #ffff00
highlight-foreground: #000000
@@ -71,7 +70,7 @@ sidebar-controls-foreground: #867F69
sidebar-foreground-shadow: transparent
sidebar-foreground: #867F69
sidebar-muted-foreground-hover: #706A58
sidebar-muted-foreground: #B3A98C
sidebar-muted-foreground: #aba081
sidebar-tab-background-selected: #e0d3af
sidebar-tab-background: #A6A193
sidebar-tab-border-selected: #C3BAA1
@@ -82,6 +81,10 @@ 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
@@ -95,6 +98,7 @@ 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
@@ -140,3 +144,4 @@ 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: #504945
alert-muted-foreground: #272321
background: #3c3836
blockquote-bar: <<colour muted-foreground>>
button-foreground: <<colour foreground>>
code-background: #504945
code-border: #504945
code-foreground: #fb4934
code-foreground: #fc5e4b
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: #b8bb26
download-background: #1daf24
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -46,52 +46,53 @@ highlight-background: #ffff79
highlight-foreground: #000000
menubar-background: #504945
menubar-foreground: <<colour foreground>>
message-background: #83a598
message-background: #b4c9c1
message-border: #83a598
message-foreground: #3c3836
modal-backdrop: <<colour foreground>>
modal-backdrop: #625a57
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: #d79921
primary: #da9921
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: #7c6f64
sidebar-controls-foreground: #504945
sidebar-controls-foreground-hover: #e3e0dd
sidebar-controls-foreground: #978b84
sidebar-foreground-shadow: transparent
sidebar-foreground: #fbf1c7
sidebar-muted-foreground-hover: #7c6f64
sidebar-muted-foreground: #504945
sidebar-muted-foreground-hover: <<colour sidebar-controls-foreground-hover>>
sidebar-muted-foreground: <<colour sidebar-controls-foreground>>
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: #282828
sidebar-tab-foreground-selected: <<colour page-background>>
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: #d79921
stability-legacy: #458588
stability-stable: #98971a
stability-experimental: #b37d1c
stability-legacy: #529ca0
stability-stable: #649618
static-alert-foreground: #B48EAD
tab-background-selected: #ebdbb2
tab-background: #665c54
tab-border-selected: #665c54
tab-border: #665c54
tab-border-selected: <<colour tab-background-selected>>
tab-border: #82746a
tab-divider: #bdae93
tab-foreground-selected: #282828
tab-foreground: #ebdbb2
@@ -100,6 +101,7 @@ 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
@@ -126,7 +128,7 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #504945
untagged-background: #887b75
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: #D08770
alert-highlight: #B48EAD
alert-muted-foreground: #4C566A
alert-border: <<colour alert-background>>
alert-highlight: #a3436f
alert-muted-foreground: #495367
background: #3b4252
blockquote-bar: <<colour muted-foreground>>
button-foreground: <<colour foreground>>
code-background: #2E3440
code-border: #2E3440
code-foreground: #BF616A
code-foreground: #c7747c
diff-delete-background: #BF616A
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
@@ -48,31 +48,32 @@ menubar-background: #2E3440
menubar-foreground: #d8dee9
message-background: #2E3440
message-border: #2E3440
message-foreground: #547599
modal-backdrop: <<colour foreground>>
message-foreground: #6485aa
modal-backdrop: #435678
modal-background: <<colour background>>
modal-border: #3b4252
modal-footer-background: #3b4252
modal-footer-border: #3b4252
modal-header-border: #3b4252
muted-foreground: #4C566A
muted-foreground: #687693
network-activity-foreground: <<colour primary>>
notification-background: <<colour primary>>
notification-border: #EBCB8B
page-background: #2e3440
pre-background: #2E3440
pre-border: #2E3440
primary: #5E81AC
primary: #7b98bb
select-tag-background: #3b4252
select-tag-foreground: <<colour foreground>>
selection-background: #5E81AC
selection-background: #52749e
selection-foreground: <<colour foreground>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #D8DEE9
sidebar-controls-foreground: #4C566A
sidebar-controls-foreground: #5e6a84
sidebar-foreground-shadow: transparent
sidebar-foreground: #D8DEE9
sidebar-muted-foreground-hover: #4C566A
sidebar-muted-foreground: #4C566A
sidebar-muted-foreground-hover: #9fa8bb
sidebar-muted-foreground: #6c7b97
sidebar-tab-background-selected: #ECEFF4
sidebar-tab-background: #4C566A
sidebar-tab-border-selected: <<colour tab-border-selected>>
@@ -83,39 +84,40 @@ 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: #bf616a
stability-experimental: #d08770
stability-legacy: #88c0d0
stability-stable: #a3be8c
stability-deprecated: #ff595e
stability-experimental: #f29d00
stability-legacy: #2ddbca
stability-stable: #04ff04
static-alert-foreground: #B48EAD
tab-background-selected: #ECEFF4
tab-background: #4C566A
tab-border-selected: #4C566A
tab-border: #4C566A
tab-border: #5c6883
tab-divider: #4C566A
tab-foreground-selected: #4C566A
tab-foreground-selected: #6c7a97
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: #4C566A
tiddler-controls-foreground: #5e6a84
tiddler-editor-background: #2e3440
tiddler-editor-border-image: #2e3440
tiddler-editor-border: #3b4252
tiddler-editor-border: #232732
tiddler-editor-fields-even: #2e3440
tiddler-editor-fields-odd: #2e3440
tiddler-editor-fields-odd: #424a5b
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: #4C566A
tiddler-subtitle-foreground: #5c6881
tiddler-title-foreground: #81A1C1
toolbar-new-button:
toolbar-options-button:
@@ -138,4 +140,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:
button-background: #adadad
button-foreground:
button-border:
code-background: #f7f7f9
@@ -47,36 +47,41 @@ 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:
select-tag-foreground:
select-tag-background: <<colour foreground>>
select-tag-foreground: <<colour foreground>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #ffffff
sidebar-controls-foreground-hover: #797979
sidebar-controls-foreground: #cacaca
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: #000
sidebar-tab-background-selected: #000000
sidebar-tab-background: <<colour tab-background>>
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border-selected: #7c7c7c
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: <<colour tab-divider>>
sidebar-tab-foreground-selected:
sidebar-tab-foreground-selected: #ff0909
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: #cccccc
tab-border: #bbbbbb
tab-divider: #d8d8d8
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #666666
@@ -85,6 +90,7 @@ 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
@@ -112,4 +118,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,24 +68,28 @@ 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
# base2
stability-deprecated: <<colour red>>
stability-experimental: <<colour yellow>>
stability-legacy: <<colour blue-hot>>
stability-stable: <<colour green>>
modal-footer-background: <<colour base2>>
page-background: <<colour base2>>
modal-backdrop: <<colour page-background>>
@@ -99,31 +103,31 @@ foreground: #657b83
tag-background: <<colour base2>>
tiddler-editor-background: <<colour base2>>
tiddler-info-background: <<colour base2>>
tiddler-info-tab-background: <<colour base2>>
tiddler-info-tab-background: <<colour tiddler-info-border>>
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
tiddler-controls-foreground: <<colour base10>>
: violet-muted
external-link-foreground-visited: <<colour violet-muted>>
: blue-muted
primary: <<colour blue-muted>>
download-background: <<colour primary>>
tiddler-link-foreground: <<colour primary>>
# blue
# cyan
# green
# base10
tiddler-controls-foreground: <<colour base10>>
# violet-muted
external-link-foreground-visited: <<colour violet-muted>>
# blue-muted
primary: <<colour blue-muted>>
download-background: #5bb83d
tiddler-link-foreground: <<colour primary>>
alert-border: #b99e2f
diff-delete-background: <<colour red>>
diff-delete-foreground: <<colour background>>
@@ -134,7 +138,7 @@ diff-insert-foreground: <<colour background>>
diff-invisible-background: <<colour yellow>>
diff-invisible-foreground: <<colour background>>
dirty-indicator: #ff0000
dropzone-background: rgba(0,200,0,0.7)
dropzone-background: #008800
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
@@ -146,14 +150,10 @@ message-border: #cfd6e6
modal-border: #999999
select-tag-background:
select-tag-foreground:
sidebar-controls-foreground-hover:
sidebar-controls-foreground-hover: #000000
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,6 +166,7 @@ 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
@@ -185,3 +186,4 @@ 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:
external-link-foreground-hover: #1d669c
external-link-foreground-visited: #268bd2
footnote-target-background: #073642
foreground: #839496
@@ -56,6 +56,7 @@ 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
@@ -81,10 +82,10 @@ sidebar-tab-foreground-selected: #93a1a1
sidebar-tiddler-link-foreground: #2aa198
sidebar-tiddler-link-foreground-hover: #eee8d5
site-title-foreground: #d33682
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
stability-deprecated: #aa1a9f
stability-experimental: #806000
stability-legacy: #1d669c
stability-stable: #00df11
static-alert-foreground: #93a1a1
tab-background: #073642
tab-background-selected: #002b36
@@ -98,6 +99,7 @@ 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
@@ -125,4 +127,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: #859900
download-background: #00910b
download-foreground: #eee8d5
dragger-background: #eee8d5
dragger-foreground: #657b83
@@ -56,6 +56,7 @@ 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
@@ -81,10 +82,10 @@ sidebar-tab-foreground-selected: #586e75
sidebar-tiddler-link-foreground: #2aa198
sidebar-tiddler-link-foreground-hover: #002b36
site-title-foreground: #d33682
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
stability-deprecated: #d21a1a
stability-experimental: #771e00
stability-legacy: #227abb
stability-stable: #576400
static-alert-foreground: #586e75
tab-background: #eee8d5
tab-background-selected: #fdf6e3
@@ -98,6 +99,7 @@ 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,6 +94,7 @@ 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: rgba(255,255,255, 0.8)
sidebar-foreground-shadow: #ffffff
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: #008000
stability-stable: #00b700
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: green
wikilist-button-open-hover: #009300
wikilist-button-reveal: #5778d8
wikilist-button-reveal-hover: blue
wikilist-button-reveal-hover: #0000ff
wikilist-button-remove: #d85778
wikilist-button-remove-hover: red
wikilist-button-remove-hover: #ff0000
wikilist-toolbar-background: #d3d3d3
wikilist-toolbar-foreground: #888888
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-droplink-dragover: #ffc0c0
wikilist-button-background: #acacac
wikilist-button-foreground: #000000
wikilist-button-foreground: #000000

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/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"
configTiddlerFilter="[[$:/state/advancedsearch/standard/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"
filterMinLength={{$:/config/Search/MinLength}}/>
</$keyboard>
</$keyboard>

View File

@@ -21,12 +21,6 @@ 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

@@ -0,0 +1,19 @@
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

@@ -17,9 +17,7 @@ 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>>
style.fill=<<foregroundColor>>
style.background-color=<<backgroundColor>>
style=`color:$(foregroundColor)$; fill:$(foregroundColor)$; background-color:$(backgroundColor)$;`
>
<$transclude tiddler=<<icon>>/>
<$view field="title" format="text"/>

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>>/>
<$action-sendmessage $message='tm-download-file' $param='$:/core/templates/tiddlywiki5.js' filename=<<jsFileName>> type="application/javascript"/>
{{$:/core/images/download-button}}
<span class="tc-tiny-gap-left">
Download TiddlyWiki core

View File

@@ -51,6 +51,7 @@ title: $:/core/ui/ImportListing
\end
\whitespace trim
<div class="tc-table-wrapper">
<table class="tc-import-table">
<tbody>
<tr>
@@ -129,3 +130,4 @@ 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>>/>""" >
<$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"/>""" >
<$action-setfield $tiddler=<<qualify "$:/temp/alert">> text=<<noExportMsg>> subtitle="Export ~TiddllyWiki Core"/>
<$action-sendmessage $message="tm-modal" $param=<<qualify "$:/temp/alert">>/>
</$list>

View File

@@ -2,31 +2,26 @@ title: $:/core/ui/SideBar/Tools
tags: $:/tags/SideBar
caption: {{$:/language/SideBar/Tools/Caption}}
\define lingo-base() $:/language/ControlPanel/
\define config-title()
$:/config/PageControlButtons/Visibility/$(listItem)$
\end
\whitespace trim
\procedure lingo-base() $:/language/ControlPanel/
\function config-title() [[$:/config/PageControlButtons/Visibility/$(listItem)$]substitute[]]
<<lingo Basics/Version/Prompt>> <<version>>
<$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>
<$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>

122
core/ui/WikiInformation.tid Normal file
View File

@@ -0,0 +1,122 @@
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,6 +1,6 @@
title: $:/config/OfficialPluginLibrary
tags: $:/tags/PluginLibrary
url: https://tiddlywiki.com/library/v5.3.7/index.html
url: https://tiddlywiki.com/library/v5.3.8/index.html
caption: {{$:/language/OfficialPluginLibrary}}
{{$:/language/OfficialPluginLibrary/Hint}}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -11,6 +11,7 @@ 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,11 +8,16 @@
"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-keymap-sublime-text"
"tiddlywiki/codemirror-trailingspace",
"tiddlywiki/codemirror-keymap-emacs",
"tiddlywiki/codemirror-keymap-sublime-text",
"tiddlywiki/codemirror-keymap-vim"
],
"themes": [
"tiddlywiki/vanilla",
@@ -22,6 +27,9 @@
],
"build": {
"index": [
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"]
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"],
"external": [
"--render","$:/core/save/all-external-js","codemirrordemo.html","text/plain"
]
}
}

View File

@@ -1,5 +1,5 @@
created: 20190809095728085
modified: 20190809123445125
modified: 20250707151538845
title: Releasing a new version of TiddlyWiki
type: text/vnd.tiddlywiki
@@ -15,32 +15,35 @@ type: text/vnd.tiddlywiki
# Adjust the modified time of HelloThere
# Make sure ''master'' is fully committed
!! Update Readmes
!! Update Readmes and release note
# 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, assign it a tag
# Run `./bin/verbump "5.1.3"` (substituting the correct version number) to update the version number and 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
!! Cleaning Up
!! Announcements
# Tweet the release with the text "TiddlyWiki v5.x.x released to https://tiddlywiki.com #newtiddlywikirelease"
# Announce the new release on [[TalkTW|https://talk.tiddlywiki.org]]
!! 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]]
# Adjust new release banner
# Create temporary new release banner
# Create the release note for the new release
# Commit changes to ''master'' and push to ~GitHub

View File

@@ -28,5 +28,4 @@ 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 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.
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.

View File

@@ -34,13 +34,11 @@ 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
@@ -54,7 +52,6 @@ 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) {
@@ -66,7 +63,6 @@ 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.
@@ -74,7 +70,6 @@ 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) {
@@ -86,7 +81,6 @@ 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,10 +40,7 @@ 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
@@ -63,6 +60,4 @@ exports.startup = function() {
});
};
})();
```

View File

@@ -11,10 +11,7 @@ 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"],
@@ -38,5 +35,4 @@ var MyCustomWikiParser = function(type,text,options) {
exports["text/vnd.my-custom-type"] = MyCustomWikiParser;
})();
```

View File

@@ -26,10 +26,7 @@ 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
@@ -50,5 +47,4 @@ exports.prototype.handleChangeEvent = function(event) {
console.log("Checkbox status:",this.inputDomNode.checked);
};
})();
```

View File

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

View File

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

View File

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

View File

@@ -15,6 +15,9 @@
"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

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

View File

@@ -16,6 +16,9 @@
"--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"]
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"],
"external": [
"--render","$:/core/save/all-external-js","highlightdemo.html","text/plain"
]
}
}

View File

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

View File

@@ -19,6 +19,9 @@
"--screenshot",
"[[$:/plugins/tiddlywiki/innerwiki/examples]]",
"4"
],
"external": [
"--render","$:/core/save/all-external-js","index.html","text/plain"
]
}
}

View File

@@ -0,0 +1,30 @@
created: 20130827080000000
list: [[Introduction to filter notation]] [[Filter Syntax]]
modified: 20250218103107943
original-modified: 20230710074511095
tags: Reference Concepts TableOfContents
title: Filters
ja-title: フィルタ
type: text/vnd.tiddlywiki
\define openAdvancedSearch()
<$action-setfield $tiddler="$:/state/tab--1498284803" text="$:/core/ui/AdvancedSearch/Filter"/>
<$action-setfield $tiddler="$:/temp/advancedsearch/input" text="[tag[Filters]]"/>
<$action-setfield $tiddler="$:/temp/advancedsearch" text="[tag[Filters]]"/>
\end
TiddlyWikiは、レコードがTiddlerであるデータベースと考えることができます。データベースは通常、どのレコードが特定のパターンに一致するかを発見する方法を提供します。~TiddlyWikiでは、これはフィルタを使用して行われます
<<.def フィルタ>>は、その<<.def "アウトプット">>として特定の[[Tiddlerセット|Title Selection]]を選択するための簡潔な表記法です。~TiddlyWikiはフィルタに遭遇するたびにアウトプットを計算します。その後、それらのTiddlerを使って、[[数を数え|CountWidget]]たり、[[リストし|ListWidget]]たりするなど、さらなる処理を行うことができます
次の例では、フィルタを<<.mlink list-links>>マクロに渡します。<<.olink2 tag tag>> <<.word フィルタ>>であるTiddlerのリストを表示します:
<<wikitext-example-without-html """<<list-links "[tag[Filters]]">>""" >>
Wiki内でTiddlerが追加や削除されると、フィルタのアウトプットが変更される可能性があります。~TiddlyWikiは即再計算し、フィルタベースのカウントやリストも自動的に更新します
''さらに詳細:''
* <$linkcatcher message="tm-navigate" actions=<<openAdvancedSearch>> >[[高度な検索|$:/AdvancedSearch]]</$linkcatcher> -- フィルタを簡単に試すことができる<<.advancedsearch-tab Filter>>タブがあります
* [[WikiTextでのフィルタされたトランスクルージョン|Transclusion in WikiText]] -- テキスト内でフィルタ結果を使用したい場合

View File

@@ -0,0 +1,19 @@
created: 20150117204109000
modified: 20250222112113766
original-modified: 20240708201746542
tags: Filters
title: Selection Constructors
ja-title: セレクションコンストラクタ
type: text/vnd.tiddlywiki
[[フィルタステップ|Filter Step]]のアウトプットはその[[オペレータ|Filter Operators]]によって異なります:
* ほとんどのオペレータは、インプットからアウトプットを派生します。たとえば、それらの多くはインプットのサブセットをアウトプットし、まさに<<.word フィルタ>>の名にふさわしく、含んでいる[[ラン|Filter Run]]の全体的なアウトプットを絞り込みます。これらのオペレータは<<.def "セレクションモディファイア">>と呼ばれます。
* いくつかのオペレータはインプットを無視し、代わりに独立したアウトプットを生成します。これらは<<.def "セレクションコンストラクタ">>と呼ばれ、完全に新しい[[セレクション|Title Selection]]を構築します。
コンストラクタの良い例は<<.olink title>>です。`[title[A]title[B]]`のアウトプットは<<.tid B>>です。しかし、<<.olink field>>オペレータはモディファイアなので、`[title[A]field:title[B]`は何もアウトプットしません。
次の[[フィルタオペレータ|filter Operator]]は<<tag>>でタグ付けされています:
<<list-links "[tag<currentTiddler>]" class:"multi-columns">>

View File

@@ -0,0 +1,20 @@
created: 20230316150731234
from-version: 5.1.23
modified: 20250303102704427
original-modified: 20230711084644541
rp-input: 前回のフィルタランからのすべてのタイトル
rp-output: アウトプットタイトルは、重複を排除せずに以前のフィルタランの出力に追加されます。
rp-purpose: 重複を排除しない和集合
tags: [[Named Filter Run Prefix]]
title: All Filter Run Prefix
ja-title: allフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":all" | - )
[["ラン"|"Filter Run"]]
"""/>
このプレフィックスにはオプションの[[ショートカット構文|Shortcut Filter Run Prefix]]であるシンボル`=run`があります

View File

@@ -0,0 +1,20 @@
created: 20230318142752854
from-version: 5.1.23
modified: 20250303103244036
original-modified: 20230711084712170
rp-purpose: フィルタステップの蓄積
rp-input: これまでのすべてのランのフィルタアウトプット
rp-output: アウトプットのタイトルは、以前のフィルターランのアウトプットを置換
tags: [[Named Filter Run Prefix]]
title: And Filter Run Prefix
ja-title: andフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":and" | - )
[["ラン"|"Filter Run"]]
"""/>
このプレフィックスにはオプションの[[ショートカット構文|Shortcut Filter Run Prefix]]であるシンボル+runがあります

View File

@@ -0,0 +1,48 @@
created: 20211130114857532
filter1: [prefix[ca]then[ca]]
filter2: [suffix[at]then[at]]
filter3: other
modified: 20250310110107153
original-modified: 20230305125250563
tags: [[Cascade Filter Run Prefix]]
title: Cascade Filter Run Prefix (Examples)
ja-title: cascadeフィルタランプレフィックス (例)
type: text/vnd.tiddlywiki
<<.op ":cascade">>フィルタランプレフィックスは、タグマクロによって生成されるタグピルで使用される各Tiddlerの配色を選択するために、~TiddlyWikiコアによって使用されます。
`:cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]]`
上記の<<.op :cascade>>フィルタラン内のフィルタ式は、<<tag $:/tags/TiddlerColourFilter>>でタグ付けされたTiddlerのテキストフィールドからフィルタのリストを返します。以下を参照:
<ul>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]]">
<li><pre><$text text=<<currentTiddler>>/></pre></li>
</$list>
</ul>
インプットタイトルごとに、これらのフィルタが順番に適用され、空でないリストを返す最初のフィルタが見つかるまで続きます。この空でないリストの最初の結果がそのインプットタイトルに置き換えられ、そのTiddlerの色として使用されます。
<<.operator-example 1 """[all[shadows+tiddlers]] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] +[!is[blank]limit[10]]""">>
!! 拡張例
この例では、<<.op :cascade>>フィルタランがどのように機能するかを段階的に説明します。
アウトプットがフィルタのリストを返すフィルタ式が必要です。通常、このようなフィルタ式は、一連のTiddler内のいくつかのフィールドを照会して(おそらくタグ経由で)フィルタのリストを作成します。この例を自己完結型にするために、このTiddlerの//filter1//、//filter2//、//filter3//フィールドに、3つのフィルタが格納されます。[[テキスト参照|TextReference]]と[[appendオペレータ|append Operator]]のインスタンスを使用して、フィールドをフィルタのリストに結合します。
フィルター`[{!!filter1}append{!!filter2}append{!!filter3}]`は、次のフィルタリストを生成します:
<ul>
<$list filter="[{!!filter1}append{!!filter2}append{!!filter3}]">
<li><pre><$text text=<<currentTiddler>>/></pre></li>
</$list>
</ul>
この例では、`cat can bat bug`がインプットタイトルとして使用されます。各インプットタイトルは、上記の各フィルタに対して順番に<<.op :cascade>>で評価されます。<<.op :cascade>>の内部で何が起こっているかを理解しやすくするために、次の表では、[[mapフィルタランプレフィックス|Map Filter Run Prefix]]を使用して、各フィルタの結果を示しています。
|^<<.operator-example c1.1 "cat can bat bug :map[prefix[ca]then[ca]]">>|^<<.operator-example c1.2 "cat can bat bug :map[suffix[at]then[at]]">>|^<<.operator-example c1.3 "cat can bat bug :map[[other]]">>|
上記の3つの例で"Try it"をクリックします。<<.op :cascade>>を使用すると、各行の左から右に読み取られた最初の空白以外の値が返されます。最終結果を確認するには、下の"Try it"をクリックします。
<<.operator-example c1.4 "cat can bat bug :cascade[{!!filter1}append{!!filter2}append{!!filter3}]">>

View File

@@ -0,0 +1,27 @@
created: 20211130114043280
from-version: 5.2.1
modified: 20250305112707026
original-modified: 20230710073343947
rp-input: これまでのすべてのランのフィルタアウトプット
rp-output: このフィルタランによって返されるフィルタによって変更されたインプットタイトル
rp-purpose: フィルターのリストを順に評価し、最初の結果を適用してインプットタイトルを変更
tags: [[Named Filter Run Prefix]]
title: Cascade Filter Run Prefix
ja-title: cascadeフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":cascade" | - )
[["ラン"|"Filter Run"]]
"""/>
この[[フィルタラン|Filter Run]]の[[フィルタ式|Filter Expression]]が評価され、フィルタのリストが返されます。次に、各インプットタイトルが各フィルタに対して順番に評価され、インプットタイトルは空でないリストを返す最初のフィルタの最初の結果に置き換えられます。どのフィルタもインプットタイトルの結果を返さない場合は、空の文字列に置き換えられます。
フィルタラン内では、次の変数を使用できます:
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタラン外の変数<<.var currentTiddler>>の値。
[[cascadeフィルタランプレフィックス (例)|Cascade Filter Run Prefix (Examples)]]

View File

@@ -0,0 +1,22 @@
created: 20230318142408662
from-version: 5.1.23
modified: 20250312102737003
original-modified: 20230322140756821
rp-input: 前のフィルタランからのすべてのタイトル
rp-output: これまでのフィルタアウトプットが空のリストの場合、ランのアウトプットタイトルがフィルタアウトプットに[[追加|Dominant Append]]されます<br>これまでのフィルタアウトプットが空のリストでない場合、ランは無視されます
rp-purpose: フィルタランは、これまでのすべてのランのフィルタアウトプットが空のリストである場合にのみ評価されます
tags: [[Named Filter Run Prefix]]
title: Else Filter Run Prefix
ja-title: elseフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":else" | - )
[[run|"Filter Run"]]
"""/>
このプレフィックスには[[ショートカットフィルタランプレフィックス|Shortcut Filter Run Prefix]] シンボル`~run`があります
参照: [[thenフィルタランプレフィックス|Then Filter Run Prefix]] | [[thenオペレータ|then Operator]] と [[elseオペレータ|else Operator]]

View File

@@ -0,0 +1,20 @@
created: 20230318142056008
from-version: 5.1.23
modified: 20250312104032308
original-modified: 20230322140643066
rp-input: 前のフィルタランからのすべてのタイトル
rp-output: アウトプットタイトルはフィルタのアウトプットから取り除かれますそのようなTiddlerが存在する場合
rp-purpose: このフィルタランのアウトプットタイトルが前のフィルタランのアウトプットに含まれている場合は取り除かれ、含まれていない場合は無視されます
tags: [[Named Filter Run Prefix]]
title: Except Filter Run Prefix
ja-title: exceptフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":except" | - )
[[run|"Filter Run"]]
"""/>
このプレフィックスには[[ショートカットフィルタランプレフィックス|Shortcut Filter Run Prefix]]シンボル`-run`があります

View File

@@ -0,0 +1,23 @@
created: 20150124182421000
modified: 20250219114110986
original-modified: 20230710074507466
tags: [[Filter Syntax]]
title: Filter Expression
ja-title: フィルタ式
type: text/vnd.tiddlywiki
<<.def "フィルタ式">>は、[[フィルタのシンタックス|Filter Syntax]]の最も外側のレベルです。これは、[[フィルタランプレフィックス|Filter Run Prefix]]を備えた [[フィルタラン|Filter Run]]で構成されます。複数のフィルタ実行は[[ホワイトスペース|Filter Whitespace]]で区切られます。
<$railroad text="""
{ (
- |
: [[<"プレフィックス">|"Filter Run Prefix"]]
)
[["ラン"|"Filter Run"]]
+ [["ホワイトスペース"|"Filter Whitespace"]]
}
"""/>
<<.tip """上に示したように、図に開始線と終了線が1つある場合は、リンクされた上位レベルにさらに情報があることを意味します。パンくずリストはナビゲーションに使用できます""">>
<<.tip """下位レベルで使用されているように、図に開始点と終了点がない場合は、読みやすさと単純さを高めるために、上位レベルのシンタックス要素が削除されていることを意味します。パンくずリストはナビゲーションに使用できます""">>

View File

@@ -0,0 +1,33 @@
created: 20211129022707404
modified: 20250314105437481
original-modified: 20230305125338118
tags: [[Filter Filter Run Prefix]]
title: Filter Filter Run Prefix (Examples)
ja-title: filterフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
<<.operator-example 1 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]]">>
<<.operator-example 2 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:lteq[2000]]">>
<<.operator-example 3 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]] :filter[get[text]length[]compare:integer:lteq[2000]]">>
<<.operator-example 4 "[tag[Features]] :filter[links[]!is[shadow]is[missing]]">>
<<.operator-example 5 "A B C D E F :filter[<index>remainder[2]compare:integer:eq[0]]" "インプットリストの要素を1つおきに返す">>
<<.operator-example 6 "[tag[shopping]] :filter[{!!quantity}compare:integer:gt[4]] :map[addprefix[ ]addprefix{!!quantity}]">>
<<.operator-example 7 "[tag[shopping]] :filter[{!!quantity}compare:integer:lteq[4]] :map[addprefix[ ]addprefix{!!quantity}]">>
!! フィルタランプレフィックス`:filter`と`:and`/`+`の比較
<<.op :filter>>フィルタランプレフィックスの機能は、<<.op :and>>プレフィックス(エイリアス<<.op +>>)と一部重複しています。上記のフィルタ式にはすべて、次の2 つのプロパティがあることに注意してください:
# フィルタ式の先頭では、インプットタイトル(つまり、`get[text]length[]`、`links[]`、`<index>remainder[2]`、`{!!quantity}`)が変換されます。
# フィルタ式の最後では、インプット項目が何らかの条件(つまり`compare`、`is`)を満たす場合にのみアウトプットに送信されます。
<<.op :filter>>プレフィックスの目的はプロパティ#1によってインプットタイトルが変換されるにもかかわらず、元のインプットタイトルを返すことです。こうすることで、"何らかの条件を満たす"チェックを元のインプット以外のものに対して実行できます。一部のフィルタ式でプロパティ#1が必要ない場合は、代わりに<<.op :and>>プレフィックスを使用できます。
| <<.op :filter>> | <<.op :and>> |
|^<<.operator-example c1.1 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]]">>|^<<.operator-example c1.2 "[tag[HelloThere]] :and[get[text]length[]compare:integer:gteq[1000]]">>|
|^<<.operator-example c2.1 "[tag[Features]] :filter[links[]!is[shadow]is[missing]]">>|^<<.operator-example c2.2 "[tag[Features]] :and[links[]!is[shadow]is[missing]]">>|
|!結果は同じ|<|
|^<<.operator-example c3.1 "cat can bat bug :filter[suffix[at]minlength[3]]">>|^<<.operator-example c3.2 "cat can bat bug :and[suffix[at]minlength[3]]">>|

View File

@@ -0,0 +1,34 @@
created: 20211129022455873
from-version: 5.1.23
modified: 20250314105047035
original-modified: 20230710073334078
rp-input: これまでのすべてのランのフィルタアウトプット
rp-output: フィルタランが空でないインプットタイトル
rp-purpose: フィルタランアウトプットが空のリストであるすべてのインプットタイトルを除外
tags: [[Named Filter Run Prefix]]
title: Filter Filter Run Prefix
ja-title: filterフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":filter" | - )
[["ラン"|"Filter Run"]]
"""/>
これまでのフィルタアウトプットをインプットとして受け取ります。次のランはインプットの各タイトルに対して評価され、アウトプットが空のリストであるすべてのインプットタイトルが除かれます。
フィルタラン内では、<<.var currentTiddler>>変数は処理中のTiddlerのタイトルに設定されていることに注意してください。これにより、`:filter[{!!price}multiply{!!cost}compare:integer:gteq[5]]`のようなフィルタランを計算に使用できるようになります。ラン外のcurrentTiddlerの値は、<<.var ..currentTiddler>>変数で使用できます。
フィルターラン内では、次の変数を使用できます:
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタラン外の変数`currentTiddler`の値。
* <<.var index>> - <<.from-version "5.2.1">> 現在のリスト項目の数値インデックス(リストの最初の項目はゼロです)。
* <<.var revIndex>> - <<.from-version "5.2.1">> 現在のリスト項目の逆数値インデックス(リストの最後の項目はゼロです)。
* <<.var length>> - <<.from-version "5.2.1">> インプットリストの長さの合計。
<<.tip "名前付きフィルタランプレフィックス`:filter`を、この演算子は、すべてのインプットタイトルにサブフィルタを適用し、サブフィルタから空の結果を返すタイトルを除外する[[filterオペレータ|filter Operator]]と比べてください。">>
[[filterフィルタランプレフィックス(例)|Filter Filter Run Prefix (Examples)]]

View File

@@ -0,0 +1,40 @@
created: 20150220152540000
modified: 20250223102930110
original-modified: 20240708202234843
tags: [[Filter Step]]
title: Filter Parameter
ja-title: フィルタパラメータ
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( "[" [: <-"ハード"-> /"]以外"/] "]"
|
"{" [: <-"間接"-> /"}以外"/] "}"
|
"<" [: <-"変数"-> /">以外"/] ">"
)
"""/>
[[フィルタオペレータ|Filter Operators]]のパラメーターは次のようになります:
;<<.def ハード>>
: `[パラメータ例]`
: パラメータは、角括弧内のテキストそのものです。
;<<.def ソフト>>
: <<.def 間接>>
:: `{パラメータ例}`
:: パラメータは、中括弧内の名前の[[テキスト参照|TextReference]]によって示されるテキスト、つまり、指定されたTiddlerの[[フィールド|TiddlerFields]]、または指定された[[データTiddler|DataTiddlers]]のプロパティの値です。
: <<.def 変数>>
:: `<パラメータ例>`
:: パラメータは、山括弧内の[[変数|Variables]]の現在値です。マクロパラメータは、v5.2.0まではサポートされて<<.em いません>>。
::<<.from-version "5.2.0">> リテラルマクロパラメータがサポートされています。例: `[<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>]`。
<<.note """すべての[[フィルタオペレータ|filter Operator]]の後にはパラメータ式が続く必要があります。[[パラメータの無いオペレータ|Operators without parameters]]の場合、その式は空になります(`[<currentTiddler>links[]]`のフィルタオペレータ<<.olink links>>と同様)。""">>
---
<<.from-version "5.1.23">> [[フィルタステップ|Filter Step]]では、`,`文字で区切られた複数のパラメータがサポートされます。
例えば: `[param1],[param2]`や`<param1>,{param2}`

View File

@@ -0,0 +1,21 @@
created: 20230305130600148
modified: 20250223105142349
original-modified: 20230711090913687
tags: [[Filter Expression]]
title: Filter Run Prefix
ja-title: フィルタランプレフィックス
type: text/vnd.tiddlywiki
There are 2 types of filter run prefixes that are interchangeable; [[named prefixes|Named Filter Run Prefix]] and [[shortcut prefixes|Shortcut Filter Run Prefix]].
交換可能なフィルタランプレフィックスには、[[名前付きプレフィックス|Named Filter Run Prefix]]と[[ショートカットプレフィックス|Shortcut Filter Run Prefix]]の2種類があります。
<$railroad text="""
\start none
\end none
(
- |
: [[<":名前付きプレフィクス"> /"v5.1.23以降"/ |"Named Filter Run Prefix"]] |
[[<"ショートカットプレフィックス"> /"v5.1.23以前"/ |"Shortcut Filter Run Prefix"]]
)
[[<"ラン">|"Filter Run"]]
"""/>

View File

@@ -0,0 +1,29 @@
created: 20150124182117000
modified: 20250220111652831
original-modified: 20230710074357002
tags: [[Filter Expression]]
title: Filter Run
ja-title: フィルタラン
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( "[" { [[<"フィルタステップ">|"Filter Step"]] } "]"
|
[:{/"[ ]または空白以外の文字"/}]
|
'"' [:{/'"以外の文字'/}] '"'
|
"'" [:{/"'以外の文字"/}] "'"
)
"""/>
<<.def ラン>>は[[ステップ|Filter Step]]で構成され、より大きな[[フィルタ式|Filter Expression]]に貢献する[[選択|Title Selection]]を出力します。
ステップは左から右に処理されます。最初のステップへのインプットはランへのインプットと同じです。後続の各ステップのインプットは、前のステップのアウトプットです。
図の下の3つのオプションは`HelloThere`、`"HelloThere"`、`'HelloThere'`と`"Filter Operators"`の構文と一致します。これらは`[title[...]]`の短縮形です。
引用符で囲まれたオプションは、`"An [[[[Unusual]]]] Tiddler"`のように角括弧を含むタイトルをサポートするために存在します。

View File

@@ -0,0 +1,37 @@
created: 20150124182127000
modified: 20250222110925130
original-modified: 20230710074414361
tags: [[Filter Run]]
title: Filter Step
ja-title: フィルタステップ
type: text/vnd.tiddlywiki
<<.def "フィルタステップ">>は、<<.def "フィルタラン">>内の単一の操作を表します。
プログラミング用語では、ステップのインプットがパラメータとして渡される関数呼び出しに似ています。ステップのアウトプットは、[[フィルタラン|Filter Run]]、つまりそれを含む[[フィルタ式|Filter Expression]]全体に貢献する[[タイトルセレクション|Title Selection]]です。
<$railroad text="""
\start none
\end none
[:"!"]
( / "省略の場合のデフォルト: title" /|:
( - | :[[<"オペレータ">|"Filter Operators"]] )
{ [:":" [[<"サフィックス">|"Filter Operators"]] ] } )
{ [[<"パラメータ">|"Filter Parameter"]] + "," }
"""/>
ステップの<<.def オペレータ>>は、[[フィルタオペレータ|Filter Operators]]として知られている定義済みキーワードのリストです。
多くのステップでは、ステップの実行内容をさらに定義する明示的な<<.def パラメータ>>が必要です。
<<.def サフィックス>>は、特定のオペレータの意味を拡張する追加テキスト(多くの場合、[[フィールド|TiddlerFields]]名)です。
ステップの<<.def オペレータ>>と<<.def サフィックス>>がすべて省略されている場合は、デフォルトで[[title|title Operator]]オペレータが使用されます。
<<.from-version "5.1.23">> いくつかのステップでは、`,`文字で区切られた複数の<<.def パラメータ>>を受け入れます。
認識されないオペレータは、<<.olink field>>オペレータのサフィックスであるかのように扱われます。
フィルタオペレータはプラグインによって拡張できます。
{{Selection Constructors}}

View File

@@ -0,0 +1,26 @@
created: 20140210141217955
list: [[Filter Expression]] [[Filter Run]] [[Filter Step]] [[Filter Parameter]] [[Filter Whitespace]]
modified: 20250219112710650
original-modified: 20230710074340943
tags: Filters
title: Filter Syntax
ja-title: フィルタのシンタックス
type: text/vnd.tiddlywiki
<<.preamble """[[フィルタ|Filters]]は、正式な構文の説明が役立つと思われる人向けに、[[Railroadダイアグラム|Railroad Diagrams]]を使用して示されている文法に従います。ただし、このグループのTiddlerを理解していなくても、[[フィルタの書き方を学ぶ|Introduction to filter notation]]ことができます""">>
<<.def フィルタ>>は、<<.def インプット>>を<<.def アウトプット>>に変換するためのパイプラインです。インプットとアウトプットはどちらも、Tiddlerとフィールドの[[タイトルの順序付き集合|Title Selection]]です
フィルタは、''ラン''と呼ばれる小さな構成要素から構成される''式''であり、''ラン''は''ステップ''を使用して構築されます。それぞれがインプットをアウトプットに変換します
フィルタは空のアウトプットから始まります。その実行は左から右に処理され、アウトプットが徐々に修正されます。
"フィルタのシンタックス"の記述は次で始まります:
<$railroad text="""
\start double
\end double
[[<"フィルタ式">|"Filter Expression"]]
"""/>
<<.tip "上記のようなRailroadボックスを使用して移動できます。">>

View File

@@ -0,0 +1,15 @@
created: 20150124182304000
modified: 20250510104756224
original-modified: 20230710074447240
tags: [[Filter Expression]]
title: Filter Whitespace
ja-title: フィルタホワイトスペース
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
{( "スペース" | "タブ" | "ラインフィード" | "リターン" | "垂直タブ" | "改ページ" )}
"""/>
[[フィルタ式|Filter Expression]]の各ランの間にはホワイトスペース文字が出現します。

View File

@@ -0,0 +1,47 @@
created: 20230316151518640
modified: 20250225113139787
original-modified: 20230327130626715
tags: [[Filter Run Prefix]]
title: Interchangeable Filter Run Prefixes
ja-title: 交換可能なフィルターランプレフィックス
type: text/vnd.tiddlywiki
!! 交換可能なフィルターランプレフィックス
技術的/論理的な用語で言えば:
|!ラン |!同等の名前付きプレフィックス |!解釈 |!アウトプット |
|`[run]` |`:or[run]` |重複を排除した和集合 |... OR ラン |
|`+[run]` |`:and[run]` |フィルタステップの蓄積 |... AND ラン |
|`-[run]` |`:except[run]` |差集合 |... AND NOT ラン |
|`~[run]` |`:else[run]` |それ以外 |... ELSE ラン |
|`=[run]` |`:all[run]` |重複を排除しない和集合 |... OR ラン |
ランのインプットは通常、Wiki内の[[隠し|ShadowTiddlers]]Tiddler以外のすべてのTiddlerタイトルのリストです(順不同)。<br>ただし、`+`プレフィックスによってこれを変更できます:
|プレフィックス|インプット|h
|`-`, `~`, `=`, `:intersection` あるいは、無し| 最初の[[フィルタオペレータ|Filter Operators]]によって特に指定されない限り、<$link to="all Operator">`[all[]]`</$link> Tiddlerのタイトル|
|`+`, `:filter`, `:map`, `:reduce`,`:sort` |これまでのすべてのランのフィルタアウトプット|
インプットが変化するため、`-`と`+`の両方のプレフィックスが互いに逆の動作をしないことに注意してください。
たとえば、次の2つの例では、`$:/baz`は実際に存在する場合にのみ削除されます:
* <$link to="is Operator"> `foo bar $:/baz -[is[system]]`</$link>
* <$link to="prefix Operator">`foo bar $:/baz -[prefix[$:/]]`</$link>
理由を理解するには、両方の最後のランのインプットとその`-`プレフィックスを考慮してください。
存在するかどうかに関係なく、`$:/baz`を削除するには、[[否定のフィルタオペレータ|Filter Operators]]とともに`+`プレフィックスを使用するだけです:
* <$link to="is Operator">`foo bar $:/baz +[!is[system]]`</$link>
* <$link to="prefix Operator">`foo bar $:/baz +[!prefix[$:/]]`</$link>
!! +と和集合の違い
`+`と`:intersection`の違いについては[[和集合フィルタランプレフィックス(例)|Intersection Filter Run Prefix (Examples)]]を参照してください。
!! 開発者向け
新しいフィルタランプレフィックスを作成するには、`filterrunprefix`の[[モジュールタイプ|ModuleType]]で
[[Javascriptモジュール|Modules]]を作成します。

View File

@@ -0,0 +1,38 @@
created: 20211128212902292
modified: 20250319104544220
original-modified: 20230305125354209
tags: [[Intersection Filter Run Prefix]]
title: Intersection Filter Run Prefix (Examples)
ja-title: intersectionフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
<<.operator-example 1 "A B C D :intersection[enlist[C D E F]]">>
<<.operator-example 2 "A B C D :intersection[enlist[A B C D]]">>
<<.operator-example 3 "A B C D :intersection[enlist[E F G H]]">>
<<.operator-example 4 ":intersection[enlist[A B C D]]" "最初のフィルタランでintersectionを使用することはあまり役に立ちません。結果は常に空になります。">>
!! `+`と`:intersection`の違い
プレフィックス`+`は、形式論理における"AND"として考えてください。たとえば、"条件A ''かつ'' 条件Bを満たすすべてのタイトルを取得する"などです。ただし、すべてのケースに適しているわけではありません。条件Bがインプットを置き換えるフィルタオペレータを使用する場合、プレフィックス`+`の使用は難しくなります。たとえば、2つのTiddlerに共通するタグを見つけたい場合は、次のようなフィルタ式を記述します:
* <$link to="tags Operator">`[[field Operator]tags[]] +[[compare Operator]tags[]]`</$link>
しかし、これは機能しません。2回目のフィルタランでインプットが破棄され、単一のtitle`[[compare Operator]]`で構成されるインプットに置き換えられるからです。そのため、このフィルタ式から得られる結果は、`compare Operator`Tiddlerのタグだけになります。
このような場合、必要なのは`:intersection`プレフィックスです。これまでのフィルタアウトプットを取得して、//保留し//、すべてのTiddlerタイトルをインプットとして次のフィルタランを開始します。その後、最新のフィルタランが完了すると、最新のアウトプットを取得して保留していたアウトプットと比較し、保留していたアウトプットと最新のアウトプットの両方に表示されたタイトルのみを含む新しいアウトプットを生成します。したがって、`field Operator`と`compare Operator`に共通するタグのみを取得するには、次のようなフィルタ式を記述します。
* <$link to="tags Operator">`[[field Operator]tags[]] :intersection[[compare Operator]tags[]]`</$link>
次の例では、[[field Operator]]と[[compare Operator]]を使用して、Tiddlerとそれぞれのタグを比較します。
<<.operator-example 5 "[[field Operator]tags[]]">>
<<.operator-example 6 "[[compare Operator]tags[]]">>
<<.operator-example 7 "[[field Operator]tags[]] +[[compare Operator]tags[]]" """"field Operator"Tiddlerのタグは失われるため、"compare Operator"Tiddlerのタグのみが返されます""">>
<<.operator-example 8 "[[field Operator]tags[]] :intersection[[compare Operator]tags[]]" """両方のTiddlerに共通するタグを返します""">>

View File

@@ -0,0 +1,22 @@
created: 20211128212902292
from-version: 5.1.23
modified: 20250317105829721
original-modified: 20230710073322863
rp-input: 前のフィルタランからのすべてのタイトル
rp-output: このフィルタランの結果と前のランのアウトプットの両方に存在するタイトル
rp-purpose: 前のランからのタイトルとこのフィルタのタイトルの共通部分を見つける
tags: [[Named Filter Run Prefix]]
title: Intersection Filter Run Prefix
ja-title: intersectionフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":intersection" | - )
[["ラン"|"Filter Run"]]
"""/>
前のランからのフィルタアウトプットは保留されます。`:intersection`フィルタランは、すべてのTiddlerタイトルをインプットとして開始されます。この最後のフィルタランが完了すると、最後のアウトプットが保留アウトプットと比較されます。保留アウトプットと最新アウトプットの両方に表われるタイトルのみを含む新しいアウトプットが生成されます。
[[intersectionフィルタランプレフィックス(例)|Intersection Filter Run Prefix (Examples)]]

View File

@@ -0,0 +1,60 @@
created: 20210618134753828
modified: 20250416110748088
original-modified: 20230305125405422
tags: [[Map Filter Run Prefix]]
title: Map Filter Run Prefix (Examples)
ja-title: mapフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
インプットタイトルが存在する場合はキャプションフィールドで置き換え、存在しない場合はインプットタイトルを保持します:
<<.operator-example 1 "[tag[Widgets]] :map[get[caption]else{!!title}]">>
<<.tip "上記の例は`[tag[Widgets]] :map[{!!caption}!is[blank]else{!!title}]`と同等です。フィールドを`{!!caption}`のようにテキスト参照として参照する場合、存在しない、または空のキャプションフィールドに対しては空文字列が返されることに注意してください。したがって、`else`オペレータの前に`is[blank]`のチェックが必要です。">>
買い物リストの各タイトルについて、各アイテムの購入にかかる合計コストを計算します:
<<.operator-example 2 "[tag[shopping]] :map[get[quantity]else[0]multiply{!!price}]">>
`Widget:`でタグ付けされたすべてのTiddlerのタグを取得します:
<<.operator-example 3 "[tag[Widgets]] :map:flat[tagging[]] :and[!is[blank]unique[]]">>
<<.tip "`flat`サフィックスがない場合、`:map`フィルタランは各インプットタイトルの最初の結果のみを返します">>
!! `:map`の`flat`サフィックスの有無の比較
`:map`フィルタランは、少なくともインプットと同じ数のアウトプットを返します。デフォルトでは、1つのインプット項目に対して1つのアウトプット項目が生成されます。フィルタランによってインプット項目が空の結果に変換された場合、その項目のアウトプットは空の文字列になります。フィルタランによってインプット項目が複数の項目に変換された場合、アウトプットには最初の項目のみが表われます。この動作は、`flat`サフィックスを指定することで上書きできます。`flat`サフィックスを指定すると、すべての項目がアウトプットに表れます。
| `:map` | `:map:flat` |
|^<<.operator-example m0.1 "[range[4]] :map[match[this matches nothing]]">>|^<<.operator-example m0.2 "[range[4]] :map:flat[match[this matches nothing]]">>|
|^<<.operator-example m1.1 "[range[4]] :map[range<currentTiddler>]">>|^<<.operator-example m1.2 "[range[4]] :map:flat[range<currentTiddler>]">>|
|^<<.operator-example m2.1 "[range[4]] :map[range<currentTiddler>]">>|^<<.operator-example m2.2 "[range[4]] :map:flat[range<currentTiddler>first[]]">>|
|^<<.operator-example m3.1 "[range[4]] :map[range<currentTiddler>sum[]]">>|^<<.operator-example m3.2 "[range[4]] :map:flat[range<currentTiddler>sum[]]">>|
|^<<.operator-example m4.1 "[[1,2,3]] [[4,5]] :map[split[,]]">>|^<<.operator-example m4.2 "[[1,2,3]] [[4,5]] :map:flat[split[,]]">>|
|^<<.operator-example m5.1 "[[1,2,3]] [[4,5]] :map[split[,]]">>|^<<.operator-example m5.2 "[[1,2,3]] [[4,5]] :map:flat[split[,]first[]]">>|
!! `:map`と`:and`/`+`フィルタランプレフィックスの比較
`:map`フィルタランプレフィックスの機能は、`:and` プレフィックス(別名`+`)と一部重複しています。これらは同じ結果を返す場合もありますが、少なくとも以下の場合には結果が異なります:
# `:and`フィルタランによってアイテム数が変更される(増加や減少)場合があります。`:map`フィルタランによってアイテム数が変更されることはありません。
# `:and`フィルタランのアイテム数は、[[重複排除|Dominant Append]]により減少します。`:map`ランは[[重複排除|Dominant Append]]は行われません。
# "currentTiddler"変数への明示的な参照は異なる動作をします
# TextReferenceを使用した"currentTiddler"への暗黙的な参照は異なる動作をします。
| `:map` | `:and` |
|!結果は同じ|<|
|^<<.operator-example 1.1 "[range[5]] :map[add[1]]">>|^<<.operator-example 1.2 "[range[5]] :and[add[1]]">>|
|^<<.operator-example 2.1 "[range[5]] :map[addsuffix[ hello]]">>|^<<.operator-example 2.2 "[range[5]] :and[addsuffix[ hello]]">>|
|^<<.operator-example 3.1 "[tag[shopping]] :map[get[quantity]]">>|^<<.operator-example 3.2 "[tag[shopping]] :and[get[quantity]]">>|
|!項目数が減少|<|
|^<<.operator-example 4.1 "[range[5]] :map[sum[]]">>|^<<.operator-example 4.2 "[range[5]] :and[sum[]]">>|
|^<<.operator-example 5.1 "[range[5]] :map[join[,]]">>|^<<.operator-example 5.2 "[range[5]] :and[join[,]]">>|
|!項目数が増加|<|
|^<<.operator-example 6.1 "[[1,2,3]] [[4,5]] :map[split[,]]">>|^<<.operator-example 6.2 "[[1,2,3]] [[4,5]] :and[split[,]]">>|
|!重複排除|<|
|^<<.operator-example 7.1 "[range[5]] :map[[hello]]">>|^<<.operator-example 7.2 "[range[5]] :and[[hello]]">>|
|!currentTiddler|<|
|^<<.operator-example 8.1 "[tag[shopping]] :map[<currentTiddler>]">>|^<<.operator-example 8.2 "[tag[shopping]] :and[<currentTiddler>]">>|
|^<<.operator-example 9.1 "[tag[shopping]] :map[{!!quantity}]">>|^<<.operator-example 9.2 "[tag[shopping]] :and[{!!quantity}]">>|

View File

@@ -0,0 +1,35 @@
created: 20210618133745003
from-version: 5.2.0
modified: 20250319105451115
original-modified: 20240312202834547
rp-input: 前回までのすべてのランのフィルタアウトプット
rp-output: このフィルタランの結果によって変更されたインプットタイトル
rp-purpose: 各項目に対してこのフィルタを実行した結果に基づいてインプットタイトルを変更
rp-suffix: <<.from-version "5.2.3">> フィルタランからすべての結果を返す場合は<<.value flat>>、最初の結果のみを返す場合は省略(デフォルト)
tags: [[Named Filter Run Prefix]]
title: Map Filter Run Prefix
ja-title: mapフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":map" (: ":flat" | - ) | - )
[["ラン"|"Filter Run"]]
"""/>
以前のランからの各インプットタイトルは、順番にこのランに渡されます。フィルタランはインプットタイトルを変換し、このランのアウトプットはインプットタイトルを置き換えます。たとえば、フィルタラン`[get[caption]else{!!title}]`は、タイトルが保持されるフィールドが存在しない場合以外、各インプットタイトルをそのキャプションフィールドに置き換えます。
フィルタラン内では、<<.var currentTiddler>>変数は処理中のTiddlerのタイトルに設定されていることに注意してください。これにより、`:map[{!!price}multiply{!!cost}]`のようなフィルタランが計算に使用できるようになります。
フィルタラン内では、次の変数を使用できます:
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタランの外での変数`currentTiddler`の値。
* <<.var index>> - <<.from-version "5.2.1">> 現在のリスト項目の数値インデックス(リストの最初の項目はゼロ)。
* <<.var revIndex>> - <<.from-version "5.2.1">> 現在のリスト項目の逆数値インデックス(リストの最後の項目はゼロ)。
* <<.var length>> - <<.from-version "5.2.1">> インプットリストの合計の長さ。
`:map`プレフィックス付きで使用されるフィルタランは、渡された項目と少なくとも同じ数の項目を返す必要があります。フィルタランがアウトプットを返さないインプットタイトルは、空の文字列に置き換えられます。特に、[[getオペレータ|get Operator]]を使用してフィールドの値を取得する場合は、[[elseオペレータ|else Operator]] を使用してフィールド値が欠落しないようにすると役立ちます。たとえば、`[get[myfield]else[default-value]...`のようにします。
[[mapフィルタランプレフィックス(例)|Map Filter Run Prefix (Examples)]]

View File

@@ -0,0 +1,38 @@
created: 20201214044413473
modified: 20250227102948619
original-modified: 20230711090833212
tags: [[Filter Run Prefix]]
title: Named Filter Run Prefix
ja-title: 名前付きフィルタランプレフィックス
type: text/vnd.tiddlywiki
<<.from-version "5.1.23">>で、名前付きフィルタランプレフィックスが実装されました。図に示すように、`:cascade`、`:map`、`:sort`が後から追加されました。
名前付きフィルタランプレフィックスは、[[ショートカットランプレフィックス|Shortcut Filter Run Prefix]]の代わりに、[[フィルタ式|Filter Expression]]の[[ラン|Filter Run]]の前に置くことができます。
<$railroad text="""
\start none
\end none
(
[[<":all"> |"All Filter Run Prefix"]] |
[[<":and"> |"And Filter Run Prefix"]] |
[[<":cascade"> /"v5.2.1"/ |"Cascade Filter Run Prefix"]] |
[[<":else"> |"Else Filter Run Prefix"]] |
[[<":except"> |"Except Filter Run Prefix"]] |
[[<":filter"> |"Filter Filter Run Prefix"]] |
[[<":intersection"> |"Intersection Filter Run Prefix"]] |
[[<":map"> /"v5.2.0"/ |"Map Filter Run Prefix"]] |
[[<":or"> |"Or Filter Run Prefix"]] |
[[<":reduce"> |"Reduce Filter Run Prefix"]] |
[[<":sort"> /"v5.2.0"/ |"Sort Filter Run Prefix"]] |
[[<":then"> /"v5.3.0"/ |"Then Filter Run Prefix"]]) [[run|"Filter Run"]]
"""/>
<<.tip "名前付きフィルタランプレフィックス`:filter`を、すべてのインプットタイトルにサブフィルタを適用し、サブフィルタから空の結果を返すタイトルを除外する[[filterオペレータ|filter Operator]]と比較します">>
<<.tip "名前付きフィルタランプレフィックス`:reduce`を、サブフィルタを繰り返し適用してアイテムのリストを単一のアイテムに平坦化するために使用される[[reduceオペレータ|reduce Operator]]と比較します">>
<<.tip """フィルタランプレフィックス`:reduce`、`:sort`、`:map`、`:filter`内では、変数<<.var currentTiddler>>は処理中のTiddlerのタイトルに設定されます。<br>サブフィルタ外のcurrentTiddlerの値は、変数<<.var "..currentTiddler">>で使用できます <<.from-version "5.2.0">>""" >>
参照: [[交換可能なフィルターランプレフィックス|Interchangeable Filter Run Prefixes]]

View File

@@ -0,0 +1,20 @@
created: 20230318135743766
from-version: 5.1.23
modified: 20250417105150020
original-modified: 20230322140708372
rp-input: 前回のフィルタランからのすべてのタイトル
rp-output: アウトプットタイトルは主に、前回のフィルタランのアウトプットに[[重複排除して追加|Dominant Append]]されます。
rp-purpose: Tiddlerセットの重複排除した結合
tags: [[Named Filter Run Prefix]]
title: Or Filter Run Prefix
ja-title: orフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":or" | - )
[["ラン"|"Filter Run Prefix"]]
"""/>
:or プレフィックスはプレフィックスを全く使用しないのと同じです。[[フィルタランプレフィックスのショートカット|Shortcut Filter Run Prefix]]で`run`を参照してください

View File

@@ -0,0 +1,29 @@
created: 20211124151912931
modified: 20250419111355942
original-modified: 20230305125430544
tags: [[Reduce Filter Run Prefix]]
title: Reduce Filter Run Prefix (Examples)
ja-title: reduceフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
\define multiply-input() [multiply<accumulator>]
次の例では、これらのデータTiddlerを使用します:
<ul>
<$list filter="[tag[shopping]!has[draft.of]]">
<li>
''<$link><$text text=<<currentTiddler>>/></$link>'' quantity: <$text text={{!!quantity}}/>, price: <$text text={{!!price}}/>
</li>
</$list>
</ul>
<<.operator-example 1 "[tag[shopping]] :reduce[get[quantity]add<accumulator>]">>
<<.operator-example 2 "[tag[shopping]] :reduce[get[price]multiply{!!quantity}add<accumulator>]">>
<<.operator-example 3 "[tag[shopping]] :reduce[<index>compare:number:gt[0]then<accumulator>addsuffix[, ]addsuffix<currentTiddler>else<currentTiddler>]" "最初の項目に対して他の項目とは異なる動作をさせるために`<index>`を使用します。これはあくまでもデモンストレーションです。このタスクを実行するには、[[joinオペレータ|join Operator]]を使うのがよいです">>
<<.operator-example 4 "[tag[non-existent]] :reduce[get[price]multiply{!!quantity}add<accumulator>]" "空のインプットは空のアウトプットを生成します">>
<<.operator-example 5 "[tag[non-existent]] :reduce[get[price]multiply{!!quantity}add<accumulator>] :else[[0]]" "インプットが空の場合に確実にアウトプットするために`:else`使用します">>
<$macrocall $name=".tip" _="""[[reduceオペレータ|reduce Operator]]とは異なり、`:reduce`プレフィックスはaccumulatorの初期値を指定できないため、初期値は常に空(数学オペレータでは0として扱われます)になります。したがって`=1 =2 =3 :reduce[multiply<accumulator>]`は、6ではなく0が生成されます。accumulatorの初期値を指定する必要がある場合は、[[reduceオペレータ|reduce Operator]]を使用します。"""/>
<<.operator-example 6 "=1 =2 =3 :reduce[multiply<accumulator>]" "空の初期値は数学オペレータによって0として扱われます">>
<<.operator-example 7 "=1 =2 =3 +[reduce<multiply-input>,[1]]" "正しい結果を得るためには初期値の設定が必要な場合があります">>

View File

@@ -0,0 +1,49 @@
created: 20211124151912931
from-version: 5.1.23
modified: 20250417105804821
original-modified: 20230710073305239
rp-input: 前回のフィルタランからのすべてのフィルタアウトプット
rp-output: 累積された単一アイテム
rp-purpose: 各インプットタイトルにフィルタランを繰り返し適用して、前回までのすべてのフィルタアウトプットを単一の項目に置き換え
tags: [[Named Filter Run Prefix]]
title: Reduce Filter Run Prefix
ja-title: reduceフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":reduce" | - )
[["ラン"|"Filter Run"]]
"""/>
前回のランからの各インプットタイトルは、順番にこのランに渡されます。このランへの以前の呼び出しの結果は、変数<<.var accumulator>>を介して次の呼び出しで使用できます。このランへの最後の呼び出しの結果がアウトプットとして返されます。典型的な使用法は、各インプットタイトルの特定のフィールドの値を合計することです。
上記のように、数式を各インプットタイトルに繰り返し適用して、これまでのすべてのフィルタアウトプットを1つの項目に置き換えます。
フィルタラン内では、次の変数を使用できます:
* <<.var accumulator>> - 前回のフィルタランの結果
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタラン外での変数`currentTiddler`の値。 <<.from-version "5.2.0">>
* <<.var index>> - 現在のリスト項目の数値インデックス(リストの最初の項目は0)
* <<.var revIndex>> - 現在のリスト項目の逆の数値インデックス(リストの最後の項目は0)
* <<.var length>> - インプットリストの長さの合計
<<.tip "名前付きフィルタランプレフィックス`:reduce`を、サブフィルタを繰り返し適用して項目リストを1つの項目に平坦化するために使用される[[reduceオペレータ|reduce Operator]]`:reduce`と比べてください。">>
```
[tag[shopping]] :reduce[get[quantity]add<accumulator>]
```
は以下と同等です:
```
\define num-items() [get[quantity]add<accumulator>]
[tag[shopping]reduce<num-items>]
```
[[reduceフィルタランプレフィックス(例)|Reduce Filter Run Prefix (Examples)]]

View File

@@ -0,0 +1,30 @@
created: 20230305131705188
modified: 20250510102220175
original-modified: 20230710074438655
tags: [[Filter Run Prefix]]
title: Shortcut Filter Run Prefix
ja-title: ショートカットフィルタランプレフィックス
type: text/vnd.tiddlywiki
ショートカットのプレフィックスはタイピングが速いため、上級ユーザーによく使用されますが、経験の浅いユーザーには読みにくいという欠点があります。そのため、より詳細な情報を持つ[[名前付きプレフィックス|Named Filter Run Prefix]]が作成されました。ショートカットと名前付きフィルタランプレフィックスは、以下の表に示すように互換性があります。
<$railroad text="""
\start none
\end none
(-|:"+"|"-"|"~"|"=")
[["ラン"|"Filter Run"]]
"""/>
ランに次の内容が含まれている場合:
* プレフィックスが無い場合、アウトプットタイトルはフィルタのアウトプットに[[優先的に追加|Dominant Append]]されます
* プレフィックス`+`は、前回までのフィルタアウトプットをインプットとして受け取り、そのアウトプットはこれまでのすべてのフィルタアウトプットを<<.em "置き換え">>、次のランのインプットを形成します
* プレフィックス`-`は、アウトプットタイトルがフィルタのアウトプットから<<.em 取り除か>>れます(そのようなTiddlerが存在する場合)
* プレフィックス`~`は、フィルタアウトプットが空リストの場合、ランの結果のタイトルがフィルタアウトプットに[[優先的に追加|Dominant Append]]されます。フィルタアウトプットが空リストでない場合、ランは無視されます。<<.from-version "5.1.18">>
* プレフィックス`=`は、アウトプットタイトルが重複排除されずにフィルタのアウトプットに追加されます。<<.from-version "5.1.20">>
{{Interchangeable Filter Run Prefixes}}

View File

@@ -0,0 +1,35 @@
created: 20210428074912172
modified: 20250420104606860
original-modified: 20230315165343329
tags: [[Sort Filter Run Prefix]]
title: Sort Filter Run Prefix (Examples)
ja-title: sortフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
タイトルの長さで並べ替え:
<<.operator-example 1 "[all[tiddlers]] :sort:number[length[]] +[limit[10]]">>
タイトルの長さを逆順に並べ替え:
<<.operator-example 2 "[all[tiddlers]] :sort:number:reverse[length[]] +[limit[10]]">>
テキストの長さで並べ替え:
<<.operator-example 3 "[all[tiddlers]] :sort:number[get[text]length[]] +[limit[10]]">>
修正日の新しい順に並べ替え:
<<.operator-example 4 "[tag[Field Operators]] :sort:date[get[modified]else[19700101]] +[limit[10]]">>
タイトルで並べ替え:
<<.operator-example 5 "[tag[Field Operators]] :sort:string:casesensitive[get[caption]] +[limit[10]]">>
タイトルの逆順に並べ替え:
<<.operator-example 6 "[tag[Field Operators]] :sort:string:casesensitive,reverse[get[caption]] +[limit[10]]">>
大文字と小文字を区別してテキストとして並べ替え:
<<.operator-example 7 "Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:casesensitive[{!!title}]">>
大文字と小文字を区別せずにテキストとして並べ替え:
<<.operator-example 8 "Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:caseinsensitive[{!!title}]">>

View File

@@ -0,0 +1,61 @@
created: 20210428083929749
from-version: 5.2.0
modified: 20250419111702297
original-modified: 20240717120111427
rp-input: 前回までのすべてのランのフィルタアウトプット
rp-output: アウトプットタイトルは、以前のフィルタランのアウトプットを置き換え
rp-purpose: 各項目に対して実行されたこのフィルタの評価結果によってインプットタイトルを並べ替え
rp-suffix: :sortフィルタランプレフィックスはリッチサフィックスを使用します。詳細については以下を参照
rp-suffix-name: S
tags: [[Named Filter Run Prefix]]
title: Sort Filter Run Prefix
ja-title: sortフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":sort" )
( ":" )
( : "string" | "alphanumeric" | "number" | "integer" | "version" | "date" )
( ":" )
{
(
(
( : "caseinsensitive" /"stringとalphanumericには必須"/ | "casesensitive" /"stringとalphanumericには必須"/)
| "reverse" /"オプション"/
)
)
+","
}
[["ラン"|"Filter Run"]]
"""/>
前回のランからインプットされた各タイトルは、今回のランに順番に渡されます。フィルタランは、インプットタイトルをソートに必要な形式に変換します。例えば、フィルタラン`[length[]]`は各インプットタイトルをその長さを表す数値に変換し、インプットタイトルを長さに基づいてソートします。
フィルタラン内では、<<.var currentTiddler>>変数が処理中のTiddlerのタイトルに設定されていることに注意してください。これにより、`:sort:number[{!!value}divide{!!cost}]`のようなフィルタランを計算に使用できます。ラン外の<<.var currentTiddler>>の値は、<<.var "..currentTiddler">>変数で使用できます。
`:sort` <<.place S>>フィルタランプレフィックスでは、複数のサフィックスを許可する拡張構文が使用されます。その一部は必須です:
```
:sort:<type>:<flaglist>[...filter run...]
```
* ''type'': 必須。項目の比較方法を決定し、''string''、''alphanumeric''、''number''、''integer''、''version''、''date''のいずれかになります。
* ''flaglist'': 次のフラグのコンマ区切りリスト:
** ''casesensitive'' または ''caseinsensitive'' (typeが`string`や`alphanumeric`のとき必須)。
*** フラグがない場合、デフォルトは: //caseinsensitive// です。
*** 明確にするために、このパラメータは常に定義する必要があります。
** フィルター実行の順序を反転するには、''reverse''を使用します(オプション)。
<<.tip """`:sort`プレフィックス付きのフィルタランは、''渡された項目と同じ数の項目が返される''ことに注意してください。特に、[[getオペレータ|get Operator]]を使用してフィールドの値を取得する場合は、[[elseオペレータ|else Operator]]を使用してフィールド値が欠落するのを防ぐと便利です。例えば`...[get[myfield]else[default-value]]`。<br><br>
''missing''エントリは''ゼロ''または''空文字列''として扱われます。
参照: <<.olink sortsub>>オペレータ
[[例|Sort Filter Run Prefix (Examples)]]

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