mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-01-23 19:34:39 +00:00
Compare commits
10 Commits
survey-edi
...
dynamic-bu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4022532455 | ||
|
|
b2b00324c2 | ||
|
|
e3714929f9 | ||
|
|
b31e2cd0db | ||
|
|
8b2afd1cc2 | ||
|
|
bd86723b72 | ||
|
|
2d89228d25 | ||
|
|
5233d72642 | ||
|
|
4a6501778a | ||
|
|
50118dbe13 |
317
.eslintrc.json
Normal file
317
.eslintrc.json
Normal file
@@ -0,0 +1,317 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"commonjs": true,
|
||||
"node": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended"
|
||||
],
|
||||
"globals": {
|
||||
"$tw": "writable"
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 5
|
||||
},
|
||||
"plugins": [],
|
||||
"rules": {
|
||||
"array-bracket-newline": "off",
|
||||
"array-bracket-spacing": "off",
|
||||
"array-callback-return": "off",
|
||||
"array-element-newline": "off",
|
||||
"arrow-body-style": "error",
|
||||
"arrow-parens": [
|
||||
"error",
|
||||
"as-needed"
|
||||
],
|
||||
"arrow-spacing": [
|
||||
"error",
|
||||
{
|
||||
"after": true,
|
||||
"before": true
|
||||
}
|
||||
],
|
||||
"block-scoped-var": "off",
|
||||
"block-spacing": "off",
|
||||
"brace-style": "off",
|
||||
"callback-return": "off",
|
||||
"camelcase": "off",
|
||||
"capitalized-comments": "off",
|
||||
"class-methods-use-this": "error",
|
||||
"comma-dangle": "off",
|
||||
"comma-spacing": "off",
|
||||
"comma-style": "off",
|
||||
"complexity": "off",
|
||||
"computed-property-spacing": "off",
|
||||
"consistent-return": "off",
|
||||
"consistent-this": "off",
|
||||
"curly": "off",
|
||||
"default-case": "off",
|
||||
"default-case-last": "error",
|
||||
"default-param-last": "error",
|
||||
"dot-location": "off",
|
||||
"dot-notation": "off",
|
||||
"eol-last": "off",
|
||||
"eqeqeq": "off",
|
||||
"func-call-spacing": "off",
|
||||
"func-name-matching": "off",
|
||||
"func-names": "off",
|
||||
"func-style": "off",
|
||||
"function-call-argument-newline": "off",
|
||||
"function-paren-newline": "off",
|
||||
"generator-star-spacing": "error",
|
||||
"global-require": "off",
|
||||
"grouped-accessor-pairs": "error",
|
||||
"guard-for-in": "off",
|
||||
"handle-callback-err": "off",
|
||||
"id-blacklist": "error",
|
||||
"id-denylist": "error",
|
||||
"id-length": "off",
|
||||
"id-match": "error",
|
||||
"implicit-arrow-linebreak": "error",
|
||||
"indent": "off",
|
||||
"indent-legacy": "off",
|
||||
"init-declarations": "off",
|
||||
"jsx-quotes": "error",
|
||||
"key-spacing": "off",
|
||||
"keyword-spacing": [
|
||||
"error",
|
||||
{
|
||||
"before": true,
|
||||
"after": false,
|
||||
"overrides": {
|
||||
"case": {
|
||||
"after": true
|
||||
},
|
||||
"do": {
|
||||
"after": true
|
||||
},
|
||||
"else": {
|
||||
"after": true
|
||||
},
|
||||
"return": {
|
||||
"after": true
|
||||
},
|
||||
"throw": {
|
||||
"after": true
|
||||
},
|
||||
"try": {
|
||||
"after": true
|
||||
},
|
||||
"catch": {
|
||||
"after": true
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"line-comment-position": "off",
|
||||
"linebreak-style": "off",
|
||||
"lines-around-comment": "off",
|
||||
"lines-around-directive": "off",
|
||||
"lines-between-class-members": "error",
|
||||
"max-classes-per-file": "error",
|
||||
"max-depth": "off",
|
||||
"max-len": "off",
|
||||
"max-lines": "off",
|
||||
"max-lines-per-function": "off",
|
||||
"max-nested-callbacks": "error",
|
||||
"max-params": "off",
|
||||
"max-statements": "off",
|
||||
"max-statements-per-line": "off",
|
||||
"multiline-comment-style": "off",
|
||||
"multiline-ternary": "off",
|
||||
"new-parens": "off",
|
||||
"newline-after-var": "off",
|
||||
"newline-before-return": "off",
|
||||
"newline-per-chained-call": "off",
|
||||
"no-alert": "off",
|
||||
"no-array-constructor": "off",
|
||||
"no-await-in-loop": "error",
|
||||
"no-bitwise": "off",
|
||||
"no-buffer-constructor": "off",
|
||||
"no-caller": "error",
|
||||
"no-catch-shadow": "off",
|
||||
"no-confusing-arrow": "error",
|
||||
"no-console": "off",
|
||||
"no-constant-condition": [
|
||||
"error",
|
||||
{
|
||||
"checkLoops": false
|
||||
}
|
||||
],
|
||||
"no-constructor-return": "error",
|
||||
"no-continue": "off",
|
||||
"no-div-regex": "off",
|
||||
"no-duplicate-imports": "error",
|
||||
"no-else-return": "off",
|
||||
"no-empty-function": "off",
|
||||
"no-eq-null": "off",
|
||||
"no-eval": "off",
|
||||
"no-extend-native": "off",
|
||||
"no-extra-bind": "off",
|
||||
"no-extra-label": "off",
|
||||
"no-extra-parens": "off",
|
||||
"no-floating-decimal": "off",
|
||||
"no-implicit-coercion": [
|
||||
"error",
|
||||
{
|
||||
"boolean": false,
|
||||
"number": false,
|
||||
"string": false
|
||||
}
|
||||
],
|
||||
"no-implicit-globals": "off",
|
||||
"no-implied-eval": "error",
|
||||
"no-inline-comments": "off",
|
||||
"no-invalid-this": "off",
|
||||
"no-iterator": "error",
|
||||
"no-label-var": "off",
|
||||
"no-labels": "off",
|
||||
"no-lone-blocks": "off",
|
||||
"no-lonely-if": "off",
|
||||
"no-loop-func": "off",
|
||||
"no-loss-of-precision": "error",
|
||||
"no-magic-numbers": "off",
|
||||
"no-mixed-operators": "off",
|
||||
"no-mixed-requires": "off",
|
||||
"no-multi-assign": "off",
|
||||
"no-multi-spaces": "off",
|
||||
"no-multi-str": "error",
|
||||
"no-multiple-empty-lines": ["warn", { "max": 4, "maxEOF": 0 }],
|
||||
"no-native-reassign": "off",
|
||||
"no-negated-condition": "off",
|
||||
"no-negated-in-lhs": "error",
|
||||
"no-nested-ternary": "off",
|
||||
"no-new": "off",
|
||||
"no-new-func": "off",
|
||||
"no-new-object": "off",
|
||||
"no-new-require": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-param-reassign": "off",
|
||||
"no-path-concat": "error",
|
||||
"no-plusplus": "off",
|
||||
"no-process-env": "off",
|
||||
"no-process-exit": "off",
|
||||
"no-promise-executor-return": "error",
|
||||
"no-proto": "off",
|
||||
"no-restricted-exports": "error",
|
||||
"no-restricted-globals": "error",
|
||||
"no-restricted-imports": "error",
|
||||
"no-restricted-modules": "error",
|
||||
"no-restricted-properties": "error",
|
||||
"no-restricted-syntax": "error",
|
||||
"no-return-assign": "off",
|
||||
"no-return-await": "error",
|
||||
"no-script-url": "off",
|
||||
"no-self-compare": "off",
|
||||
"no-sequences": "off",
|
||||
"no-shadow": "off",
|
||||
"no-spaced-func": "off",
|
||||
"no-sync": "off",
|
||||
"no-tabs": "off",
|
||||
"no-template-curly-in-string": "error",
|
||||
"no-ternary": "off",
|
||||
"no-throw-literal": "off",
|
||||
"no-trailing-spaces": "error",
|
||||
"no-undef-init": "off",
|
||||
"no-undefined": "off",
|
||||
"no-underscore-dangle": "off",
|
||||
"no-unmodified-loop-condition": "off",
|
||||
"no-unneeded-ternary": "off",
|
||||
"no-unreachable-loop": "error",
|
||||
"no-unused-expressions": "off",
|
||||
"no-use-before-define": "off",
|
||||
"no-useless-backreference": "error",
|
||||
"no-useless-call": "off",
|
||||
"no-useless-computed-key": "error",
|
||||
"no-useless-concat": "off",
|
||||
"no-useless-constructor": "error",
|
||||
"no-useless-rename": "error",
|
||||
"no-useless-return": "off",
|
||||
"no-var": "off",
|
||||
"no-void": "off",
|
||||
"no-warning-comments": "off",
|
||||
"no-whitespace-before-property": "error",
|
||||
"nonblock-statement-body-position": [
|
||||
"error",
|
||||
"any"
|
||||
],
|
||||
"object-curly-newline": "off",
|
||||
"object-curly-spacing": "off",
|
||||
"object-property-newline": "off",
|
||||
"object-shorthand": "off",
|
||||
"one-var": "off",
|
||||
"one-var-declaration-per-line": "off",
|
||||
"operator-assignment": "off",
|
||||
"operator-linebreak": "off",
|
||||
"padded-blocks": "off",
|
||||
"padding-line-between-statements": "error",
|
||||
"prefer-arrow-callback": "off",
|
||||
"prefer-const": "off",
|
||||
"prefer-destructuring": "off",
|
||||
"prefer-exponentiation-operator": "off",
|
||||
"prefer-named-capture-group": "off",
|
||||
"prefer-numeric-literals": "error",
|
||||
"prefer-object-spread": "off",
|
||||
"prefer-promise-reject-errors": "error",
|
||||
"prefer-reflect": "off",
|
||||
"prefer-regex-literals": "off",
|
||||
"prefer-rest-params": "off",
|
||||
"prefer-spread": "off",
|
||||
"prefer-template": "off",
|
||||
"quote-props": "off",
|
||||
"quotes": "off",
|
||||
"radix": "off",
|
||||
"require-atomic-updates": "error",
|
||||
"require-await": "error",
|
||||
"require-jsdoc": "off",
|
||||
"require-unicode-regexp": "off",
|
||||
"rest-spread-spacing": "error",
|
||||
"semi": "off",
|
||||
"semi-spacing": "off",
|
||||
"semi-style": "off",
|
||||
"sort-imports": "error",
|
||||
"sort-keys": "off",
|
||||
"sort-vars": "off",
|
||||
"space-before-blocks": "off",
|
||||
"space-before-function-paren": "off",
|
||||
"space-in-parens": "off",
|
||||
"space-infix-ops": "off",
|
||||
"space-unary-ops": "off",
|
||||
"spaced-comment": "off",
|
||||
"strict": "off",
|
||||
"switch-colon-spacing": "off",
|
||||
"symbol-description": "error",
|
||||
"template-curly-spacing": "error",
|
||||
"template-tag-spacing": "error",
|
||||
"unicode-bom": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"valid-jsdoc": "off",
|
||||
"valid-typeof": [
|
||||
"error",
|
||||
{
|
||||
"requireStringLiterals": false
|
||||
}
|
||||
],
|
||||
"vars-on-top": "off",
|
||||
"wrap-iife": "off",
|
||||
"wrap-regex": "off",
|
||||
"yield-star-spacing": "error",
|
||||
"yoda": "off",
|
||||
"no-useless-escape": "off",
|
||||
"no-unused-vars": "off",
|
||||
"no-empty": "off",
|
||||
"no-extra-semi": "off",
|
||||
"no-redeclare": "off",
|
||||
"no-control-regex": "off",
|
||||
"no-mixed-spaces-and-tabs": "off",
|
||||
"no-extra-boolean-cast": "off",
|
||||
"no-prototype-builtins": "off",
|
||||
"no-undef": "off",
|
||||
"no-unreachable": "off",
|
||||
"no-self-assign": "off"
|
||||
}
|
||||
}
|
||||
55
.github/workflows/pr-check-build-size.yml
vendored
55
.github/workflows/pr-check-build-size.yml
vendored
@@ -1,55 +0,0 @@
|
||||
name: Calculate PR build size
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened, synchronize]
|
||||
paths:
|
||||
- 'boot/**'
|
||||
- 'core/**'
|
||||
- 'themes/snowwhite/**'
|
||||
- 'themes/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 }}'
|
||||
}
|
||||
});
|
||||
36
.github/workflows/pr-comment-build-size.yml
vendored
36
.github/workflows/pr-comment-build-size.yml
vendored
@@ -1,36 +0,0 @@
|
||||
name: Comment on PR build size (Trusted workflow)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr_number:
|
||||
required: true
|
||||
type: string
|
||||
base_ref:
|
||||
required: true
|
||||
type: string
|
||||
pr_size:
|
||||
required: true
|
||||
type: string
|
||||
base_size:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
comment-on-pr:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- name: Build and check size
|
||||
uses: TiddlyWiki/cerebrus@v4
|
||||
with:
|
||||
pr_number: ${{ inputs.pr_number }}
|
||||
repo: ${{ github.repository }}
|
||||
base_ref: ${{ inputs.base_ref }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
mode: size:comment
|
||||
pr_size: ${{ inputs.pr_size }}
|
||||
base_size: ${{ inputs.base_size }}
|
||||
18
.github/workflows/pr-path-validation.yml
vendored
18
.github/workflows/pr-path-validation.yml
vendored
@@ -1,18 +0,0 @@
|
||||
name: Validate PR Paths
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened, synchronize]
|
||||
|
||||
jobs:
|
||||
validate-pr:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Validate PR
|
||||
uses: TiddlyWiki/cerebrus@v4
|
||||
with:
|
||||
pr_number: ${{ github.event.pull_request.number }}
|
||||
repo: ${{ github.repository }}
|
||||
base_ref: ${{ github.base_ref }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -105,7 +105,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
fi
|
||||
|
||||
# /index.html Main site
|
||||
# /external-(version).html External core version of main site
|
||||
# /favicon.ico Favicon for main site
|
||||
# /static.html Static rendering of default tiddlers
|
||||
# /alltiddlers.html Static rendering of all tiddlers
|
||||
@@ -118,7 +117,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
--version \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build favicon static index external-js \
|
||||
--build favicon static index \
|
||||
|| exit 1
|
||||
|
||||
# /empty.html Empty
|
||||
@@ -156,14 +155,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/tour \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js tour.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /surveys.html surveys edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/tiddlywiki-surveys \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build index \
|
||||
--rendertiddler $:/core/save/all tour.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /share.html Custom edition for sharing via the URL
|
||||
@@ -202,7 +194,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/xlsx-utils \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/xlsx-utils/ \
|
||||
--build external \
|
||||
--build index \
|
||||
|| exit 1
|
||||
|
||||
# /editions/resumebuilder/index.html Resume builder edition
|
||||
@@ -218,7 +210,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/text-slicer \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/text-slicer/ \
|
||||
--build external \
|
||||
--build index \
|
||||
|| exit 1
|
||||
|
||||
# /editions/translators/index.html Translators edition
|
||||
@@ -250,7 +242,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/tw5.com-docs \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/tw5.com-docs/ \
|
||||
--build external \
|
||||
--build index \
|
||||
|| exit 1
|
||||
|
||||
# /editions/twitter-archivist/index.html Twitter Archivist edition
|
||||
@@ -273,7 +265,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/innerwikidemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/innerwiki/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/innerwiki/index.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
# /plugins/tiddlywiki/dynaview/index.html Demo wiki with DynaView plugin
|
||||
@@ -283,7 +275,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/dynaviewdemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/dynaview/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/dynaview/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/dynaview/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
@@ -297,7 +289,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/katexdemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/katex/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/katex/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/katex/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
@@ -327,7 +319,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/codemirrordemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/codemirror/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/codemirror/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/codemirror/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
@@ -337,7 +329,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/markdowndemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/markdown/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/markdown/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/markdown/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
@@ -347,7 +339,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/classicparserdemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/tw2parser/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/tw2parser/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/tw2parser/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
@@ -357,7 +349,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/highlightdemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/highlight/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/highlight/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/highlight/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
@@ -367,7 +359,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/geospatialdemo \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all-external-js plugins/tiddlywiki/geospatial/index.html text/plain \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/geospatial/index.html text/plain \
|
||||
--rendertiddler $:/core/save/empty plugins/tiddlywiki/geospatial/empty.html text/plain \
|
||||
|| exit 1
|
||||
|
||||
|
||||
@@ -2000,7 +2000,7 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) {
|
||||
var value = tiddler[name];
|
||||
switch(fieldInfo.source) {
|
||||
case "subdirectories":
|
||||
value = $tw.utils.stringifyList(path.relative(rootPath, filename).split(path.sep).slice(0, -1));
|
||||
value = path.relative(rootPath, filename).split(path.sep).slice(0, -1);
|
||||
break;
|
||||
case "filepath":
|
||||
value = path.relative(rootPath, filename).split(path.sep).join('/');
|
||||
@@ -2021,10 +2021,10 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) {
|
||||
value = path.extname(filename);
|
||||
break;
|
||||
case "created":
|
||||
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).birthtime));
|
||||
value = new Date(fs.statSync(pathname).birthtime);
|
||||
break;
|
||||
case "modified":
|
||||
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).mtime));
|
||||
value = new Date(fs.statSync(pathname).mtime);
|
||||
break;
|
||||
}
|
||||
if(fieldInfo.prefix) {
|
||||
|
||||
@@ -131,14 +131,15 @@ Saving/GitService/Gitea/Caption: Gitea Saver
|
||||
Saving/GitService/Gitea/Password: Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)
|
||||
Saving/TiddlySpot/Advanced/Heading: Advanced Settings
|
||||
Saving/TiddlySpot/BackupDir: Backup Directory
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlyHost Control Panel
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel
|
||||
Saving/TiddlySpot/Backups: Backups
|
||||
Saving/TiddlySpot/Caption: ~TiddlyHost Saver
|
||||
Saving/TiddlySpot/Description: These settings are only used when saving to [[TiddlyHost|https://tiddlyhost.com]] or a compatible remote server. See [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] for information on ~TiddlyHost saving configuration
|
||||
Saving/TiddlySpot/Caption: ~TiddlySpot Saver
|
||||
Saving/TiddlySpot/Description: These settings are only used when saving to [[TiddlySpot|http://tiddlyspot.com]], [[TiddlyHost|https://tiddlyhost.com]], or a compatible remote server. See [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] for information on ~TiddlySpot and ~TiddlyHost saving configuration.
|
||||
Saving/TiddlySpot/Filename: Upload Filename
|
||||
Saving/TiddlySpot/Heading: ~TiddlyHost
|
||||
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
|
||||
Saving/TiddlySpot/Heading: ~TiddlySpot
|
||||
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
|
||||
Saving/TiddlySpot/Password: Password
|
||||
Saving/TiddlySpot/ReadOnly: Note that [[TiddlySpot|http://tiddlyspot.com]] no longer allows the creation of new sites. For new sites, you can use [[TiddlyHost|https://tiddlyhost.com]], a new hosting service that replaces ~TiddlySpot.
|
||||
Saving/TiddlySpot/ServerURL: Server URL
|
||||
Saving/TiddlySpot/UploadDir: Upload Directory
|
||||
Saving/TiddlySpot/UserName: Wiki Name
|
||||
@@ -189,8 +190,6 @@ Settings/DefaultSidebarTab/Caption: Default Sidebar Tab
|
||||
Settings/DefaultSidebarTab/Hint: Specify which sidebar tab is displayed by default
|
||||
Settings/DefaultMoreSidebarTab/Caption: Default More Sidebar Tab
|
||||
Settings/DefaultMoreSidebarTab/Hint: Specify which More sidebar tab is displayed by default
|
||||
Settings/DefaultTiddlerInfoTab/Caption: Default Tiddler Info Tab
|
||||
Settings/DefaultTiddlerInfoTab/Hint: Specify which tab is displayed by default when tiddler info panel is opened
|
||||
Settings/LinkToBehaviour/Caption: Tiddler Opening Behaviour
|
||||
Settings/LinkToBehaviour/InsideRiver/Hint: Navigation from //within// the story river
|
||||
Settings/LinkToBehaviour/OutsideRiver/Hint: Navigation from //outside// the story river
|
||||
|
||||
@@ -4,12 +4,12 @@ _canonical_uri: The full URI of an external image tiddler
|
||||
author: Name of the author of a plugin
|
||||
bag: The name of the bag from which a tiddler came
|
||||
caption: The text to be displayed on a tab or button
|
||||
class: The CSS class applied to a tiddler when rendering it. Also used for Modals
|
||||
class: The CSS class applied to a tiddler when rendering it - see [[Custom styles by user-class]]. Also used for [[Modals]]
|
||||
code-body: The view template will display the tiddler as code if set to ''yes''
|
||||
color: The CSS color value associated with a tiddler
|
||||
component: The name of the component responsible for an alert tiddler
|
||||
component: The name of the component responsible for an [[alert tiddler|AlertMechanism]]
|
||||
core-version: For a plugin, indicates what version of TiddlyWiki with which it is compatible
|
||||
current-tiddler: Used to cache the top tiddler in a history list
|
||||
current-tiddler: Used to cache the top tiddler in a [[history list|HistoryMechanism]]
|
||||
created: The date a tiddler was created
|
||||
creator: The name of the person who created a tiddler
|
||||
dependents: For a plugin, lists the dependent plugin titles
|
||||
|
||||
8
core/language/en-GB/Help/echo.tid
Normal file
8
core/language/en-GB/Help/echo.tid
Normal file
@@ -0,0 +1,8 @@
|
||||
title: $:/language/Help/echo
|
||||
description: Displays all the passed arguments
|
||||
|
||||
Displays all the passed arguments to a command. Useful for debugging.
|
||||
|
||||
```
|
||||
--echo <text> *
|
||||
```
|
||||
@@ -13,7 +13,7 @@ The $tw.Commander class is a command interpreter
|
||||
Parse a sequence of commands
|
||||
commandTokens: an array of command string tokens
|
||||
wiki: reference to the wiki store object
|
||||
streams: {output:, error:}, each of which has a write(string) method
|
||||
streams: {output:, input:, error:}
|
||||
callback: a callback invoked as callback(err) where err is null if there was no error
|
||||
*/
|
||||
var Commander = function(commandTokens,callback,wiki,streams) {
|
||||
@@ -61,69 +61,172 @@ Commander.prototype.execute = function() {
|
||||
this.executeNextCommand();
|
||||
};
|
||||
|
||||
/*
|
||||
Returns the next string token without consuming it, or null if there are none left. Callback invoked(err,data)
|
||||
*/
|
||||
Commander.prototype.peekNextToken = function(callback) {
|
||||
var self = this;
|
||||
if(this.nextToken >= this.commandTokens.length) {
|
||||
return callback(null,null);
|
||||
} else {
|
||||
return this.stringifyToken(this.nextToken,function(err,data) {
|
||||
if(!err) {
|
||||
// Save the stringified token for next time so that we don't run prompts twice
|
||||
self.commandTokens[self.nextToken] = data;
|
||||
}
|
||||
callback(err,data);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Returns and consumes the next string token, or null if there are none left. Callback invoked(err,data)
|
||||
*/
|
||||
Commander.prototype.getNextToken = function(callback) {
|
||||
if(this.nextToken >= this.commandTokens.length) {
|
||||
return callback(null,null);
|
||||
} else {
|
||||
return this.stringifyToken(this.nextToken++,callback);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Returns and consumes the string tokens until the end of the token stream or the first token that starts with "--".
|
||||
Callback invoked(err,tokenArray)
|
||||
*/
|
||||
Commander.prototype.getTokensUntilCommand = function(callback) {
|
||||
var self = this,
|
||||
tokens = [];
|
||||
function processNextToken() {
|
||||
self.peekNextToken(function(err,data) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
if(data === null || data.substr(0,2) === "--") {
|
||||
return callback(null,tokens);
|
||||
} else {
|
||||
self.getNextToken(function(err,data) {
|
||||
if(err) {
|
||||
return callback(err);
|
||||
}
|
||||
tokens.push(data);
|
||||
processNextToken();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
processNextToken();
|
||||
};
|
||||
|
||||
/*
|
||||
Returns a specified stringified token, or null if the index does not exist. Callback invoked(err,data)
|
||||
*/
|
||||
Commander.prototype.stringifyToken = function(index,callback) {
|
||||
var self = this;
|
||||
if(index >= this.commandTokens.length) {
|
||||
return callback(null,null);
|
||||
} else {
|
||||
var token = this.commandTokens[index];
|
||||
if(typeof token === "string") {
|
||||
return callback(null,token);
|
||||
} else if(typeof token === "object") {
|
||||
switch(token.type) {
|
||||
case "filter":
|
||||
return callback(null,this.wiki.filterTiddlers(token.text)[0] || "");
|
||||
case "wikify":
|
||||
return callback(null,this.wiki.renderText("text/plain","text/vnd.tiddlywiki",token.text,{
|
||||
parseAsInline: false,
|
||||
parentWidget: $tw.rootWidget
|
||||
}));
|
||||
case "prompt":
|
||||
$tw.utils.terminalQuestion({
|
||||
promptText: token.prompt || "Please enter a value",
|
||||
defaultResult: token["default"] || "",
|
||||
callback: function(err,userText) {
|
||||
if(err) {
|
||||
callback(err);
|
||||
} else {
|
||||
if(token.transformFilter) {
|
||||
userText = self.wiki.filterTiddlers(token.transformFilter,null,self.wiki.makeTiddlerIterator([userText]))[0] || "";
|
||||
}
|
||||
callback(null,userText);
|
||||
}
|
||||
},
|
||||
input: self.streams.input,
|
||||
output: self.streams.output,
|
||||
});
|
||||
break;
|
||||
default:
|
||||
throw "Unknown dynamic command token type: " + token.type;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Execute the next command in the sequence
|
||||
*/
|
||||
Commander.prototype.executeNextCommand = function() {
|
||||
var self = this;
|
||||
// Invoke the callback if there are no more commands
|
||||
if(this.nextToken >= this.commandTokens.length) {
|
||||
this.callback(null);
|
||||
} else {
|
||||
// Get and check the command token
|
||||
var commandName = this.commandTokens[this.nextToken++];
|
||||
// Get and check the command token
|
||||
var commandName = this.getNextToken(function(err,commandName) {
|
||||
if(err) {
|
||||
return self.callback(err);
|
||||
}
|
||||
if(!commandName) {
|
||||
return self.callback(null);
|
||||
}
|
||||
if(commandName.substr(0,2) !== "--") {
|
||||
this.callback("Missing command: " + commandName);
|
||||
return self.callback("Missing command: " + commandName);
|
||||
} else {
|
||||
commandName = commandName.substr(2); // Trim off the --
|
||||
// Accumulate the parameters to the command
|
||||
var params = [];
|
||||
while(this.nextToken < this.commandTokens.length &&
|
||||
this.commandTokens[this.nextToken].substr(0,2) !== "--") {
|
||||
params.push(this.commandTokens[this.nextToken++]);
|
||||
}
|
||||
// Get the command info
|
||||
var command = $tw.commands[commandName],
|
||||
c,err;
|
||||
if(!command) {
|
||||
this.callback("Unknown command: " + commandName);
|
||||
} else {
|
||||
if(this.verbose) {
|
||||
this.streams.output.write("Executing command: " + commandName + " " + params.join(" ") + "\n");
|
||||
// Get the parameters to the command
|
||||
self.getTokensUntilCommand(function(err,params) {
|
||||
if(err) {
|
||||
return self.callback(err);
|
||||
}
|
||||
// Parse named parameters if required
|
||||
if(command.info.namedParameterMode) {
|
||||
params = this.extractNamedParameters(params,command.info.mandatoryParameters);
|
||||
if(typeof params === "string") {
|
||||
return this.callback(params);
|
||||
}
|
||||
}
|
||||
if(command.info.synchronous) {
|
||||
// Synchronous command
|
||||
c = new command.Command(params,this);
|
||||
err = c.execute();
|
||||
if(err) {
|
||||
this.callback(err);
|
||||
} else {
|
||||
this.executeNextCommand();
|
||||
}
|
||||
var command = $tw.commands[commandName],
|
||||
c,err;
|
||||
if(!command) {
|
||||
self.callback("Unknown command: " + commandName);
|
||||
} else {
|
||||
// Asynchronous command
|
||||
c = new command.Command(params,this,function(err) {
|
||||
if(self.verbose) {
|
||||
self.streams.output.write("Executing command: " + commandName + " " + params.join(" ") + "\n");
|
||||
}
|
||||
// Parse named parameters if required
|
||||
if(command.info.namedParameterMode) {
|
||||
params = self.extractNamedParameters(params,command.info.mandatoryParameters);
|
||||
if(typeof params === "string") {
|
||||
return self.callback(params);
|
||||
}
|
||||
}
|
||||
if(command.info.synchronous) {
|
||||
// Synchronous command
|
||||
c = new command.Command(params,self);
|
||||
err = c.execute();
|
||||
if(err) {
|
||||
self.callback(err);
|
||||
} else {
|
||||
self.executeNextCommand();
|
||||
}
|
||||
});
|
||||
err = c.execute();
|
||||
if(err) {
|
||||
this.callback(err);
|
||||
} else {
|
||||
// Asynchronous command
|
||||
c = new command.Command(params,self,function(err) {
|
||||
if(err) {
|
||||
self.callback(err);
|
||||
} else {
|
||||
self.executeNextCommand();
|
||||
}
|
||||
});
|
||||
err = c.execute();
|
||||
if(err) {
|
||||
self.callback(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
32
core/modules/commands/echo.js
Normal file
32
core/modules/commands/echo.js
Normal file
@@ -0,0 +1,32 @@
|
||||
/*\
|
||||
title: $:/core/modules/commands/echo.js
|
||||
type: application/javascript
|
||||
module-type: command
|
||||
|
||||
Command to echo input parameters
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.info = {
|
||||
name: "echo",
|
||||
synchronous: true
|
||||
};
|
||||
|
||||
var Command = function(params,commander) {
|
||||
this.params = params;
|
||||
this.commander = commander;
|
||||
};
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
this.commander.streams.output.write(JSON.stringify(this.params,null,4) + "\n");
|
||||
return null;
|
||||
};
|
||||
|
||||
exports.Command = Command;
|
||||
|
||||
})();
|
||||
@@ -248,7 +248,8 @@ exports.compileFilter = function(filterString) {
|
||||
// Create a function for the chain of operators in the operation
|
||||
var operationSubFunction = function(source,widget) {
|
||||
var accumulator = source,
|
||||
results = [];
|
||||
results = [],
|
||||
currTiddlerTitle = widget && widget.getVariable("currentTiddler");
|
||||
$tw.utils.each(operation.operators,function(operator) {
|
||||
var operands = [],
|
||||
operatorFunction;
|
||||
@@ -264,7 +265,6 @@ exports.compileFilter = function(filterString) {
|
||||
}
|
||||
$tw.utils.each(operator.operands,function(operand) {
|
||||
if(operand.indirect) {
|
||||
var currTiddlerTitle = widget && widget.getVariable("currentTiddler");
|
||||
operand.value = self.getTextReference(operand.text,"",currTiddlerTitle);
|
||||
} else if(operand.variable) {
|
||||
var varTree = $tw.utils.parseFilterVariable(operand.text);
|
||||
|
||||
@@ -6,6 +6,7 @@ module-type: filteroperator
|
||||
Filter operator for returning all the backtranscludes from a tiddler
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
@@ -18,3 +19,5 @@ exports.backtranscludes = function(source,operator,options) {
|
||||
});
|
||||
return results.makeTiddlerIterator(options.wiki);
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
@@ -6,6 +6,7 @@ module-type: filteroperator
|
||||
Filter operator for returning all the transcludes from a tiddler
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
@@ -18,3 +19,5 @@ exports.transcludes = function(source,operator,options) {
|
||||
});
|
||||
return results.makeTiddlerIterator(options.wiki);
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
@@ -10,6 +10,7 @@ This is a <%if [{something}] %>Elephant<%elseif [{else}] %>Pelican<%else%>Crocod
|
||||
```
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
exports.name = "conditional";
|
||||
@@ -112,3 +113,5 @@ exports.parseIfClause = function(filterCondition) {
|
||||
// Return the parse tree node
|
||||
return [listWidget];
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
@@ -50,7 +50,7 @@ exports.parse = function() {
|
||||
var reEnd;
|
||||
if(this.match[5]) {
|
||||
// If so, it is a multiline definition and the end of the body is marked with \end
|
||||
reEnd = new RegExp("((:?^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[2]) + ")?\\s*?(?:$|\\r?\\n))","mg");
|
||||
reEnd = new RegExp("((:?^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[2]) + ")?(?:$|\\r?\\n))","mg");
|
||||
} else {
|
||||
// Otherwise, the end of the definition is marked by the end of the line
|
||||
reEnd = /($|\r?\n)/mg;
|
||||
|
||||
@@ -55,7 +55,7 @@ exports.parse = function() {
|
||||
var reEnd;
|
||||
if(this.match[3]) {
|
||||
// If so, it is a multiline definition and the end of the body is marked with \end
|
||||
reEnd = new RegExp("((?:^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?\\s*?(?:$|\\r?\\n))","mg");
|
||||
reEnd = new RegExp("((?:^|\\r?\\n)[^\\S\\n\\r]*\\\\end[^\\S\\n\\r]*(?:" + $tw.utils.escapeRegExp(this.match[1]) + ")?(?:$|\\r?\\n))","mg");
|
||||
} else {
|
||||
// Otherwise, the end of the definition is marked by the end of the line
|
||||
reEnd = /($|\r?\n)/mg;
|
||||
|
||||
@@ -44,7 +44,7 @@ UploadSaver.prototype.save = function(text,method,callback) {
|
||||
}
|
||||
// Construct the url if not provided
|
||||
if(!url) {
|
||||
url = "http://" + username + ".tiddlyhost.com/";
|
||||
url = "http://" + username + ".tiddlyspot.com/store.cgi";
|
||||
}
|
||||
// Assemble the header
|
||||
var boundary = "---------------------------" + "AaB03x";
|
||||
|
||||
@@ -26,7 +26,11 @@ exports.startup = function(callback) {
|
||||
callback();
|
||||
},
|
||||
$tw.wiki,
|
||||
{output: process.stdout, error: process.stderr}
|
||||
{
|
||||
output: process.stdout,
|
||||
input: process.stdin,
|
||||
error: process.stderr
|
||||
}
|
||||
);
|
||||
commander.execute();
|
||||
};
|
||||
|
||||
@@ -74,8 +74,9 @@ exports.startup = function() {
|
||||
$tw.rootWidget.addEventListener("tm-copy-to-clipboard",function(event) {
|
||||
$tw.utils.copyToClipboard(event.param,{
|
||||
successNotification: event.paramObject && event.paramObject.successNotification,
|
||||
failureNotification: event.paramObject && event.paramObject.failureNotification
|
||||
});
|
||||
failureNotification: event.paramObject && event.paramObject.failureNotification,
|
||||
plainText: event.paramObject && event.paramObject.plainText
|
||||
},event.paramObject && event.paramObject.type);
|
||||
});
|
||||
// Install the tm-focus-selector message
|
||||
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {
|
||||
|
||||
@@ -265,9 +265,10 @@ exports.copyStyles = function(srcDomNode,dstDomNode) {
|
||||
/*
|
||||
Copy plain text to the clipboard on browsers that support it
|
||||
*/
|
||||
exports.copyToClipboard = function(text,options) {
|
||||
options = options || {};
|
||||
text = text || "";
|
||||
exports.copyToClipboard = function(text,options,type) {
|
||||
var text = text || "";
|
||||
var options = options || {};
|
||||
var type = type || "text/plain";
|
||||
var textArea = document.createElement("textarea");
|
||||
textArea.style.position = "fixed";
|
||||
textArea.style.top = 0;
|
||||
@@ -280,10 +281,16 @@ exports.copyToClipboard = function(text,options) {
|
||||
textArea.style.outline = "none";
|
||||
textArea.style.boxShadow = "none";
|
||||
textArea.style.background = "transparent";
|
||||
textArea.value = text;
|
||||
document.body.appendChild(textArea);
|
||||
textArea.select();
|
||||
textArea.setSelectionRange(0,text.length);
|
||||
textArea.addEventListener("copy",function(event) {
|
||||
event.preventDefault();
|
||||
if (options.plainText) {
|
||||
event.clipboardData.setData("text/plain",options.plainText);
|
||||
}
|
||||
event.clipboardData.setData(type,text);
|
||||
});
|
||||
var succeeded = false;
|
||||
try {
|
||||
succeeded = document.execCommand("copy");
|
||||
|
||||
@@ -143,7 +143,6 @@ Modal.prototype.display = function(title,options) {
|
||||
link.setAttribute("href",tiddler.fields.help);
|
||||
link.setAttribute("target","_blank");
|
||||
link.setAttribute("rel","noopener noreferrer");
|
||||
link.setAttribute("class","tc-tiddlylink-external");
|
||||
link.appendChild(this.srcDocument.createTextNode("Help"));
|
||||
modalFooterHelp.appendChild(link);
|
||||
modalFooterHelp.style.float = "left";
|
||||
|
||||
@@ -6,6 +6,8 @@ module-type: utils
|
||||
Custom errors for TiddlyWiki.
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
function TranscludeRecursionError() {
|
||||
Error.apply(this,arguments);
|
||||
this.signatures = Object.create(null);
|
||||
@@ -17,3 +19,5 @@ TranscludeRecursionError.MAX_WIDGET_TREE_DEPTH = 1000;
|
||||
TranscludeRecursionError.prototype = Object.create(Error);
|
||||
|
||||
exports.TranscludeRecursionError = TranscludeRecursionError;
|
||||
|
||||
})();
|
||||
|
||||
@@ -6,6 +6,7 @@ module-type: utils
|
||||
Utilities for working with the TiddlyWiki repository file structure
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
@@ -44,3 +45,5 @@ exports.getAllPlugins = function(options) {
|
||||
$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,options.ignoreEnvironmentVariables ? undefined : $tw.config.languagesEnvVar),collectPlugins);
|
||||
return tiddlers;
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
@@ -18,29 +18,127 @@ exports.log = function(text,colour) {
|
||||
console.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);
|
||||
};
|
||||
|
||||
exports.terminalColour = function(colour) {
|
||||
/*
|
||||
Prompts the user for input and handles the input using a callback function. Options:
|
||||
promptText: Prompt text
|
||||
defaultResult: Default result returned if the user types enter
|
||||
callback: callback invoked (err,usertext)
|
||||
input: optional input stream
|
||||
output: optional output stream
|
||||
*/
|
||||
exports.terminalQuestion = function(options) {
|
||||
var readline = require("readline"),
|
||||
promptText = options.promptText,
|
||||
defaultResult = options.defaultResult,
|
||||
callback = options.callback,
|
||||
inputStream = options.input || process.stdin,
|
||||
outputStream = options.output || process.stdout;
|
||||
var rl = readline.createInterface({
|
||||
input: inputStream,
|
||||
output: outputStream
|
||||
});
|
||||
// Handle errors on the input stream
|
||||
rl.on("error",function(err) {
|
||||
rl.close();
|
||||
callback(err); // Pass the error to the callback
|
||||
});
|
||||
// Prompt user for input
|
||||
var prompt = exports.terminalColourText(promptText,["yellow","bold"]);
|
||||
if(defaultResult) {
|
||||
prompt += " ";
|
||||
prompt += exports.terminalColourText("(" + defaultResult + ")",["blue","underline"]);
|
||||
}
|
||||
prompt += exports.terminalColourText(": ");
|
||||
rl.question(prompt,function(input) {
|
||||
// Use default value for the empty string
|
||||
if(input === "" && defaultResult) {
|
||||
input = defaultResult;
|
||||
}
|
||||
callback(null,input); // Pass the input to the callback
|
||||
rl.close();
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
Wrap a string in colour codes. Colour can be an array
|
||||
*/
|
||||
exports.terminalColourText = function(text,colour) {
|
||||
if(!$tw.utils.isArray(colour)) {
|
||||
colour = [colour];
|
||||
}
|
||||
$tw.utils.each(colour,function(code) {
|
||||
text = exports.terminalColour(code) + text + exports.terminalColour(code,true);
|
||||
});
|
||||
return text;
|
||||
};
|
||||
|
||||
/*
|
||||
Returns a terminal colour string. Set "closed" to true to return the closing code
|
||||
*/
|
||||
exports.terminalColour = function(colour,closed) {
|
||||
if(!$tw.browser && $tw.node && process.stdout.isTTY) {
|
||||
if(colour) {
|
||||
var code = exports.terminalColourLookup[colour];
|
||||
if(code) {
|
||||
return "\x1b[" + code + "m";
|
||||
return "\x1b[" + code[closed ? 1 : 0] + "m";
|
||||
}
|
||||
} else {
|
||||
return "\x1b[0m"; // Cancel colour
|
||||
}
|
||||
return "\x1b[0m"; // Reset
|
||||
}
|
||||
return "";
|
||||
};
|
||||
|
||||
exports.terminalColourLookup = {
|
||||
"black": "0;30",
|
||||
"red": "0;31",
|
||||
"green": "0;32",
|
||||
"brown/orange": "0;33",
|
||||
"blue": "0;34",
|
||||
"purple": "0;35",
|
||||
"cyan": "0;36",
|
||||
"light gray": "0;37"
|
||||
// Modifiers
|
||||
"reset": [0,0],
|
||||
"bold": [1,22],
|
||||
"dim": [2,22],
|
||||
"italic": [3,23],
|
||||
"underline": [4,24],
|
||||
"overline": [53,55],
|
||||
"inverse": [7,27],
|
||||
"hidden": [8,28],
|
||||
"strikethrough": [9,29],
|
||||
// Colours
|
||||
"black": [30,39],
|
||||
"red": [31,39],
|
||||
"green": [32,39],
|
||||
"yellow": [33,39],
|
||||
"brown/orange": [33,39], // Backwards compatbility
|
||||
"blue": [34,39],
|
||||
"magenta": [35,39], // Backwards compatbility
|
||||
"purple": [35,39],
|
||||
"cyan": [36,39],
|
||||
"white": [37,39],
|
||||
"gray": [90,39],
|
||||
"light red": [91,39],
|
||||
"light green": [92,39],
|
||||
"light yellow": [93,39],
|
||||
"light blue": [94,39],
|
||||
"light magenta": [95,39],
|
||||
"light purple": [95,39], // Backwards compatbility
|
||||
"light cyan": [96,39],
|
||||
"light gray": [97,39],
|
||||
// Background colours
|
||||
"black background": [40,49],
|
||||
"red background": [41,49],
|
||||
"green background": [42,49],
|
||||
"yellow background": [43,49],
|
||||
"brown/orange background": [43,49], // Backwards compatbility
|
||||
"blue background": [44,49],
|
||||
"magenta background": [45,49], // Backwards compatbility
|
||||
"purple background": [45,49],
|
||||
"cyan background": [46,49],
|
||||
"white background": [47,49],
|
||||
"gray background": [100,49],
|
||||
"light red background": [101,49],
|
||||
"light green background": [102,49],
|
||||
"light yellow background": [103,49],
|
||||
"light blue background": [104,49],
|
||||
"light magenta background": [105,49],
|
||||
"light purple background": [105,49], // Backwards compatbility
|
||||
"light cyan background": [106,49],
|
||||
"light gray background": [107,49]
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -6,6 +6,7 @@ module-type: widget
|
||||
Widget to dynamically represent one or more tiddlers
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
||||
@@ -186,3 +187,5 @@ function hasPayloadChanged(a,b) {
|
||||
}
|
||||
|
||||
exports.data = DataWidget;
|
||||
|
||||
})();
|
||||
|
||||
@@ -519,3 +519,36 @@ ListJoinWidget.prototype.render = function() {}
|
||||
ListJoinWidget.prototype.refresh = function() { return false; }
|
||||
|
||||
exports["list-join"] = ListJoinWidget;
|
||||
|
||||
/*
|
||||
Make <$list-template> and <$list-empty> widgets that do nothing
|
||||
*/
|
||||
var ListTemplateWidget = function(parseTreeNode,options) {
|
||||
// Main initialisation inherited from widget.js
|
||||
this.initialise(parseTreeNode,options);
|
||||
};
|
||||
ListTemplateWidget.prototype = new Widget();
|
||||
ListTemplateWidget.prototype.render = function() {}
|
||||
ListTemplateWidget.prototype.refresh = function() { return false; }
|
||||
|
||||
exports["list-template"] = ListTemplateWidget;
|
||||
|
||||
var ListEmptyWidget = function(parseTreeNode,options) {
|
||||
// Main initialisation inherited from widget.js
|
||||
this.initialise(parseTreeNode,options);
|
||||
};
|
||||
ListEmptyWidget.prototype = new Widget();
|
||||
ListEmptyWidget.prototype.render = function() {}
|
||||
ListEmptyWidget.prototype.refresh = function() { return false; }
|
||||
|
||||
exports["list-empty"] = ListEmptyWidget;
|
||||
|
||||
var ListJoinWidget = function(parseTreeNode,options) {
|
||||
// Main initialisation inherited from widget.js
|
||||
this.initialise(parseTreeNode,options);
|
||||
};
|
||||
ListJoinWidget.prototype = new Widget();
|
||||
ListJoinWidget.prototype.render = function() {}
|
||||
ListJoinWidget.prototype.refresh = function() { return false; }
|
||||
|
||||
exports["list-join"] = ListJoinWidget;
|
||||
|
||||
@@ -6,6 +6,7 @@ module-type: widget
|
||||
Widget to display a test case
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
||||
@@ -159,3 +160,5 @@ TestCaseWidget.prototype.refresh = function(changedTiddlers) {
|
||||
};
|
||||
|
||||
exports["testcase"] = TestCaseWidget;
|
||||
|
||||
})();
|
||||
|
||||
@@ -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: ""})
|
||||
});
|
||||
};
|
||||
|
||||
@@ -18,7 +18,7 @@ code-background: #f7f7f9
|
||||
code-border: #e1e1e8
|
||||
code-foreground: #dd1144
|
||||
dirty-indicator: #ff0000
|
||||
download-background: #3aafaf
|
||||
download-background: #66cccc
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -26,7 +26,7 @@ dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
dropdown-tab-background-selected: #fff
|
||||
dropdown-tab-background: #ececec
|
||||
dropzone-background: #00d900
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
@@ -52,30 +52,26 @@ notification-border: #999999
|
||||
page-background: #ffffff
|
||||
pre-background: #f5f5f5
|
||||
pre-border: #cccccc
|
||||
primary: #6387f1
|
||||
primary: #7897f3
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
sidebar-controls-foreground: #aaaaaa
|
||||
sidebar-foreground-shadow: #ffffff
|
||||
sidebar-controls-foreground: #ccc
|
||||
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
|
||||
sidebar-foreground: #acacac
|
||||
sidebar-muted-foreground-hover: #444444
|
||||
sidebar-muted-foreground: #aaaaaa
|
||||
sidebar-muted-foreground: #c0c0c0
|
||||
sidebar-tab-background-selected: #ffffff
|
||||
sidebar-tab-background: <<colour tab-background>>
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border: <<colour tab-border>>
|
||||
sidebar-tab-divider: <<colour tab-divider>>
|
||||
sidebar-tab-foreground-selected: <<colour tab-foreground>>
|
||||
sidebar-tab-foreground-selected:
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #444444
|
||||
sidebar-tiddler-link-foreground: <<colour primary>>
|
||||
sidebar-tiddler-link-foreground: #7897f3
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-stable: #008000
|
||||
stability-experimental: #c07c00
|
||||
stability-deprecated: #ff0000
|
||||
stability-legacy: #0000ff
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-background-selected: #ffffff
|
||||
tab-background: #eeeeee
|
||||
@@ -87,10 +83,10 @@ tab-foreground: #666666
|
||||
table-border: #dddddd
|
||||
table-footer-background: #a8a8a8
|
||||
table-header-background: #f0f0f0
|
||||
tag-background: #ffd5aa
|
||||
tag-foreground: #000000
|
||||
tag-background: #ffeedd
|
||||
tag-foreground: #000
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: #eeeeee
|
||||
tiddler-border: #eee
|
||||
tiddler-controls-foreground-hover: #888888
|
||||
tiddler-controls-foreground-selected: #444444
|
||||
tiddler-controls-foreground: #cccccc
|
||||
@@ -101,7 +97,7 @@ tiddler-editor-fields-even: #e0e8e0
|
||||
tiddler-editor-fields-odd: #f0f4f0
|
||||
tiddler-info-background: #f8f8f8
|
||||
tiddler-info-border: #dddddd
|
||||
tiddler-info-tab-background: <<colour tiddler-info-background>>
|
||||
tiddler-info-tab-background: #f8f8f8
|
||||
tiddler-link-background: <<colour background>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
tiddler-subtitle-foreground: #c0c0c0
|
||||
@@ -115,6 +111,5 @@ toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #cccccc
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -85,7 +85,6 @@ table-footer-background: #a8a8a8
|
||||
table-header-background: #f0f0f0
|
||||
tag-background: #d5ad34
|
||||
tag-foreground: #ffffff
|
||||
testcase-accent-level-1: #b1b3e3
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover: #888888
|
||||
|
||||
@@ -5,11 +5,11 @@ description: High contrast and unambiguous (dark version)
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
alert-background: #ff0000
|
||||
alert-background: #f00
|
||||
alert-border: <<colour background>>
|
||||
alert-highlight: <<colour foreground>>
|
||||
alert-muted-foreground: #880000
|
||||
background: #000000
|
||||
alert-muted-foreground: #800
|
||||
background: #000
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
button-background: <<colour background>>
|
||||
button-foreground: <<colour foreground>>
|
||||
@@ -17,24 +17,24 @@ button-border: <<colour foreground>>
|
||||
code-background: <<colour background>>
|
||||
code-border: <<colour foreground>>
|
||||
code-foreground: <<colour foreground>>
|
||||
dirty-indicator: #ff0000
|
||||
download-background: #48ff48
|
||||
dirty-indicator: #f00
|
||||
download-background: #080
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
dropdown-tab-background-selected: #868686
|
||||
dropdown-tab-background: #515151
|
||||
dropzone-background: #1aff1a
|
||||
dropdown-tab-background-selected: <<colour foreground>>
|
||||
dropdown-tab-background: <<colour foreground>>
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
external-link-foreground-hover: inherit
|
||||
external-link-foreground-visited: #5353ff
|
||||
external-link-foreground: #9595ff
|
||||
external-link-foreground-visited: #00a
|
||||
external-link-foreground: #00e
|
||||
footnote-target-background: #4c4c4c
|
||||
foreground: #ffffff
|
||||
foreground: #fff
|
||||
highlight-background: #ffff00
|
||||
highlight-foreground: #000000
|
||||
message-background: <<colour foreground>>
|
||||
@@ -52,11 +52,11 @@ notification-border: <<colour foreground>>
|
||||
page-background: <<colour background>>
|
||||
pre-background: <<colour background>>
|
||||
pre-border: <<colour foreground>>
|
||||
primary: #8a8aff
|
||||
primary: #00f
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #ffff00
|
||||
sidebar-controls-foreground-hover: <<colour background>>
|
||||
sidebar-controls-foreground: <<colour foreground>>
|
||||
sidebar-foreground-shadow: rgba(0,0,0, 0)
|
||||
sidebar-foreground: <<colour foreground>>
|
||||
@@ -72,10 +72,6 @@ sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
|
||||
sidebar-tiddler-link-foreground: <<colour primary>>
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-stable: #00f400
|
||||
stability-experimental: #ffaf1c
|
||||
stability-deprecated: #ff2b2b
|
||||
stability-legacy: #ceceff
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-background-selected: <<colour background>>
|
||||
tab-background: <<colour foreground>>
|
||||
@@ -85,15 +81,14 @@ tab-divider: <<colour foreground>>
|
||||
tab-foreground-selected: <<colour foreground>>
|
||||
tab-foreground: <<colour background>>
|
||||
table-border: #dddddd
|
||||
table-footer-background: #444444
|
||||
table-header-background: #444444
|
||||
tag-background: #ffffff
|
||||
tag-foreground: #000000
|
||||
testcase-accent-level-1: #144a8c
|
||||
table-footer-background: #a8a8a8
|
||||
table-header-background: #f0f0f0
|
||||
tag-background: #fff
|
||||
tag-foreground: #000
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour foreground>>
|
||||
tiddler-controls-foreground-hover: #ddd
|
||||
tiddler-controls-foreground-selected: #ae0000
|
||||
tiddler-controls-foreground-selected: #fdd
|
||||
tiddler-controls-foreground: <<colour foreground>>
|
||||
tiddler-editor-background: <<colour background>>
|
||||
tiddler-editor-border-image: <<colour foreground>>
|
||||
@@ -107,15 +102,14 @@ tiddler-link-background: <<colour background>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
tiddler-subtitle-foreground: <<colour foreground>>
|
||||
tiddler-title-foreground: <<colour foreground>>
|
||||
toolbar-new-button:
|
||||
toolbar-options-button:
|
||||
toolbar-save-button:
|
||||
toolbar-info-button:
|
||||
toolbar-edit-button:
|
||||
toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
toolbar-new-button:
|
||||
toolbar-options-button:
|
||||
toolbar-save-button:
|
||||
toolbar-info-button:
|
||||
toolbar-edit-button:
|
||||
toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: <<colour foreground>>
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -5,7 +5,7 @@ description: High contrast and unambiguous (light version)
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
alert-background: #ff4a4a
|
||||
alert-background: #f00
|
||||
alert-border: <<colour background>>
|
||||
alert-highlight: <<colour foreground>>
|
||||
alert-muted-foreground: #800
|
||||
@@ -18,13 +18,13 @@ code-background: <<colour background>>
|
||||
code-border: <<colour foreground>>
|
||||
code-foreground: <<colour foreground>>
|
||||
dirty-indicator: #f00
|
||||
download-background: #008200
|
||||
download-background: #080
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
dropdown-tab-background-selected: <<colour background>>
|
||||
dropdown-tab-background-selected: <<colour foreground>>
|
||||
dropdown-tab-background: <<colour foreground>>
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
external-link-background-hover: inherit
|
||||
@@ -52,13 +52,13 @@ notification-border: <<colour foreground>>
|
||||
page-background: <<colour background>>
|
||||
pre-background: <<colour background>>
|
||||
pre-border: <<colour foreground>>
|
||||
primary: #0000ff
|
||||
primary: #00f
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #606060
|
||||
sidebar-controls-foreground-hover: <<colour background>>
|
||||
sidebar-controls-foreground: <<colour foreground>>
|
||||
sidebar-foreground-shadow: #000000
|
||||
sidebar-foreground-shadow: rgba(0,0,0, 0)
|
||||
sidebar-foreground: <<colour foreground>>
|
||||
sidebar-muted-foreground-hover: #444444
|
||||
sidebar-muted-foreground: <<colour foreground>>
|
||||
@@ -72,10 +72,6 @@ sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
|
||||
sidebar-tiddler-link-foreground: <<colour primary>>
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-deprecated: #ff0000
|
||||
stability-experimental: #b37400
|
||||
stability-legacy: #000075
|
||||
stability-stable: #008000
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-background-selected: <<colour background>>
|
||||
tab-background: <<colour foreground>>
|
||||
@@ -92,7 +88,7 @@ tag-foreground: #fff
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour foreground>>
|
||||
tiddler-controls-foreground-hover: #ddd
|
||||
tiddler-controls-foreground-selected: #c5abf3
|
||||
tiddler-controls-foreground-selected: #fdd
|
||||
tiddler-controls-foreground: <<colour foreground>>
|
||||
tiddler-editor-background: <<colour background>>
|
||||
tiddler-editor-border-image: <<colour foreground>>
|
||||
@@ -117,4 +113,3 @@ toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: <<colour foreground>>
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -5,30 +5,30 @@ name: Cupertino Dark
|
||||
description: A macOS inspired dark palette
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
alert-background: #ff4b42
|
||||
alert-border: #950700
|
||||
alert-background: #FF453A
|
||||
alert-border: #FF453A
|
||||
alert-highlight: #FFD60A
|
||||
alert-muted-foreground: #323234
|
||||
alert-muted-foreground: <<colour muted-foreground>>
|
||||
background: #282828
|
||||
blockquote-bar: #8d8d8d
|
||||
blockquote-bar: <<colour page-background>>
|
||||
button-foreground: <<colour foreground>>
|
||||
code-background: <<colour pre-background>>
|
||||
code-border: <<colour pre-border>>
|
||||
code-foreground: #c7c7c7
|
||||
code-foreground: rgba(255, 255, 255, 0.54)
|
||||
dirty-indicator: #FF453A
|
||||
download-background: <<colour primary>>
|
||||
download-foreground: <<colour background>>
|
||||
download-foreground: <<colour foreground>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
dropdown-background: <<colour tiddler-info-background>>
|
||||
dropdown-border: <<colour dropdown-background>>
|
||||
dropdown-tab-background-selected: #3F638B
|
||||
dropdown-tab-background: #707070
|
||||
dropdown-tab-background: #323232
|
||||
dropzone-background: #30D158
|
||||
external-link-background-hover: transparent
|
||||
external-link-background-visited: transparent
|
||||
external-link-background: transparent
|
||||
external-link-foreground-hover: #9511d5
|
||||
external-link-foreground-hover:
|
||||
external-link-foreground-visited: #BF5AF2
|
||||
external-link-foreground: #32D74B
|
||||
footnote-target-background: #747474
|
||||
@@ -60,36 +60,31 @@ sidebar-controls-foreground-hover: #FF9F0A
|
||||
sidebar-controls-foreground: #8E8E93
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: rgba(255, 255, 255, 0.54)
|
||||
sidebar-muted-foreground-hover: #acacac
|
||||
sidebar-muted-foreground: #787878
|
||||
sidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)
|
||||
sidebar-muted-foreground: rgba(255, 255, 255, 0.38)
|
||||
sidebar-tab-background-selected: #3F638B
|
||||
sidebar-tab-background: <<colour background>>
|
||||
sidebar-tab-border-selected: #313131
|
||||
sidebar-tab-border: #404040
|
||||
sidebar-tab-divider: #282828
|
||||
sidebar-tab-foreground-selected: #d2d2d2
|
||||
sidebar-tab-foreground: #d2d2d2
|
||||
sidebar-tiddler-link-foreground-hover: #535353
|
||||
sidebar-tiddler-link-foreground: #949494
|
||||
sidebar-tab-border-selected: <<colour background>>
|
||||
sidebar-tab-border: <<colour background>>
|
||||
sidebar-tab-divider: <<colour background>>
|
||||
sidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)
|
||||
sidebar-tab-foreground: rgba(255, 255, 255, 0.54)
|
||||
sidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)
|
||||
sidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)
|
||||
site-title-foreground: #ffffff
|
||||
stability-stable: #009f00
|
||||
stability-experimental: #c07c00
|
||||
stability-deprecated: #ff0000
|
||||
stability-legacy: #6c6cff
|
||||
static-alert-foreground: #B4B4B4
|
||||
tab-background-selected: #3F638B
|
||||
tab-background: <<colour page-background>>
|
||||
tab-border-selected: <<colour page-background>>
|
||||
tab-border: #4a4a4a
|
||||
tab-border: <<colour page-background>>
|
||||
tab-divider: <<colour page-background>>
|
||||
tab-foreground-selected: #ffffff
|
||||
tab-foreground: #adadad
|
||||
tab-foreground-selected: rgba(255, 255, 255, 0.87)
|
||||
tab-foreground: rgba(255, 255, 255, 0.54)
|
||||
table-border: #464646
|
||||
table-footer-background: #7f7f7f
|
||||
table-header-background: <<colour table-border>>
|
||||
table-footer-background: <<colour tiddler-editor-fields-odd>>
|
||||
table-header-background: <<colour tiddler-editor-fields-even>>
|
||||
tag-background: #48484A
|
||||
tag-foreground: #323232
|
||||
testcase-accent-level-1: #345173
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: transparent
|
||||
tiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>
|
||||
@@ -97,9 +92,9 @@ tiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover
|
||||
tiddler-controls-foreground: #48484A
|
||||
tiddler-editor-background: <<colour background>>
|
||||
tiddler-editor-border-image:
|
||||
tiddler-editor-border: #444444
|
||||
tiddler-editor-fields-even: #1f1f1f
|
||||
tiddler-editor-fields-odd: #464646
|
||||
tiddler-editor-border: rgba(255, 255, 255, 0.08)
|
||||
tiddler-editor-fields-even: rgba(255, 255, 255, 0.1)
|
||||
tiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)
|
||||
tiddler-info-background: #1E1E1E
|
||||
tiddler-info-border: #1E1E1E
|
||||
tiddler-info-tab-background: #3F638B
|
||||
@@ -116,8 +111,8 @@ toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #5f5f5f
|
||||
very-muted-foreground: #3f3f3f
|
||||
untagged-background: <<colour very-muted-foreground>>
|
||||
very-muted-foreground: #464646
|
||||
selection-background: #3F638B
|
||||
selection-foreground: #ffffff
|
||||
wikilist-background: <<colour page-background>>
|
||||
@@ -136,4 +131,3 @@ wikilist-title: <<colour foreground>>
|
||||
wikilist-title-svg: <<colour foreground>>
|
||||
wikilist-toolbar-foreground: <<colour foreground>>
|
||||
wikilist-url: <<colour muted-foreground>>
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -20,7 +20,7 @@ code-background: #f7f7f9
|
||||
code-border: #e1e1e8
|
||||
code-foreground: #dd1144
|
||||
dirty-indicator: #ff0000
|
||||
download-background: #30b830
|
||||
download-background: #34c734
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -58,26 +58,22 @@ primary: #5778d8
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #a6a6ff
|
||||
sidebar-controls-foreground: #eeeeee
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: #eeeeee
|
||||
sidebar-muted-foreground-hover: #999999
|
||||
sidebar-muted-foreground: #eeeeee
|
||||
sidebar-tab-background-selected: <<colour page-background>>
|
||||
sidebar-tab-background: #e0e0e0
|
||||
sidebar-controls-foreground-hover: #ccf
|
||||
sidebar-controls-foreground: #fff
|
||||
sidebar-foreground-shadow: rgba(0,0,0, 0.5)
|
||||
sidebar-foreground: #fff
|
||||
sidebar-muted-foreground-hover: #444444
|
||||
sidebar-muted-foreground: #eee
|
||||
sidebar-tab-background-selected: rgba(255,255,255, 0.8)
|
||||
sidebar-tab-background: rgba(255,255,255, 0.4)
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border: <<colour tab-border>>
|
||||
sidebar-tab-divider: #e4e4e4
|
||||
sidebar-tab-foreground-selected: #ddddff
|
||||
sidebar-tab-divider: rgba(255,255,255, 0.2)
|
||||
sidebar-tab-foreground-selected:
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #aaaaff
|
||||
sidebar-tiddler-link-foreground: #ddddff
|
||||
site-title-foreground: #ffffff
|
||||
stability-stable: #008000
|
||||
stability-experimental: #c07c00
|
||||
stability-deprecated: #ff0000
|
||||
stability-legacy: #0000ff
|
||||
sidebar-tiddler-link-foreground-hover: #aaf
|
||||
sidebar-tiddler-link-foreground: #ddf
|
||||
site-title-foreground: #fff
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-background-selected: #ffffff
|
||||
tab-background: #d8d8d8
|
||||
@@ -94,7 +90,7 @@ tag-foreground: #ffffff
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover: #888888
|
||||
tiddler-controls-foreground-selected: #6a6aff
|
||||
tiddler-controls-foreground-selected: #444444
|
||||
tiddler-controls-foreground: #cccccc
|
||||
tiddler-editor-background: #f8f8f8
|
||||
tiddler-editor-border-image: #ffffff
|
||||
@@ -119,4 +115,3 @@ toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: #11ff23
|
||||
@@ -22,9 +22,9 @@ diff-equal-foreground: <<colour foreground>>
|
||||
diff-insert-background: #91c093
|
||||
diff-insert-foreground: <<colour foreground>>
|
||||
diff-invisible-background:
|
||||
diff-invisible-foreground: #d3d2cb
|
||||
diff-invisible-foreground: <<colour muted-foreground>>
|
||||
dirty-indicator: #ad3434
|
||||
download-background: #5eae62
|
||||
download-background: #6ca16c
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -32,13 +32,14 @@ dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
dropdown-tab-background-selected: #E9E0C7
|
||||
dropdown-tab-background: #BAB29C
|
||||
dropzone-background: #00c600
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
external-link-foreground-hover: #7474ba
|
||||
external-link-foreground-hover: inherit
|
||||
external-link-foreground-visited: #313163
|
||||
external-link-foreground: #555592
|
||||
footnote-target-background: #fff7d9
|
||||
foreground: #2D2A23
|
||||
highlight-background: #ffff00
|
||||
highlight-foreground: #000000
|
||||
@@ -70,7 +71,7 @@ sidebar-controls-foreground: #867F69
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: #867F69
|
||||
sidebar-muted-foreground-hover: #706A58
|
||||
sidebar-muted-foreground: #aba081
|
||||
sidebar-muted-foreground: #B3A98C
|
||||
sidebar-tab-background-selected: #e0d3af
|
||||
sidebar-tab-background: #A6A193
|
||||
sidebar-tab-border-selected: #C3BAA1
|
||||
@@ -81,10 +82,6 @@ sidebar-tab-foreground: #2D2A23
|
||||
sidebar-tiddler-link-foreground-hover: #433F35
|
||||
sidebar-tiddler-link-foreground: #706A58
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-deprecated: #dc322f
|
||||
stability-experimental: #b58900
|
||||
stability-legacy: #268bd2
|
||||
stability-stable: #859900
|
||||
static-alert-foreground: #A6A193
|
||||
tab-background-selected: #E9E0C7
|
||||
tab-background: #A6A193
|
||||
@@ -98,7 +95,6 @@ table-footer-background: #8A8885
|
||||
table-header-background: #B0AA98
|
||||
tag-background: #706A58
|
||||
tag-foreground: #E3D7B7
|
||||
testcase-accent-level-1: #b3adc9
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover: #9D947B
|
||||
@@ -144,4 +140,3 @@ wikilist-toolbar-foreground: #2D2A23
|
||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||
wikilist-button-background: #A6A193
|
||||
wikilist-button-foreground: #161512
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -9,13 +9,13 @@ license: https://github.com/morhetz/gruvbox
|
||||
alert-background: #cc241d
|
||||
alert-border: #cc241d
|
||||
alert-highlight: #d79921
|
||||
alert-muted-foreground: #272321
|
||||
alert-muted-foreground: #504945
|
||||
background: #3c3836
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
button-foreground: <<colour foreground>>
|
||||
code-background: #504945
|
||||
code-border: #504945
|
||||
code-foreground: #fc5e4b
|
||||
code-foreground: #fb4934
|
||||
diff-delete-background: #fb4934
|
||||
diff-delete-foreground: <<colour foreground>>
|
||||
diff-equal-background:
|
||||
@@ -25,7 +25,7 @@ diff-insert-foreground: <<colour background>>
|
||||
diff-invisible-background: #ffff97
|
||||
diff-invisible-foreground: #444347
|
||||
dirty-indicator: #fb4934
|
||||
download-background: #1daf24
|
||||
download-background: #b8bb26
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -46,53 +46,52 @@ highlight-background: #ffff79
|
||||
highlight-foreground: #000000
|
||||
menubar-background: #504945
|
||||
menubar-foreground: <<colour foreground>>
|
||||
message-background: #b4c9c1
|
||||
message-background: #83a598
|
||||
message-border: #83a598
|
||||
message-foreground: #3c3836
|
||||
modal-backdrop: #625a57
|
||||
modal-backdrop: <<colour foreground>>
|
||||
modal-background: <<colour background>>
|
||||
modal-border: #504945
|
||||
modal-footer-background: #3c3836
|
||||
modal-footer-border: #3c3836
|
||||
modal-header-border: #3c3836
|
||||
muted-foreground: #d5c4a1
|
||||
network-activity-foreground: <<colour primary>>
|
||||
notification-background: <<colour primary>>
|
||||
notification-border: <<colour primary>>
|
||||
page-background: #282828
|
||||
pre-background: #504945
|
||||
pre-border: #504945
|
||||
primary: #da9921
|
||||
primary: #d79921
|
||||
select-tag-background: #665c54
|
||||
select-tag-foreground: <<colour foreground>>
|
||||
selection-background: #458588
|
||||
selection-foreground: <<colour foreground>>
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #e3e0dd
|
||||
sidebar-controls-foreground: #978b84
|
||||
sidebar-controls-foreground-hover: #7c6f64
|
||||
sidebar-controls-foreground: #504945
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: #fbf1c7
|
||||
sidebar-muted-foreground-hover: <<colour sidebar-controls-foreground-hover>>
|
||||
sidebar-muted-foreground: <<colour sidebar-controls-foreground>>
|
||||
sidebar-muted-foreground-hover: #7c6f64
|
||||
sidebar-muted-foreground: #504945
|
||||
sidebar-tab-background-selected: #bdae93
|
||||
sidebar-tab-background: #3c3836
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border: #bdae93
|
||||
sidebar-tab-divider: <<colour page-background>>
|
||||
sidebar-tab-foreground-selected: <<colour page-background>>
|
||||
sidebar-tab-foreground-selected: #282828
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #458588
|
||||
sidebar-tiddler-link-foreground: #98971a
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-deprecated: #cc241d
|
||||
stability-experimental: #b37d1c
|
||||
stability-legacy: #529ca0
|
||||
stability-stable: #649618
|
||||
stability-experimental: #d79921
|
||||
stability-legacy: #458588
|
||||
stability-stable: #98971a
|
||||
static-alert-foreground: #B48EAD
|
||||
tab-background-selected: #ebdbb2
|
||||
tab-background: #665c54
|
||||
tab-border-selected: <<colour tab-background-selected>>
|
||||
tab-border: #82746a
|
||||
tab-border-selected: #665c54
|
||||
tab-border: #665c54
|
||||
tab-divider: #bdae93
|
||||
tab-foreground-selected: #282828
|
||||
tab-foreground: #ebdbb2
|
||||
@@ -101,7 +100,6 @@ table-footer-background: #665c54
|
||||
table-header-background: #504945
|
||||
tag-background: #d3869b
|
||||
tag-foreground: #282828
|
||||
testcase-accent-level-1: #456d88
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover: #7c6f64
|
||||
@@ -128,7 +126,7 @@ toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #887b75
|
||||
untagged-background: #504945
|
||||
very-muted-foreground: #bdae93
|
||||
wikilist-background: <<colour page-background>>
|
||||
wikilist-button-background: #acacac
|
||||
|
||||
@@ -7,15 +7,15 @@ type: application/x-tiddler-dictionary
|
||||
license: MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md
|
||||
|
||||
alert-background: #D08770
|
||||
alert-border: <<colour alert-background>>
|
||||
alert-highlight: #a3436f
|
||||
alert-muted-foreground: #495367
|
||||
alert-border: #D08770
|
||||
alert-highlight: #B48EAD
|
||||
alert-muted-foreground: #4C566A
|
||||
background: #3b4252
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
button-foreground: <<colour foreground>>
|
||||
code-background: #2E3440
|
||||
code-border: #2E3440
|
||||
code-foreground: #c7747c
|
||||
code-foreground: #BF616A
|
||||
diff-delete-background: #BF616A
|
||||
diff-delete-foreground: <<colour foreground>>
|
||||
diff-equal-background:
|
||||
@@ -48,32 +48,31 @@ menubar-background: #2E3440
|
||||
menubar-foreground: #d8dee9
|
||||
message-background: #2E3440
|
||||
message-border: #2E3440
|
||||
message-foreground: #6485aa
|
||||
modal-backdrop: #435678
|
||||
message-foreground: #547599
|
||||
modal-backdrop: <<colour foreground>>
|
||||
modal-background: <<colour background>>
|
||||
modal-border: #3b4252
|
||||
modal-footer-background: #3b4252
|
||||
modal-footer-border: #3b4252
|
||||
modal-header-border: #3b4252
|
||||
muted-foreground: #687693
|
||||
network-activity-foreground: <<colour primary>>
|
||||
muted-foreground: #4C566A
|
||||
notification-background: <<colour primary>>
|
||||
notification-border: #EBCB8B
|
||||
page-background: #2e3440
|
||||
pre-background: #2E3440
|
||||
pre-border: #2E3440
|
||||
primary: #7b98bb
|
||||
primary: #5E81AC
|
||||
select-tag-background: #3b4252
|
||||
select-tag-foreground: <<colour foreground>>
|
||||
selection-background: #52749e
|
||||
selection-background: #5E81AC
|
||||
selection-foreground: <<colour foreground>>
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #D8DEE9
|
||||
sidebar-controls-foreground: #5e6a84
|
||||
sidebar-controls-foreground: #4C566A
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: #D8DEE9
|
||||
sidebar-muted-foreground-hover: #9fa8bb
|
||||
sidebar-muted-foreground: #6c7b97
|
||||
sidebar-muted-foreground-hover: #4C566A
|
||||
sidebar-muted-foreground: #4C566A
|
||||
sidebar-tab-background-selected: #ECEFF4
|
||||
sidebar-tab-background: #4C566A
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
@@ -84,40 +83,39 @@ sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #A3BE8C
|
||||
sidebar-tiddler-link-foreground: #81A1C1
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-deprecated: #ff595e
|
||||
stability-experimental: #f29d00
|
||||
stability-legacy: #2ddbca
|
||||
stability-stable: #04ff04
|
||||
stability-deprecated: #bf616a
|
||||
stability-experimental: #d08770
|
||||
stability-legacy: #88c0d0
|
||||
stability-stable: #a3be8c
|
||||
static-alert-foreground: #B48EAD
|
||||
tab-background-selected: #ECEFF4
|
||||
tab-background: #4C566A
|
||||
tab-border-selected: #4C566A
|
||||
tab-border: #5c6883
|
||||
tab-border: #4C566A
|
||||
tab-divider: #4C566A
|
||||
tab-foreground-selected: #6c7a97
|
||||
tab-foreground-selected: #4C566A
|
||||
tab-foreground: #D8DEE9
|
||||
table-border: #4C566A
|
||||
table-footer-background: #2e3440
|
||||
table-header-background: #2e3440
|
||||
tag-background: #A3BE8C
|
||||
tag-foreground: #4C566A
|
||||
testcase-accent-level-1: #455e7d
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover:
|
||||
tiddler-controls-foreground-selected: #EBCB8B
|
||||
tiddler-controls-foreground: #5e6a84
|
||||
tiddler-controls-foreground: #4C566A
|
||||
tiddler-editor-background: #2e3440
|
||||
tiddler-editor-border-image: #2e3440
|
||||
tiddler-editor-border: #232732
|
||||
tiddler-editor-border: #3b4252
|
||||
tiddler-editor-fields-even: #2e3440
|
||||
tiddler-editor-fields-odd: #424a5b
|
||||
tiddler-editor-fields-odd: #2e3440
|
||||
tiddler-info-background: #2e3440
|
||||
tiddler-info-border: #2e3440
|
||||
tiddler-info-tab-background: #2e3440
|
||||
tiddler-link-background: <<colour background>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
tiddler-subtitle-foreground: #5c6881
|
||||
tiddler-subtitle-foreground: #4C566A
|
||||
tiddler-title-foreground: #81A1C1
|
||||
toolbar-new-button:
|
||||
toolbar-options-button:
|
||||
@@ -140,4 +138,4 @@ wikilist-button-open-hover: #A3BE8C
|
||||
wikilist-button-reveal: #81A1C1
|
||||
wikilist-button-reveal-hover: #81A1C1
|
||||
wikilist-button-remove: #B48EAD
|
||||
wikilist-button-remove-hover: #B48EAD
|
||||
wikilist-button-remove-hover: #B48EAD
|
||||
|
||||
@@ -11,7 +11,7 @@ alert-highlight: #881122
|
||||
alert-muted-foreground: #b99e2f
|
||||
background: #ffffff
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
button-background: #adadad
|
||||
button-background:
|
||||
button-foreground:
|
||||
button-border:
|
||||
code-background: #f7f7f9
|
||||
@@ -47,41 +47,36 @@ modal-footer-background: #f5f5f5
|
||||
modal-footer-border: #dddddd
|
||||
modal-header-border: #eeeeee
|
||||
muted-foreground: #999999
|
||||
network-activity-foreground: <<colour primary>>
|
||||
notification-background: #ffffdd
|
||||
notification-border: #999999
|
||||
page-background: #000
|
||||
pre-background: #f5f5f5
|
||||
pre-border: #cccccc
|
||||
primary: #cc0000
|
||||
select-tag-background: <<colour foreground>>
|
||||
select-tag-foreground: <<colour foreground>>
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #797979
|
||||
sidebar-controls-foreground: #cacaca
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
sidebar-controls-foreground: #ffffff
|
||||
sidebar-foreground-shadow: rgba(255,255,255, 0.0)
|
||||
sidebar-foreground: #acacac
|
||||
sidebar-muted-foreground-hover: #444444
|
||||
sidebar-muted-foreground: #c0c0c0
|
||||
sidebar-tab-background-selected: #000000
|
||||
sidebar-tab-background-selected: #000
|
||||
sidebar-tab-background: <<colour tab-background>>
|
||||
sidebar-tab-border-selected: #7c7c7c
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border: <<colour tab-border>>
|
||||
sidebar-tab-divider: <<colour tab-divider>>
|
||||
sidebar-tab-foreground-selected: #ff0909
|
||||
sidebar-tab-foreground-selected:
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #ffbb99
|
||||
sidebar-tiddler-link-foreground: #cc0000
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-deprecated: #ff0000
|
||||
stability-experimental: #c07c00
|
||||
stability-legacy: #0000ff
|
||||
stability-stable: #008000
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-background-selected: #ffffff
|
||||
tab-background: #d8d8d8
|
||||
tab-border-selected: #d8d8d8
|
||||
tab-border: #bbbbbb
|
||||
tab-border: #cccccc
|
||||
tab-divider: #d8d8d8
|
||||
tab-foreground-selected: <<colour tab-foreground>>
|
||||
tab-foreground: #666666
|
||||
@@ -90,7 +85,6 @@ table-footer-background: #a8a8a8
|
||||
table-header-background: #f0f0f0
|
||||
tag-background: #ffbb99
|
||||
tag-foreground: #000
|
||||
testcase-accent-level-1: #9e9eff
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover: #888888
|
||||
@@ -118,4 +112,4 @@ toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
very-muted-foreground: #888888
|
||||
|
||||
@@ -5,24 +5,24 @@ description: Warm, relaxing earth colours
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
# Background Tones
|
||||
: Background Tones
|
||||
|
||||
base03: #002b36
|
||||
base02: #073642
|
||||
|
||||
# Content Tones
|
||||
: Content Tones
|
||||
|
||||
base01: #586e75
|
||||
base00: #657b83
|
||||
base0: #839496
|
||||
base1: #93a1a1
|
||||
|
||||
# Background Tones
|
||||
: Background Tones
|
||||
|
||||
base2: #eee8d5
|
||||
base3: #fdf6e3
|
||||
|
||||
# Accent Colors
|
||||
: Accent Colors
|
||||
|
||||
yellow: #b58900
|
||||
orange: #cb4b16
|
||||
@@ -33,7 +33,7 @@ blue: #268bd2
|
||||
cyan: #2aa198
|
||||
green: #859900
|
||||
|
||||
# Additional Tones (RA)
|
||||
: Additional Tones (RA)
|
||||
|
||||
base10: #c0c4bb
|
||||
violet-muted: #7c81b0
|
||||
@@ -45,9 +45,9 @@ red-hot: #ff2222
|
||||
blue-hot: #2298ee
|
||||
green-hot: #98ee22
|
||||
|
||||
# Palette
|
||||
: Palette
|
||||
|
||||
# Do not use colour macro for background and foreground
|
||||
: Do not use colour macro for background and foreground
|
||||
background: #fdf6e3
|
||||
download-foreground: <<colour background>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -68,28 +68,24 @@ foreground: #657b83
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground: <<colour foreground>>
|
||||
sidebar-foreground: <<colour foreground>>
|
||||
# base03
|
||||
# base02
|
||||
# base01
|
||||
: base03
|
||||
: base02
|
||||
: base01
|
||||
alert-muted-foreground: <<colour base01>>
|
||||
# base00
|
||||
: base00
|
||||
code-foreground: <<colour base00>>
|
||||
message-foreground: <<colour base00>>
|
||||
tag-foreground: <<colour base00>>
|
||||
# base0
|
||||
: base0
|
||||
sidebar-tiddler-link-foreground: <<colour base0>>
|
||||
# base1
|
||||
: base1
|
||||
muted-foreground: <<colour base1>>
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
sidebar-muted-foreground: <<colour muted-foreground>>
|
||||
tiddler-title-foreground: <<colour muted-foreground>>
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
# base2
|
||||
stability-deprecated: <<colour red>>
|
||||
stability-experimental: <<colour yellow>>
|
||||
stability-legacy: <<colour blue-hot>>
|
||||
stability-stable: <<colour green>>
|
||||
: base2
|
||||
modal-footer-background: <<colour base2>>
|
||||
page-background: <<colour base2>>
|
||||
modal-backdrop: <<colour page-background>>
|
||||
@@ -103,31 +99,31 @@ foreground: #657b83
|
||||
tag-background: <<colour base2>>
|
||||
tiddler-editor-background: <<colour base2>>
|
||||
tiddler-info-background: <<colour base2>>
|
||||
tiddler-info-tab-background: <<colour tiddler-info-border>>
|
||||
tiddler-info-tab-background: <<colour base2>>
|
||||
tab-background: <<colour base2>>
|
||||
dropdown-tab-background: <<colour tab-background>>
|
||||
# base3
|
||||
dropdown-tab-background: <<colour tab-background>>
|
||||
: base3
|
||||
alert-background: <<colour base3>>
|
||||
message-background: <<colour base3>>
|
||||
# yellow
|
||||
# orange
|
||||
# red
|
||||
# magenta
|
||||
: yellow
|
||||
: orange
|
||||
: red
|
||||
: magenta
|
||||
alert-highlight: <<colour magenta>>
|
||||
# violet
|
||||
: violet
|
||||
external-link-foreground: <<colour violet>>
|
||||
|
||||
# blue
|
||||
# cyan
|
||||
# green
|
||||
# base10
|
||||
: blue
|
||||
: cyan
|
||||
: green
|
||||
: base10
|
||||
tiddler-controls-foreground: <<colour base10>>
|
||||
# violet-muted
|
||||
: violet-muted
|
||||
external-link-foreground-visited: <<colour violet-muted>>
|
||||
# blue-muted
|
||||
: blue-muted
|
||||
primary: <<colour blue-muted>>
|
||||
download-background: #5bb83d
|
||||
download-background: <<colour primary>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
|
||||
alert-border: #b99e2f
|
||||
diff-delete-background: <<colour red>>
|
||||
diff-delete-foreground: <<colour background>>
|
||||
@@ -138,7 +134,7 @@ diff-insert-foreground: <<colour background>>
|
||||
diff-invisible-background: <<colour yellow>>
|
||||
diff-invisible-foreground: <<colour background>>
|
||||
dirty-indicator: #ff0000
|
||||
dropzone-background: #008800
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
@@ -150,10 +146,14 @@ message-border: #cfd6e6
|
||||
modal-border: #999999
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
sidebar-controls-foreground-hover:
|
||||
sidebar-muted-foreground-hover:
|
||||
sidebar-tab-background: #ded8c5
|
||||
sidebar-tiddler-link-foreground-hover:
|
||||
stability-deprecated: <<colour red>>
|
||||
stability-experimental: <<colour yellow>>
|
||||
stability-legacy: <<colour blue>>
|
||||
stability-stable: <<colour green>>
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-border: #cccccc
|
||||
modal-footer-border: <<colour tab-border>>
|
||||
@@ -166,7 +166,6 @@ tab-divider: #d8d8d8
|
||||
sidebar-tab-divider: <<colour tab-divider>>
|
||||
table-border: #dddddd
|
||||
table-footer-background: #a8a8a8
|
||||
testcase-accent-level-1: #bec8cc
|
||||
tiddler-controls-foreground-hover: #888888
|
||||
tiddler-controls-foreground-selected: #444444
|
||||
tiddler-editor-border-image: #ffffff
|
||||
@@ -186,4 +185,3 @@ toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -40,7 +40,7 @@ external-link-background: inherit
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-foreground: #268bd2
|
||||
external-link-foreground-hover: #1d669c
|
||||
external-link-foreground-hover:
|
||||
external-link-foreground-visited: #268bd2
|
||||
footnote-target-background: #073642
|
||||
foreground: #839496
|
||||
@@ -56,7 +56,6 @@ modal-footer-background: #073642
|
||||
modal-footer-border: #586e75
|
||||
modal-header-border: #586e75
|
||||
muted-foreground: #93a1a1
|
||||
network-activity-foreground: <<colour primary>>
|
||||
notification-background: #002b36
|
||||
notification-border: #586e75
|
||||
page-background: #073642
|
||||
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #93a1a1
|
||||
sidebar-tiddler-link-foreground: #2aa198
|
||||
sidebar-tiddler-link-foreground-hover: #eee8d5
|
||||
site-title-foreground: #d33682
|
||||
stability-deprecated: #aa1a9f
|
||||
stability-experimental: #806000
|
||||
stability-legacy: #1d669c
|
||||
stability-stable: #00df11
|
||||
stability-deprecated: #dc322f
|
||||
stability-experimental: #b58900
|
||||
stability-legacy: #268bd2
|
||||
stability-stable: #859900
|
||||
static-alert-foreground: #93a1a1
|
||||
tab-background: #073642
|
||||
tab-background-selected: #002b36
|
||||
@@ -99,7 +98,6 @@ table-footer-background: #073642
|
||||
table-header-background: #073642
|
||||
tag-background: #b58900
|
||||
tag-foreground: #002b36
|
||||
testcase-accent-level-1: #073642
|
||||
tiddler-background: #002b36
|
||||
tiddler-border: #586e75
|
||||
tiddler-controls-foreground: inherit
|
||||
@@ -127,4 +125,4 @@ toolbar-new-button: #839496
|
||||
toolbar-options-button: #839496
|
||||
toolbar-save-button: inherit
|
||||
untagged-background: #586e75
|
||||
very-muted-foreground: #586e75
|
||||
very-muted-foreground: #586e75
|
||||
|
||||
@@ -27,7 +27,7 @@ diff-insert-foreground: #eee8d5
|
||||
diff-invisible-background: #b58900
|
||||
diff-invisible-foreground: #eee8d5
|
||||
dirty-indicator: #dc322f
|
||||
download-background: #00910b
|
||||
download-background: #859900
|
||||
download-foreground: #eee8d5
|
||||
dragger-background: #eee8d5
|
||||
dragger-foreground: #657b83
|
||||
@@ -56,7 +56,6 @@ modal-footer-background: #eee8d5
|
||||
modal-footer-border: #93a1a1
|
||||
modal-header-border: #93a1a1
|
||||
muted-foreground: #586e75
|
||||
network-activity-foreground: <<colour primary>>
|
||||
notification-background: #fdf6e3
|
||||
notification-border: #93a1a1
|
||||
page-background: #eee8d5
|
||||
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #586e75
|
||||
sidebar-tiddler-link-foreground: #2aa198
|
||||
sidebar-tiddler-link-foreground-hover: #002b36
|
||||
site-title-foreground: #d33682
|
||||
stability-deprecated: #d21a1a
|
||||
stability-experimental: #771e00
|
||||
stability-legacy: #227abb
|
||||
stability-stable: #576400
|
||||
stability-deprecated: #dc322f
|
||||
stability-experimental: #b58900
|
||||
stability-legacy: #268bd2
|
||||
stability-stable: #859900
|
||||
static-alert-foreground: #586e75
|
||||
tab-background: #eee8d5
|
||||
tab-background-selected: #fdf6e3
|
||||
@@ -99,7 +98,6 @@ table-footer-background: #eee8d5
|
||||
table-header-background: #eee8d5
|
||||
tag-background: #b58900
|
||||
tag-foreground: #fdf6e3
|
||||
testcase-accent-level-1: #afc2db
|
||||
tiddler-background: #fdf6e3
|
||||
tiddler-border: #93a1a1
|
||||
tiddler-controls-foreground: inherit
|
||||
|
||||
@@ -94,7 +94,6 @@ table-footer-background: rgba(0,0,0,.4)
|
||||
table-header-background: rgba(0,0,0,.1)
|
||||
tag-background: rgb(255, 201, 102)
|
||||
tag-foreground: rgb(25, 25, 25)
|
||||
testcase-accent-level-1: rgb(13, 52, 99)
|
||||
tiddler-background: rgb(38, 38, 38)
|
||||
tiddler-border: rgba(240, 196, 117, 0.7)
|
||||
tiddler-controls-foreground: rgb(128, 128, 128)
|
||||
|
||||
@@ -69,7 +69,7 @@ select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
sidebar-controls-foreground: #aaaaaa
|
||||
sidebar-foreground-shadow: #ffffff
|
||||
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
|
||||
sidebar-foreground: #acacac
|
||||
sidebar-muted-foreground-hover: #444444
|
||||
sidebar-muted-foreground: #c0c0c0
|
||||
@@ -83,7 +83,7 @@ sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #444444
|
||||
sidebar-tiddler-link-foreground: #999999
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-stable: #00b700
|
||||
stability-stable: #008000
|
||||
stability-experimental: #c07c00
|
||||
stability-deprecated: #ff0000
|
||||
stability-legacy: #0000ff
|
||||
@@ -138,13 +138,13 @@ wikilist-title: #666666
|
||||
wikilist-title-svg: <<colour wikilist-title>>
|
||||
wikilist-url: #aaaaaa
|
||||
wikilist-button-open: #4fb82b
|
||||
wikilist-button-open-hover: #009300
|
||||
wikilist-button-open-hover: green
|
||||
wikilist-button-reveal: #5778d8
|
||||
wikilist-button-reveal-hover: #0000ff
|
||||
wikilist-button-reveal-hover: blue
|
||||
wikilist-button-remove: #d85778
|
||||
wikilist-button-remove-hover: #ff0000
|
||||
wikilist-button-remove-hover: red
|
||||
wikilist-toolbar-background: #d3d3d3
|
||||
wikilist-toolbar-foreground: #888888
|
||||
wikilist-droplink-dragover: #ffc0c0
|
||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||
wikilist-button-background: #acacac
|
||||
wikilist-button-foreground: #000000
|
||||
wikilist-button-foreground: #000000
|
||||
|
||||
@@ -37,7 +37,7 @@ caption: {{$:/language/Search/Standard/Caption}}
|
||||
inputCancelActions=<<cancel-search-actions>>
|
||||
inputAcceptActions=<<input-accept-actions>>
|
||||
inputAcceptVariantActions=<<input-accept-variant-actions>>
|
||||
configTiddlerFilter="[[$:/state/advancedsearch/standard/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"
|
||||
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"
|
||||
filterMinLength={{$:/config/Search/MinLength}}/>
|
||||
</$keyboard>
|
||||
</$keyboard>
|
||||
|
||||
@@ -21,6 +21,12 @@ http://$(userName)$.tiddlyspot.com/$path$/
|
||||
</$reveal>
|
||||
\end
|
||||
|
||||
<div class="tc-message-box">
|
||||
|
||||
<<lingo ReadOnly>>
|
||||
|
||||
</div>
|
||||
|
||||
<<lingo Description>>
|
||||
|
||||
|<<lingo UserName>> |<$edit-text tiddler="$:/UploadName" default="" tag="input"/> |
|
||||
|
||||
@@ -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>>
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
caption: {{$:/language/ControlPanel/Settings/DefaultTiddlerInfoTab/Caption}}
|
||||
tags: $:/tags/ControlPanel/Settings
|
||||
title: $:/core/ui/ControlPanel/Settings/DefaultTiddlerInfoTab
|
||||
|
||||
\whitespace trim
|
||||
\define lingo-base() $:/language/ControlPanel/Settings/DefaultTiddlerInfoTab/
|
||||
|
||||
<$link to="$:/config/TiddlerInfo/Default" class="tc-control-panel-item">
|
||||
<<lingo Hint>>
|
||||
</$link>
|
||||
|
||||
<$select tiddler="$:/config/TiddlerInfo/Default" class="tc-select">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!is[draft]]">
|
||||
<option value=<<currentTiddler>>><$transclude field="caption">
|
||||
<$text text=<<currentTiddler>>/>
|
||||
</$transclude>
|
||||
</option>
|
||||
</$list>
|
||||
</$select>
|
||||
@@ -17,7 +17,9 @@ tags: $:/tags/EditTemplate
|
||||
<$let backgroundColor=<<colour>> >
|
||||
<span class="tc-tag-label tc-tag-list-item tc-small-gap-right"
|
||||
data-tag-title=<<currentTiddler>>
|
||||
style=`color:$(foregroundColor)$; fill:$(foregroundColor)$; background-color:$(backgroundColor)$;`
|
||||
style.color=<<foregroundColor>>
|
||||
style.fill=<<foregroundColor>>
|
||||
style.background-color=<<backgroundColor>>
|
||||
>
|
||||
<$transclude tiddler=<<icon>>/>
|
||||
<$view field="title" format="text"/>
|
||||
|
||||
@@ -12,7 +12,7 @@ Export the TiddlyWiki core JavaScript code for running with external JavaScript:
|
||||
tooltip="Export the TiddlyWiki core code for running with external JavaScript"
|
||||
aria-label="export TiddlyWiki core"
|
||||
class="tc-btn-big-green">
|
||||
<$action-sendmessage $message='tm-download-file' $param='$:/core/templates/tiddlywiki5.js' filename=<<jsFileName>> type="application/javascript"/>
|
||||
<$action-sendmessage $message='tm-download-file' $param='$:/core/templates/tiddlywiki5.js' filename=<<jsFileName>>/>
|
||||
{{$:/core/images/download-button}}
|
||||
<span class="tc-tiny-gap-left">
|
||||
Download TiddlyWiki core
|
||||
|
||||
@@ -51,7 +51,6 @@ title: $:/core/ui/ImportListing
|
||||
\end
|
||||
|
||||
\whitespace trim
|
||||
<div class="tc-table-wrapper">
|
||||
<table class="tc-import-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
@@ -130,4 +129,3 @@ title: $:/core/ui/ImportListing
|
||||
</$list>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -12,7 +12,7 @@ element, and right-click its `src` URI. Save the link as ''$(jsFileName)$''</p>
|
||||
Export the ~TiddlyWiki core ~JavaScript code for running with external ~JavaScript:
|
||||
|
||||
<$button tooltip="Export the ~TiddlyWiki core code for running with external ~JavaScript" aria-label="export TiddlyWiki core" class="tc-btn-big-green">
|
||||
<$list filter="[[$:/boot/boot.js]is[missing]]" variable="ignore" emptyMessage="""<$action-sendmessage $message="tm-download-file" $param="$:/core/templates/tiddlywiki5.js" filename=<<jsFileName>> type="application/javascript"/>""" >
|
||||
<$list filter="[[$:/boot/boot.js]is[missing]]" variable="ignore" emptyMessage="""<$action-sendmessage $message="tm-download-file" $param="$:/core/templates/tiddlywiki5.js" filename=<<jsFileName>>/>""" >
|
||||
<$action-setfield $tiddler=<<qualify "$:/temp/alert">> text=<<noExportMsg>> subtitle="Export ~TiddllyWiki Core"/>
|
||||
<$action-sendmessage $message="tm-modal" $param=<<qualify "$:/temp/alert">>/>
|
||||
</$list>
|
||||
|
||||
@@ -2,26 +2,31 @@ title: $:/core/ui/SideBar/Tools
|
||||
tags: $:/tags/SideBar
|
||||
caption: {{$:/language/SideBar/Tools/Caption}}
|
||||
|
||||
\whitespace trim
|
||||
|
||||
\procedure lingo-base() $:/language/ControlPanel/
|
||||
\function config-title() [[$:/config/PageControlButtons/Visibility/$(listItem)$]substitute[]]
|
||||
\define lingo-base() $:/language/ControlPanel/
|
||||
\define config-title()
|
||||
$:/config/PageControlButtons/Visibility/$(listItem)$
|
||||
\end
|
||||
|
||||
<<lingo Basics/Version/Prompt>> <<version>>
|
||||
|
||||
<$let tv-config-toolbar-icons="yes"
|
||||
tv-config-toolbar-text="yes"
|
||||
tv-config-toolbar-class=""
|
||||
>
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
|
||||
<div class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] tc-sidebar-tools-item +[join[ ]] }}}
|
||||
data-title=<<listItem>>
|
||||
>
|
||||
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show" class="tc-tiny-gap-right"/>
|
||||
<$transclude $tiddler=<<listItem>>/>
|
||||
<i class="tc-tiny-gap-left tc-muted">
|
||||
<$transclude $tiddler=<<listItem>> $field="description"/>
|
||||
</i>
|
||||
</div>
|
||||
</$list>
|
||||
</$let>
|
||||
<$set name="tv-config-toolbar-icons" value="yes">
|
||||
|
||||
<$set name="tv-config-toolbar-text" value="yes">
|
||||
|
||||
<$set name="tv-config-toolbar-class" value="">
|
||||
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
|
||||
|
||||
<div style="position:relative;" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>
|
||||
|
||||
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i>
|
||||
|
||||
</div>
|
||||
|
||||
</$list>
|
||||
|
||||
</$set>
|
||||
|
||||
</$set>
|
||||
|
||||
</$set>
|
||||
|
||||
@@ -3,9 +3,11 @@ tags: $:/tags/Macro
|
||||
|
||||
\whitespace trim
|
||||
|
||||
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style)
|
||||
<$button message="tm-copy-to-clipboard"
|
||||
param=<<src>>
|
||||
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style,type:"text/plain",plain)
|
||||
\procedure copy-to-clipboard-actions()
|
||||
<$action-sendmessage $message="tm-copy-to-clipboard" $param=<<src>> type=<<type>> plainText=<<plain>>/>
|
||||
\end copy-to-clipboard-actions
|
||||
<$button actions=<<copy-to-clipboard-actions>>
|
||||
class=<<class>>
|
||||
style=<<style>>
|
||||
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
|
||||
@@ -15,12 +17,12 @@ tags: $:/tags/Macro
|
||||
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
|
||||
</span>
|
||||
</$button>
|
||||
\end
|
||||
\end copy-to-clipboard
|
||||
|
||||
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style)
|
||||
<div style="position: relative;">
|
||||
<div style="position: absolute; bottom: 0; right: 0;">
|
||||
<$macrocall $name="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>>/>
|
||||
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style,type:"text/plain")
|
||||
<div style.position="relative">
|
||||
<div style.position="absolute" style.bottom="0" style.right="0">
|
||||
<$transclude $variable="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>> type=<<type>> plain=<<plain>>/>
|
||||
</div>
|
||||
</div>
|
||||
\end
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
title: $:/coreURL
|
||||
tags: $:/tags/Global
|
||||
|
||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
||||
@@ -11,9 +11,6 @@
|
||||
],
|
||||
"build": {
|
||||
"index": [
|
||||
"--rendertiddler","$:/core/save/all","classicparserdemo.html","text/plain"],
|
||||
"external": [
|
||||
"--render","$:/core/save/all-external-js","classicparserdemo.html","text/plain"
|
||||
]
|
||||
"--rendertiddler","$:/core/save/all","classicparserdemo.html","text/plain"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
title: $:/coreURL
|
||||
tags: $:/tags/Global
|
||||
|
||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
||||
@@ -11,7 +11,6 @@ The ~CodeMirror plugin can be extended with ~AddOns for more functionality:
|
||||
* Keymaps in the style of Emacs, Sublime Text or Vim
|
||||
* Closing Brackets
|
||||
* Closing Tags
|
||||
* Display trailing whitespace
|
||||
|
||||
NOTE: This demo has the ''Sublime Text'' keymap installed.
|
||||
|
||||
|
||||
@@ -8,16 +8,11 @@
|
||||
"tiddlywiki/codemirror-search-replace",
|
||||
"tiddlywiki/codemirror-fullscreen-editing",
|
||||
"tiddlywiki/codemirror-mode-xml",
|
||||
"tiddlywiki/codemirror-mode-htmlembedded",
|
||||
"tiddlywiki/codemirror-mode-htmlmixed",
|
||||
"tiddlywiki/codemirror-mode-javascript",
|
||||
"tiddlywiki/codemirror-mode-css",
|
||||
"tiddlywiki/codemirror-mode-x-tiddlywiki",
|
||||
"tiddlywiki/codemirror-mode-markdown",
|
||||
"tiddlywiki/codemirror-trailingspace",
|
||||
"tiddlywiki/codemirror-keymap-emacs",
|
||||
"tiddlywiki/codemirror-keymap-sublime-text",
|
||||
"tiddlywiki/codemirror-keymap-vim"
|
||||
"tiddlywiki/codemirror-keymap-sublime-text"
|
||||
],
|
||||
"themes": [
|
||||
"tiddlywiki/vanilla",
|
||||
@@ -27,9 +22,6 @@
|
||||
],
|
||||
"build": {
|
||||
"index": [
|
||||
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"],
|
||||
"external": [
|
||||
"--render","$:/core/save/all-external-js","codemirrordemo.html","text/plain"
|
||||
]
|
||||
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,4 +28,5 @@ Note that JavaScript macros work on both the client and the server, and so do no
|
||||
|
||||
!! Macro Behaviour
|
||||
|
||||
Macros are just used to return a chunk of wikitext for further processing. They should not make modifications to tiddlers in the wiki store. The reason is that you cannot control when the macro is called; it may be called repeatedly as part of refresh processing. So it is important that macros do not have any other side effects beyond generating their text.
|
||||
Macros are just used to return a chunk of wikitext for further processing. They should not make modifications to tiddlers in the wiki store. The reason is that you cannott control when the macro is called; it may be called repeatedly as part of refresh processing. So it is important that macros do not have any other side effects beyond generating their text.
|
||||
|
||||
|
||||
@@ -34,11 +34,13 @@ Suppose we want to make a filter operator that returns every other tiddler from
|
||||
We make a new tiddler, set its `type` and `module-type` appropriately, and begin writing the code:
|
||||
|
||||
```
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
exports.everyother = function(source, operator, options) {
|
||||
// TODO
|
||||
}
|
||||
})();
|
||||
```
|
||||
|
||||
For the example filter syntax, our function will be called with
|
||||
@@ -52,6 +54,7 @@ As is usually the case, we don't care about `operator.operator` here (since that
|
||||
We could implement the operator by iterating over the input tiddlers and explicitly building a result array of titles:
|
||||
|
||||
```
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
exports.everyother = function(source, operator, options) {
|
||||
@@ -63,6 +66,7 @@ exports.everyother = function(source, operator, options) {
|
||||
});
|
||||
return result;
|
||||
}
|
||||
})();
|
||||
```
|
||||
|
||||
That is, we supply a callback to `source` that negates `include` each time through (in order to grab every other result) and pushes the `title` of every other tiddler onto the result.
|
||||
@@ -70,6 +74,7 @@ That is, we supply a callback to `source` that negates `include` each time throu
|
||||
Alternatively, we can return our own iterator, by returning a function that accepts a similar callback and only calls it on every other tiddler:
|
||||
|
||||
```
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
exports.everyother = function(source, operator, options) {
|
||||
@@ -81,6 +86,7 @@ exports.everyother = function(source, operator, options) {
|
||||
});
|
||||
};
|
||||
}
|
||||
})();
|
||||
```
|
||||
|
||||
Either way, we could interpret the `!` flag on the filter, if present, to mean that we want the //other// half of the tiddlers, by using it to set the initial value of `include`: `var include = operator.prefix !== "!";`
|
||||
|
||||
@@ -40,7 +40,10 @@ module-type: startup
|
||||
YOUR DISCRCRIPTION COMES HERE!
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false, exports: true */
|
||||
"use strict";
|
||||
|
||||
// Export name and synchronous status
|
||||
@@ -60,4 +63,6 @@ exports.startup = function() {
|
||||
});
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
```
|
||||
@@ -11,7 +11,10 @@ The wikitext parser subclassing mechanism makes it possible for custom parsers t
|
||||
Here is an example of a subclass of the checkbox widget that adds logging to the event handler:
|
||||
|
||||
```js
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
var WikiParser = require("$:/core/modules/parsers/wikiparser/wikiparser.js")["text/vnd.tiddlywiki"],
|
||||
@@ -35,4 +38,5 @@ var MyCustomWikiParser = function(type,text,options) {
|
||||
|
||||
exports["text/vnd.my-custom-type"] = MyCustomWikiParser;
|
||||
|
||||
})();
|
||||
```
|
||||
|
||||
@@ -26,7 +26,10 @@ module-type: widget-subclass
|
||||
Widget base class
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.baseClass = "checkbox"; // Extend the <$checkbox> widget
|
||||
@@ -47,4 +50,5 @@ exports.prototype.handleChangeEvent = function(event) {
|
||||
console.log("Checkbox status:",this.inputDomNode.checked);
|
||||
};
|
||||
|
||||
})();
|
||||
```
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
title: $:/coreURL
|
||||
tags: $:/tags/Global
|
||||
|
||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
||||
@@ -9,9 +9,6 @@
|
||||
],
|
||||
"build": {
|
||||
"index": [
|
||||
"--rendertiddler","$:/core/save/all","index.html","text/plain"],
|
||||
"external": [
|
||||
"--render","$:/core/save/all-external-js","index.html","text/plain"
|
||||
]
|
||||
"--rendertiddler","$:/core/save/all","index.html","text/plain"]
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
title: $:/coreURL
|
||||
tags: $:/tags/Global
|
||||
|
||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
||||
@@ -15,9 +15,6 @@
|
||||
"build": {
|
||||
"index": [
|
||||
"--render","$:/core/save/all","index.html","text/plain"],
|
||||
"external": [
|
||||
"--render","$:/core/save/all-external-js","index.html","text/plain"
|
||||
],
|
||||
"favicon": [],
|
||||
"static": [],
|
||||
"empty": [],
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
title: $:/coreURL
|
||||
tags: $:/tags/Global
|
||||
|
||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
||||
@@ -16,9 +16,6 @@
|
||||
"--render","$:/core/templates/static.template.html","static.html","text/plain",
|
||||
"--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain",
|
||||
"--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html",
|
||||
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"],
|
||||
"external": [
|
||||
"--render","$:/core/save/all-external-js","highlightdemo.html","text/plain"
|
||||
]
|
||||
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
title: $:/coreURL
|
||||
tags: $:/tags/Global
|
||||
|
||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
||||
@@ -19,9 +19,6 @@
|
||||
"--screenshot",
|
||||
"[[$:/plugins/tiddlywiki/innerwiki/examples]]",
|
||||
"4"
|
||||
],
|
||||
"external": [
|
||||
"--render","$:/core/save/all-external-js","index.html","text/plain"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
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]] -- テキスト内でフィルタ結果を使用したい場合
|
||||
@@ -1,19 +0,0 @@
|
||||
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">>
|
||||
@@ -1,20 +0,0 @@
|
||||
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`があります
|
||||
@@ -1,20 +0,0 @@
|
||||
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があります
|
||||
@@ -1,48 +0,0 @@
|
||||
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}]">>
|
||||
@@ -1,27 +0,0 @@
|
||||
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)]]
|
||||
@@ -1,22 +0,0 @@
|
||||
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]]
|
||||
@@ -1,20 +0,0 @@
|
||||
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`があります
|
||||
@@ -1,23 +0,0 @@
|
||||
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 """下位レベルで使用されているように、図に開始点と終了点がない場合は、読みやすさと単純さを高めるために、上位レベルのシンタックス要素が削除されていることを意味します。パンくずリストはナビゲーションに使用できます""">>
|
||||
@@ -1,33 +0,0 @@
|
||||
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]]">>|
|
||||
@@ -1,34 +0,0 @@
|
||||
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)]]
|
||||
@@ -1,40 +0,0 @@
|
||||
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}`
|
||||
@@ -1,21 +0,0 @@
|
||||
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"]]
|
||||
"""/>
|
||||
@@ -1,29 +0,0 @@
|
||||
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"`のように角括弧を含むタイトルをサポートするために存在します。
|
||||
@@ -1,37 +0,0 @@
|
||||
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}}
|
||||
@@ -1,26 +0,0 @@
|
||||
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ボックスを使用して移動できます。">>
|
||||
@@ -1,15 +0,0 @@
|
||||
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]]の各ランの間にはホワイトスペース文字が出現します。
|
||||
@@ -1,47 +0,0 @@
|
||||
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]]を作成します。
|
||||
@@ -1,38 +0,0 @@
|
||||
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に共通するタグを返します""">>
|
||||
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
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)]]
|
||||
@@ -1,60 +0,0 @@
|
||||
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}]">>|
|
||||
@@ -1,35 +0,0 @@
|
||||
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)]]
|
||||
@@ -1,38 +0,0 @@
|
||||
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]]
|
||||
@@ -1,20 +0,0 @@
|
||||
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`を参照してください
|
||||
@@ -1,29 +0,0 @@
|
||||
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]]" "正しい結果を得るためには初期値の設定が必要な場合があります">>
|
||||
@@ -1,49 +0,0 @@
|
||||
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)]]
|
||||
@@ -1,30 +0,0 @@
|
||||
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}}
|
||||
@@ -1,35 +0,0 @@
|
||||
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}]">>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user