mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-09-14 05:41:22 +00:00
Compare commits
25
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c05400021c | ||
|
|
5111be1953 | ||
|
|
9dadd3fafb | ||
|
|
12ced06d1d | ||
|
|
a4e8308e75 | ||
|
|
9a2534fc5e | ||
|
|
2ae1e5aa09 | ||
|
|
e01c428a17 | ||
|
|
752c5cfbda | ||
|
|
094428b1ab | ||
|
|
41cd335cf4 | ||
|
|
26b2768294 | ||
|
|
4e3d07b16a | ||
|
|
01beac1d7c | ||
|
|
0c80e1b35c | ||
|
|
55c634692b | ||
|
|
7e2a8238b5 | ||
|
|
ee90ad2fa6 | ||
|
|
afabe5b714 | ||
|
|
3a60e0eb17 | ||
|
|
6b0a13b8cc | ||
|
|
c142bfc50d | ||
|
|
e8de413fba | ||
|
|
4cbf1b4d91 | ||
|
|
778e544f1c |
+317
@@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
name: Calculate PR build size
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types: [opened, reopened, synchronize]
|
|
||||||
paths:
|
|
||||||
- 'boot/**'
|
|
||||||
- 'core/**'
|
|
||||||
- 'themes/tiddlywiki/snowwhite/**'
|
|
||||||
- 'themes/tiddlywiki/vanilla/**'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
calculate-build-size:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
pull-requests: read
|
|
||||||
contents: read
|
|
||||||
outputs:
|
|
||||||
pr_size: ${{ steps.get_sizes.outputs.pr_size }}
|
|
||||||
base_size: ${{ steps.get_sizes.outputs.base_size }}
|
|
||||||
steps:
|
|
||||||
- name: build-size-check
|
|
||||||
id: get_sizes
|
|
||||||
uses: TiddlyWiki/cerebrus@v4
|
|
||||||
with:
|
|
||||||
pr_number: ${{ github.event.pull_request.number }}
|
|
||||||
repo: ${{ github.repository }}
|
|
||||||
base_ref: ${{ github.event.pull_request.base.ref }}
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
mode: size:calc
|
|
||||||
|
|
||||||
dispatch-followup:
|
|
||||||
needs: calculate-build-size
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
actions: write # Required to dispatch another workflow
|
|
||||||
pull-requests: write
|
|
||||||
contents: read
|
|
||||||
steps:
|
|
||||||
- name: Trigger follow-up workflow
|
|
||||||
uses: actions/github-script@v6
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
script: |
|
|
||||||
await github.rest.actions.createWorkflowDispatch({
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
workflow_id: 'pr-comment-build-size.yml',
|
|
||||||
ref: 'master',
|
|
||||||
inputs: {
|
|
||||||
pr_number: '${{ github.event.pull_request.number }}',
|
|
||||||
base_ref: '${{ github.event.pull_request.base.ref }}',
|
|
||||||
pr_size: '${{ needs.calculate-build-size.outputs.pr_size }}',
|
|
||||||
base_size: '${{ needs.calculate-build-size.outputs.base_size }}'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@@ -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 }}
|
|
||||||
@@ -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 }}
|
|
||||||
+13
-20
@@ -5,7 +5,7 @@
|
|||||||
# Default to the current version number for building the plugin library
|
# Default to the current version number for building the plugin library
|
||||||
|
|
||||||
if [ -z "$TW5_BUILD_VERSION" ]; then
|
if [ -z "$TW5_BUILD_VERSION" ]; then
|
||||||
TW5_BUILD_VERSION=v5.3.8
|
TW5_BUILD_VERSION=v5.3.7
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]"
|
echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]"
|
||||||
@@ -156,14 +156,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
node $TW5_BUILD_TIDDLYWIKI \
|
node $TW5_BUILD_TIDDLYWIKI \
|
||||||
./editions/tour \
|
./editions/tour \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--output $TW5_BUILD_OUTPUT \
|
||||||
--rendertiddler $:/core/save/all-external-js tour.html text/plain \
|
--rendertiddler $:/core/save/all tour.html text/plain \
|
||||||
|| exit 1
|
|
||||||
|
|
||||||
# /surveys.html surveys edition
|
|
||||||
node $TW5_BUILD_TIDDLYWIKI \
|
|
||||||
./editions/tiddlywiki-surveys \
|
|
||||||
--output $TW5_BUILD_OUTPUT \
|
|
||||||
--build index \
|
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
# /share.html Custom edition for sharing via the URL
|
# /share.html Custom edition for sharing via the URL
|
||||||
@@ -202,7 +195,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/xlsx-utils \
|
./editions/xlsx-utils \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT/editions/xlsx-utils/ \
|
--output $TW5_BUILD_OUTPUT/editions/xlsx-utils/ \
|
||||||
--build external \
|
--build index \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
# /editions/resumebuilder/index.html Resume builder edition
|
# /editions/resumebuilder/index.html Resume builder edition
|
||||||
@@ -218,7 +211,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/text-slicer \
|
./editions/text-slicer \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT/editions/text-slicer/ \
|
--output $TW5_BUILD_OUTPUT/editions/text-slicer/ \
|
||||||
--build external \
|
--build index \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
# /editions/translators/index.html Translators edition
|
# /editions/translators/index.html Translators edition
|
||||||
@@ -250,7 +243,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/tw5.com-docs \
|
./editions/tw5.com-docs \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT/editions/tw5.com-docs/ \
|
--output $TW5_BUILD_OUTPUT/editions/tw5.com-docs/ \
|
||||||
--build external \
|
--build index \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
# /editions/twitter-archivist/index.html Twitter Archivist edition
|
# /editions/twitter-archivist/index.html Twitter Archivist edition
|
||||||
@@ -273,7 +266,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/innerwikidemo \
|
./editions/innerwikidemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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
|
|| exit 1
|
||||||
|
|
||||||
# /plugins/tiddlywiki/dynaview/index.html Demo wiki with DynaView plugin
|
# /plugins/tiddlywiki/dynaview/index.html Demo wiki with DynaView plugin
|
||||||
@@ -283,7 +276,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/dynaviewdemo \
|
./editions/dynaviewdemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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 \
|
--rendertiddler $:/core/save/empty plugins/tiddlywiki/dynaview/empty.html text/plain \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
@@ -297,7 +290,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/katexdemo \
|
./editions/katexdemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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 \
|
--rendertiddler $:/core/save/empty plugins/tiddlywiki/katex/empty.html text/plain \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
@@ -327,7 +320,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/codemirrordemo \
|
./editions/codemirrordemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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 \
|
--rendertiddler $:/core/save/empty plugins/tiddlywiki/codemirror/empty.html text/plain \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
@@ -337,7 +330,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/markdowndemo \
|
./editions/markdowndemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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 \
|
--rendertiddler $:/core/save/empty plugins/tiddlywiki/markdown/empty.html text/plain \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
@@ -347,7 +340,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/classicparserdemo \
|
./editions/classicparserdemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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 \
|
--rendertiddler $:/core/save/empty plugins/tiddlywiki/tw2parser/empty.html text/plain \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
@@ -357,7 +350,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/highlightdemo \
|
./editions/highlightdemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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 \
|
--rendertiddler $:/core/save/empty plugins/tiddlywiki/highlight/empty.html text/plain \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
@@ -367,7 +360,7 @@ node $TW5_BUILD_TIDDLYWIKI \
|
|||||||
./editions/geospatialdemo \
|
./editions/geospatialdemo \
|
||||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||||
--output $TW5_BUILD_OUTPUT \
|
--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 \
|
--rendertiddler $:/core/save/empty plugins/tiddlywiki/geospatial/empty.html text/plain \
|
||||||
|| exit 1
|
|| exit 1
|
||||||
|
|
||||||
|
|||||||
+177
-124
@@ -1068,6 +1068,10 @@ $tw.Tiddler.prototype.hasField = function(field) {
|
|||||||
return $tw.utils.hop(this.fields,field);
|
return $tw.utils.hop(this.fields,field);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$tw.Tiddler.prototype.isPlugin = function() {
|
||||||
|
return this.fields.type === "application/json" && this.hasField("plugin-type") && !this.hasField("draft.of");
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Compare two tiddlers for equality
|
Compare two tiddlers for equality
|
||||||
tiddler: the tiddler to compare
|
tiddler: the tiddler to compare
|
||||||
@@ -1162,21 +1166,21 @@ enableIndexers - Array of indexer names to enable, or null to use all available
|
|||||||
$tw.Wiki = function(options) {
|
$tw.Wiki = function(options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
var self = this,
|
var self = this,
|
||||||
tiddlers = Object.create(null), // Hashmap of tiddlers
|
tiddlerStore = Object.create(null), // Hashmap of tiddlers
|
||||||
tiddlerTitles = null, // Array of tiddler titles
|
tiddlerTitles = null, // Array of tiddler titles, calculated and cached when needed
|
||||||
getTiddlerTitles = function() {
|
getTiddlerTitles = function() {
|
||||||
if(!tiddlerTitles) {
|
if(!tiddlerTitles) {
|
||||||
tiddlerTitles = Object.keys(tiddlers).sort(function(a,b) {return a.localeCompare(b);});
|
tiddlerTitles = Object.keys(tiddlerStore).sort(function(a,b) {return a.localeCompare(b);});
|
||||||
}
|
}
|
||||||
return tiddlerTitles;
|
return tiddlerTitles;
|
||||||
},
|
},
|
||||||
pluginTiddlers = [], // Array of tiddlers containing registered plugins, ordered by priority
|
pluginTiddlersInfo = [], // Array of tiddler fields for all plugins and sub-plugins, ordered by priority
|
||||||
pluginInfo = Object.create(null), // Hashmap of parsed plugin content
|
pluginContents = Object.create(null), // Hashmap by title of {contents:<parsed plugin contents>,fields:<fields>,subPluginTitles:<list>}
|
||||||
shadowTiddlers = Object.create(null), // Hashmap by title of {source:, tiddler:}
|
shadowTiddlerInfo = Object.create(null), // Hashmap by title of {source:, tiddler:}
|
||||||
shadowTiddlerTitles = null,
|
shadowTiddlerTitles = null, // Array of tiddler titles, calculated and cached when needed
|
||||||
getShadowTiddlerTitles = function() {
|
getShadowTiddlerTitles = function() {
|
||||||
if(!shadowTiddlerTitles) {
|
if(!shadowTiddlerTitles) {
|
||||||
shadowTiddlerTitles = Object.keys(shadowTiddlers).sort(function(a,b) {return a.localeCompare(b);});
|
shadowTiddlerTitles = Object.keys(shadowTiddlerInfo).sort(function(a,b) {return a.localeCompare(b);});
|
||||||
}
|
}
|
||||||
return shadowTiddlerTitles;
|
return shadowTiddlerTitles;
|
||||||
},
|
},
|
||||||
@@ -1218,7 +1222,7 @@ $tw.Wiki = function(options) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Save the new tiddler
|
// Save the new tiddler
|
||||||
tiddlers[title] = tiddler;
|
tiddlerStore[title] = tiddler;
|
||||||
// Check we've got the title
|
// Check we've got the title
|
||||||
tiddlerTitles = $tw.utils.insertSortedArray(tiddlerTitles || [],title);
|
tiddlerTitles = $tw.utils.insertSortedArray(tiddlerTitles || [],title);
|
||||||
// Record the new tiddler state
|
// Record the new tiddler state
|
||||||
@@ -1243,7 +1247,7 @@ $tw.Wiki = function(options) {
|
|||||||
this.deleteTiddler = function(title) {
|
this.deleteTiddler = function(title) {
|
||||||
// Uncomment the following line for detailed logs of all tiddler deletions
|
// Uncomment the following line for detailed logs of all tiddler deletions
|
||||||
// console.log("Deleting",title)
|
// console.log("Deleting",title)
|
||||||
if($tw.utils.hop(tiddlers,title)) {
|
if($tw.utils.hop(tiddlerStore,title)) {
|
||||||
// Record the old tiddler state
|
// Record the old tiddler state
|
||||||
var updateDescriptor = {
|
var updateDescriptor = {
|
||||||
old: {
|
old: {
|
||||||
@@ -1253,7 +1257,7 @@ $tw.Wiki = function(options) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Delete the tiddler
|
// Delete the tiddler
|
||||||
delete tiddlers[title];
|
delete tiddlerStore[title];
|
||||||
// Delete it from the list of titles
|
// Delete it from the list of titles
|
||||||
if(tiddlerTitles) {
|
if(tiddlerTitles) {
|
||||||
var index = tiddlerTitles.indexOf(title);
|
var index = tiddlerTitles.indexOf(title);
|
||||||
@@ -1281,11 +1285,11 @@ $tw.Wiki = function(options) {
|
|||||||
// Get a tiddler from the store
|
// Get a tiddler from the store
|
||||||
this.getTiddler = function(title) {
|
this.getTiddler = function(title) {
|
||||||
if(title) {
|
if(title) {
|
||||||
var t = tiddlers[title];
|
var t = tiddlerStore[title];
|
||||||
if(t !== undefined) {
|
if(t !== undefined) {
|
||||||
return t;
|
return t;
|
||||||
} else {
|
} else {
|
||||||
var s = shadowTiddlers[title];
|
var s = shadowTiddlerInfo[title];
|
||||||
if(s !== undefined) {
|
if(s !== undefined) {
|
||||||
return s.tiddler;
|
return s.tiddler;
|
||||||
}
|
}
|
||||||
@@ -1305,7 +1309,7 @@ $tw.Wiki = function(options) {
|
|||||||
index,titlesLength,title;
|
index,titlesLength,title;
|
||||||
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
||||||
title = titles[index];
|
title = titles[index];
|
||||||
callback(tiddlers[title],title);
|
callback(tiddlerStore[title],title);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1320,10 +1324,10 @@ $tw.Wiki = function(options) {
|
|||||||
index,titlesLength,title;
|
index,titlesLength,title;
|
||||||
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
||||||
title = titles[index];
|
title = titles[index];
|
||||||
if(tiddlers[title]) {
|
if(tiddlerStore[title]) {
|
||||||
callback(tiddlers[title],title);
|
callback(tiddlerStore[title],title);
|
||||||
} else {
|
} else {
|
||||||
var shadowInfo = shadowTiddlers[title];
|
var shadowInfo = shadowTiddlerInfo[title];
|
||||||
callback(shadowInfo.tiddler,title);
|
callback(shadowInfo.tiddler,title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1335,13 +1339,13 @@ $tw.Wiki = function(options) {
|
|||||||
titles = getTiddlerTitles();
|
titles = getTiddlerTitles();
|
||||||
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
||||||
title = titles[index];
|
title = titles[index];
|
||||||
callback(tiddlers[title],title);
|
callback(tiddlerStore[title],title);
|
||||||
}
|
}
|
||||||
titles = getShadowTiddlerTitles();
|
titles = getShadowTiddlerTitles();
|
||||||
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
||||||
title = titles[index];
|
title = titles[index];
|
||||||
if(!tiddlers[title]) {
|
if(!tiddlerStore[title]) {
|
||||||
var shadowInfo = shadowTiddlers[title];
|
var shadowInfo = shadowTiddlerInfo[title];
|
||||||
callback(shadowInfo.tiddler,title);
|
callback(shadowInfo.tiddler,title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1353,35 +1357,35 @@ $tw.Wiki = function(options) {
|
|||||||
titles = getShadowTiddlerTitles();
|
titles = getShadowTiddlerTitles();
|
||||||
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
||||||
title = titles[index];
|
title = titles[index];
|
||||||
if(tiddlers[title]) {
|
if(tiddlerStore[title]) {
|
||||||
callback(tiddlers[title],title);
|
callback(tiddlerStore[title],title);
|
||||||
} else {
|
} else {
|
||||||
var shadowInfo = shadowTiddlers[title];
|
var shadowInfo = shadowTiddlerInfo[title];
|
||||||
callback(shadowInfo.tiddler,title);
|
callback(shadowInfo.tiddler,title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
titles = getTiddlerTitles();
|
titles = getTiddlerTitles();
|
||||||
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
for(index = 0, titlesLength = titles.length; index < titlesLength; index++) {
|
||||||
title = titles[index];
|
title = titles[index];
|
||||||
if(!shadowTiddlers[title]) {
|
if(!shadowTiddlerInfo[title]) {
|
||||||
callback(tiddlers[title],title);
|
callback(tiddlerStore[title],title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Test for the existence of a tiddler (excludes shadow tiddlers)
|
// Test for the existence of a tiddler (excludes shadow tiddlers)
|
||||||
this.tiddlerExists = function(title) {
|
this.tiddlerExists = function(title) {
|
||||||
return !!$tw.utils.hop(tiddlers,title);
|
return !!$tw.utils.hop(tiddlerStore,title);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Determines if a tiddler is a shadow tiddler, regardless of whether it has been overridden by a real tiddler
|
// Determines if a tiddler is a shadow tiddler, regardless of whether it has been overridden by a real tiddler
|
||||||
this.isShadowTiddler = function(title) {
|
this.isShadowTiddler = function(title) {
|
||||||
return $tw.utils.hop(shadowTiddlers,title);
|
return $tw.utils.hop(shadowTiddlerInfo,title);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getShadowSource = function(title) {
|
this.getShadowSource = function(title) {
|
||||||
if($tw.utils.hop(shadowTiddlers,title)) {
|
if($tw.utils.hop(shadowTiddlerInfo,title)) {
|
||||||
return shadowTiddlers[title].source;
|
return shadowTiddlerInfo[title].source;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
@@ -1389,8 +1393,8 @@ $tw.Wiki = function(options) {
|
|||||||
// Get an array of all the currently recognised plugin types
|
// Get an array of all the currently recognised plugin types
|
||||||
this.getPluginTypes = function() {
|
this.getPluginTypes = function() {
|
||||||
var types = [];
|
var types = [];
|
||||||
$tw.utils.each(pluginTiddlers,function(pluginTiddler) {
|
$tw.utils.each(pluginTiddlersInfo,function(pluginTiddlerFields) {
|
||||||
var pluginType = pluginTiddler.fields["plugin-type"];
|
var pluginType = pluginTiddlerFields["plugin-type"];
|
||||||
if(pluginType && types.indexOf(pluginType) === -1) {
|
if(pluginType && types.indexOf(pluginType) === -1) {
|
||||||
types.push(pluginType);
|
types.push(pluginType);
|
||||||
}
|
}
|
||||||
@@ -1398,22 +1402,45 @@ $tw.Wiki = function(options) {
|
|||||||
return types;
|
return types;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Read plugin info for all plugins, or just an array of titles. Returns the number of plugins updated or deleted
|
// Read plugin contents for all plugins, or just an array of titles. Returns the list of updated plugin titles, the list of deleted plugin titles and
|
||||||
|
// a hashmap of the deleted plugin contents. Clears the pluginContents cache for any plugins that have been deleted
|
||||||
this.readPluginInfo = function(titles) {
|
this.readPluginInfo = function(titles) {
|
||||||
var results = {
|
var self = this,
|
||||||
|
results = {
|
||||||
modifiedPlugins: [],
|
modifiedPlugins: [],
|
||||||
deletedPlugins: []
|
deletedPlugins: [],
|
||||||
|
deletedPluginContents: {}
|
||||||
};
|
};
|
||||||
$tw.utils.each(titles || getTiddlerTitles(),function(title) {
|
$tw.utils.each(titles || getTiddlerTitles(),function(title) {
|
||||||
var tiddler = tiddlers[title];
|
var tiddler = self.getTiddler(title);
|
||||||
|
if(!tiddler) {
|
||||||
|
for(var t=0; t<pluginContents.length; t++) {
|
||||||
|
if(pluginContents[t].subPluginTitles.indexOf(title) !== -1) {
|
||||||
|
tiddler = new $tw.Tiddler(pluginContents[t].fields);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if(tiddler) {
|
if(tiddler) {
|
||||||
if(tiddler.fields.type === "application/json" && tiddler.hasField("plugin-type") && tiddler.fields.text) {
|
if(tiddler.isPlugin() && tiddler.fields.text) {
|
||||||
pluginInfo[tiddler.fields.title] = $tw.utils.parseJSONSafe(tiddler.fields.text);
|
var contents = $tw.utils.parseJSONSafe(tiddler.fields.text).tiddlers;
|
||||||
results.modifiedPlugins.push(tiddler.fields.title);
|
var subPluginTitles = [];
|
||||||
|
// Read any sub-plugins
|
||||||
|
$tw.utils.each(contents,function(subPluginFields,subPluginTitle) {
|
||||||
|
if(subPluginFields["plugin-type"] && subPluginFields["type"] === "application/json") {
|
||||||
|
var contents = $tw.utils.parseJSONSafe(subPluginFields.text).tiddlers
|
||||||
|
pluginContents[subPluginTitle] = {contents: contents,fields: subPluginFields};
|
||||||
|
results.modifiedPlugins.push(subPluginTitle);
|
||||||
|
subPluginTitles.push(subPluginTitle)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
pluginContents[title] = {contents: contents,fields: tiddler.fields,subPluginTitles: subPluginTitles};
|
||||||
|
results.modifiedPlugins.push(title);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(pluginInfo[title]) {
|
if(pluginContents[title]) {
|
||||||
delete pluginInfo[title];
|
results.deletedPluginContents[title] = {tiddlers: pluginContents[title].contents};
|
||||||
|
delete pluginContents[title];
|
||||||
results.deletedPlugins.push(title);
|
results.deletedPlugins.push(title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1421,34 +1448,42 @@ $tw.Wiki = function(options) {
|
|||||||
return results;
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.isSubPlugin = function(title) {
|
||||||
|
for(var t=0; t<pluginContents.length; t++) {
|
||||||
|
if(pluginContents[t].subPluginTitles.indexOf(title) !== -1) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
// Get plugin info for a plugin
|
// Get plugin info for a plugin
|
||||||
this.getPluginInfo = function(title) {
|
this.getPluginInfo = function(title) {
|
||||||
return pluginInfo[title];
|
var pluginContent = pluginContents[title];
|
||||||
|
if(pluginContent) {
|
||||||
|
return {tiddlers: pluginContent.contents, subPluginTitles: pluginContent.subPluginTitles, fields: pluginContent.fields};
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Register the plugin tiddlers of a particular type, or null/undefined for any type, optionally restricting registration to an array of tiddler titles. Return the array of titles affected
|
// Register the plugin tiddlers of a particular type, or null/undefined for any type, optionally restricting registration to an array of tiddler titles. Return the array of titles affected
|
||||||
this.registerPluginTiddlers = function(pluginType,titles) {
|
this.registerPluginTiddlers = function(pluginType,titles) {
|
||||||
var self = this,
|
var self = this,
|
||||||
registeredTitles = [],
|
registeredTitles = [];
|
||||||
checkTiddler = function(tiddler,title) {
|
$tw.utils.each(pluginContents,function(pluginContent,pluginTitle) {
|
||||||
if(tiddler && tiddler.fields.type === "application/json" && tiddler.fields["plugin-type"] && (!pluginType || tiddler.fields["plugin-type"] === pluginType)) {
|
var pluginFields = pluginContent.fields;
|
||||||
var disablingTiddler = self.getTiddler("$:/config/Plugins/Disabled/" + title);
|
if(!titles || titles.indexOf(pluginTitle) !== -1) {
|
||||||
if(title === "$:/core" || !disablingTiddler || (disablingTiddler.fields.text || "").trim() !== "yes") {
|
if(!pluginType || pluginFields["plugin-type"] === pluginType) {
|
||||||
self.unregisterPluginTiddlers(null,[title]); // Unregister the plugin if it's already registered
|
var disablingTiddler = self.getTiddler("$:/config/Plugins/Disabled/" + pluginTitle);
|
||||||
pluginTiddlers.push(tiddler);
|
if(pluginTitle === "$:/core" || !disablingTiddler || (disablingTiddler.fields.text || "").trim() !== "yes") {
|
||||||
registeredTitles.push(tiddler.fields.title);
|
self.unregisterPluginTiddlers(null,[pluginTitle]); // Unregister the plugin if it's already registered
|
||||||
|
pluginTiddlersInfo.push(pluginFields);
|
||||||
|
registeredTitles.push(pluginTitle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
if(titles) {
|
});
|
||||||
$tw.utils.each(titles,function(title) {
|
|
||||||
checkTiddler(self.getTiddler(title),title);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
this.each(function(tiddler,title) {
|
|
||||||
checkTiddler(tiddler,title);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return registeredTitles;
|
return registeredTitles;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1457,11 +1492,11 @@ $tw.Wiki = function(options) {
|
|||||||
var self = this,
|
var self = this,
|
||||||
unregisteredTitles = [];
|
unregisteredTitles = [];
|
||||||
// Remove any previous registered plugins of this type
|
// Remove any previous registered plugins of this type
|
||||||
for(var t=pluginTiddlers.length-1; t>=0; t--) {
|
for(var t=pluginTiddlersInfo.length-1; t>=0; t--) {
|
||||||
var tiddler = pluginTiddlers[t];
|
var pluginFields = pluginTiddlersInfo[t];
|
||||||
if(tiddler.fields["plugin-type"] && (!pluginType || tiddler.fields["plugin-type"] === pluginType) && (!titles || titles.indexOf(tiddler.fields.title) !== -1)) {
|
if(pluginFields["plugin-type"] && (!pluginType || pluginFields["plugin-type"] === pluginType) && (!titles || titles.indexOf(pluginFields.title) !== -1)) {
|
||||||
unregisteredTitles.push(tiddler.fields.title);
|
unregisteredTitles.push(pluginFields.title);
|
||||||
pluginTiddlers.splice(t,1);
|
pluginTiddlersInfo.splice(t,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return unregisteredTitles;
|
return unregisteredTitles;
|
||||||
@@ -1471,36 +1506,33 @@ $tw.Wiki = function(options) {
|
|||||||
this.unpackPluginTiddlers = function() {
|
this.unpackPluginTiddlers = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
// Sort the plugin titles by the `plugin-priority` field, if this field is missing, default to 1
|
// Sort the plugin titles by the `plugin-priority` field, if this field is missing, default to 1
|
||||||
pluginTiddlers.sort(function(a, b) {
|
pluginTiddlersInfo.sort(function(a, b) {
|
||||||
var priorityA = "plugin-priority" in a.fields ? a.fields["plugin-priority"] : 1;
|
var priorityA = "plugin-priority" in a ? a["plugin-priority"] : 1,
|
||||||
var priorityB = "plugin-priority" in b.fields ? b.fields["plugin-priority"] : 1;
|
priorityB = "plugin-priority" in b ? b["plugin-priority"] : 1;
|
||||||
if (priorityA !== priorityB) {
|
if (priorityA !== priorityB) {
|
||||||
return priorityA - priorityB;
|
return priorityA - priorityB;
|
||||||
} else if (a.fields.title < b.fields.title) {
|
} else if (a.title < b.title) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (a.fields.title === b.fields.title) {
|
} else if (a.title === b.title) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
return +1;
|
return +1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Now go through the plugins in ascending order and assign the shadows
|
// Now go through the plugins in ascending order and assign the shadows
|
||||||
shadowTiddlers = Object.create(null);
|
shadowTiddlerInfo = Object.create(null);
|
||||||
$tw.utils.each(pluginTiddlers,function(tiddler) {
|
$tw.utils.each(pluginTiddlersInfo,function(tiddlerFields) {
|
||||||
|
var contents = pluginContents[tiddlerFields.title].contents;
|
||||||
// Extract the constituent tiddlers
|
// Extract the constituent tiddlers
|
||||||
if($tw.utils.hop(pluginInfo,tiddler.fields.title)) {
|
$tw.utils.each(contents,function(constituentTiddler,constituentTitle) {
|
||||||
$tw.utils.each(pluginInfo[tiddler.fields.title].tiddlers,function(constituentTiddler,constituentTitle) {
|
// Save the tiddler object
|
||||||
// Save the tiddler object
|
shadowTiddlerInfo[constituentTitle] = {
|
||||||
if(constituentTitle) {
|
source: tiddlerFields.title,
|
||||||
shadowTiddlers[constituentTitle] = {
|
tiddler: new $tw.Tiddler(constituentTiddler,{title: constituentTitle})
|
||||||
source: tiddler.fields.title,
|
};
|
||||||
tiddler: new $tw.Tiddler(constituentTiddler,{title: constituentTitle})
|
});
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
shadowTiddlerTitles = null;
|
shadowTiddlerTitles = null; // Force regeneration of the shadow tiddler titles list
|
||||||
this.clearCache(null);
|
this.clearCache(null);
|
||||||
this.clearGlobalCache();
|
this.clearGlobalCache();
|
||||||
$tw.utils.each(indexers,function(indexer) {
|
$tw.utils.each(indexers,function(indexer) {
|
||||||
@@ -1944,7 +1976,7 @@ $tw.boot.excludeRegExp = /^\.DS_Store$|^.*\.meta$|^\..*\.swp$|^\._.*$|^\.git$|^\
|
|||||||
/*
|
/*
|
||||||
Load all the tiddlers recursively from a directory, including honouring `tiddlywiki.files` files for drawing in external files. Returns an array of {filepath:,type:,tiddlers: [{..fields...}],hasMetaFile:}. Note that no file information is returned for externally loaded tiddlers, just the `tiddlers` property.
|
Load all the tiddlers recursively from a directory, including honouring `tiddlywiki.files` files for drawing in external files. Returns an array of {filepath:,type:,tiddlers: [{..fields...}],hasMetaFile:}. Note that no file information is returned for externally loaded tiddlers, just the `tiddlers` property.
|
||||||
*/
|
*/
|
||||||
$tw.loadTiddlersFromPath = function(filepath,excludeRegExp) {
|
$tw.loadTiddlersFromPath = function(filepath,excludeRegExp,excludePluginInfo) {
|
||||||
excludeRegExp = excludeRegExp || $tw.boot.excludeRegExp;
|
excludeRegExp = excludeRegExp || $tw.boot.excludeRegExp;
|
||||||
var tiddlers = [];
|
var tiddlers = [];
|
||||||
if(fs.existsSync(filepath)) {
|
if(fs.existsSync(filepath)) {
|
||||||
@@ -1954,11 +1986,17 @@ $tw.loadTiddlersFromPath = function(filepath,excludeRegExp) {
|
|||||||
// Look for a tiddlywiki.files file
|
// Look for a tiddlywiki.files file
|
||||||
if(files.indexOf("tiddlywiki.files") !== -1) {
|
if(files.indexOf("tiddlywiki.files") !== -1) {
|
||||||
Array.prototype.push.apply(tiddlers,$tw.loadTiddlersFromSpecification(filepath,excludeRegExp));
|
Array.prototype.push.apply(tiddlers,$tw.loadTiddlersFromSpecification(filepath,excludeRegExp));
|
||||||
|
} else if(files.indexOf("plugin.info") !== -1 && !excludePluginInfo) {
|
||||||
|
// Load sub-plugin
|
||||||
|
var tiddler = $tw.loadPluginFolder(filepath);
|
||||||
|
if(tiddler) {
|
||||||
|
tiddlers.push({tiddlers: [tiddler]});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// If not, read all the files in the directory
|
// If not, read all the files in the directory
|
||||||
$tw.utils.each(files,function(file) {
|
$tw.utils.each(files,function(file) {
|
||||||
if(!excludeRegExp.test(file) && file !== "plugin.info") {
|
if(!excludeRegExp.test(file) && file !== "plugin.info") {
|
||||||
tiddlers.push.apply(tiddlers,$tw.loadTiddlersFromPath(filepath + path.sep + file,excludeRegExp));
|
tiddlers.push.apply(tiddlers,$tw.loadTiddlersFromPath(path.join(filepath,file),excludeRegExp));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -2000,7 +2038,7 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) {
|
|||||||
var value = tiddler[name];
|
var value = tiddler[name];
|
||||||
switch(fieldInfo.source) {
|
switch(fieldInfo.source) {
|
||||||
case "subdirectories":
|
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;
|
break;
|
||||||
case "filepath":
|
case "filepath":
|
||||||
value = path.relative(rootPath, filename).split(path.sep).join('/');
|
value = path.relative(rootPath, filename).split(path.sep).join('/');
|
||||||
@@ -2021,10 +2059,10 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) {
|
|||||||
value = path.extname(filename);
|
value = path.extname(filename);
|
||||||
break;
|
break;
|
||||||
case "created":
|
case "created":
|
||||||
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).birthtime));
|
value = new Date(fs.statSync(pathname).birthtime);
|
||||||
break;
|
break;
|
||||||
case "modified":
|
case "modified":
|
||||||
value = $tw.utils.stringifyDate(new Date(fs.statSync(pathname).mtime));
|
value = new Date(fs.statSync(pathname).mtime);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(fieldInfo.prefix) {
|
if(fieldInfo.prefix) {
|
||||||
@@ -2105,54 +2143,69 @@ Load the tiddlers from a plugin folder, and package them up into a proper JSON p
|
|||||||
*/
|
*/
|
||||||
$tw.loadPluginFolder = function(filepath,excludeRegExp) {
|
$tw.loadPluginFolder = function(filepath,excludeRegExp) {
|
||||||
excludeRegExp = excludeRegExp || $tw.boot.excludeRegExp;
|
excludeRegExp = excludeRegExp || $tw.boot.excludeRegExp;
|
||||||
var infoPath = filepath + path.sep + "plugin.info";
|
function readPluginFields(filepath) {
|
||||||
if(fs.existsSync(filepath) && fs.statSync(filepath).isDirectory()) {
|
if(!(fs.existsSync(filepath) && fs.statSync(filepath).isDirectory())) {
|
||||||
// Read the plugin information
|
|
||||||
if(!fs.existsSync(infoPath) || !fs.statSync(infoPath).isFile()) {
|
|
||||||
console.log("Warning: missing plugin.info file in " + filepath);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var pluginInfo = $tw.utils.parseJSONSafe(fs.readFileSync(infoPath,"utf8"),function() {return null;});
|
var infoPath = path.join(filepath,"plugin.info");
|
||||||
if(!pluginInfo) {
|
// Read the plugin information file
|
||||||
console.log("warning: invalid JSON in plugin.info file at " + infoPath);
|
if(!fs.existsSync(infoPath) || !fs.statSync(infoPath).isFile()) {
|
||||||
pluginInfo = {};
|
return null;
|
||||||
}
|
}
|
||||||
// Read the plugin files
|
var pluginFields = $tw.utils.parseJSONSafe(fs.readFileSync(infoPath,"utf8"),{});
|
||||||
var pluginFiles = $tw.loadTiddlersFromPath(filepath,excludeRegExp);
|
if(!(pluginFields.title && pluginFields.name)) {
|
||||||
// Save the plugin tiddlers into the plugin info
|
return null;
|
||||||
pluginInfo.tiddlers = pluginInfo.tiddlers || Object.create(null);
|
}
|
||||||
|
// Give the plugin the same version number as the core if it doesn't have one
|
||||||
|
if(!("version" in pluginFields)) {
|
||||||
|
pluginFields.version = $tw.packageInfo.version;
|
||||||
|
}
|
||||||
|
// Use "plugin" as the plugin-type if we don't have one
|
||||||
|
if(!("plugin-type" in pluginFields)) {
|
||||||
|
pluginFields["plugin-type"] = "plugin";
|
||||||
|
}
|
||||||
|
// Set the dependents and type
|
||||||
|
pluginFields.dependents = pluginFields.dependents || [];
|
||||||
|
pluginFields.type = "application/json";
|
||||||
|
// Deserialise array fields (currently required for the dependents field)
|
||||||
|
for(var field in pluginFields) {
|
||||||
|
if($tw.utils.isArray(pluginFields[field])) {
|
||||||
|
pluginFields[field] = $tw.utils.stringifyList(pluginFields[field]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pluginFields;
|
||||||
|
}
|
||||||
|
function readPluginTiddlers(tiddlersPath) {
|
||||||
|
var pluginFiles = $tw.loadTiddlersFromPath(tiddlersPath,excludeRegExp,true),
|
||||||
|
pluginTiddlers = {};
|
||||||
|
// Save the plugin tiddlers into the plugin payload
|
||||||
for(var f=0; f<pluginFiles.length; f++) {
|
for(var f=0; f<pluginFiles.length; f++) {
|
||||||
var tiddlers = pluginFiles[f].tiddlers;
|
var tiddlers = pluginFiles[f].tiddlers;
|
||||||
|
if(!tiddlers) {
|
||||||
|
console.log(`Gosh ${JSON.stringify(pluginFiles[f])}`)
|
||||||
|
}
|
||||||
for(var t=0; t<tiddlers.length; t++) {
|
for(var t=0; t<tiddlers.length; t++) {
|
||||||
var tiddler= tiddlers[t];
|
var tiddler= tiddlers[t];
|
||||||
if(tiddler.title) {
|
if(tiddler.title) {
|
||||||
pluginInfo.tiddlers[tiddler.title] = tiddler;
|
pluginTiddlers[tiddler.title] = tiddler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Give the plugin the same version number as the core if it doesn't have one
|
return pluginTiddlers;
|
||||||
if(!("version" in pluginInfo)) {
|
|
||||||
pluginInfo.version = $tw.packageInfo.version;
|
|
||||||
}
|
|
||||||
// Use "plugin" as the plugin-type if we don't have one
|
|
||||||
if(!("plugin-type" in pluginInfo)) {
|
|
||||||
pluginInfo["plugin-type"] = "plugin";
|
|
||||||
}
|
|
||||||
pluginInfo.dependents = pluginInfo.dependents || [];
|
|
||||||
pluginInfo.type = "application/json";
|
|
||||||
// Set plugin text
|
|
||||||
pluginInfo.text = JSON.stringify({tiddlers: pluginInfo.tiddlers});
|
|
||||||
delete pluginInfo.tiddlers;
|
|
||||||
// Deserialise array fields (currently required for the dependents field)
|
|
||||||
for(var field in pluginInfo) {
|
|
||||||
if($tw.utils.isArray(pluginInfo[field])) {
|
|
||||||
pluginInfo[field] = $tw.utils.stringifyList(pluginInfo[field]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return pluginInfo;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
// Get the primary plugin fields
|
||||||
|
var pluginFields = readPluginFields(filepath);
|
||||||
|
if(!pluginFields) {
|
||||||
|
console.log("Warning: missing or invalid plugin.info file in " + filepath);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// The payload to be stored in the plugin text field in JSON
|
||||||
|
var pluginPayload = {tiddlers: {}};
|
||||||
|
// Get the constituent tiddlers of the plugin
|
||||||
|
pluginPayload.tiddlers = readPluginTiddlers(filepath);
|
||||||
|
// Set plugin text
|
||||||
|
pluginFields.text = JSON.stringify(pluginPayload);
|
||||||
|
return pluginFields;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -3,5 +3,8 @@ name: en-GB
|
|||||||
description: English (British)
|
description: English (British)
|
||||||
author: JeremyRuston
|
author: JeremyRuston
|
||||||
core-version: >=5.0.0"
|
core-version: >=5.0.0"
|
||||||
|
plugin-type: language
|
||||||
|
type: application/json
|
||||||
|
hidden: yes
|
||||||
|
|
||||||
Stub pseudo-plugin for the default language
|
{tidddlers:{}}
|
||||||
@@ -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/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/Advanced/Heading: Advanced Settings
|
||||||
Saving/TiddlySpot/BackupDir: Backup Directory
|
Saving/TiddlySpot/BackupDir: Backup Directory
|
||||||
Saving/TiddlySpot/ControlPanel: ~TiddlyHost Control Panel
|
Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel
|
||||||
Saving/TiddlySpot/Backups: Backups
|
Saving/TiddlySpot/Backups: Backups
|
||||||
Saving/TiddlySpot/Caption: ~TiddlyHost Saver
|
Saving/TiddlySpot/Caption: ~TiddlySpot 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/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/Filename: Upload Filename
|
||||||
Saving/TiddlySpot/Heading: ~TiddlyHost
|
Saving/TiddlySpot/Heading: ~TiddlySpot
|
||||||
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/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/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/ServerURL: Server URL
|
||||||
Saving/TiddlySpot/UploadDir: Upload Directory
|
Saving/TiddlySpot/UploadDir: Upload Directory
|
||||||
Saving/TiddlySpot/UserName: Wiki Name
|
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/DefaultSidebarTab/Hint: Specify which sidebar tab is displayed by default
|
||||||
Settings/DefaultMoreSidebarTab/Caption: Default More Sidebar Tab
|
Settings/DefaultMoreSidebarTab/Caption: Default More Sidebar Tab
|
||||||
Settings/DefaultMoreSidebarTab/Hint: Specify which More sidebar tab is displayed by default
|
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/Caption: Tiddler Opening Behaviour
|
||||||
Settings/LinkToBehaviour/InsideRiver/Hint: Navigation from //within// the story river
|
Settings/LinkToBehaviour/InsideRiver/Hint: Navigation from //within// the story river
|
||||||
Settings/LinkToBehaviour/OutsideRiver/Hint: Navigation from //outside// the story river
|
Settings/LinkToBehaviour/OutsideRiver/Hint: Navigation from //outside// the story river
|
||||||
@@ -252,6 +251,3 @@ ViewTemplateSubtitle/Caption: View Template Subtitle
|
|||||||
ViewTemplateSubtitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the subtitle of a tiddler.
|
ViewTemplateSubtitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the subtitle of a tiddler.
|
||||||
ViewTemplateTags/Caption: View Template Tags
|
ViewTemplateTags/Caption: View Template Tags
|
||||||
ViewTemplateTags/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the tags area of a tiddler.
|
ViewTemplateTags/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the tags area of a tiddler.
|
||||||
WikiInformation/Caption: Wiki Information
|
|
||||||
WikiInformation/Hint: This page summarises high level information about the configuration of this ~TiddlyWiki. It is designed to enable users to quickly share relevant aspects of the configuration of their ~TiddlyWiki with others, for example when seeking help in one of the forums. No private or personal information is included, and nothing is shared without being explicitly copied and pasted elsewhere
|
|
||||||
WikiInformation/Drag/Caption: Drag this link to copy this tool to another wiki
|
|
||||||
@@ -4,12 +4,12 @@ _canonical_uri: The full URI of an external image tiddler
|
|||||||
author: Name of the author of a plugin
|
author: Name of the author of a plugin
|
||||||
bag: The name of the bag from which a tiddler came
|
bag: The name of the bag from which a tiddler came
|
||||||
caption: The text to be displayed on a tab or button
|
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''
|
code-body: The view template will display the tiddler as code if set to ''yes''
|
||||||
color: The CSS color value associated with a tiddler
|
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
|
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
|
created: The date a tiddler was created
|
||||||
creator: The name of the person who created a tiddler
|
creator: The name of the person who created a tiddler
|
||||||
dependents: For a plugin, lists the dependent plugin titles
|
dependents: For a plugin, lists the dependent plugin titles
|
||||||
|
|||||||
@@ -248,7 +248,8 @@ exports.compileFilter = function(filterString) {
|
|||||||
// Create a function for the chain of operators in the operation
|
// Create a function for the chain of operators in the operation
|
||||||
var operationSubFunction = function(source,widget) {
|
var operationSubFunction = function(source,widget) {
|
||||||
var accumulator = source,
|
var accumulator = source,
|
||||||
results = [];
|
results = [],
|
||||||
|
currTiddlerTitle = widget && widget.getVariable("currentTiddler");
|
||||||
$tw.utils.each(operation.operators,function(operator) {
|
$tw.utils.each(operation.operators,function(operator) {
|
||||||
var operands = [],
|
var operands = [],
|
||||||
operatorFunction;
|
operatorFunction;
|
||||||
@@ -264,7 +265,6 @@ exports.compileFilter = function(filterString) {
|
|||||||
}
|
}
|
||||||
$tw.utils.each(operator.operands,function(operand) {
|
$tw.utils.each(operator.operands,function(operand) {
|
||||||
if(operand.indirect) {
|
if(operand.indirect) {
|
||||||
var currTiddlerTitle = widget && widget.getVariable("currentTiddler");
|
|
||||||
operand.value = self.getTextReference(operand.text,"",currTiddlerTitle);
|
operand.value = self.getTextReference(operand.text,"",currTiddlerTitle);
|
||||||
} else if(operand.variable) {
|
} else if(operand.variable) {
|
||||||
var varTree = $tw.utils.parseFilterVariable(operand.text);
|
var varTree = $tw.utils.parseFilterVariable(operand.text);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ module-type: filteroperator
|
|||||||
Filter operator for returning all the backtranscludes from a tiddler
|
Filter operator for returning all the backtranscludes from a tiddler
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -18,3 +19,5 @@ exports.backtranscludes = function(source,operator,options) {
|
|||||||
});
|
});
|
||||||
return results.makeTiddlerIterator(options.wiki);
|
return results.makeTiddlerIterator(options.wiki);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/*\
|
||||||
|
title: $:/core/modules/filters/is/plugin.js
|
||||||
|
type: application/javascript
|
||||||
|
module-type: isfilteroperator
|
||||||
|
|
||||||
|
Filter function for [is[plugin]]
|
||||||
|
|
||||||
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/*
|
||||||
|
Export our filter function
|
||||||
|
*/
|
||||||
|
exports.plugin = function(source,prefix,options) {
|
||||||
|
var results = [];
|
||||||
|
if(prefix === "!") {
|
||||||
|
source(function(tiddler,title) {
|
||||||
|
if(!tiddler.isPlugin()) {
|
||||||
|
results.push(title);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
source(function(tiddler,title) {
|
||||||
|
if(tiddler.isPlugin()) {
|
||||||
|
results.push(title);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
@@ -6,6 +6,7 @@ module-type: filteroperator
|
|||||||
Filter operator for returning all the transcludes from a tiddler
|
Filter operator for returning all the transcludes from a tiddler
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -18,3 +19,5 @@ exports.transcludes = function(source,operator,options) {
|
|||||||
});
|
});
|
||||||
return results.makeTiddlerIterator(options.wiki);
|
return results.makeTiddlerIterator(options.wiki);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ This is a <%if [{something}] %>Elephant<%elseif [{else}] %>Pelican<%else%>Crocod
|
|||||||
```
|
```
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
exports.name = "conditional";
|
exports.name = "conditional";
|
||||||
@@ -112,3 +113,5 @@ exports.parseIfClause = function(filterCondition) {
|
|||||||
// Return the parse tree node
|
// Return the parse tree node
|
||||||
return [listWidget];
|
return [listWidget];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ exports.parse = function() {
|
|||||||
var reEnd;
|
var reEnd;
|
||||||
if(this.match[5]) {
|
if(this.match[5]) {
|
||||||
// If so, it is a multiline definition and the end of the body is marked with \end
|
// 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 {
|
} else {
|
||||||
// Otherwise, the end of the definition is marked by the end of the line
|
// Otherwise, the end of the definition is marked by the end of the line
|
||||||
reEnd = /($|\r?\n)/mg;
|
reEnd = /($|\r?\n)/mg;
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ exports.parse = function() {
|
|||||||
var reEnd;
|
var reEnd;
|
||||||
if(this.match[3]) {
|
if(this.match[3]) {
|
||||||
// If so, it is a multiline definition and the end of the body is marked with \end
|
// 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 {
|
} else {
|
||||||
// Otherwise, the end of the definition is marked by the end of the line
|
// Otherwise, the end of the definition is marked by the end of the line
|
||||||
reEnd = /($|\r?\n)/mg;
|
reEnd = /($|\r?\n)/mg;
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ function PluginSwitcher(options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PluginSwitcher.prototype.switchPlugins = function() {
|
PluginSwitcher.prototype.switchPlugins = function() {
|
||||||
|
var self = this;
|
||||||
// Get the name of the current theme
|
// Get the name of the current theme
|
||||||
var selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);
|
var selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);
|
||||||
// If it doesn't exist, then fallback to one of the default themes
|
// If it doesn't exist, then fallback to one of the default themes
|
||||||
@@ -49,22 +50,51 @@ PluginSwitcher.prototype.switchPlugins = function() {
|
|||||||
var tiddler = self.wiki.getTiddler(title);
|
var tiddler = self.wiki.getTiddler(title);
|
||||||
if(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {
|
if(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {
|
||||||
plugins.push(title);
|
plugins.push(title);
|
||||||
var pluginInfo = $tw.utils.parseJSONSafe(self.wiki.getTiddlerText(title)),
|
var dependents = $tw.utils.parseStringArray(tiddler.fields.dependents || "");
|
||||||
dependents = $tw.utils.parseStringArray(tiddler.fields.dependents || "");
|
|
||||||
$tw.utils.each(dependents,function(title) {
|
$tw.utils.each(dependents,function(title) {
|
||||||
accumulatePlugin(title);
|
accumulatePlugin(title);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
accumulatePlugin(selectedPluginTitle);
|
accumulatePlugin(selectedPluginTitle);
|
||||||
|
var selectedPluginTiddler = this.wiki.getTiddler(selectedPluginTitle);
|
||||||
|
// Accumulate any other plugins of the same type with the same name
|
||||||
|
this.wiki.eachTiddlerPlusShadows(function(tiddler,title) {
|
||||||
|
if(tiddler.isPlugin() && tiddler.fields["plugin-type"] === self.pluginType && tiddler.fields.name === selectedPluginTiddler.fields.name) {
|
||||||
|
accumulatePlugin(title);
|
||||||
|
}
|
||||||
|
});
|
||||||
// Read the plugin info for the incoming plugins
|
// Read the plugin info for the incoming plugins
|
||||||
var changes = $tw.wiki.readPluginInfo(plugins);
|
var changedPluginInfo = this.wiki.readPluginInfo(plugins);
|
||||||
// Unregister any existing theme tiddlers
|
// Collect the shadow tiddlers of any deleted plugins
|
||||||
var unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);
|
var changedShadowTiddlers = {};
|
||||||
// Register any new theme tiddlers
|
$tw.utils.each(changedPluginInfo.deletedPlugins,function(pluginTitle) {
|
||||||
var registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);
|
var contents = changedPluginInfo.deletedPluginContents[pluginTitle];
|
||||||
// Unpack the current theme tiddlers
|
if(contents && contents.tiddlers) {
|
||||||
$tw.wiki.unpackPluginTiddlers();
|
$tw.utils.each(Object.keys(contents.tiddlers),function(title) {
|
||||||
|
changedShadowTiddlers[title] = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Collect the shadow tiddlers of any modified plugins
|
||||||
|
$tw.utils.each(changedPluginInfo.modifiedPlugins,function(pluginTitle) {
|
||||||
|
var pluginInfo = self.wiki.getPluginInfo(pluginTitle);
|
||||||
|
if(pluginInfo && pluginInfo.tiddlers) {
|
||||||
|
$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {
|
||||||
|
changedShadowTiddlers[title] = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Unregister any existing theme/language tiddlers
|
||||||
|
var unregisteredTiddlers = this.wiki.unregisterPluginTiddlers(this.pluginType);
|
||||||
|
// Register any new theme/language tiddlers
|
||||||
|
var registeredTiddlers = this.wiki.registerPluginTiddlers(this.pluginType,plugins);
|
||||||
|
// Unpack the current theme/language tiddlers
|
||||||
|
this.wiki.unpackPluginTiddlers();
|
||||||
|
// Queue change events for the changed shadow tiddlers
|
||||||
|
$tw.utils.each(changedShadowTiddlers,function(status,title) {
|
||||||
|
self.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title], true);
|
||||||
|
});
|
||||||
// Call the switch handler
|
// Call the switch handler
|
||||||
if(this.onSwitch) {
|
if(this.onSwitch) {
|
||||||
this.onSwitch(plugins);
|
this.onSwitch(plugins);
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ UploadSaver.prototype.save = function(text,method,callback) {
|
|||||||
}
|
}
|
||||||
// Construct the url if not provided
|
// Construct the url if not provided
|
||||||
if(!url) {
|
if(!url) {
|
||||||
url = "http://" + username + ".tiddlyhost.com/";
|
url = "http://" + username + ".tiddlyspot.com/store.cgi";
|
||||||
}
|
}
|
||||||
// Assemble the header
|
// Assemble the header
|
||||||
var boundary = "---------------------------" + "AaB03x";
|
var boundary = "---------------------------" + "AaB03x";
|
||||||
|
|||||||
@@ -15,67 +15,7 @@ exports.after = ["load-modules"];
|
|||||||
exports.before = ["startup"];
|
exports.before = ["startup"];
|
||||||
exports.synchronous = true;
|
exports.synchronous = true;
|
||||||
|
|
||||||
var TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = "$:/status/RequireReloadDueToPluginChange";
|
|
||||||
|
|
||||||
var PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = "$:/config/RegisterPluginType/";
|
|
||||||
|
|
||||||
exports.startup = function() {
|
exports.startup = function() {
|
||||||
$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: "no"});
|
$tw.utils.installPluginChangeHandler($tw.wiki);
|
||||||
$tw.wiki.addEventListener("change",function(changes) {
|
|
||||||
// Work out which of the changed tiddlers are plugins that we need to reregister
|
|
||||||
var changesToProcess = [],
|
|
||||||
requireReloadDueToPluginChange = false;
|
|
||||||
$tw.utils.each(Object.keys(changes),function(title) {
|
|
||||||
var tiddler = $tw.wiki.getTiddler(title),
|
|
||||||
requiresReload = $tw.wiki.doesPluginRequireReload(title);
|
|
||||||
if(requiresReload) {
|
|
||||||
requireReloadDueToPluginChange = true;
|
|
||||||
} else if(tiddler) {
|
|
||||||
var pluginType = tiddler.fields["plugin-type"];
|
|
||||||
if($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields["plugin-type"] || ""),"no") === "yes") {
|
|
||||||
changesToProcess.push(title);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// Issue warning if any of the tiddlers require a reload
|
|
||||||
if(requireReloadDueToPluginChange) {
|
|
||||||
$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: "yes"});
|
|
||||||
}
|
|
||||||
// Read or delete the plugin info of the changed tiddlers
|
|
||||||
if(changesToProcess.length > 0) {
|
|
||||||
var changes = $tw.wiki.readPluginInfo(changesToProcess);
|
|
||||||
if(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {
|
|
||||||
var changedShadowTiddlers = {};
|
|
||||||
// Collect the shadow tiddlers of any deleted plugins
|
|
||||||
$tw.utils.each(changes.deletedPlugins,function(pluginTitle) {
|
|
||||||
var pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);
|
|
||||||
if(pluginInfo) {
|
|
||||||
$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {
|
|
||||||
changedShadowTiddlers[title] = true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// Collect the shadow tiddlers of any modified plugins
|
|
||||||
$tw.utils.each(changes.modifiedPlugins,function(pluginTitle) {
|
|
||||||
var pluginInfo = $tw.wiki.getPluginInfo(pluginTitle);
|
|
||||||
if(pluginInfo && pluginInfo.tiddlers) {
|
|
||||||
$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {
|
|
||||||
changedShadowTiddlers[title] = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// (Re-)register any modified plugins
|
|
||||||
$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);
|
|
||||||
// Unregister any deleted plugins
|
|
||||||
$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);
|
|
||||||
// Unpack the shadow tiddlers
|
|
||||||
$tw.wiki.unpackPluginTiddlers();
|
|
||||||
// Queue change events for the changed shadow tiddlers
|
|
||||||
$tw.utils.each(Object.keys(changedShadowTiddlers),function(title) {
|
|
||||||
$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title], true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -74,8 +74,9 @@ exports.startup = function() {
|
|||||||
$tw.rootWidget.addEventListener("tm-copy-to-clipboard",function(event) {
|
$tw.rootWidget.addEventListener("tm-copy-to-clipboard",function(event) {
|
||||||
$tw.utils.copyToClipboard(event.param,{
|
$tw.utils.copyToClipboard(event.param,{
|
||||||
successNotification: event.paramObject && event.paramObject.successNotification,
|
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
|
// Install the tm-focus-selector message
|
||||||
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {
|
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {
|
||||||
|
|||||||
@@ -13,10 +13,6 @@ exports.hasTag = function(tag) {
|
|||||||
return this.fields.tags && this.fields.tags.indexOf(tag) !== -1;
|
return this.fields.tags && this.fields.tags.indexOf(tag) !== -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.isPlugin = function() {
|
|
||||||
return this.fields.type === "application/json" && this.hasField("plugin-type");
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.isDraft = function() {
|
exports.isDraft = function() {
|
||||||
return this.hasField("draft.of");
|
return this.hasField("draft.of");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -265,9 +265,10 @@ exports.copyStyles = function(srcDomNode,dstDomNode) {
|
|||||||
/*
|
/*
|
||||||
Copy plain text to the clipboard on browsers that support it
|
Copy plain text to the clipboard on browsers that support it
|
||||||
*/
|
*/
|
||||||
exports.copyToClipboard = function(text,options) {
|
exports.copyToClipboard = function(text,options,type) {
|
||||||
options = options || {};
|
var text = text || "";
|
||||||
text = text || "";
|
var options = options || {};
|
||||||
|
var type = type || "text/plain";
|
||||||
var textArea = document.createElement("textarea");
|
var textArea = document.createElement("textarea");
|
||||||
textArea.style.position = "fixed";
|
textArea.style.position = "fixed";
|
||||||
textArea.style.top = 0;
|
textArea.style.top = 0;
|
||||||
@@ -280,10 +281,16 @@ exports.copyToClipboard = function(text,options) {
|
|||||||
textArea.style.outline = "none";
|
textArea.style.outline = "none";
|
||||||
textArea.style.boxShadow = "none";
|
textArea.style.boxShadow = "none";
|
||||||
textArea.style.background = "transparent";
|
textArea.style.background = "transparent";
|
||||||
textArea.value = text;
|
|
||||||
document.body.appendChild(textArea);
|
document.body.appendChild(textArea);
|
||||||
textArea.select();
|
textArea.select();
|
||||||
textArea.setSelectionRange(0,text.length);
|
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;
|
var succeeded = false;
|
||||||
try {
|
try {
|
||||||
succeeded = document.execCommand("copy");
|
succeeded = document.execCommand("copy");
|
||||||
|
|||||||
@@ -143,7 +143,6 @@ Modal.prototype.display = function(title,options) {
|
|||||||
link.setAttribute("href",tiddler.fields.help);
|
link.setAttribute("href",tiddler.fields.help);
|
||||||
link.setAttribute("target","_blank");
|
link.setAttribute("target","_blank");
|
||||||
link.setAttribute("rel","noopener noreferrer");
|
link.setAttribute("rel","noopener noreferrer");
|
||||||
link.setAttribute("class","tc-tiddlylink-external");
|
|
||||||
link.appendChild(this.srcDocument.createTextNode("Help"));
|
link.appendChild(this.srcDocument.createTextNode("Help"));
|
||||||
modalFooterHelp.appendChild(link);
|
modalFooterHelp.appendChild(link);
|
||||||
modalFooterHelp.style.float = "left";
|
modalFooterHelp.style.float = "left";
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ module-type: utils
|
|||||||
Custom errors for TiddlyWiki.
|
Custom errors for TiddlyWiki.
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
function TranscludeRecursionError() {
|
function TranscludeRecursionError() {
|
||||||
Error.apply(this,arguments);
|
Error.apply(this,arguments);
|
||||||
this.signatures = Object.create(null);
|
this.signatures = Object.create(null);
|
||||||
@@ -17,3 +19,5 @@ TranscludeRecursionError.MAX_WIDGET_TREE_DEPTH = 1000;
|
|||||||
TranscludeRecursionError.prototype = Object.create(Error);
|
TranscludeRecursionError.prototype = Object.create(Error);
|
||||||
|
|
||||||
exports.TranscludeRecursionError = TranscludeRecursionError;
|
exports.TranscludeRecursionError = TranscludeRecursionError;
|
||||||
|
|
||||||
|
})();
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
/*\
|
||||||
|
title: $:/core/modules/utils/plugins.js
|
||||||
|
type: application/javascript
|
||||||
|
module-type: utils
|
||||||
|
|
||||||
|
Plugin utilities
|
||||||
|
|
||||||
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = "$:/status/RequireReloadDueToPluginChange";
|
||||||
|
|
||||||
|
var PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = "$:/config/RegisterPluginType/";
|
||||||
|
|
||||||
|
exports.installPluginChangeHandler = function(wiki) {
|
||||||
|
wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: "no"});
|
||||||
|
wiki.addEventListener("change",function(changes) {
|
||||||
|
// Work out which of the changed tiddlers are plugins that we need to (re)register
|
||||||
|
var changesToProcess = [];
|
||||||
|
$tw.utils.each(Object.keys(changes),function(title) {
|
||||||
|
var tiddler = wiki.getTiddler(title);
|
||||||
|
if(tiddler) {
|
||||||
|
// It is a plugin that has been added or modified and is of a type that we need to register
|
||||||
|
if(tiddler.isPlugin() && wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields["plugin-type"] || ""),"no") === "yes") {
|
||||||
|
changesToProcess.push(title);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(wiki.isSubPlugin(title)) {
|
||||||
|
// It is a sub-plugin
|
||||||
|
changesToProcess.push(title);
|
||||||
|
} else {
|
||||||
|
// It is a plugin that has been deleted
|
||||||
|
var pluginInfo = wiki.getPluginInfo(title)
|
||||||
|
if(pluginInfo) {
|
||||||
|
changesToProcess.push(title);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(changesToProcess.length > 0) {
|
||||||
|
// Read the plugin info of the changed tiddlers
|
||||||
|
var changedPluginInfo = wiki.readPluginInfo(changesToProcess);
|
||||||
|
if(changedPluginInfo.modifiedPlugins.length > 0 || changedPluginInfo.deletedPlugins.length > 0) {
|
||||||
|
var changedShadowTiddlers = {},
|
||||||
|
requireReloadDueToPluginChange = false;
|
||||||
|
// Collect the shadow tiddlers of any deleted plugins
|
||||||
|
$tw.utils.each(changedPluginInfo.deletedPlugins,function(pluginTitle) {
|
||||||
|
var contents = changedPluginInfo.deletedPluginContents[pluginTitle];
|
||||||
|
if(contents && contents.tiddlers) {
|
||||||
|
$tw.utils.each(Object.keys(contents.tiddlers),function(title) {
|
||||||
|
changedShadowTiddlers[title] = true;
|
||||||
|
if(contents.tiddlers[title].type === "application/javascript") {
|
||||||
|
requireReloadDueToPluginChange = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Collect the shadow tiddlers of any modified plugins
|
||||||
|
$tw.utils.each(changedPluginInfo.modifiedPlugins,function(pluginTitle) {
|
||||||
|
var pluginInfo = wiki.getPluginInfo(pluginTitle);
|
||||||
|
if(pluginInfo && pluginInfo.tiddlers) {
|
||||||
|
$tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) {
|
||||||
|
changedShadowTiddlers[title] = false;
|
||||||
|
if(pluginInfo.tiddlers[title].type === "application/javascript") {
|
||||||
|
requireReloadDueToPluginChange = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// (Re-)register any modified plugins
|
||||||
|
wiki.registerPluginTiddlers(null,changedPluginInfo.modifiedPlugins);
|
||||||
|
// Unregister any deleted plugins
|
||||||
|
wiki.unregisterPluginTiddlers(null,changedPluginInfo.deletedPlugins);
|
||||||
|
// Unpack the shadow tiddlers
|
||||||
|
wiki.unpackPluginTiddlers();
|
||||||
|
// Queue change events for the changed shadow tiddlers
|
||||||
|
$tw.utils.each(changedShadowTiddlers,function(status,title) {
|
||||||
|
wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title], true);
|
||||||
|
});
|
||||||
|
// Issue warning if any of the tiddlers require a reload
|
||||||
|
if(requireReloadDueToPluginChange) {
|
||||||
|
wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: "yes"});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
})();
|
||||||
@@ -6,6 +6,7 @@ module-type: utils
|
|||||||
Utilities for working with the TiddlyWiki repository file structure
|
Utilities for working with the TiddlyWiki repository file structure
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
"use strict";
|
"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);
|
$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,options.ignoreEnvironmentVariables ? undefined : $tw.config.languagesEnvVar),collectPlugins);
|
||||||
return tiddlers;
|
return tiddlers;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ module-type: widget
|
|||||||
Widget to dynamically represent one or more tiddlers
|
Widget to dynamically represent one or more tiddlers
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
||||||
@@ -186,3 +187,5 @@ function hasPayloadChanged(a,b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
exports.data = DataWidget;
|
exports.data = DataWidget;
|
||||||
|
|
||||||
|
})();
|
||||||
|
|||||||
@@ -519,3 +519,36 @@ ListJoinWidget.prototype.render = function() {}
|
|||||||
ListJoinWidget.prototype.refresh = function() { return false; }
|
ListJoinWidget.prototype.refresh = function() { return false; }
|
||||||
|
|
||||||
exports["list-join"] = ListJoinWidget;
|
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
|
Widget to display a test case
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
||||||
@@ -65,11 +66,24 @@ TestCaseWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
});
|
});
|
||||||
var jsonPayload = JSON.stringify(tiddlers);
|
var jsonPayload = JSON.stringify(tiddlers);
|
||||||
this.testcaseWiki.addTiddlers(tiddlers);
|
this.testcaseWiki.addTiddlers(tiddlers);
|
||||||
|
// Suppress next tick dispatch for wiki change events
|
||||||
|
this.testcaseWiki.setDispatchMode(true);
|
||||||
// Unpack plugin tiddlers
|
// Unpack plugin tiddlers
|
||||||
this.testcaseWiki.readPluginInfo();
|
this.testcaseWiki.readPluginInfo();
|
||||||
this.testcaseWiki.registerPluginTiddlers("plugin");
|
this.testcaseWiki.registerPluginTiddlers("plugin");
|
||||||
this.testcaseWiki.unpackPluginTiddlers();
|
this.testcaseWiki.unpackPluginTiddlers();
|
||||||
this.testcaseWiki.addIndexersToWiki();
|
this.testcaseWiki.addIndexersToWiki();
|
||||||
|
// Install the plugin change event handler
|
||||||
|
$tw.utils.installPluginChangeHandler(this.testcaseWiki);
|
||||||
|
// Install the language switcher
|
||||||
|
var languageSwitcher = new $tw.PluginSwitcher({
|
||||||
|
wiki: this.testcaseWiki,
|
||||||
|
pluginType: "language",
|
||||||
|
controllerTitle: "$:/language",
|
||||||
|
defaultPlugins: [
|
||||||
|
"$:/languages/en-GB"
|
||||||
|
]
|
||||||
|
});
|
||||||
// Generate a `transclusion` variable that depends on the values of the payload tiddlers so that the template can easily make unique state tiddlers
|
// Generate a `transclusion` variable that depends on the values of the payload tiddlers so that the template can easily make unique state tiddlers
|
||||||
this.setVariable("transclusion",$tw.utils.hashString(jsonPayload));
|
this.setVariable("transclusion",$tw.utils.hashString(jsonPayload));
|
||||||
// Generate a `payloadTiddlers` variable that contains the payload in JSON format
|
// Generate a `payloadTiddlers` variable that contains the payload in JSON format
|
||||||
@@ -91,13 +105,20 @@ TestCaseWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
testcaseOutputWidget.render(testcaseOutputContainer);
|
testcaseOutputWidget.render(testcaseOutputContainer);
|
||||||
|
// Install the wiki change event handler
|
||||||
|
this.testcaseWiki.addEventListener("change",function(changes) {
|
||||||
|
testcaseOutputWidget.refresh(changes,testcaseOutputContainer);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
// Clear changes queue
|
// Clear changes queue
|
||||||
this.testcaseWiki.clearTiddlerEventQueue();
|
this.testcaseWiki.clearTiddlerEventQueue();
|
||||||
// Run the actions if provided
|
// Run the actions if provided
|
||||||
if(this.testcaseWiki.tiddlerExists(this.testcaseTestActions)) {
|
if(this.testcaseWiki.tiddlerExists(this.testcaseTestActions)) {
|
||||||
testcaseOutputWidget.invokeActionString(this.testcaseWiki.getTiddlerText(this.testcaseTestActions));
|
testcaseOutputWidget.invokeActionString(this.testcaseWiki.getTiddlerText(this.testcaseTestActions));
|
||||||
testcaseOutputWidget.refresh(this.testcaseWiki.changedTiddlers,testcaseOutputContainer);
|
// Make sure all wiki events have been cleared
|
||||||
|
while(this.testcaseWiki.eventsTriggered) {
|
||||||
|
this.testcaseWiki.processOutstandingTiddlerEvents();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Set up the test result variables
|
// Set up the test result variables
|
||||||
var testResult = "",
|
var testResult = "",
|
||||||
@@ -127,6 +148,8 @@ TestCaseWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
parentWidget: this
|
parentWidget: this
|
||||||
});
|
});
|
||||||
rootWidget.render(domNode);
|
rootWidget.render(domNode);
|
||||||
|
// Re-enable next tick dispatch for wiki change events
|
||||||
|
this.testcaseWiki.setDispatchMode(false);
|
||||||
// Trap changes in the wiki and refresh the rendering
|
// Trap changes in the wiki and refresh the rendering
|
||||||
this.testcaseWiki.addEventListener("change",function(changes) {
|
this.testcaseWiki.addEventListener("change",function(changes) {
|
||||||
rootWidget.refresh(changes,domNode);
|
rootWidget.refresh(changes,domNode);
|
||||||
@@ -159,3 +182,5 @@ TestCaseWidget.prototype.refresh = function(changedTiddlers) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports["testcase"] = TestCaseWidget;
|
exports["testcase"] = TestCaseWidget;
|
||||||
|
|
||||||
|
})();
|
||||||
|
|||||||
+22
-13
@@ -132,6 +132,14 @@ exports.dispatchEvent = function(type /*, args */) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
false (default) to dispatch event tick as usual
|
||||||
|
true to suppress dispatching the event tick and allow outstanding events to be processed manually
|
||||||
|
*/
|
||||||
|
exports.setDispatchMode = function(mode) {
|
||||||
|
this.dispatchMode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Causes a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.
|
Causes a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.
|
||||||
This method should be called after the changes it describes have been made to the wiki.tiddlers[] array.
|
This method should be called after the changes it describes have been made to the wiki.tiddlers[] array.
|
||||||
@@ -156,17 +164,18 @@ exports.enqueueTiddlerEvent = function(title,isDeleted,isShadow) {
|
|||||||
}
|
}
|
||||||
// Trigger events
|
// Trigger events
|
||||||
this.eventListeners = this.eventListeners || {};
|
this.eventListeners = this.eventListeners || {};
|
||||||
if(!this.eventsTriggered) {
|
if(!this.eventsTriggered && !this.dispatchMode) {
|
||||||
var self = this;
|
$tw.utils.nextTick(this.processOutstandingTiddlerEvents.bind(this));
|
||||||
$tw.utils.nextTick(function() {
|
}
|
||||||
var changes = self.changedTiddlers;
|
this.eventsTriggered = true;
|
||||||
self.changedTiddlers = Object.create(null);
|
};
|
||||||
self.eventsTriggered = false;
|
|
||||||
if($tw.utils.count(changes) > 0) {
|
exports.processOutstandingTiddlerEvents = function() {
|
||||||
self.dispatchEvent("change",changes);
|
var changes = this.changedTiddlers;
|
||||||
}
|
this.changedTiddlers = Object.create(null);
|
||||||
});
|
this.eventsTriggered = false;
|
||||||
this.eventsTriggered = true;
|
if($tw.utils.count(changes) > 0) {
|
||||||
|
this.dispatchEvent("change",changes);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1173,7 +1182,7 @@ exports.getSubstitutedText = function(text,widget,options) {
|
|||||||
output = $tw.utils.replaceString(output,new RegExp("\\$" + $tw.utils.escapeRegExp(substitute.name) + "\\$","mg"),substitute.value);
|
output = $tw.utils.replaceString(output,new RegExp("\\$" + $tw.utils.escapeRegExp(substitute.name) + "\\$","mg"),substitute.value);
|
||||||
});
|
});
|
||||||
// Substitute any variable references with their values
|
// 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: ""})
|
return widget.getVariable(varname,{defaultValue: ""})
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -1740,7 +1749,7 @@ exports.invokeUpgraders = function(titles,tiddlers) {
|
|||||||
// Determine whether a plugin by title is dynamically loadable
|
// Determine whether a plugin by title is dynamically loadable
|
||||||
exports.doesPluginRequireReload = function(title) {
|
exports.doesPluginRequireReload = function(title) {
|
||||||
var tiddler = this.getTiddler(title);
|
var tiddler = this.getTiddler(title);
|
||||||
if(tiddler && tiddler.fields.type === "application/json" && tiddler.fields["plugin-type"]) {
|
if(tiddler && tiddler.isPlugin()) {
|
||||||
if(tiddler.fields["plugin-type"] === "import") {
|
if(tiddler.fields["plugin-type"] === "import") {
|
||||||
// The import plugin never requires reloading
|
// The import plugin never requires reloading
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
+13
-18
@@ -18,7 +18,7 @@ code-background: #f7f7f9
|
|||||||
code-border: #e1e1e8
|
code-border: #e1e1e8
|
||||||
code-foreground: #dd1144
|
code-foreground: #dd1144
|
||||||
dirty-indicator: #ff0000
|
dirty-indicator: #ff0000
|
||||||
download-background: #3aafaf
|
download-background: #66cccc
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour background>>
|
||||||
dragger-background: <<colour foreground>>
|
dragger-background: <<colour foreground>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
@@ -26,7 +26,7 @@ dropdown-background: <<colour background>>
|
|||||||
dropdown-border: <<colour muted-foreground>>
|
dropdown-border: <<colour muted-foreground>>
|
||||||
dropdown-tab-background-selected: #fff
|
dropdown-tab-background-selected: #fff
|
||||||
dropdown-tab-background: #ececec
|
dropdown-tab-background: #ececec
|
||||||
dropzone-background: #00d900
|
dropzone-background: rgba(0,200,0,0.7)
|
||||||
external-link-background-hover: inherit
|
external-link-background-hover: inherit
|
||||||
external-link-background-visited: inherit
|
external-link-background-visited: inherit
|
||||||
external-link-background: inherit
|
external-link-background: inherit
|
||||||
@@ -52,30 +52,26 @@ notification-border: #999999
|
|||||||
page-background: #ffffff
|
page-background: #ffffff
|
||||||
pre-background: #f5f5f5
|
pre-background: #f5f5f5
|
||||||
pre-border: #cccccc
|
pre-border: #cccccc
|
||||||
primary: #6387f1
|
primary: #7897f3
|
||||||
select-tag-background:
|
select-tag-background:
|
||||||
select-tag-foreground:
|
select-tag-foreground:
|
||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #000000
|
sidebar-controls-foreground-hover: #000000
|
||||||
sidebar-controls-foreground: #aaaaaa
|
sidebar-controls-foreground: #ccc
|
||||||
sidebar-foreground-shadow: #ffffff
|
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
|
||||||
sidebar-foreground: #acacac
|
sidebar-foreground: #acacac
|
||||||
sidebar-muted-foreground-hover: #444444
|
sidebar-muted-foreground-hover: #444444
|
||||||
sidebar-muted-foreground: #aaaaaa
|
sidebar-muted-foreground: #c0c0c0
|
||||||
sidebar-tab-background-selected: #ffffff
|
sidebar-tab-background-selected: #ffffff
|
||||||
sidebar-tab-background: <<colour tab-background>>
|
sidebar-tab-background: <<colour tab-background>>
|
||||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||||
sidebar-tab-border: <<colour tab-border>>
|
sidebar-tab-border: <<colour tab-border>>
|
||||||
sidebar-tab-divider: <<colour tab-divider>>
|
sidebar-tab-divider: <<colour tab-divider>>
|
||||||
sidebar-tab-foreground-selected: <<colour tab-foreground>>
|
sidebar-tab-foreground-selected:
|
||||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||||
sidebar-tiddler-link-foreground-hover: #444444
|
sidebar-tiddler-link-foreground-hover: #444444
|
||||||
sidebar-tiddler-link-foreground: <<colour primary>>
|
sidebar-tiddler-link-foreground: #7897f3
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-stable: #008000
|
|
||||||
stability-experimental: #c07c00
|
|
||||||
stability-deprecated: #ff0000
|
|
||||||
stability-legacy: #0000ff
|
|
||||||
static-alert-foreground: #aaaaaa
|
static-alert-foreground: #aaaaaa
|
||||||
tab-background-selected: #ffffff
|
tab-background-selected: #ffffff
|
||||||
tab-background: #eeeeee
|
tab-background: #eeeeee
|
||||||
@@ -87,10 +83,10 @@ tab-foreground: #666666
|
|||||||
table-border: #dddddd
|
table-border: #dddddd
|
||||||
table-footer-background: #a8a8a8
|
table-footer-background: #a8a8a8
|
||||||
table-header-background: #f0f0f0
|
table-header-background: #f0f0f0
|
||||||
tag-background: #ffd5aa
|
tag-background: #ffeedd
|
||||||
tag-foreground: #000000
|
tag-foreground: #000
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: #eeeeee
|
tiddler-border: #eee
|
||||||
tiddler-controls-foreground-hover: #888888
|
tiddler-controls-foreground-hover: #888888
|
||||||
tiddler-controls-foreground-selected: #444444
|
tiddler-controls-foreground-selected: #444444
|
||||||
tiddler-controls-foreground: #cccccc
|
tiddler-controls-foreground: #cccccc
|
||||||
@@ -101,7 +97,7 @@ tiddler-editor-fields-even: #e0e8e0
|
|||||||
tiddler-editor-fields-odd: #f0f4f0
|
tiddler-editor-fields-odd: #f0f4f0
|
||||||
tiddler-info-background: #f8f8f8
|
tiddler-info-background: #f8f8f8
|
||||||
tiddler-info-border: #dddddd
|
tiddler-info-border: #dddddd
|
||||||
tiddler-info-tab-background: <<colour tiddler-info-background>>
|
tiddler-info-tab-background: #f8f8f8
|
||||||
tiddler-link-background: <<colour background>>
|
tiddler-link-background: <<colour background>>
|
||||||
tiddler-link-foreground: <<colour primary>>
|
tiddler-link-foreground: <<colour primary>>
|
||||||
tiddler-subtitle-foreground: #c0c0c0
|
tiddler-subtitle-foreground: #c0c0c0
|
||||||
@@ -115,6 +111,5 @@ toolbar-close-button:
|
|||||||
toolbar-delete-button:
|
toolbar-delete-button:
|
||||||
toolbar-cancel-button:
|
toolbar-cancel-button:
|
||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: #cccccc
|
untagged-background: #999999
|
||||||
very-muted-foreground: #888888
|
very-muted-foreground: #888888
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
@@ -85,7 +85,6 @@ table-footer-background: #a8a8a8
|
|||||||
table-header-background: #f0f0f0
|
table-header-background: #f0f0f0
|
||||||
tag-background: #d5ad34
|
tag-background: #d5ad34
|
||||||
tag-foreground: #ffffff
|
tag-foreground: #ffffff
|
||||||
testcase-accent-level-1: #b1b3e3
|
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour background>>
|
tiddler-border: <<colour background>>
|
||||||
tiddler-controls-foreground-hover: #888888
|
tiddler-controls-foreground-hover: #888888
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ description: High contrast and unambiguous (dark version)
|
|||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
|
||||||
alert-background: #ff0000
|
alert-background: #f00
|
||||||
alert-border: <<colour background>>
|
alert-border: <<colour background>>
|
||||||
alert-highlight: <<colour foreground>>
|
alert-highlight: <<colour foreground>>
|
||||||
alert-muted-foreground: #880000
|
alert-muted-foreground: #800
|
||||||
background: #000000
|
background: #000
|
||||||
blockquote-bar: <<colour muted-foreground>>
|
blockquote-bar: <<colour muted-foreground>>
|
||||||
button-background: <<colour background>>
|
button-background: <<colour background>>
|
||||||
button-foreground: <<colour foreground>>
|
button-foreground: <<colour foreground>>
|
||||||
@@ -17,24 +17,24 @@ button-border: <<colour foreground>>
|
|||||||
code-background: <<colour background>>
|
code-background: <<colour background>>
|
||||||
code-border: <<colour foreground>>
|
code-border: <<colour foreground>>
|
||||||
code-foreground: <<colour foreground>>
|
code-foreground: <<colour foreground>>
|
||||||
dirty-indicator: #ff0000
|
dirty-indicator: #f00
|
||||||
download-background: #48ff48
|
download-background: #080
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour background>>
|
||||||
dragger-background: <<colour foreground>>
|
dragger-background: <<colour foreground>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
dropdown-background: <<colour background>>
|
dropdown-background: <<colour background>>
|
||||||
dropdown-border: <<colour muted-foreground>>
|
dropdown-border: <<colour muted-foreground>>
|
||||||
dropdown-tab-background-selected: #868686
|
dropdown-tab-background-selected: <<colour foreground>>
|
||||||
dropdown-tab-background: #515151
|
dropdown-tab-background: <<colour foreground>>
|
||||||
dropzone-background: #1aff1a
|
dropzone-background: rgba(0,200,0,0.7)
|
||||||
external-link-background-hover: inherit
|
external-link-background-hover: inherit
|
||||||
external-link-background-visited: inherit
|
external-link-background-visited: inherit
|
||||||
external-link-background: inherit
|
external-link-background: inherit
|
||||||
external-link-foreground-hover: inherit
|
external-link-foreground-hover: inherit
|
||||||
external-link-foreground-visited: #5353ff
|
external-link-foreground-visited: #00a
|
||||||
external-link-foreground: #9595ff
|
external-link-foreground: #00e
|
||||||
footnote-target-background: #4c4c4c
|
footnote-target-background: #4c4c4c
|
||||||
foreground: #ffffff
|
foreground: #fff
|
||||||
highlight-background: #ffff00
|
highlight-background: #ffff00
|
||||||
highlight-foreground: #000000
|
highlight-foreground: #000000
|
||||||
message-background: <<colour foreground>>
|
message-background: <<colour foreground>>
|
||||||
@@ -52,11 +52,11 @@ notification-border: <<colour foreground>>
|
|||||||
page-background: <<colour background>>
|
page-background: <<colour background>>
|
||||||
pre-background: <<colour background>>
|
pre-background: <<colour background>>
|
||||||
pre-border: <<colour foreground>>
|
pre-border: <<colour foreground>>
|
||||||
primary: #8a8aff
|
primary: #00f
|
||||||
select-tag-background:
|
select-tag-background:
|
||||||
select-tag-foreground:
|
select-tag-foreground:
|
||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #ffff00
|
sidebar-controls-foreground-hover: <<colour background>>
|
||||||
sidebar-controls-foreground: <<colour foreground>>
|
sidebar-controls-foreground: <<colour foreground>>
|
||||||
sidebar-foreground-shadow: rgba(0,0,0, 0)
|
sidebar-foreground-shadow: rgba(0,0,0, 0)
|
||||||
sidebar-foreground: <<colour foreground>>
|
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-hover: <<colour foreground>>
|
||||||
sidebar-tiddler-link-foreground: <<colour primary>>
|
sidebar-tiddler-link-foreground: <<colour primary>>
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-stable: #00f400
|
|
||||||
stability-experimental: #ffaf1c
|
|
||||||
stability-deprecated: #ff2b2b
|
|
||||||
stability-legacy: #ceceff
|
|
||||||
static-alert-foreground: #aaaaaa
|
static-alert-foreground: #aaaaaa
|
||||||
tab-background-selected: <<colour background>>
|
tab-background-selected: <<colour background>>
|
||||||
tab-background: <<colour foreground>>
|
tab-background: <<colour foreground>>
|
||||||
@@ -85,15 +81,14 @@ tab-divider: <<colour foreground>>
|
|||||||
tab-foreground-selected: <<colour foreground>>
|
tab-foreground-selected: <<colour foreground>>
|
||||||
tab-foreground: <<colour background>>
|
tab-foreground: <<colour background>>
|
||||||
table-border: #dddddd
|
table-border: #dddddd
|
||||||
table-footer-background: #444444
|
table-footer-background: #a8a8a8
|
||||||
table-header-background: #444444
|
table-header-background: #f0f0f0
|
||||||
tag-background: #ffffff
|
tag-background: #fff
|
||||||
tag-foreground: #000000
|
tag-foreground: #000
|
||||||
testcase-accent-level-1: #144a8c
|
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour foreground>>
|
tiddler-border: <<colour foreground>>
|
||||||
tiddler-controls-foreground-hover: #ddd
|
tiddler-controls-foreground-hover: #ddd
|
||||||
tiddler-controls-foreground-selected: #ae0000
|
tiddler-controls-foreground-selected: #fdd
|
||||||
tiddler-controls-foreground: <<colour foreground>>
|
tiddler-controls-foreground: <<colour foreground>>
|
||||||
tiddler-editor-background: <<colour background>>
|
tiddler-editor-background: <<colour background>>
|
||||||
tiddler-editor-border-image: <<colour foreground>>
|
tiddler-editor-border-image: <<colour foreground>>
|
||||||
@@ -107,15 +102,14 @@ tiddler-link-background: <<colour background>>
|
|||||||
tiddler-link-foreground: <<colour primary>>
|
tiddler-link-foreground: <<colour primary>>
|
||||||
tiddler-subtitle-foreground: <<colour foreground>>
|
tiddler-subtitle-foreground: <<colour foreground>>
|
||||||
tiddler-title-foreground: <<colour foreground>>
|
tiddler-title-foreground: <<colour foreground>>
|
||||||
toolbar-new-button:
|
toolbar-new-button:
|
||||||
toolbar-options-button:
|
toolbar-options-button:
|
||||||
toolbar-save-button:
|
toolbar-save-button:
|
||||||
toolbar-info-button:
|
toolbar-info-button:
|
||||||
toolbar-edit-button:
|
toolbar-edit-button:
|
||||||
toolbar-close-button:
|
toolbar-close-button:
|
||||||
toolbar-delete-button:
|
toolbar-delete-button:
|
||||||
toolbar-cancel-button:
|
toolbar-cancel-button:
|
||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: <<colour foreground>>
|
untagged-background: <<colour foreground>>
|
||||||
very-muted-foreground: #888888
|
very-muted-foreground: #888888
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
@@ -5,7 +5,7 @@ description: High contrast and unambiguous (light version)
|
|||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
|
||||||
alert-background: #ff4a4a
|
alert-background: #f00
|
||||||
alert-border: <<colour background>>
|
alert-border: <<colour background>>
|
||||||
alert-highlight: <<colour foreground>>
|
alert-highlight: <<colour foreground>>
|
||||||
alert-muted-foreground: #800
|
alert-muted-foreground: #800
|
||||||
@@ -18,13 +18,13 @@ code-background: <<colour background>>
|
|||||||
code-border: <<colour foreground>>
|
code-border: <<colour foreground>>
|
||||||
code-foreground: <<colour foreground>>
|
code-foreground: <<colour foreground>>
|
||||||
dirty-indicator: #f00
|
dirty-indicator: #f00
|
||||||
download-background: #008200
|
download-background: #080
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour background>>
|
||||||
dragger-background: <<colour foreground>>
|
dragger-background: <<colour foreground>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
dropdown-background: <<colour background>>
|
dropdown-background: <<colour background>>
|
||||||
dropdown-border: <<colour muted-foreground>>
|
dropdown-border: <<colour muted-foreground>>
|
||||||
dropdown-tab-background-selected: <<colour background>>
|
dropdown-tab-background-selected: <<colour foreground>>
|
||||||
dropdown-tab-background: <<colour foreground>>
|
dropdown-tab-background: <<colour foreground>>
|
||||||
dropzone-background: rgba(0,200,0,0.7)
|
dropzone-background: rgba(0,200,0,0.7)
|
||||||
external-link-background-hover: inherit
|
external-link-background-hover: inherit
|
||||||
@@ -52,13 +52,13 @@ notification-border: <<colour foreground>>
|
|||||||
page-background: <<colour background>>
|
page-background: <<colour background>>
|
||||||
pre-background: <<colour background>>
|
pre-background: <<colour background>>
|
||||||
pre-border: <<colour foreground>>
|
pre-border: <<colour foreground>>
|
||||||
primary: #0000ff
|
primary: #00f
|
||||||
select-tag-background:
|
select-tag-background:
|
||||||
select-tag-foreground:
|
select-tag-foreground:
|
||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #606060
|
sidebar-controls-foreground-hover: <<colour background>>
|
||||||
sidebar-controls-foreground: <<colour foreground>>
|
sidebar-controls-foreground: <<colour foreground>>
|
||||||
sidebar-foreground-shadow: #000000
|
sidebar-foreground-shadow: rgba(0,0,0, 0)
|
||||||
sidebar-foreground: <<colour foreground>>
|
sidebar-foreground: <<colour foreground>>
|
||||||
sidebar-muted-foreground-hover: #444444
|
sidebar-muted-foreground-hover: #444444
|
||||||
sidebar-muted-foreground: <<colour foreground>>
|
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-hover: <<colour foreground>>
|
||||||
sidebar-tiddler-link-foreground: <<colour primary>>
|
sidebar-tiddler-link-foreground: <<colour primary>>
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-deprecated: #ff0000
|
|
||||||
stability-experimental: #b37400
|
|
||||||
stability-legacy: #000075
|
|
||||||
stability-stable: #008000
|
|
||||||
static-alert-foreground: #aaaaaa
|
static-alert-foreground: #aaaaaa
|
||||||
tab-background-selected: <<colour background>>
|
tab-background-selected: <<colour background>>
|
||||||
tab-background: <<colour foreground>>
|
tab-background: <<colour foreground>>
|
||||||
@@ -92,7 +88,7 @@ tag-foreground: #fff
|
|||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour foreground>>
|
tiddler-border: <<colour foreground>>
|
||||||
tiddler-controls-foreground-hover: #ddd
|
tiddler-controls-foreground-hover: #ddd
|
||||||
tiddler-controls-foreground-selected: #c5abf3
|
tiddler-controls-foreground-selected: #fdd
|
||||||
tiddler-controls-foreground: <<colour foreground>>
|
tiddler-controls-foreground: <<colour foreground>>
|
||||||
tiddler-editor-background: <<colour background>>
|
tiddler-editor-background: <<colour background>>
|
||||||
tiddler-editor-border-image: <<colour foreground>>
|
tiddler-editor-border-image: <<colour foreground>>
|
||||||
@@ -117,4 +113,3 @@ toolbar-cancel-button:
|
|||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: <<colour foreground>>
|
untagged-background: <<colour foreground>>
|
||||||
very-muted-foreground: #888888
|
very-muted-foreground: #888888
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
@@ -5,30 +5,30 @@ name: Cupertino Dark
|
|||||||
description: A macOS inspired dark palette
|
description: A macOS inspired dark palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
|
||||||
alert-background: #ff4b42
|
alert-background: #FF453A
|
||||||
alert-border: #950700
|
alert-border: #FF453A
|
||||||
alert-highlight: #FFD60A
|
alert-highlight: #FFD60A
|
||||||
alert-muted-foreground: #323234
|
alert-muted-foreground: <<colour muted-foreground>>
|
||||||
background: #282828
|
background: #282828
|
||||||
blockquote-bar: #8d8d8d
|
blockquote-bar: <<colour page-background>>
|
||||||
button-foreground: <<colour foreground>>
|
button-foreground: <<colour foreground>>
|
||||||
code-background: <<colour pre-background>>
|
code-background: <<colour pre-background>>
|
||||||
code-border: <<colour pre-border>>
|
code-border: <<colour pre-border>>
|
||||||
code-foreground: #c7c7c7
|
code-foreground: rgba(255, 255, 255, 0.54)
|
||||||
dirty-indicator: #FF453A
|
dirty-indicator: #FF453A
|
||||||
download-background: <<colour primary>>
|
download-background: <<colour primary>>
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour foreground>>
|
||||||
dragger-background: <<colour foreground>>
|
dragger-background: <<colour foreground>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
dropdown-background: <<colour tiddler-info-background>>
|
dropdown-background: <<colour tiddler-info-background>>
|
||||||
dropdown-border: <<colour dropdown-background>>
|
dropdown-border: <<colour dropdown-background>>
|
||||||
dropdown-tab-background-selected: #3F638B
|
dropdown-tab-background-selected: #3F638B
|
||||||
dropdown-tab-background: #707070
|
dropdown-tab-background: #323232
|
||||||
dropzone-background: #30D158
|
dropzone-background: #30D158
|
||||||
external-link-background-hover: transparent
|
external-link-background-hover: transparent
|
||||||
external-link-background-visited: transparent
|
external-link-background-visited: transparent
|
||||||
external-link-background: transparent
|
external-link-background: transparent
|
||||||
external-link-foreground-hover: #9511d5
|
external-link-foreground-hover:
|
||||||
external-link-foreground-visited: #BF5AF2
|
external-link-foreground-visited: #BF5AF2
|
||||||
external-link-foreground: #32D74B
|
external-link-foreground: #32D74B
|
||||||
footnote-target-background: #747474
|
footnote-target-background: #747474
|
||||||
@@ -60,36 +60,31 @@ sidebar-controls-foreground-hover: #FF9F0A
|
|||||||
sidebar-controls-foreground: #8E8E93
|
sidebar-controls-foreground: #8E8E93
|
||||||
sidebar-foreground-shadow: transparent
|
sidebar-foreground-shadow: transparent
|
||||||
sidebar-foreground: rgba(255, 255, 255, 0.54)
|
sidebar-foreground: rgba(255, 255, 255, 0.54)
|
||||||
sidebar-muted-foreground-hover: #acacac
|
sidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)
|
||||||
sidebar-muted-foreground: #787878
|
sidebar-muted-foreground: rgba(255, 255, 255, 0.38)
|
||||||
sidebar-tab-background-selected: #3F638B
|
sidebar-tab-background-selected: #3F638B
|
||||||
sidebar-tab-background: <<colour background>>
|
sidebar-tab-background: <<colour background>>
|
||||||
sidebar-tab-border-selected: #313131
|
sidebar-tab-border-selected: <<colour background>>
|
||||||
sidebar-tab-border: #404040
|
sidebar-tab-border: <<colour background>>
|
||||||
sidebar-tab-divider: #282828
|
sidebar-tab-divider: <<colour background>>
|
||||||
sidebar-tab-foreground-selected: #d2d2d2
|
sidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)
|
||||||
sidebar-tab-foreground: #d2d2d2
|
sidebar-tab-foreground: rgba(255, 255, 255, 0.54)
|
||||||
sidebar-tiddler-link-foreground-hover: #535353
|
sidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)
|
||||||
sidebar-tiddler-link-foreground: #949494
|
sidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)
|
||||||
site-title-foreground: #ffffff
|
site-title-foreground: #ffffff
|
||||||
stability-stable: #009f00
|
|
||||||
stability-experimental: #c07c00
|
|
||||||
stability-deprecated: #ff0000
|
|
||||||
stability-legacy: #6c6cff
|
|
||||||
static-alert-foreground: #B4B4B4
|
static-alert-foreground: #B4B4B4
|
||||||
tab-background-selected: #3F638B
|
tab-background-selected: #3F638B
|
||||||
tab-background: <<colour page-background>>
|
tab-background: <<colour page-background>>
|
||||||
tab-border-selected: <<colour page-background>>
|
tab-border-selected: <<colour page-background>>
|
||||||
tab-border: #4a4a4a
|
tab-border: <<colour page-background>>
|
||||||
tab-divider: <<colour page-background>>
|
tab-divider: <<colour page-background>>
|
||||||
tab-foreground-selected: #ffffff
|
tab-foreground-selected: rgba(255, 255, 255, 0.87)
|
||||||
tab-foreground: #adadad
|
tab-foreground: rgba(255, 255, 255, 0.54)
|
||||||
table-border: #464646
|
table-border: #464646
|
||||||
table-footer-background: #7f7f7f
|
table-footer-background: <<colour tiddler-editor-fields-odd>>
|
||||||
table-header-background: <<colour table-border>>
|
table-header-background: <<colour tiddler-editor-fields-even>>
|
||||||
tag-background: #48484A
|
tag-background: #48484A
|
||||||
tag-foreground: #323232
|
tag-foreground: #323232
|
||||||
testcase-accent-level-1: #345173
|
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: transparent
|
tiddler-border: transparent
|
||||||
tiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>
|
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-controls-foreground: #48484A
|
||||||
tiddler-editor-background: <<colour background>>
|
tiddler-editor-background: <<colour background>>
|
||||||
tiddler-editor-border-image:
|
tiddler-editor-border-image:
|
||||||
tiddler-editor-border: #444444
|
tiddler-editor-border: rgba(255, 255, 255, 0.08)
|
||||||
tiddler-editor-fields-even: #1f1f1f
|
tiddler-editor-fields-even: rgba(255, 255, 255, 0.1)
|
||||||
tiddler-editor-fields-odd: #464646
|
tiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)
|
||||||
tiddler-info-background: #1E1E1E
|
tiddler-info-background: #1E1E1E
|
||||||
tiddler-info-border: #1E1E1E
|
tiddler-info-border: #1E1E1E
|
||||||
tiddler-info-tab-background: #3F638B
|
tiddler-info-tab-background: #3F638B
|
||||||
@@ -116,8 +111,8 @@ toolbar-close-button:
|
|||||||
toolbar-delete-button:
|
toolbar-delete-button:
|
||||||
toolbar-cancel-button:
|
toolbar-cancel-button:
|
||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: #5f5f5f
|
untagged-background: <<colour very-muted-foreground>>
|
||||||
very-muted-foreground: #3f3f3f
|
very-muted-foreground: #464646
|
||||||
selection-background: #3F638B
|
selection-background: #3F638B
|
||||||
selection-foreground: #ffffff
|
selection-foreground: #ffffff
|
||||||
wikilist-background: <<colour page-background>>
|
wikilist-background: <<colour page-background>>
|
||||||
@@ -136,4 +131,3 @@ wikilist-title: <<colour foreground>>
|
|||||||
wikilist-title-svg: <<colour foreground>>
|
wikilist-title-svg: <<colour foreground>>
|
||||||
wikilist-toolbar-foreground: <<colour foreground>>
|
wikilist-toolbar-foreground: <<colour foreground>>
|
||||||
wikilist-url: <<colour muted-foreground>>
|
wikilist-url: <<colour muted-foreground>>
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
@@ -20,7 +20,7 @@ code-background: #f7f7f9
|
|||||||
code-border: #e1e1e8
|
code-border: #e1e1e8
|
||||||
code-foreground: #dd1144
|
code-foreground: #dd1144
|
||||||
dirty-indicator: #ff0000
|
dirty-indicator: #ff0000
|
||||||
download-background: #30b830
|
download-background: #34c734
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour background>>
|
||||||
dragger-background: <<colour foreground>>
|
dragger-background: <<colour foreground>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
@@ -58,26 +58,22 @@ primary: #5778d8
|
|||||||
select-tag-background:
|
select-tag-background:
|
||||||
select-tag-foreground:
|
select-tag-foreground:
|
||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #a6a6ff
|
sidebar-controls-foreground-hover: #ccf
|
||||||
sidebar-controls-foreground: #eeeeee
|
sidebar-controls-foreground: #fff
|
||||||
sidebar-foreground-shadow: transparent
|
sidebar-foreground-shadow: rgba(0,0,0, 0.5)
|
||||||
sidebar-foreground: #eeeeee
|
sidebar-foreground: #fff
|
||||||
sidebar-muted-foreground-hover: #999999
|
sidebar-muted-foreground-hover: #444444
|
||||||
sidebar-muted-foreground: #eeeeee
|
sidebar-muted-foreground: #eee
|
||||||
sidebar-tab-background-selected: <<colour page-background>>
|
sidebar-tab-background-selected: rgba(255,255,255, 0.8)
|
||||||
sidebar-tab-background: #e0e0e0
|
sidebar-tab-background: rgba(255,255,255, 0.4)
|
||||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||||
sidebar-tab-border: <<colour tab-border>>
|
sidebar-tab-border: <<colour tab-border>>
|
||||||
sidebar-tab-divider: #e4e4e4
|
sidebar-tab-divider: rgba(255,255,255, 0.2)
|
||||||
sidebar-tab-foreground-selected: #ddddff
|
sidebar-tab-foreground-selected:
|
||||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||||
sidebar-tiddler-link-foreground-hover: #aaaaff
|
sidebar-tiddler-link-foreground-hover: #aaf
|
||||||
sidebar-tiddler-link-foreground: #ddddff
|
sidebar-tiddler-link-foreground: #ddf
|
||||||
site-title-foreground: #ffffff
|
site-title-foreground: #fff
|
||||||
stability-stable: #008000
|
|
||||||
stability-experimental: #c07c00
|
|
||||||
stability-deprecated: #ff0000
|
|
||||||
stability-legacy: #0000ff
|
|
||||||
static-alert-foreground: #aaaaaa
|
static-alert-foreground: #aaaaaa
|
||||||
tab-background-selected: #ffffff
|
tab-background-selected: #ffffff
|
||||||
tab-background: #d8d8d8
|
tab-background: #d8d8d8
|
||||||
@@ -94,7 +90,7 @@ tag-foreground: #ffffff
|
|||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour background>>
|
tiddler-border: <<colour background>>
|
||||||
tiddler-controls-foreground-hover: #888888
|
tiddler-controls-foreground-hover: #888888
|
||||||
tiddler-controls-foreground-selected: #6a6aff
|
tiddler-controls-foreground-selected: #444444
|
||||||
tiddler-controls-foreground: #cccccc
|
tiddler-controls-foreground: #cccccc
|
||||||
tiddler-editor-background: #f8f8f8
|
tiddler-editor-background: #f8f8f8
|
||||||
tiddler-editor-border-image: #ffffff
|
tiddler-editor-border-image: #ffffff
|
||||||
@@ -119,4 +115,3 @@ toolbar-cancel-button:
|
|||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: #999999
|
untagged-background: #999999
|
||||||
very-muted-foreground: #888888
|
very-muted-foreground: #888888
|
||||||
network-activity-foreground: #11ff23
|
|
||||||
@@ -22,9 +22,9 @@ diff-equal-foreground: <<colour foreground>>
|
|||||||
diff-insert-background: #91c093
|
diff-insert-background: #91c093
|
||||||
diff-insert-foreground: <<colour foreground>>
|
diff-insert-foreground: <<colour foreground>>
|
||||||
diff-invisible-background:
|
diff-invisible-background:
|
||||||
diff-invisible-foreground: #d3d2cb
|
diff-invisible-foreground: <<colour muted-foreground>>
|
||||||
dirty-indicator: #ad3434
|
dirty-indicator: #ad3434
|
||||||
download-background: #5eae62
|
download-background: #6ca16c
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour background>>
|
||||||
dragger-background: <<colour foreground>>
|
dragger-background: <<colour foreground>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
@@ -32,13 +32,14 @@ dropdown-background: <<colour background>>
|
|||||||
dropdown-border: <<colour muted-foreground>>
|
dropdown-border: <<colour muted-foreground>>
|
||||||
dropdown-tab-background-selected: #E9E0C7
|
dropdown-tab-background-selected: #E9E0C7
|
||||||
dropdown-tab-background: #BAB29C
|
dropdown-tab-background: #BAB29C
|
||||||
dropzone-background: #00c600
|
dropzone-background: rgba(0,200,0,0.7)
|
||||||
external-link-background-hover: inherit
|
external-link-background-hover: inherit
|
||||||
external-link-background-visited: inherit
|
external-link-background-visited: inherit
|
||||||
external-link-background: inherit
|
external-link-background: inherit
|
||||||
external-link-foreground-hover: #7474ba
|
external-link-foreground-hover: inherit
|
||||||
external-link-foreground-visited: #313163
|
external-link-foreground-visited: #313163
|
||||||
external-link-foreground: #555592
|
external-link-foreground: #555592
|
||||||
|
footnote-target-background: #fff7d9
|
||||||
foreground: #2D2A23
|
foreground: #2D2A23
|
||||||
highlight-background: #ffff00
|
highlight-background: #ffff00
|
||||||
highlight-foreground: #000000
|
highlight-foreground: #000000
|
||||||
@@ -70,7 +71,7 @@ sidebar-controls-foreground: #867F69
|
|||||||
sidebar-foreground-shadow: transparent
|
sidebar-foreground-shadow: transparent
|
||||||
sidebar-foreground: #867F69
|
sidebar-foreground: #867F69
|
||||||
sidebar-muted-foreground-hover: #706A58
|
sidebar-muted-foreground-hover: #706A58
|
||||||
sidebar-muted-foreground: #aba081
|
sidebar-muted-foreground: #B3A98C
|
||||||
sidebar-tab-background-selected: #e0d3af
|
sidebar-tab-background-selected: #e0d3af
|
||||||
sidebar-tab-background: #A6A193
|
sidebar-tab-background: #A6A193
|
||||||
sidebar-tab-border-selected: #C3BAA1
|
sidebar-tab-border-selected: #C3BAA1
|
||||||
@@ -81,10 +82,6 @@ sidebar-tab-foreground: #2D2A23
|
|||||||
sidebar-tiddler-link-foreground-hover: #433F35
|
sidebar-tiddler-link-foreground-hover: #433F35
|
||||||
sidebar-tiddler-link-foreground: #706A58
|
sidebar-tiddler-link-foreground: #706A58
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-deprecated: #dc322f
|
|
||||||
stability-experimental: #b58900
|
|
||||||
stability-legacy: #268bd2
|
|
||||||
stability-stable: #859900
|
|
||||||
static-alert-foreground: #A6A193
|
static-alert-foreground: #A6A193
|
||||||
tab-background-selected: #E9E0C7
|
tab-background-selected: #E9E0C7
|
||||||
tab-background: #A6A193
|
tab-background: #A6A193
|
||||||
@@ -98,7 +95,6 @@ table-footer-background: #8A8885
|
|||||||
table-header-background: #B0AA98
|
table-header-background: #B0AA98
|
||||||
tag-background: #706A58
|
tag-background: #706A58
|
||||||
tag-foreground: #E3D7B7
|
tag-foreground: #E3D7B7
|
||||||
testcase-accent-level-1: #b3adc9
|
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour background>>
|
tiddler-border: <<colour background>>
|
||||||
tiddler-controls-foreground-hover: #9D947B
|
tiddler-controls-foreground-hover: #9D947B
|
||||||
@@ -144,4 +140,3 @@ wikilist-toolbar-foreground: #2D2A23
|
|||||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||||
wikilist-button-background: #A6A193
|
wikilist-button-background: #A6A193
|
||||||
wikilist-button-foreground: #161512
|
wikilist-button-foreground: #161512
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
@@ -9,13 +9,13 @@ license: https://github.com/morhetz/gruvbox
|
|||||||
alert-background: #cc241d
|
alert-background: #cc241d
|
||||||
alert-border: #cc241d
|
alert-border: #cc241d
|
||||||
alert-highlight: #d79921
|
alert-highlight: #d79921
|
||||||
alert-muted-foreground: #272321
|
alert-muted-foreground: #504945
|
||||||
background: #3c3836
|
background: #3c3836
|
||||||
blockquote-bar: <<colour muted-foreground>>
|
blockquote-bar: <<colour muted-foreground>>
|
||||||
button-foreground: <<colour foreground>>
|
button-foreground: <<colour foreground>>
|
||||||
code-background: #504945
|
code-background: #504945
|
||||||
code-border: #504945
|
code-border: #504945
|
||||||
code-foreground: #fc5e4b
|
code-foreground: #fb4934
|
||||||
diff-delete-background: #fb4934
|
diff-delete-background: #fb4934
|
||||||
diff-delete-foreground: <<colour foreground>>
|
diff-delete-foreground: <<colour foreground>>
|
||||||
diff-equal-background:
|
diff-equal-background:
|
||||||
@@ -25,7 +25,7 @@ diff-insert-foreground: <<colour background>>
|
|||||||
diff-invisible-background: #ffff97
|
diff-invisible-background: #ffff97
|
||||||
diff-invisible-foreground: #444347
|
diff-invisible-foreground: #444347
|
||||||
dirty-indicator: #fb4934
|
dirty-indicator: #fb4934
|
||||||
download-background: #1daf24
|
download-background: #b8bb26
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour background>>
|
||||||
dragger-background: <<colour foreground>>
|
dragger-background: <<colour foreground>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
@@ -46,53 +46,52 @@ highlight-background: #ffff79
|
|||||||
highlight-foreground: #000000
|
highlight-foreground: #000000
|
||||||
menubar-background: #504945
|
menubar-background: #504945
|
||||||
menubar-foreground: <<colour foreground>>
|
menubar-foreground: <<colour foreground>>
|
||||||
message-background: #b4c9c1
|
message-background: #83a598
|
||||||
message-border: #83a598
|
message-border: #83a598
|
||||||
message-foreground: #3c3836
|
message-foreground: #3c3836
|
||||||
modal-backdrop: #625a57
|
modal-backdrop: <<colour foreground>>
|
||||||
modal-background: <<colour background>>
|
modal-background: <<colour background>>
|
||||||
modal-border: #504945
|
modal-border: #504945
|
||||||
modal-footer-background: #3c3836
|
modal-footer-background: #3c3836
|
||||||
modal-footer-border: #3c3836
|
modal-footer-border: #3c3836
|
||||||
modal-header-border: #3c3836
|
modal-header-border: #3c3836
|
||||||
muted-foreground: #d5c4a1
|
muted-foreground: #d5c4a1
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
notification-background: <<colour primary>>
|
notification-background: <<colour primary>>
|
||||||
notification-border: <<colour primary>>
|
notification-border: <<colour primary>>
|
||||||
page-background: #282828
|
page-background: #282828
|
||||||
pre-background: #504945
|
pre-background: #504945
|
||||||
pre-border: #504945
|
pre-border: #504945
|
||||||
primary: #da9921
|
primary: #d79921
|
||||||
select-tag-background: #665c54
|
select-tag-background: #665c54
|
||||||
select-tag-foreground: <<colour foreground>>
|
select-tag-foreground: <<colour foreground>>
|
||||||
selection-background: #458588
|
selection-background: #458588
|
||||||
selection-foreground: <<colour foreground>>
|
selection-foreground: <<colour foreground>>
|
||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #e3e0dd
|
sidebar-controls-foreground-hover: #7c6f64
|
||||||
sidebar-controls-foreground: #978b84
|
sidebar-controls-foreground: #504945
|
||||||
sidebar-foreground-shadow: transparent
|
sidebar-foreground-shadow: transparent
|
||||||
sidebar-foreground: #fbf1c7
|
sidebar-foreground: #fbf1c7
|
||||||
sidebar-muted-foreground-hover: <<colour sidebar-controls-foreground-hover>>
|
sidebar-muted-foreground-hover: #7c6f64
|
||||||
sidebar-muted-foreground: <<colour sidebar-controls-foreground>>
|
sidebar-muted-foreground: #504945
|
||||||
sidebar-tab-background-selected: #bdae93
|
sidebar-tab-background-selected: #bdae93
|
||||||
sidebar-tab-background: #3c3836
|
sidebar-tab-background: #3c3836
|
||||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||||
sidebar-tab-border: #bdae93
|
sidebar-tab-border: #bdae93
|
||||||
sidebar-tab-divider: <<colour page-background>>
|
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-tab-foreground: <<colour tab-foreground>>
|
||||||
sidebar-tiddler-link-foreground-hover: #458588
|
sidebar-tiddler-link-foreground-hover: #458588
|
||||||
sidebar-tiddler-link-foreground: #98971a
|
sidebar-tiddler-link-foreground: #98971a
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-deprecated: #cc241d
|
stability-deprecated: #cc241d
|
||||||
stability-experimental: #b37d1c
|
stability-experimental: #d79921
|
||||||
stability-legacy: #529ca0
|
stability-legacy: #458588
|
||||||
stability-stable: #649618
|
stability-stable: #98971a
|
||||||
static-alert-foreground: #B48EAD
|
static-alert-foreground: #B48EAD
|
||||||
tab-background-selected: #ebdbb2
|
tab-background-selected: #ebdbb2
|
||||||
tab-background: #665c54
|
tab-background: #665c54
|
||||||
tab-border-selected: <<colour tab-background-selected>>
|
tab-border-selected: #665c54
|
||||||
tab-border: #82746a
|
tab-border: #665c54
|
||||||
tab-divider: #bdae93
|
tab-divider: #bdae93
|
||||||
tab-foreground-selected: #282828
|
tab-foreground-selected: #282828
|
||||||
tab-foreground: #ebdbb2
|
tab-foreground: #ebdbb2
|
||||||
@@ -101,7 +100,6 @@ table-footer-background: #665c54
|
|||||||
table-header-background: #504945
|
table-header-background: #504945
|
||||||
tag-background: #d3869b
|
tag-background: #d3869b
|
||||||
tag-foreground: #282828
|
tag-foreground: #282828
|
||||||
testcase-accent-level-1: #456d88
|
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour background>>
|
tiddler-border: <<colour background>>
|
||||||
tiddler-controls-foreground-hover: #7c6f64
|
tiddler-controls-foreground-hover: #7c6f64
|
||||||
@@ -128,7 +126,7 @@ toolbar-close-button:
|
|||||||
toolbar-delete-button:
|
toolbar-delete-button:
|
||||||
toolbar-cancel-button:
|
toolbar-cancel-button:
|
||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: #887b75
|
untagged-background: #504945
|
||||||
very-muted-foreground: #bdae93
|
very-muted-foreground: #bdae93
|
||||||
wikilist-background: <<colour page-background>>
|
wikilist-background: <<colour page-background>>
|
||||||
wikilist-button-background: #acacac
|
wikilist-button-background: #acacac
|
||||||
|
|||||||
+23
-25
@@ -7,15 +7,15 @@ type: application/x-tiddler-dictionary
|
|||||||
license: MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md
|
license: MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md
|
||||||
|
|
||||||
alert-background: #D08770
|
alert-background: #D08770
|
||||||
alert-border: <<colour alert-background>>
|
alert-border: #D08770
|
||||||
alert-highlight: #a3436f
|
alert-highlight: #B48EAD
|
||||||
alert-muted-foreground: #495367
|
alert-muted-foreground: #4C566A
|
||||||
background: #3b4252
|
background: #3b4252
|
||||||
blockquote-bar: <<colour muted-foreground>>
|
blockquote-bar: <<colour muted-foreground>>
|
||||||
button-foreground: <<colour foreground>>
|
button-foreground: <<colour foreground>>
|
||||||
code-background: #2E3440
|
code-background: #2E3440
|
||||||
code-border: #2E3440
|
code-border: #2E3440
|
||||||
code-foreground: #c7747c
|
code-foreground: #BF616A
|
||||||
diff-delete-background: #BF616A
|
diff-delete-background: #BF616A
|
||||||
diff-delete-foreground: <<colour foreground>>
|
diff-delete-foreground: <<colour foreground>>
|
||||||
diff-equal-background:
|
diff-equal-background:
|
||||||
@@ -48,32 +48,31 @@ menubar-background: #2E3440
|
|||||||
menubar-foreground: #d8dee9
|
menubar-foreground: #d8dee9
|
||||||
message-background: #2E3440
|
message-background: #2E3440
|
||||||
message-border: #2E3440
|
message-border: #2E3440
|
||||||
message-foreground: #6485aa
|
message-foreground: #547599
|
||||||
modal-backdrop: #435678
|
modal-backdrop: <<colour foreground>>
|
||||||
modal-background: <<colour background>>
|
modal-background: <<colour background>>
|
||||||
modal-border: #3b4252
|
modal-border: #3b4252
|
||||||
modal-footer-background: #3b4252
|
modal-footer-background: #3b4252
|
||||||
modal-footer-border: #3b4252
|
modal-footer-border: #3b4252
|
||||||
modal-header-border: #3b4252
|
modal-header-border: #3b4252
|
||||||
muted-foreground: #687693
|
muted-foreground: #4C566A
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
notification-background: <<colour primary>>
|
notification-background: <<colour primary>>
|
||||||
notification-border: #EBCB8B
|
notification-border: #EBCB8B
|
||||||
page-background: #2e3440
|
page-background: #2e3440
|
||||||
pre-background: #2E3440
|
pre-background: #2E3440
|
||||||
pre-border: #2E3440
|
pre-border: #2E3440
|
||||||
primary: #7b98bb
|
primary: #5E81AC
|
||||||
select-tag-background: #3b4252
|
select-tag-background: #3b4252
|
||||||
select-tag-foreground: <<colour foreground>>
|
select-tag-foreground: <<colour foreground>>
|
||||||
selection-background: #52749e
|
selection-background: #5E81AC
|
||||||
selection-foreground: <<colour foreground>>
|
selection-foreground: <<colour foreground>>
|
||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #D8DEE9
|
sidebar-controls-foreground-hover: #D8DEE9
|
||||||
sidebar-controls-foreground: #5e6a84
|
sidebar-controls-foreground: #4C566A
|
||||||
sidebar-foreground-shadow: transparent
|
sidebar-foreground-shadow: transparent
|
||||||
sidebar-foreground: #D8DEE9
|
sidebar-foreground: #D8DEE9
|
||||||
sidebar-muted-foreground-hover: #9fa8bb
|
sidebar-muted-foreground-hover: #4C566A
|
||||||
sidebar-muted-foreground: #6c7b97
|
sidebar-muted-foreground: #4C566A
|
||||||
sidebar-tab-background-selected: #ECEFF4
|
sidebar-tab-background-selected: #ECEFF4
|
||||||
sidebar-tab-background: #4C566A
|
sidebar-tab-background: #4C566A
|
||||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
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-hover: #A3BE8C
|
||||||
sidebar-tiddler-link-foreground: #81A1C1
|
sidebar-tiddler-link-foreground: #81A1C1
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-deprecated: #ff595e
|
stability-deprecated: #bf616a
|
||||||
stability-experimental: #f29d00
|
stability-experimental: #d08770
|
||||||
stability-legacy: #2ddbca
|
stability-legacy: #88c0d0
|
||||||
stability-stable: #04ff04
|
stability-stable: #a3be8c
|
||||||
static-alert-foreground: #B48EAD
|
static-alert-foreground: #B48EAD
|
||||||
tab-background-selected: #ECEFF4
|
tab-background-selected: #ECEFF4
|
||||||
tab-background: #4C566A
|
tab-background: #4C566A
|
||||||
tab-border-selected: #4C566A
|
tab-border-selected: #4C566A
|
||||||
tab-border: #5c6883
|
tab-border: #4C566A
|
||||||
tab-divider: #4C566A
|
tab-divider: #4C566A
|
||||||
tab-foreground-selected: #6c7a97
|
tab-foreground-selected: #4C566A
|
||||||
tab-foreground: #D8DEE9
|
tab-foreground: #D8DEE9
|
||||||
table-border: #4C566A
|
table-border: #4C566A
|
||||||
table-footer-background: #2e3440
|
table-footer-background: #2e3440
|
||||||
table-header-background: #2e3440
|
table-header-background: #2e3440
|
||||||
tag-background: #A3BE8C
|
tag-background: #A3BE8C
|
||||||
tag-foreground: #4C566A
|
tag-foreground: #4C566A
|
||||||
testcase-accent-level-1: #455e7d
|
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour background>>
|
tiddler-border: <<colour background>>
|
||||||
tiddler-controls-foreground-hover:
|
tiddler-controls-foreground-hover:
|
||||||
tiddler-controls-foreground-selected: #EBCB8B
|
tiddler-controls-foreground-selected: #EBCB8B
|
||||||
tiddler-controls-foreground: #5e6a84
|
tiddler-controls-foreground: #4C566A
|
||||||
tiddler-editor-background: #2e3440
|
tiddler-editor-background: #2e3440
|
||||||
tiddler-editor-border-image: #2e3440
|
tiddler-editor-border-image: #2e3440
|
||||||
tiddler-editor-border: #232732
|
tiddler-editor-border: #3b4252
|
||||||
tiddler-editor-fields-even: #2e3440
|
tiddler-editor-fields-even: #2e3440
|
||||||
tiddler-editor-fields-odd: #424a5b
|
tiddler-editor-fields-odd: #2e3440
|
||||||
tiddler-info-background: #2e3440
|
tiddler-info-background: #2e3440
|
||||||
tiddler-info-border: #2e3440
|
tiddler-info-border: #2e3440
|
||||||
tiddler-info-tab-background: #2e3440
|
tiddler-info-tab-background: #2e3440
|
||||||
tiddler-link-background: <<colour background>>
|
tiddler-link-background: <<colour background>>
|
||||||
tiddler-link-foreground: <<colour primary>>
|
tiddler-link-foreground: <<colour primary>>
|
||||||
tiddler-subtitle-foreground: #5c6881
|
tiddler-subtitle-foreground: #4C566A
|
||||||
tiddler-title-foreground: #81A1C1
|
tiddler-title-foreground: #81A1C1
|
||||||
toolbar-new-button:
|
toolbar-new-button:
|
||||||
toolbar-options-button:
|
toolbar-options-button:
|
||||||
@@ -140,4 +138,4 @@ wikilist-button-open-hover: #A3BE8C
|
|||||||
wikilist-button-reveal: #81A1C1
|
wikilist-button-reveal: #81A1C1
|
||||||
wikilist-button-reveal-hover: #81A1C1
|
wikilist-button-reveal-hover: #81A1C1
|
||||||
wikilist-button-remove: #B48EAD
|
wikilist-button-remove: #B48EAD
|
||||||
wikilist-button-remove-hover: #B48EAD
|
wikilist-button-remove-hover: #B48EAD
|
||||||
|
|||||||
+10
-16
@@ -11,7 +11,7 @@ alert-highlight: #881122
|
|||||||
alert-muted-foreground: #b99e2f
|
alert-muted-foreground: #b99e2f
|
||||||
background: #ffffff
|
background: #ffffff
|
||||||
blockquote-bar: <<colour muted-foreground>>
|
blockquote-bar: <<colour muted-foreground>>
|
||||||
button-background: #adadad
|
button-background:
|
||||||
button-foreground:
|
button-foreground:
|
||||||
button-border:
|
button-border:
|
||||||
code-background: #f7f7f9
|
code-background: #f7f7f9
|
||||||
@@ -47,41 +47,36 @@ modal-footer-background: #f5f5f5
|
|||||||
modal-footer-border: #dddddd
|
modal-footer-border: #dddddd
|
||||||
modal-header-border: #eeeeee
|
modal-header-border: #eeeeee
|
||||||
muted-foreground: #999999
|
muted-foreground: #999999
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
notification-background: #ffffdd
|
notification-background: #ffffdd
|
||||||
notification-border: #999999
|
notification-border: #999999
|
||||||
page-background: #000
|
page-background: #000
|
||||||
pre-background: #f5f5f5
|
pre-background: #f5f5f5
|
||||||
pre-border: #cccccc
|
pre-border: #cccccc
|
||||||
primary: #cc0000
|
primary: #cc0000
|
||||||
select-tag-background: <<colour foreground>>
|
select-tag-background:
|
||||||
select-tag-foreground: <<colour foreground>>
|
select-tag-foreground:
|
||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #797979
|
sidebar-controls-foreground-hover: #000000
|
||||||
sidebar-controls-foreground: #cacaca
|
sidebar-controls-foreground: #ffffff
|
||||||
sidebar-foreground-shadow: rgba(255,255,255, 0.0)
|
sidebar-foreground-shadow: rgba(255,255,255, 0.0)
|
||||||
sidebar-foreground: #acacac
|
sidebar-foreground: #acacac
|
||||||
sidebar-muted-foreground-hover: #444444
|
sidebar-muted-foreground-hover: #444444
|
||||||
sidebar-muted-foreground: #c0c0c0
|
sidebar-muted-foreground: #c0c0c0
|
||||||
sidebar-tab-background-selected: #000000
|
sidebar-tab-background-selected: #000
|
||||||
sidebar-tab-background: <<colour tab-background>>
|
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-border: <<colour tab-border>>
|
||||||
sidebar-tab-divider: <<colour tab-divider>>
|
sidebar-tab-divider: <<colour tab-divider>>
|
||||||
sidebar-tab-foreground-selected: #ff0909
|
sidebar-tab-foreground-selected:
|
||||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||||
sidebar-tiddler-link-foreground-hover: #ffbb99
|
sidebar-tiddler-link-foreground-hover: #ffbb99
|
||||||
sidebar-tiddler-link-foreground: #cc0000
|
sidebar-tiddler-link-foreground: #cc0000
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-deprecated: #ff0000
|
|
||||||
stability-experimental: #c07c00
|
|
||||||
stability-legacy: #0000ff
|
|
||||||
stability-stable: #008000
|
|
||||||
static-alert-foreground: #aaaaaa
|
static-alert-foreground: #aaaaaa
|
||||||
tab-background-selected: #ffffff
|
tab-background-selected: #ffffff
|
||||||
tab-background: #d8d8d8
|
tab-background: #d8d8d8
|
||||||
tab-border-selected: #d8d8d8
|
tab-border-selected: #d8d8d8
|
||||||
tab-border: #bbbbbb
|
tab-border: #cccccc
|
||||||
tab-divider: #d8d8d8
|
tab-divider: #d8d8d8
|
||||||
tab-foreground-selected: <<colour tab-foreground>>
|
tab-foreground-selected: <<colour tab-foreground>>
|
||||||
tab-foreground: #666666
|
tab-foreground: #666666
|
||||||
@@ -90,7 +85,6 @@ table-footer-background: #a8a8a8
|
|||||||
table-header-background: #f0f0f0
|
table-header-background: #f0f0f0
|
||||||
tag-background: #ffbb99
|
tag-background: #ffbb99
|
||||||
tag-foreground: #000
|
tag-foreground: #000
|
||||||
testcase-accent-level-1: #9e9eff
|
|
||||||
tiddler-background: <<colour background>>
|
tiddler-background: <<colour background>>
|
||||||
tiddler-border: <<colour background>>
|
tiddler-border: <<colour background>>
|
||||||
tiddler-controls-foreground-hover: #888888
|
tiddler-controls-foreground-hover: #888888
|
||||||
@@ -118,4 +112,4 @@ toolbar-delete-button:
|
|||||||
toolbar-cancel-button:
|
toolbar-cancel-button:
|
||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: #999999
|
untagged-background: #999999
|
||||||
very-muted-foreground: #888888
|
very-muted-foreground: #888888
|
||||||
|
|||||||
@@ -5,24 +5,24 @@ description: Warm, relaxing earth colours
|
|||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
|
||||||
# Background Tones
|
: Background Tones
|
||||||
|
|
||||||
base03: #002b36
|
base03: #002b36
|
||||||
base02: #073642
|
base02: #073642
|
||||||
|
|
||||||
# Content Tones
|
: Content Tones
|
||||||
|
|
||||||
base01: #586e75
|
base01: #586e75
|
||||||
base00: #657b83
|
base00: #657b83
|
||||||
base0: #839496
|
base0: #839496
|
||||||
base1: #93a1a1
|
base1: #93a1a1
|
||||||
|
|
||||||
# Background Tones
|
: Background Tones
|
||||||
|
|
||||||
base2: #eee8d5
|
base2: #eee8d5
|
||||||
base3: #fdf6e3
|
base3: #fdf6e3
|
||||||
|
|
||||||
# Accent Colors
|
: Accent Colors
|
||||||
|
|
||||||
yellow: #b58900
|
yellow: #b58900
|
||||||
orange: #cb4b16
|
orange: #cb4b16
|
||||||
@@ -33,7 +33,7 @@ blue: #268bd2
|
|||||||
cyan: #2aa198
|
cyan: #2aa198
|
||||||
green: #859900
|
green: #859900
|
||||||
|
|
||||||
# Additional Tones (RA)
|
: Additional Tones (RA)
|
||||||
|
|
||||||
base10: #c0c4bb
|
base10: #c0c4bb
|
||||||
violet-muted: #7c81b0
|
violet-muted: #7c81b0
|
||||||
@@ -45,9 +45,9 @@ red-hot: #ff2222
|
|||||||
blue-hot: #2298ee
|
blue-hot: #2298ee
|
||||||
green-hot: #98ee22
|
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
|
background: #fdf6e3
|
||||||
download-foreground: <<colour background>>
|
download-foreground: <<colour background>>
|
||||||
dragger-foreground: <<colour background>>
|
dragger-foreground: <<colour background>>
|
||||||
@@ -68,28 +68,24 @@ foreground: #657b83
|
|||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground: <<colour foreground>>
|
sidebar-controls-foreground: <<colour foreground>>
|
||||||
sidebar-foreground: <<colour foreground>>
|
sidebar-foreground: <<colour foreground>>
|
||||||
# base03
|
: base03
|
||||||
# base02
|
: base02
|
||||||
# base01
|
: base01
|
||||||
alert-muted-foreground: <<colour base01>>
|
alert-muted-foreground: <<colour base01>>
|
||||||
# base00
|
: base00
|
||||||
code-foreground: <<colour base00>>
|
code-foreground: <<colour base00>>
|
||||||
message-foreground: <<colour base00>>
|
message-foreground: <<colour base00>>
|
||||||
tag-foreground: <<colour base00>>
|
tag-foreground: <<colour base00>>
|
||||||
# base0
|
: base0
|
||||||
sidebar-tiddler-link-foreground: <<colour base0>>
|
sidebar-tiddler-link-foreground: <<colour base0>>
|
||||||
# base1
|
: base1
|
||||||
muted-foreground: <<colour base1>>
|
muted-foreground: <<colour base1>>
|
||||||
blockquote-bar: <<colour muted-foreground>>
|
blockquote-bar: <<colour muted-foreground>>
|
||||||
dropdown-border: <<colour muted-foreground>>
|
dropdown-border: <<colour muted-foreground>>
|
||||||
sidebar-muted-foreground: <<colour muted-foreground>>
|
sidebar-muted-foreground: <<colour muted-foreground>>
|
||||||
tiddler-title-foreground: <<colour muted-foreground>>
|
tiddler-title-foreground: <<colour muted-foreground>>
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
# base2
|
: base2
|
||||||
stability-deprecated: <<colour red>>
|
|
||||||
stability-experimental: <<colour yellow>>
|
|
||||||
stability-legacy: <<colour blue-hot>>
|
|
||||||
stability-stable: <<colour green>>
|
|
||||||
modal-footer-background: <<colour base2>>
|
modal-footer-background: <<colour base2>>
|
||||||
page-background: <<colour base2>>
|
page-background: <<colour base2>>
|
||||||
modal-backdrop: <<colour page-background>>
|
modal-backdrop: <<colour page-background>>
|
||||||
@@ -103,31 +99,31 @@ foreground: #657b83
|
|||||||
tag-background: <<colour base2>>
|
tag-background: <<colour base2>>
|
||||||
tiddler-editor-background: <<colour base2>>
|
tiddler-editor-background: <<colour base2>>
|
||||||
tiddler-info-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>>
|
tab-background: <<colour base2>>
|
||||||
dropdown-tab-background: <<colour tab-background>>
|
dropdown-tab-background: <<colour tab-background>>
|
||||||
# base3
|
: base3
|
||||||
alert-background: <<colour base3>>
|
alert-background: <<colour base3>>
|
||||||
message-background: <<colour base3>>
|
message-background: <<colour base3>>
|
||||||
# yellow
|
: yellow
|
||||||
# orange
|
: orange
|
||||||
# red
|
: red
|
||||||
# magenta
|
: magenta
|
||||||
alert-highlight: <<colour magenta>>
|
alert-highlight: <<colour magenta>>
|
||||||
# violet
|
: violet
|
||||||
external-link-foreground: <<colour violet>>
|
external-link-foreground: <<colour violet>>
|
||||||
|
: blue
|
||||||
# blue
|
: cyan
|
||||||
# cyan
|
: green
|
||||||
# green
|
: base10
|
||||||
# base10
|
|
||||||
tiddler-controls-foreground: <<colour base10>>
|
tiddler-controls-foreground: <<colour base10>>
|
||||||
# violet-muted
|
: violet-muted
|
||||||
external-link-foreground-visited: <<colour violet-muted>>
|
external-link-foreground-visited: <<colour violet-muted>>
|
||||||
# blue-muted
|
: blue-muted
|
||||||
primary: <<colour blue-muted>>
|
primary: <<colour blue-muted>>
|
||||||
download-background: #5bb83d
|
download-background: <<colour primary>>
|
||||||
tiddler-link-foreground: <<colour primary>>
|
tiddler-link-foreground: <<colour primary>>
|
||||||
|
|
||||||
alert-border: #b99e2f
|
alert-border: #b99e2f
|
||||||
diff-delete-background: <<colour red>>
|
diff-delete-background: <<colour red>>
|
||||||
diff-delete-foreground: <<colour background>>
|
diff-delete-foreground: <<colour background>>
|
||||||
@@ -138,7 +134,7 @@ diff-insert-foreground: <<colour background>>
|
|||||||
diff-invisible-background: <<colour yellow>>
|
diff-invisible-background: <<colour yellow>>
|
||||||
diff-invisible-foreground: <<colour background>>
|
diff-invisible-foreground: <<colour background>>
|
||||||
dirty-indicator: #ff0000
|
dirty-indicator: #ff0000
|
||||||
dropzone-background: #008800
|
dropzone-background: rgba(0,200,0,0.7)
|
||||||
external-link-background-hover: inherit
|
external-link-background-hover: inherit
|
||||||
external-link-background-visited: inherit
|
external-link-background-visited: inherit
|
||||||
external-link-background: inherit
|
external-link-background: inherit
|
||||||
@@ -150,10 +146,14 @@ message-border: #cfd6e6
|
|||||||
modal-border: #999999
|
modal-border: #999999
|
||||||
select-tag-background:
|
select-tag-background:
|
||||||
select-tag-foreground:
|
select-tag-foreground:
|
||||||
sidebar-controls-foreground-hover: #000000
|
sidebar-controls-foreground-hover:
|
||||||
sidebar-muted-foreground-hover:
|
sidebar-muted-foreground-hover:
|
||||||
sidebar-tab-background: #ded8c5
|
sidebar-tab-background: #ded8c5
|
||||||
sidebar-tiddler-link-foreground-hover:
|
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
|
static-alert-foreground: #aaaaaa
|
||||||
tab-border: #cccccc
|
tab-border: #cccccc
|
||||||
modal-footer-border: <<colour tab-border>>
|
modal-footer-border: <<colour tab-border>>
|
||||||
@@ -166,7 +166,6 @@ tab-divider: #d8d8d8
|
|||||||
sidebar-tab-divider: <<colour tab-divider>>
|
sidebar-tab-divider: <<colour tab-divider>>
|
||||||
table-border: #dddddd
|
table-border: #dddddd
|
||||||
table-footer-background: #a8a8a8
|
table-footer-background: #a8a8a8
|
||||||
testcase-accent-level-1: #bec8cc
|
|
||||||
tiddler-controls-foreground-hover: #888888
|
tiddler-controls-foreground-hover: #888888
|
||||||
tiddler-controls-foreground-selected: #444444
|
tiddler-controls-foreground-selected: #444444
|
||||||
tiddler-editor-border-image: #ffffff
|
tiddler-editor-border-image: #ffffff
|
||||||
@@ -186,4 +185,3 @@ toolbar-cancel-button:
|
|||||||
toolbar-done-button:
|
toolbar-done-button:
|
||||||
untagged-background: #999999
|
untagged-background: #999999
|
||||||
very-muted-foreground: #888888
|
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-hover: inherit
|
||||||
external-link-background-visited: inherit
|
external-link-background-visited: inherit
|
||||||
external-link-foreground: #268bd2
|
external-link-foreground: #268bd2
|
||||||
external-link-foreground-hover: #1d669c
|
external-link-foreground-hover:
|
||||||
external-link-foreground-visited: #268bd2
|
external-link-foreground-visited: #268bd2
|
||||||
footnote-target-background: #073642
|
footnote-target-background: #073642
|
||||||
foreground: #839496
|
foreground: #839496
|
||||||
@@ -56,7 +56,6 @@ modal-footer-background: #073642
|
|||||||
modal-footer-border: #586e75
|
modal-footer-border: #586e75
|
||||||
modal-header-border: #586e75
|
modal-header-border: #586e75
|
||||||
muted-foreground: #93a1a1
|
muted-foreground: #93a1a1
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
notification-background: #002b36
|
notification-background: #002b36
|
||||||
notification-border: #586e75
|
notification-border: #586e75
|
||||||
page-background: #073642
|
page-background: #073642
|
||||||
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #93a1a1
|
|||||||
sidebar-tiddler-link-foreground: #2aa198
|
sidebar-tiddler-link-foreground: #2aa198
|
||||||
sidebar-tiddler-link-foreground-hover: #eee8d5
|
sidebar-tiddler-link-foreground-hover: #eee8d5
|
||||||
site-title-foreground: #d33682
|
site-title-foreground: #d33682
|
||||||
stability-deprecated: #aa1a9f
|
stability-deprecated: #dc322f
|
||||||
stability-experimental: #806000
|
stability-experimental: #b58900
|
||||||
stability-legacy: #1d669c
|
stability-legacy: #268bd2
|
||||||
stability-stable: #00df11
|
stability-stable: #859900
|
||||||
static-alert-foreground: #93a1a1
|
static-alert-foreground: #93a1a1
|
||||||
tab-background: #073642
|
tab-background: #073642
|
||||||
tab-background-selected: #002b36
|
tab-background-selected: #002b36
|
||||||
@@ -99,7 +98,6 @@ table-footer-background: #073642
|
|||||||
table-header-background: #073642
|
table-header-background: #073642
|
||||||
tag-background: #b58900
|
tag-background: #b58900
|
||||||
tag-foreground: #002b36
|
tag-foreground: #002b36
|
||||||
testcase-accent-level-1: #073642
|
|
||||||
tiddler-background: #002b36
|
tiddler-background: #002b36
|
||||||
tiddler-border: #586e75
|
tiddler-border: #586e75
|
||||||
tiddler-controls-foreground: inherit
|
tiddler-controls-foreground: inherit
|
||||||
@@ -127,4 +125,4 @@ toolbar-new-button: #839496
|
|||||||
toolbar-options-button: #839496
|
toolbar-options-button: #839496
|
||||||
toolbar-save-button: inherit
|
toolbar-save-button: inherit
|
||||||
untagged-background: #586e75
|
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-background: #b58900
|
||||||
diff-invisible-foreground: #eee8d5
|
diff-invisible-foreground: #eee8d5
|
||||||
dirty-indicator: #dc322f
|
dirty-indicator: #dc322f
|
||||||
download-background: #00910b
|
download-background: #859900
|
||||||
download-foreground: #eee8d5
|
download-foreground: #eee8d5
|
||||||
dragger-background: #eee8d5
|
dragger-background: #eee8d5
|
||||||
dragger-foreground: #657b83
|
dragger-foreground: #657b83
|
||||||
@@ -56,7 +56,6 @@ modal-footer-background: #eee8d5
|
|||||||
modal-footer-border: #93a1a1
|
modal-footer-border: #93a1a1
|
||||||
modal-header-border: #93a1a1
|
modal-header-border: #93a1a1
|
||||||
muted-foreground: #586e75
|
muted-foreground: #586e75
|
||||||
network-activity-foreground: <<colour primary>>
|
|
||||||
notification-background: #fdf6e3
|
notification-background: #fdf6e3
|
||||||
notification-border: #93a1a1
|
notification-border: #93a1a1
|
||||||
page-background: #eee8d5
|
page-background: #eee8d5
|
||||||
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #586e75
|
|||||||
sidebar-tiddler-link-foreground: #2aa198
|
sidebar-tiddler-link-foreground: #2aa198
|
||||||
sidebar-tiddler-link-foreground-hover: #002b36
|
sidebar-tiddler-link-foreground-hover: #002b36
|
||||||
site-title-foreground: #d33682
|
site-title-foreground: #d33682
|
||||||
stability-deprecated: #d21a1a
|
stability-deprecated: #dc322f
|
||||||
stability-experimental: #771e00
|
stability-experimental: #b58900
|
||||||
stability-legacy: #227abb
|
stability-legacy: #268bd2
|
||||||
stability-stable: #576400
|
stability-stable: #859900
|
||||||
static-alert-foreground: #586e75
|
static-alert-foreground: #586e75
|
||||||
tab-background: #eee8d5
|
tab-background: #eee8d5
|
||||||
tab-background-selected: #fdf6e3
|
tab-background-selected: #fdf6e3
|
||||||
@@ -99,7 +98,6 @@ table-footer-background: #eee8d5
|
|||||||
table-header-background: #eee8d5
|
table-header-background: #eee8d5
|
||||||
tag-background: #b58900
|
tag-background: #b58900
|
||||||
tag-foreground: #fdf6e3
|
tag-foreground: #fdf6e3
|
||||||
testcase-accent-level-1: #afc2db
|
|
||||||
tiddler-background: #fdf6e3
|
tiddler-background: #fdf6e3
|
||||||
tiddler-border: #93a1a1
|
tiddler-border: #93a1a1
|
||||||
tiddler-controls-foreground: inherit
|
tiddler-controls-foreground: inherit
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ table-footer-background: rgba(0,0,0,.4)
|
|||||||
table-header-background: rgba(0,0,0,.1)
|
table-header-background: rgba(0,0,0,.1)
|
||||||
tag-background: rgb(255, 201, 102)
|
tag-background: rgb(255, 201, 102)
|
||||||
tag-foreground: rgb(25, 25, 25)
|
tag-foreground: rgb(25, 25, 25)
|
||||||
testcase-accent-level-1: rgb(13, 52, 99)
|
|
||||||
tiddler-background: rgb(38, 38, 38)
|
tiddler-background: rgb(38, 38, 38)
|
||||||
tiddler-border: rgba(240, 196, 117, 0.7)
|
tiddler-border: rgba(240, 196, 117, 0.7)
|
||||||
tiddler-controls-foreground: rgb(128, 128, 128)
|
tiddler-controls-foreground: rgb(128, 128, 128)
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ select-tag-foreground:
|
|||||||
sidebar-button-foreground: <<colour foreground>>
|
sidebar-button-foreground: <<colour foreground>>
|
||||||
sidebar-controls-foreground-hover: #000000
|
sidebar-controls-foreground-hover: #000000
|
||||||
sidebar-controls-foreground: #aaaaaa
|
sidebar-controls-foreground: #aaaaaa
|
||||||
sidebar-foreground-shadow: #ffffff
|
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
|
||||||
sidebar-foreground: #acacac
|
sidebar-foreground: #acacac
|
||||||
sidebar-muted-foreground-hover: #444444
|
sidebar-muted-foreground-hover: #444444
|
||||||
sidebar-muted-foreground: #c0c0c0
|
sidebar-muted-foreground: #c0c0c0
|
||||||
@@ -83,7 +83,7 @@ sidebar-tab-foreground: <<colour tab-foreground>>
|
|||||||
sidebar-tiddler-link-foreground-hover: #444444
|
sidebar-tiddler-link-foreground-hover: #444444
|
||||||
sidebar-tiddler-link-foreground: #999999
|
sidebar-tiddler-link-foreground: #999999
|
||||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||||
stability-stable: #00b700
|
stability-stable: #008000
|
||||||
stability-experimental: #c07c00
|
stability-experimental: #c07c00
|
||||||
stability-deprecated: #ff0000
|
stability-deprecated: #ff0000
|
||||||
stability-legacy: #0000ff
|
stability-legacy: #0000ff
|
||||||
@@ -138,13 +138,13 @@ wikilist-title: #666666
|
|||||||
wikilist-title-svg: <<colour wikilist-title>>
|
wikilist-title-svg: <<colour wikilist-title>>
|
||||||
wikilist-url: #aaaaaa
|
wikilist-url: #aaaaaa
|
||||||
wikilist-button-open: #4fb82b
|
wikilist-button-open: #4fb82b
|
||||||
wikilist-button-open-hover: #009300
|
wikilist-button-open-hover: green
|
||||||
wikilist-button-reveal: #5778d8
|
wikilist-button-reveal: #5778d8
|
||||||
wikilist-button-reveal-hover: #0000ff
|
wikilist-button-reveal-hover: blue
|
||||||
wikilist-button-remove: #d85778
|
wikilist-button-remove: #d85778
|
||||||
wikilist-button-remove-hover: #ff0000
|
wikilist-button-remove-hover: red
|
||||||
wikilist-toolbar-background: #d3d3d3
|
wikilist-toolbar-background: #d3d3d3
|
||||||
wikilist-toolbar-foreground: #888888
|
wikilist-toolbar-foreground: #888888
|
||||||
wikilist-droplink-dragover: #ffc0c0
|
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||||
wikilist-button-background: #acacac
|
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>>
|
inputCancelActions=<<cancel-search-actions>>
|
||||||
inputAcceptActions=<<input-accept-actions>>
|
inputAcceptActions=<<input-accept-actions>>
|
||||||
inputAcceptVariantActions=<<input-accept-variant-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}}/>
|
filterMinLength={{$:/config/Search/MinLength}}/>
|
||||||
</$keyboard>
|
</$keyboard>
|
||||||
</$keyboard>
|
</$keyboard>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ caption: {{$:/language/ControlPanel/Plugins/Caption}}
|
|||||||
\whitespace trim
|
\whitespace trim
|
||||||
<$set name="plugin-type" value="""$type$""">
|
<$set name="plugin-type" value="""$type$""">
|
||||||
<$set name="qualified-state" value=<<qualify "$:/state/plugin-info">>>
|
<$set name="qualified-state" value=<<qualify "$:/state/plugin-info">>>
|
||||||
<$list filter="[!has[draft.of]plugin-type[$type$]sort[name]]" emptyMessage=<<lingo "Empty/Hint">> template="$:/core/ui/Components/plugin-info"/>
|
<$list filter="[all[tiddlers+shadows]!has[draft.of]plugin-type[$type$]!field:hidden[yes]sort[name]]" emptyMessage=<<lingo "Empty/Hint">> template="$:/core/ui/Components/plugin-info"/>
|
||||||
</$set>
|
</$set>
|
||||||
</$set>
|
</$set>
|
||||||
\end
|
\end
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
title: $:/core/ui/ControlPanel/Plugins/Installed/Languages
|
title: $:/core/ui/ControlPanel/Plugins/Installed/Languages
|
||||||
tags: $:/tags/ControlPanel/Plugins
|
tags: $:/tags/ControlPanel/Plugins
|
||||||
caption: {{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter="[!has[draft.of]plugin-type[language]]"/>)
|
caption: {{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter="[all[tiddlers+shadows]is[plugin]!field:hidden[yes]plugin-type[language]]"/>)
|
||||||
|
|
||||||
<<plugin-table language>>
|
<<plugin-table language>>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
title: $:/core/ui/ControlPanel/Plugins/Installed/Plugins
|
title: $:/core/ui/ControlPanel/Plugins/Installed/Plugins
|
||||||
tags: $:/tags/ControlPanel/Plugins
|
tags: $:/tags/ControlPanel/Plugins
|
||||||
caption: {{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter="[!has[draft.of]plugin-type[plugin]]"/>)
|
caption: {{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter="[all[tiddlers+shadows]is[plugin]plugin-type[plugin]]"/>)
|
||||||
|
|
||||||
<<plugin-table plugin>>
|
<<plugin-table plugin>>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
title: $:/core/ui/ControlPanel/Plugins/Installed/Themes
|
title: $:/core/ui/ControlPanel/Plugins/Installed/Themes
|
||||||
tags: $:/tags/ControlPanel/Plugins
|
tags: $:/tags/ControlPanel/Plugins
|
||||||
caption: {{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter="[!has[draft.of]plugin-type[theme]]"/>)
|
caption: {{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter="[all[tiddlers+shadows]is[plugin]plugin-type[theme]]"/>)
|
||||||
|
|
||||||
<<plugin-table theme>>
|
<<plugin-table theme>>
|
||||||
|
|||||||
@@ -21,6 +21,12 @@ http://$(userName)$.tiddlyspot.com/$path$/
|
|||||||
</$reveal>
|
</$reveal>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
|
<div class="tc-message-box">
|
||||||
|
|
||||||
|
<<lingo ReadOnly>>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<<lingo Description>>
|
<<lingo Description>>
|
||||||
|
|
||||||
|<<lingo UserName>> |<$edit-text tiddler="$:/UploadName" default="" tag="input"/> |
|
|<<lingo UserName>> |<$edit-text tiddler="$:/UploadName" default="" tag="input"/> |
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ tags: $:/tags/ControlPanel/Saving
|
|||||||
caption: {{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}
|
caption: {{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}
|
||||||
|
|
||||||
\define lingo-base() $:/language/ControlPanel/Saving/GitService/
|
\define lingo-base() $:/language/ControlPanel/Saving/GitService/
|
||||||
\define service-name() Gitea
|
\define service-name() ~Gitea
|
||||||
|
|
||||||
<<lingo Description>>
|
<<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>> >
|
<$let backgroundColor=<<colour>> >
|
||||||
<span class="tc-tag-label tc-tag-list-item tc-small-gap-right"
|
<span class="tc-tag-label tc-tag-list-item tc-small-gap-right"
|
||||||
data-tag-title=<<currentTiddler>>
|
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>>/>
|
<$transclude tiddler=<<icon>>/>
|
||||||
<$view field="title" format="text"/>
|
<$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"
|
tooltip="Export the TiddlyWiki core code for running with external JavaScript"
|
||||||
aria-label="export TiddlyWiki core"
|
aria-label="export TiddlyWiki core"
|
||||||
class="tc-btn-big-green">
|
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}}
|
{{$:/core/images/download-button}}
|
||||||
<span class="tc-tiny-gap-left">
|
<span class="tc-tiny-gap-left">
|
||||||
Download TiddlyWiki core
|
Download TiddlyWiki core
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ title: $:/core/ui/ImportListing
|
|||||||
\end
|
\end
|
||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<div class="tc-table-wrapper">
|
|
||||||
<table class="tc-import-table">
|
<table class="tc-import-table">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -130,4 +129,3 @@ title: $:/core/ui/ImportListing
|
|||||||
</$list>
|
</$list>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</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:
|
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">
|
<$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-setfield $tiddler=<<qualify "$:/temp/alert">> text=<<noExportMsg>> subtitle="Export ~TiddllyWiki Core"/>
|
||||||
<$action-sendmessage $message="tm-modal" $param=<<qualify "$:/temp/alert">>/>
|
<$action-sendmessage $message="tm-modal" $param=<<qualify "$:/temp/alert">>/>
|
||||||
</$list>
|
</$list>
|
||||||
|
|||||||
+25
-20
@@ -2,26 +2,31 @@ title: $:/core/ui/SideBar/Tools
|
|||||||
tags: $:/tags/SideBar
|
tags: $:/tags/SideBar
|
||||||
caption: {{$:/language/SideBar/Tools/Caption}}
|
caption: {{$:/language/SideBar/Tools/Caption}}
|
||||||
|
|
||||||
\whitespace trim
|
\define lingo-base() $:/language/ControlPanel/
|
||||||
|
\define config-title()
|
||||||
\procedure lingo-base() $:/language/ControlPanel/
|
$:/config/PageControlButtons/Visibility/$(listItem)$
|
||||||
\function config-title() [[$:/config/PageControlButtons/Visibility/$(listItem)$]substitute[]]
|
\end
|
||||||
|
|
||||||
<<lingo Basics/Version/Prompt>> <<version>>
|
<<lingo Basics/Version/Prompt>> <<version>>
|
||||||
|
|
||||||
<$let tv-config-toolbar-icons="yes"
|
<$set name="tv-config-toolbar-icons" value="yes">
|
||||||
tv-config-toolbar-text="yes"
|
|
||||||
tv-config-toolbar-class=""
|
<$set name="tv-config-toolbar-text" value="yes">
|
||||||
>
|
|
||||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
|
<$set name="tv-config-toolbar-class" value="">
|
||||||
<div class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] tc-sidebar-tools-item +[join[ ]] }}}
|
|
||||||
data-title=<<listItem>>
|
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
|
||||||
>
|
|
||||||
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show" class="tc-tiny-gap-right"/>
|
<div style="position:relative;" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>
|
||||||
<$transclude $tiddler=<<listItem>>/>
|
|
||||||
<i class="tc-tiny-gap-left tc-muted">
|
<$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>
|
||||||
<$transclude $tiddler=<<listItem>> $field="description"/>
|
|
||||||
</i>
|
</div>
|
||||||
</div>
|
|
||||||
</$list>
|
</$list>
|
||||||
</$let>
|
|
||||||
|
</$set>
|
||||||
|
|
||||||
|
</$set>
|
||||||
|
|
||||||
|
</$set>
|
||||||
|
|||||||
@@ -103,7 +103,8 @@ code-body: yes
|
|||||||
-Description
|
-Description
|
||||||
-Narrative
|
-Narrative
|
||||||
-[[$:/temp/testcase/draft-title]]
|
-[[$:/temp/testcase/draft-title]]
|
||||||
-[has[plugin-type]]
|
-[[$:/status/RequireReloadDueToPluginChange]]
|
||||||
|
-[[$:/core]]
|
||||||
-[prefix<tf.state>]
|
-[prefix<tf.state>]
|
||||||
-[prefix[$:/state/popup/export]]
|
-[prefix[$:/state/popup/export]]
|
||||||
-[prefix[$:/HistoryList]]
|
-[prefix[$:/HistoryList]]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
title: $:/core/ui/testcases/actions/Export
|
title: $:/core/ui/testcases/actions/Export
|
||||||
tags: $:/tags/TestCase/Actions
|
tags: $:/tags/TestCase/Actions
|
||||||
|
|
||||||
<$macrocall $name="exportButton" exportFilter="[all[tiddlers]sort[]] -[prefix[$:/state/]] -Description -Narrative -ExpectedResult -[has[plugin-type]]" lingoBase="$:/language/Buttons/ExportTiddlers/"/>
|
<$macrocall $name="exportButton" exportFilter="[all[tiddlers]sort[]] -[prefix[$:/state/]] -Description -Narrative -ExpectedResult -[[$:/core]]" lingoBase="$:/language/Buttons/ExportTiddlers/"/>
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
title: $:/core/ui/ControlPanel/WikiInformation
|
|
||||||
tags: $:/tags/ControlPanel/Info
|
|
||||||
caption: <%if [[$:/language/ControlPanel/WikiInformation/Caption]is[shadow]] %>{{$:/language/ControlPanel/WikiInformation/Caption}}<%else%>Wiki Information<%endif%>
|
|
||||||
subtitle: <%if [[$:/language/ControlPanel/WikiInformation/Caption]is[shadow]] %>{{$:/language/ControlPanel/WikiInformation/Caption}}<%else%>Wiki Information<%endif%>
|
|
||||||
|
|
||||||
\procedure lingo-base() $:/language/ControlPanel/WikiInformation/
|
|
||||||
|
|
||||||
<!--
|
|
||||||
A custom implementation of the lingo macro that works even if this tiddler has been copied to an earlier version of TiddlyWiki that doesn't include the necessary lingo tiddlers in the core.
|
|
||||||
-->
|
|
||||||
|
|
||||||
\procedure intrinsic-lingo-Hint()
|
|
||||||
This page summarises high level information about the configuration of this ~TiddlyWiki. It is designed to enable users to quickly share relevant aspects of the configuration of their ~TiddlyWiki with others, for example when seeking help in one of the forums. No private or personal information is included, and nothing is shared without being explicitly copied and pasted elsewhere
|
|
||||||
\end intrinsic-lingo-Hint
|
|
||||||
|
|
||||||
\procedure intrinsic-lingo-Drag/Caption()
|
|
||||||
Drag this link to copy this tool to another wiki
|
|
||||||
\end intrinsic-lingo-Drag/Caption
|
|
||||||
|
|
||||||
\procedure lingo(title,mode:"inline")
|
|
||||||
<%if [<title>addprefix<lingo-base>is[shadow]] %>
|
|
||||||
<$transclude $tiddler={{{ [<title>addprefix<lingo-base>] }}} $mode=<<mode>>/>
|
|
||||||
<%else%>
|
|
||||||
<$transclude $variable={{{ [<title>addprefix[intrinsic-lingo-]] }}} $mode=<<mode>>/>
|
|
||||||
<%endif%>
|
|
||||||
\end lingo
|
|
||||||
|
|
||||||
\whitespace trim
|
|
||||||
|
|
||||||
\procedure capture-item(label,value)
|
|
||||||
<$action-setfield $tiddler=<<tempWikiInfo>> text={{{ [<tempWikiInfo>get[text]addsuffix<label>addsuffix[: ]addsuffix<value>addsuffix<crlf>] }}}/>
|
|
||||||
\end capture-item
|
|
||||||
|
|
||||||
\procedure capture-item-wikified(label,value)
|
|
||||||
<$wikify name="text" text=<<value>> mode="inline">
|
|
||||||
<$transclude
|
|
||||||
$variable="capture-item"
|
|
||||||
label=<<label>>
|
|
||||||
value=<<text>>
|
|
||||||
/>
|
|
||||||
</$wikify>
|
|
||||||
\end capture-item-wikified
|
|
||||||
|
|
||||||
\procedure capture-wiki-info(tempWikiInfo)
|
|
||||||
<$transclude $variable="capture-item-wikified" label="TiddlyWiki Version" value="<<version>>"/>
|
|
||||||
<$transclude $variable="capture-item" label="Current palette" value={{$:/palette}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Current theme" value={{$:/theme}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Current layout" value={{$:/layout}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Browser language setting" value={{$:/info/browser/language}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Default type for missing tiddlers" value={{$:/config/DefaultMissingType}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Auto save setting" value={{$:/config/AutoSave}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Code wrapping setting" value={{$:/themes/tiddlywiki/vanilla/options/codewrapping}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Sticky titles setting" value={{$:/themes/tiddlywiki/vanilla/options/stickytitles}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Sidebar layout setting" value={{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Auto focus field setting for new tiddlers" value={{$:/config/AutoFocus}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Current storyview setting" value={{$:/view}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Toolbar text setting" value={{$:/config/Toolbar/Text}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Toolbar icon setting" value={{$:/config/Toolbar/Icons}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Button class setting" value={{$:/config/Toolbar/ButtonClass}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Navigation address bar setting" value={{$:/config/Navigation/UpdateAddressBar}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Tiddler opening behaviour setting for navigations from outside the story river" value={{$:/config/Navigation/openLinkFromOutsideRiver}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Tiddler opening behaviour setting for navigations from within the story river" value={{$:/config/Navigation/openLinkFromInsideRiver}}/>
|
|
||||||
<$transclude $variable="capture-item" label="CamelCase linking setting" value={{$:/config/WikiParserRules/Inline/wikilink}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Keyboard shortcuts that have been customised" value={{{ [all[tiddlers]prefix[$:/config/shortcuts]] +[join[,]] }}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Disabled plugins" value={{{ [all[tiddlers]prefix[$:/config/Plugins/Disabled/]] :filter[{!!text}match[yes]] :map[<currentTiddler>removeprefix[$:/config/Plugins/Disabled/]] +[join[,]] }}}/>
|
|
||||||
<$transclude $variable="capture-item" label="Plugins" value={{{ [has[plugin-type]sort[]] :filter[<currentTiddler>addprefix[$:/config/Plugins/Disabled/]get[text]else[no]!match[yes]] :map[{!!version}addprefix[ - ]addprefix<currentTiddler>] +[addprefix[ ]addprefix<crlf>join[]] }}}/>
|
|
||||||
\end capture-wiki-info
|
|
||||||
|
|
||||||
\procedure template-header()
|
|
||||||
<details><summary>Wiki Information</summary><pre><code>
|
|
||||||
|
|
||||||
\end template-header
|
|
||||||
|
|
||||||
\procedure template-footer()
|
|
||||||
|
|
||||||
</code></pre></details>
|
|
||||||
\end template-footer
|
|
||||||
|
|
||||||
\procedure display-wiki-info-modal()
|
|
||||||
<$let
|
|
||||||
tempWikiInfo="$:/temp/wiki-info"
|
|
||||||
crlf={{{ [charcode[13],[10]] }}}
|
|
||||||
>
|
|
||||||
<$action-sendmessage
|
|
||||||
$message="tm-modal"
|
|
||||||
$param="$:/core/ui/ControlPanel/WikiInformation"
|
|
||||||
isModal="yes"
|
|
||||||
tempWikiInfo=<<tempWikiInfo>>
|
|
||||||
/>
|
|
||||||
<$action-deletetiddler $tiddler=<<tempWikiInfo>>/>
|
|
||||||
<$action-setfield $tiddler=<<tempWikiInfo>> text=<<template-header>>/>
|
|
||||||
<$transclude
|
|
||||||
$variable="capture-wiki-info"
|
|
||||||
tempWikiInfo=<<tempWikiInfo>>
|
|
||||||
/>
|
|
||||||
<$action-setfield $tiddler=<<tempWikiInfo>> text={{{ [<tempWikiInfo>get[text]addsuffix<template-footer>] }}}/>
|
|
||||||
</$let>
|
|
||||||
\end display-wiki-info-modal
|
|
||||||
|
|
||||||
\procedure story-content()
|
|
||||||
<<lingo title:"Hint" mode:"block">>
|
|
||||||
|
|
||||||
<$button>
|
|
||||||
<<display-wiki-info-modal>>
|
|
||||||
Click to generate wiki information report
|
|
||||||
</$button>
|
|
||||||
|
|
||||||
<$link to="$:/core/ui/ControlPanel/WikiInformation">
|
|
||||||
<<lingo title:"Drag/Caption" mode:"inline">>
|
|
||||||
</$link>
|
|
||||||
\end story-content
|
|
||||||
|
|
||||||
\procedure modal-content()
|
|
||||||
<p>
|
|
||||||
<$transclude $variable="copy-to-clipboard" src={{{ [<tempWikiInfo>get[text]] }}}/>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<$edit-text tiddler=<<tempWikiInfo>> tag="textarea" disabled="yes" class="tc-max-width"/>
|
|
||||||
</p>
|
|
||||||
\end modal-content
|
|
||||||
|
|
||||||
<$transclude $variable={{{ [<isModal>match[yes]then[modal-content]else[story-content]] }}} $mode="block"/>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
title: $:/config/OfficialPluginLibrary
|
title: $:/config/OfficialPluginLibrary
|
||||||
tags: $:/tags/PluginLibrary
|
tags: $:/tags/PluginLibrary
|
||||||
url: https://tiddlywiki.com/library/v5.3.8/index.html
|
url: https://tiddlywiki.com/library/v5.3.7/index.html
|
||||||
caption: {{$:/language/OfficialPluginLibrary}}
|
caption: {{$:/language/OfficialPluginLibrary}}
|
||||||
|
|
||||||
{{$:/language/OfficialPluginLibrary/Hint}}
|
{{$:/language/OfficialPluginLibrary/Hint}}
|
||||||
|
|||||||
@@ -1,58 +1,55 @@
|
|||||||
title: $:/core/macros/colour-picker
|
title: $:/core/macros/colour-picker
|
||||||
tags: $:/tags/Macro
|
tags: $:/tags/Macro
|
||||||
|
|
||||||
\define colour-picker-update-recent()
|
\procedure colour-picker-update-recent()
|
||||||
<$action-listops
|
<$action-listops
|
||||||
$tiddler="$:/config/ColourPicker/Recent"
|
$tiddler="$:/config/ColourPicker/Recent"
|
||||||
$subfilter="$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]"
|
$subfilter="[<colour-picker-value>] [list[$:/config/ColourPicker/Recent]remove<colour-picker-value>] +[limit[8]]"
|
||||||
/>
|
/>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define colour-picker-inner(actions)
|
\procedure colour-picker-inner(actions)
|
||||||
<$button tag="a" tooltip="""$(colour-picker-value)$""">
|
<$button tag="a" tooltip=<<colour-picker-value>>>
|
||||||
$(colour-picker-update-recent)$
|
<<colour-picker-update-recent>>
|
||||||
<$transclude $variable="__actions__"/>
|
<$transclude $variable="actions"/>
|
||||||
|
<span style.display="inline-block" style.backgroundColor=<<colour-picker-value>> style.width="100%" style.height="100%" style.borderRadius="50%"/>
|
||||||
<span style="display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;"/>
|
|
||||||
|
|
||||||
</$button>
|
</$button>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define colour-picker-recent-inner(actions)
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<$set name="colour-picker-value" value="$(recentColour)$">
|
\procedure colour-picker-recent-inner(actions)
|
||||||
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
|
<$set name="colour-picker-value" value=<<recentColour>>>
|
||||||
|
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
|
||||||
</$set>
|
</$set>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define colour-picker-recent(actions)
|
\procedure colour-picker-recent(actions)
|
||||||
\whitespace trim
|
|
||||||
{{$:/language/ColourPicker/Recent}}<$list filter="[list[$:/config/ColourPicker/Recent]]" variable="recentColour">
|
{{$:/language/ColourPicker/Recent}}<$list filter="[list[$:/config/ColourPicker/Recent]]" variable="recentColour">
|
||||||
 
|
 
|
||||||
<$macrocall $name="colour-picker-recent-inner" actions=<<__actions__>>/>
|
<$transclude $variable="colour-picker-recent-inner" actions=<<actions>>/>
|
||||||
</$list>
|
</$list>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define colour-picker(actions)
|
\procedure colour-picker(actions)
|
||||||
\whitespace trim
|
|
||||||
<div class="tc-colour-chooser">
|
<div class="tc-colour-chooser">
|
||||||
|
|
||||||
<$macrocall $name="colour-picker-recent" actions=<<__actions__>>/>
|
<$transclude $variable="colour-picker-recent" actions=<<actions>>/>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<$list filter="LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black" variable="colour-picker-value">
|
<$list filter="LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black" variable="colour-picker-value">
|
||||||
 
|
 
|
||||||
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
|
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
|
||||||
</$list>
|
</$list>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder=""/>
|
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder="" class="tc-tiny-gap-right"/>
|
||||||
 
|
|
||||||
<$edit-text tiddler="$:/config/ColourPicker/New" type="color" tag="input"/>
|
<$edit-text tiddler="$:/config/ColourPicker/New" type="color" tag="input"/>
|
||||||
<$set name="colour-picker-value" value={{$:/config/ColourPicker/New}}>
|
<$set name="colour-picker-value" value={{$:/config/ColourPicker/New}}>
|
||||||
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
|
<%if [{$:/config/ColourPicker/New}!is[blank]] %>
|
||||||
|
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
|
||||||
|
<%endif%>
|
||||||
</$set>
|
</$set>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ tags: $:/tags/Macro
|
|||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
|
|
||||||
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style)
|
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style,type:"text/plain",plain)
|
||||||
<$button message="tm-copy-to-clipboard"
|
\procedure copy-to-clipboard-actions()
|
||||||
param=<<src>>
|
<$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>>
|
class=<<class>>
|
||||||
style=<<style>>
|
style=<<style>>
|
||||||
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
|
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
|
||||||
@@ -15,12 +17,12 @@ tags: $:/tags/Macro
|
|||||||
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
|
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$button>
|
</$button>
|
||||||
\end
|
\end copy-to-clipboard
|
||||||
|
|
||||||
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style)
|
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style,type:"text/plain")
|
||||||
<div style="position: relative;">
|
<div style.position="relative">
|
||||||
<div style="position: absolute; bottom: 0; right: 0;">
|
<div style.position="absolute" style.bottom="0" style.right="0">
|
||||||
<$macrocall $name="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>>/>
|
<$transclude $variable="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>> type=<<type>> plain=<<plain>>/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
\end
|
\end
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
title: $:/core/macros/dumpvariables
|
title: $:/core/macros/dumpvariables
|
||||||
tags: $:/tags/Macro
|
tags: $:/tags/Macro
|
||||||
|
|
||||||
\define dumpvariables()
|
\procedure dumpvariables()
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<ul>
|
<ul>
|
||||||
<$list filter="[variables[]]" variable="varname">
|
<$list filter="[variables[]]" variable="varname">
|
||||||
|
|||||||
@@ -1,39 +1,36 @@
|
|||||||
created: 20170715180840889
|
|
||||||
modified: 20170715180914005
|
|
||||||
tags: $:/tags/Macro
|
tags: $:/tags/Macro
|
||||||
title: $:/core/macros/image-picker
|
title: $:/core/macros/image-picker
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
\define image-picker-thumbnail(actions)
|
\procedure image-picker-thumbnail(actions)
|
||||||
<$button tag="a" tooltip="""$(imageTitle)$"""><$transclude $variable="__actions__"/><$transclude tiddler=<<imageTitle>>/></$button>
|
<$button tag="a" tooltip=<<imageTitle>>><$transclude $variable="actions"/><$transclude tiddler=<<imageTitle>>/></$button>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define image-picker-list(filter,actions)
|
\procedure image-picker-list(filter,actions)
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<$list filter="""$filter$""" variable="imageTitle">
|
<$list filter=<<filter>> variable="imageTitle">
|
||||||
<$macrocall $name="image-picker-thumbnail" actions=<<__actions__>>/>
|
<$transclude $variable="image-picker-thumbnail" actions=<<actions>>/>
|
||||||
 
|
 
|
||||||
</$list>
|
</$list>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define image-picker(actions,filter:"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]",subfilter:"")
|
\procedure image-picker(actions,filter:"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]",subfilter:"")
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<div class="tc-image-chooser">
|
<div class="tc-image-chooser">
|
||||||
<$vars state-system=<<qualify "$:/state/image-picker/system">>>
|
<$let state-system=<<qualify "$:/state/image-picker/system">> tv-filter={{{ [<filter>search-replace[$subfilter$],<subfilter>] }}}>
|
||||||
<$checkbox tiddler=<<state-system>> field="text" checked="show" unchecked="hide" default="hide">
|
<$checkbox tiddler=<<state-system>> field="text" checked="show" unchecked="hide" default="hide">
|
||||||
 
|
<span class="tc-tiny-gap-left">{{$:/language/SystemTiddlers/Include/Prompt}}</span>
|
||||||
{{$:/language/SystemTiddlers/Include/Prompt}}
|
|
||||||
</$checkbox>
|
</$checkbox>
|
||||||
<$reveal state=<<state-system>> type="match" text="hide" default="hide" tag="div">
|
<$reveal state=<<state-system>> type="match" text="hide" default="hide" tag="div">
|
||||||
<$macrocall $name="image-picker-list" filter="""$filter$ +[!is[system]]""" actions=<<__actions__>>/>
|
<$transclude $variable="image-picker-list" filter=`$(tv-filter)$ +[!is[system]]` actions=<<actions>>/>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
<$reveal state=<<state-system>> type="nomatch" text="hide" default="hide" tag="div">
|
<$reveal state=<<state-system>> type="nomatch" text="hide" default="hide" tag="div">
|
||||||
<$macrocall $name="image-picker-list" filter="""$filter$""" actions=<<__actions__>>/>
|
<$transclude $variable="image-picker-list" filter=<<tv-filter>> actions=<<actions>>/>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
</$vars>
|
</$let>
|
||||||
</div>
|
</div>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define image-picker-include-tagged-images(actions)
|
\procedure image-picker-include-tagged-images(actions)
|
||||||
<$macrocall $name="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions=<<__actions__>>/>
|
<$transclude $variable="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions=<<actions>>/>
|
||||||
\end
|
\end
|
||||||
|
|||||||
+36
-39
@@ -1,14 +1,18 @@
|
|||||||
title: $:/core/macros/list
|
title: $:/core/macros/list
|
||||||
tags: $:/tags/Macro
|
tags: $:/tags/Macro
|
||||||
|
|
||||||
\define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption")
|
\procedure list-links-draggable-drop-actions()
|
||||||
|
<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter="+[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
||||||
|
\end
|
||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<$genesis $type=<<__type__>> class=<<__class__>>>
|
\procedure list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption")
|
||||||
<$list filter=<<__filter__>> emptyMessage=<<__emptyMessage__>>>
|
<$genesis $type=<<type>> class=<<class>>>
|
||||||
<$genesis $type=<<__subtype__>>>
|
<$list filter=<<filter>> emptyMessage=<<emptyMessage>>>
|
||||||
|
<$genesis $type=<<subtype>>>
|
||||||
<$link to={{!!title}}>
|
<$link to={{!!title}}>
|
||||||
<$let tv-wikilinks="no">
|
<$let tv-wikilinks="no">
|
||||||
<$transclude field=<<__field__>>>
|
<$transclude field=<<field>>>
|
||||||
<$view field="title"/>
|
<$view field="title"/>
|
||||||
</$transclude>
|
</$transclude>
|
||||||
</$let>
|
</$let>
|
||||||
@@ -18,24 +22,19 @@ tags: $:/tags/Macro
|
|||||||
</$genesis>
|
</$genesis>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define list-links-draggable-drop-actions()
|
\procedure list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
|
||||||
<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter="+[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
|
||||||
\end
|
|
||||||
|
|
||||||
\define list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
|
|
||||||
\whitespace trim
|
|
||||||
<span class="tc-links-draggable-list">
|
<span class="tc-links-draggable-list">
|
||||||
<$vars targetTiddler="""$tiddler$""" targetField="""$field$""">
|
<$let targetTiddler=<<tiddler>> targetField=<<field>>>
|
||||||
<$genesis $type=<<__type__>> class="$class$">
|
<$genesis $type=<<type>> class=<<class>>>
|
||||||
<$list filter="[list[$tiddler$!!$field$]]" emptyMessage=<<__emptyMessage__>>>
|
<$list filter="[<tiddler>get<field>enlist-input[]]" emptyMessage=<<emptyMessage>>>
|
||||||
<$droppable
|
<$droppable
|
||||||
actions=<<list-links-draggable-drop-actions>>
|
actions=<<list-links-draggable-drop-actions>>
|
||||||
tag="""$subtype$"""
|
tag=<<subtype>>
|
||||||
enable=<<tv-enable-drag-and-drop>>
|
enable=<<tv-enable-drag-and-drop>>
|
||||||
>
|
>
|
||||||
<div class="tc-droppable-placeholder"/>
|
<div class="tc-droppable-placeholder"/>
|
||||||
<div>
|
<div>
|
||||||
<$transclude tiddler="""$itemTemplate$""">
|
<$transclude tiddler=<<itemTemplate>>>
|
||||||
<$link to={{!!title}}>
|
<$link to={{!!title}}>
|
||||||
<$let tv-wikilinks="no">
|
<$let tv-wikilinks="no">
|
||||||
<$transclude field="caption">
|
<$transclude field="caption">
|
||||||
@@ -60,50 +59,48 @@ tags: $:/tags/Macro
|
|||||||
</$droppable>
|
</$droppable>
|
||||||
</$tiddler>
|
</$tiddler>
|
||||||
</$genesis>
|
</$genesis>
|
||||||
</$vars>
|
</$let>
|
||||||
</span>
|
</span>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define list-tagged-draggable-drop-actions(tag)
|
\procedure list-tagged-draggable-drop-actions(tag)
|
||||||
\whitespace trim
|
|
||||||
<!-- Save the current ordering of the tiddlers with this tag -->
|
<!-- Save the current ordering of the tiddlers with this tag -->
|
||||||
<$set name="order" filter="[<__tag__>tagging[]]">
|
<$set name="order" filter="[<tag>tagging[]]">
|
||||||
<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->
|
<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->
|
||||||
<$list filter="[<__tag__>tagging[]]">
|
<$list filter="[<tag>tagging[]]">
|
||||||
<$action-deletefield $field="list-before"/>
|
<$action-deletefield $field="list-before"/>
|
||||||
<$action-deletefield $field="list-after"/>
|
<$action-deletefield $field="list-after"/>
|
||||||
</$list>
|
</$list>
|
||||||
<!-- Save the new order to the Tag Tiddler -->
|
<!-- Save the new order to the Tag Tiddler -->
|
||||||
<$action-listops $tiddler=<<__tag__>> $field="list" $filter="+[enlist<order>] +[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
<$action-listops $tiddler=<<tag>> $field="list" $filter="+[enlist<order>] +[insertbefore<actionTiddler>,<currentTiddler>]"/>
|
||||||
<!-- Make sure the newly added item has the right tag -->
|
<!-- Make sure the newly added item has the right tag -->
|
||||||
<!-- Removing this line makes dragging tags within the dropdown work as intended -->
|
<!-- Removing this line makes dragging tags within the dropdown work as intended -->
|
||||||
<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->
|
<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<tag>>/>-->
|
||||||
<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->
|
<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->
|
||||||
<$list filter="[<actionTiddler>!contains:tags<__tag__>]">
|
<$list filter="[<actionTiddler>!contains:tags<tag>]">
|
||||||
<$fieldmangler tiddler=<<actionTiddler>>>
|
<$fieldmangler tiddler=<<actionTiddler>>>
|
||||||
<$action-sendmessage $message="tm-add-tag" $param=<<__tag__>>/>
|
<$action-sendmessage $message="tm-add-tag" $param=<<tag>>/>
|
||||||
</$fieldmangler>
|
</$fieldmangler>
|
||||||
</$list>
|
</$list>
|
||||||
</$set>
|
</$set>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
|
\procedure list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
|
||||||
\whitespace trim
|
|
||||||
<span class="tc-tagged-draggable-list">
|
<span class="tc-tagged-draggable-list">
|
||||||
<$set name="tag" value=<<__tag__>>>
|
<$set name="tag" value=<<tag>>>
|
||||||
<$list
|
<$list
|
||||||
filter="[<__tag__>tagging[]$subFilter$]"
|
filter=`[<tag>tagging[]$(subFilter)$]`
|
||||||
emptyMessage=<<__emptyMessage__>>
|
emptyMessage=<<emptyMessage>>
|
||||||
storyview=<<__storyview__>>
|
storyview=<<storyview>>
|
||||||
>
|
>
|
||||||
<$genesis $type=<<__elementTag__>> class="tc-menu-list-item">
|
<$genesis $type=<<elementTag>> class="tc-menu-list-item">
|
||||||
<$droppable
|
<$droppable
|
||||||
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>"""
|
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<tag>>/>"""
|
||||||
enable=<<tv-enable-drag-and-drop>>
|
enable=<<tv-enable-drag-and-drop>>
|
||||||
>
|
>
|
||||||
<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/>
|
<$genesis $type=<<elementTag>> class="tc-droppable-placeholder"/>
|
||||||
<$genesis $type=<<__elementTag__>>>
|
<$genesis $type=<<elementTag>>>
|
||||||
<$transclude tiddler="""$itemTemplate$""">
|
<$transclude tiddler=<<itemTemplate>>>
|
||||||
<$link to={{!!title}}>
|
<$link to={{!!title}}>
|
||||||
<$let tv-wikilinks="no">
|
<$let tv-wikilinks="no">
|
||||||
<$transclude field="caption">
|
<$transclude field="caption">
|
||||||
@@ -118,11 +115,11 @@ tags: $:/tags/Macro
|
|||||||
</$list>
|
</$list>
|
||||||
<$tiddler tiddler="">
|
<$tiddler tiddler="">
|
||||||
<$droppable
|
<$droppable
|
||||||
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>"""
|
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<tag>>/>"""
|
||||||
enable=<<tv-enable-drag-and-drop>>
|
enable=<<tv-enable-drag-and-drop>>
|
||||||
>
|
>
|
||||||
<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/>
|
<$genesis $type=<<elementTag>> class="tc-droppable-placeholder"/>
|
||||||
<$genesis $type=<<__elementTag__>> style="height:0.5em;"/>
|
<$genesis $type=<<elementTag>> style="height:0.5em;"/>
|
||||||
</$droppable>
|
</$droppable>
|
||||||
</$tiddler>
|
</$tiddler>
|
||||||
</$set>
|
</$set>
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
title: $:/core/macros/translink
|
title: $:/core/macros/translink
|
||||||
tags: $:/tags/Macro
|
tags: $:/tags/Macro
|
||||||
|
|
||||||
\define translink(title,mode:"block")
|
\procedure translink(title,mode:"block")
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<$list filter="[<__mode__>match[block]]">
|
<%if [<mode>match[block]] %>
|
||||||
<div class="tc-translink">
|
<div class="tc-translink">
|
||||||
<div>
|
<div>
|
||||||
<$link to="""$title$""">
|
<$link to=<<title>>>
|
||||||
<h1><$text text="""$title$"""/></h1>
|
<h1><$text text=<<title>>/></h1>
|
||||||
</$link>
|
</$link>
|
||||||
<$transclude tiddler="""$title$""" mode="block">
|
<$transclude tiddler=<<title>> mode="block">
|
||||||
<$set name="currentTiddler" value="""$title$"""><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
<$set name="currentTiddler" value=<<title>>><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
||||||
</$transclude>
|
</$transclude>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</$list>
|
<%endif%>
|
||||||
<$list filter="[<__mode__>match[inline]]">
|
<%if [<mode>match[inline]] %>
|
||||||
<span class="tc-translink">
|
<span class="tc-translink">
|
||||||
<$link to="""$title$""">
|
<$link to=<<title>> class="tc-tiny-gap-right">
|
||||||
<$text text="""$title$"""/>
|
<$text text=<<title>>/>
|
||||||
</$link>
|
</$link>
|
||||||
 (<$transclude tiddler="""$title$""" mode="inline">
|
(<$transclude tiddler=<<title>> mode="inline">
|
||||||
<$set name="currentTiddler" value="""$title$"""><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
<$set name="currentTiddler" value=<<title>>><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
|
||||||
</$transclude>)
|
</$transclude>)
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
<%endif%>
|
||||||
\end
|
\end
|
||||||
|
|||||||
+20
-24
@@ -1,62 +1,58 @@
|
|||||||
title: $:/core/macros/tree
|
title: $:/core/macros/tree
|
||||||
tags: $:/tags/Macro
|
tags: $:/tags/Macro
|
||||||
|
|
||||||
\define leaf-link(full-title,chunk,separator: "/")
|
\procedure leaf-link(full-title,chunk,separator: "/")
|
||||||
<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>
|
<$link to=<<full-title>>><$text text=<<chunk>>/></$link>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define leaf-node(prefix,chunk)
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
|
\procedure leaf-node(prefix,chunk)
|
||||||
<li>
|
<li>
|
||||||
<$list filter="[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]" variable="full-title">
|
<$list filter="[<prefix>addsuffix<chunk>is[shadow]] [<prefix>addsuffix<chunk>is[tiddler]]" variable="full-title">
|
||||||
<$list filter="[<full-title>removeprefix<__prefix__>]" variable="chunk">
|
<$list filter="[<full-title>removeprefix<prefix>]" variable="chunk">
|
||||||
<span>{{$:/core/images/file}}</span> <$macrocall $name="leaf-link" full-title=<<full-title>> chunk=<<chunk>>/>
|
<span class="tc-tiny-gap-right">{{$:/core/images/file}}</span><$transclude $variable="leaf-link" full-title=<<full-title>> chunk=<<chunk>>/>
|
||||||
</$list>
|
</$list>
|
||||||
</$list>
|
</$list>
|
||||||
</li>
|
</li>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define branch-node(prefix,chunk,separator: "/")
|
\procedure branch-node(prefix,chunk,separator: "/")
|
||||||
\whitespace trim
|
|
||||||
<li>
|
<li>
|
||||||
<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>
|
<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<prefix>addsuffix<chunk>] }}}>
|
||||||
<$reveal type="nomatch" stateTitle=<<reveal-state>> text="show">
|
<$reveal type="nomatch" stateTitle=<<reveal-state>> text="show">
|
||||||
<$button setTitle=<<reveal-state>> setTo="show" class="tc-btn-invisible">
|
<$button setTitle=<<reveal-state>> setTo="show" class="tc-btn-invisible">
|
||||||
{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
|
{{$:/core/images/folder}} <$text text=<<chunk>>/>
|
||||||
</$button>
|
</$button>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
|
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
|
||||||
<$button setTitle=<<reveal-state>> setTo="hide" class="tc-btn-invisible">
|
<$button setTitle=<<reveal-state>> setTo="hide" class="tc-btn-invisible">
|
||||||
{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
|
{{$:/core/images/folder}} <$text text=<<chunk>>/>
|
||||||
</$button>
|
</$button>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
 
|
<span class="tc-tiny-gap-left">(<$count filter="[all[shadows+tiddlers]removeprefix<prefix>removeprefix<chunk>] -[<prefix>addsuffix<chunk>]"/>)</span>
|
||||||
<span>(<$count filter="[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]"/>)</span>
|
|
||||||
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
|
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
|
||||||
<$macrocall $name="tree-node" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>
|
<$transclude $variable="tree-node" prefix={{{ [<prefix>addsuffix<chunk>] }}} separator=<<separator>>/>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
</$set>
|
</$set>
|
||||||
</li>
|
</li>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define tree-node(prefix,separator: "/")
|
\procedure tree-node(prefix,separator: "/")
|
||||||
\whitespace trim
|
|
||||||
<ol>
|
<ol>
|
||||||
<$list filter="[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]" variable="chunk">
|
<$list filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]!suffix<separator>]" variable="chunk">
|
||||||
<$macrocall $name="leaf-node" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>
|
<$transclude $variable="leaf-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]" variable="chunk">
|
<$list filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]suffix<separator>]" variable="chunk">
|
||||||
<$macrocall $name="branch-node" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>
|
<$transclude $variable="branch-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
|
||||||
</$list>
|
</$list>
|
||||||
</ol>
|
</ol>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
\define tree(prefix: "$:/",separator: "/")
|
\procedure tree(prefix: "$:/",separator: "/")
|
||||||
\whitespace trim
|
|
||||||
<div class="tc-tree">
|
<div class="tc-tree">
|
||||||
<span><$text text=<<__prefix__>>/></span>
|
<span><$text text=<<prefix>>/></span>
|
||||||
<div>
|
<div>
|
||||||
<$macrocall $name="tree-node" prefix=<<__prefix__>> separator=<<__separator__>>/>
|
<$transclude $variable="tree-node" prefix=<<prefix>> separator=<<separator>>/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
\end
|
\end
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
title: $:/coreURL
|
|
||||||
tags: $:/tags/Global
|
|
||||||
|
|
||||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
|
||||||
@@ -11,9 +11,6 @@
|
|||||||
],
|
],
|
||||||
"build": {
|
"build": {
|
||||||
"index": [
|
"index": [
|
||||||
"--rendertiddler","$:/core/save/all","classicparserdemo.html","text/plain"],
|
"--rendertiddler","$:/core/save/all","classicparserdemo.html","text/plain"]
|
||||||
"external": [
|
|
||||||
"--render","$:/core/save/all-external-js","classicparserdemo.html","text/plain"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
* Keymaps in the style of Emacs, Sublime Text or Vim
|
||||||
* Closing Brackets
|
* Closing Brackets
|
||||||
* Closing Tags
|
* Closing Tags
|
||||||
* Display trailing whitespace
|
|
||||||
|
|
||||||
NOTE: This demo has the ''Sublime Text'' keymap installed.
|
NOTE: This demo has the ''Sublime Text'' keymap installed.
|
||||||
|
|
||||||
|
|||||||
@@ -8,16 +8,11 @@
|
|||||||
"tiddlywiki/codemirror-search-replace",
|
"tiddlywiki/codemirror-search-replace",
|
||||||
"tiddlywiki/codemirror-fullscreen-editing",
|
"tiddlywiki/codemirror-fullscreen-editing",
|
||||||
"tiddlywiki/codemirror-mode-xml",
|
"tiddlywiki/codemirror-mode-xml",
|
||||||
"tiddlywiki/codemirror-mode-htmlembedded",
|
|
||||||
"tiddlywiki/codemirror-mode-htmlmixed",
|
|
||||||
"tiddlywiki/codemirror-mode-javascript",
|
"tiddlywiki/codemirror-mode-javascript",
|
||||||
"tiddlywiki/codemirror-mode-css",
|
"tiddlywiki/codemirror-mode-css",
|
||||||
"tiddlywiki/codemirror-mode-x-tiddlywiki",
|
"tiddlywiki/codemirror-mode-x-tiddlywiki",
|
||||||
"tiddlywiki/codemirror-mode-markdown",
|
"tiddlywiki/codemirror-mode-markdown",
|
||||||
"tiddlywiki/codemirror-trailingspace",
|
"tiddlywiki/codemirror-keymap-sublime-text"
|
||||||
"tiddlywiki/codemirror-keymap-emacs",
|
|
||||||
"tiddlywiki/codemirror-keymap-sublime-text",
|
|
||||||
"tiddlywiki/codemirror-keymap-vim"
|
|
||||||
],
|
],
|
||||||
"themes": [
|
"themes": [
|
||||||
"tiddlywiki/vanilla",
|
"tiddlywiki/vanilla",
|
||||||
@@ -27,9 +22,6 @@
|
|||||||
],
|
],
|
||||||
"build": {
|
"build": {
|
||||||
"index": [
|
"index": [
|
||||||
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"],
|
"--rendertiddler","$:/core/save/all","codemirrordemo.html","text/plain"]
|
||||||
"external": [
|
|
||||||
"--render","$:/core/save/all-external-js","codemirrordemo.html","text/plain"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
created: 20190809095728085
|
created: 20190809095728085
|
||||||
modified: 20250707151538845
|
modified: 20190809123445125
|
||||||
title: Releasing a new version of TiddlyWiki
|
title: Releasing a new version of TiddlyWiki
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
@@ -15,35 +15,32 @@ type: text/vnd.tiddlywiki
|
|||||||
# Adjust the modified time of HelloThere
|
# Adjust the modified time of HelloThere
|
||||||
# Make sure ''master'' is fully committed
|
# Make sure ''master'' is fully committed
|
||||||
|
|
||||||
!! Update Readmes and release note
|
!! Update Readmes
|
||||||
|
|
||||||
# Edit `package.json` to the new version number
|
# Edit `package.json` to the new version number
|
||||||
# Run `./bin/readme-bld.sh` to build the readme files
|
# Run `./bin/readme-bld.sh` to build the readme files
|
||||||
# Commit the new readme files to ''master''
|
# Commit the new readme files to ''master''
|
||||||
# Restore `package.json` to the previous version number
|
# Restore `package.json` to the previous version number
|
||||||
# Adjust the link for "GitHub for detailed change history of this release" in the release note
|
|
||||||
# Add the credits for the new release banner to the release note, including a link to the GitHub instance of the image from the commit history
|
|
||||||
|
|
||||||
!! Make New Release
|
!! Make New Release
|
||||||
|
|
||||||
# Run `./bin/verbump "5.1.3"` (substituting the correct version number) to update the version number and assign it a tag
|
# Run `./bin/verbump "5.1.3"` (substituting the correct version number) to update the version number, assign it a tag
|
||||||
# Run `./bin/npm-publish.sh` to publish the release to npm
|
# Run `./bin/npm-publish.sh` to publish the release to npm
|
||||||
# Verify that the new release of TiddlyWiki is available at https://www.npmjs.org/package/tiddlywiki
|
# Verify that the new release of TiddlyWiki is available at https://www.npmjs.org/package/tiddlywiki
|
||||||
|
|
||||||
!! Update tiddlywiki.com release
|
!! Update tiddlywiki.com release
|
||||||
|
|
||||||
# Update ''tiddlywiki-com'' from ''master'' and push to ~GitHub
|
# Update ''tiddlywiki-com'' from ''master'' and push to ~GitHub
|
||||||
# Wait until https://tiddlywiki.com is updated with the new release
|
|
||||||
|
|
||||||
!! Announcements
|
!! Cleaning Up
|
||||||
|
|
||||||
# Announce the new release on [[TalkTW|https://talk.tiddlywiki.org]]
|
# Tweet the release with the text "TiddlyWiki v5.x.x released to https://tiddlywiki.com #newtiddlywikirelease"
|
||||||
|
|
||||||
!! Preparation for the next release in ''master''
|
!! Preparation for the next release in ''master''
|
||||||
|
|
||||||
# Adjust version number in `package.json`
|
# Adjust version number in `package.json`
|
||||||
# Adjust version number in `bin/build-site.sh`
|
# Adjust version number in `bin/build-site.sh`
|
||||||
# Adjust version number in [[$:/config/OfficialPluginLibrary]] (both in `editions/tw5.com` and `editions/prerelease/tiddlers/system`) and [[$:/config/LocalPluginLibrary]]
|
# Adjust version number in [[$:/config/OfficialPluginLibrary]] (both in `editions/tw5.com` and `editions/prerelease/tiddlers/system`) and [[$:/config/LocalPluginLibrary]]
|
||||||
# Create temporary new release banner
|
# Adjust new release banner
|
||||||
# Create the release note for the new release
|
# Create the release note for the new release
|
||||||
# Commit changes to ''master'' and push to ~GitHub
|
# Commit changes to ''master'' and push to ~GitHub
|
||||||
|
|||||||
@@ -28,4 +28,5 @@ Note that JavaScript macros work on both the client and the server, and so do no
|
|||||||
|
|
||||||
!! Macro Behaviour
|
!! 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:
|
We make a new tiddler, set its `type` and `module-type` appropriately, and begin writing the code:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
(function(){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
exports.everyother = function(source, operator, options) {
|
exports.everyother = function(source, operator, options) {
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
})();
|
||||||
```
|
```
|
||||||
|
|
||||||
For the example filter syntax, our function will be called with
|
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:
|
We could implement the operator by iterating over the input tiddlers and explicitly building a result array of titles:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
(function(){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
exports.everyother = function(source, operator, options) {
|
exports.everyother = function(source, operator, options) {
|
||||||
@@ -63,6 +66,7 @@ exports.everyother = function(source, operator, options) {
|
|||||||
});
|
});
|
||||||
return result;
|
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.
|
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:
|
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";
|
"use strict";
|
||||||
|
|
||||||
exports.everyother = function(source, operator, options) {
|
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 !== "!";`
|
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!
|
YOUR DISCRCRIPTION COMES HERE!
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false, exports: true */
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// Export name and synchronous status
|
// 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:
|
Here is an example of a subclass of the checkbox widget that adds logging to the event handler:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var WikiParser = require("$:/core/modules/parsers/wikiparser/wikiparser.js")["text/vnd.tiddlywiki"],
|
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;
|
exports["text/vnd.my-custom-type"] = MyCustomWikiParser;
|
||||||
|
|
||||||
|
})();
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -26,7 +26,10 @@ module-type: widget-subclass
|
|||||||
Widget base class
|
Widget base class
|
||||||
|
|
||||||
\*/
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
exports.baseClass = "checkbox"; // Extend the <$checkbox> widget
|
exports.baseClass = "checkbox"; // Extend the <$checkbox> widget
|
||||||
@@ -47,4 +50,5 @@ exports.prototype.handleChangeEvent = function(event) {
|
|||||||
console.log("Checkbox status:",this.inputDomNode.checked);
|
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": {
|
"build": {
|
||||||
"index": [
|
"index": [
|
||||||
"--rendertiddler","$:/core/save/all","index.html","text/plain"],
|
"--rendertiddler","$:/core/save/all","index.html","text/plain"]
|
||||||
"external": [
|
|
||||||
"--render","$:/core/save/all-external-js","index.html","text/plain"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
title: $:/coreURL
|
|
||||||
tags: $:/tags/Global
|
|
||||||
|
|
||||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
|
||||||
@@ -15,9 +15,6 @@
|
|||||||
"build": {
|
"build": {
|
||||||
"index": [
|
"index": [
|
||||||
"--render","$:/core/save/all","index.html","text/plain"],
|
"--render","$:/core/save/all","index.html","text/plain"],
|
||||||
"external": [
|
|
||||||
"--render","$:/core/save/all-external-js","index.html","text/plain"
|
|
||||||
],
|
|
||||||
"favicon": [],
|
"favicon": [],
|
||||||
"static": [],
|
"static": [],
|
||||||
"empty": [],
|
"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/static.template.html","static.html","text/plain",
|
||||||
"--render","$:/core/templates/alltiddlers.template.html","alltiddlers.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","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html",
|
||||||
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"],
|
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"]
|
||||||
"external": [
|
|
||||||
"--render","$:/core/save/all-external-js","highlightdemo.html","text/plain"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
title: $:/coreURL
|
|
||||||
tags: $:/tags/Global
|
|
||||||
|
|
||||||
\function coreURL() [[../../../tiddlywikicore-$(version)$.js]substitute[]]
|
|
||||||
@@ -19,9 +19,6 @@
|
|||||||
"--screenshot",
|
"--screenshot",
|
||||||
"[[$:/plugins/tiddlywiki/innerwiki/examples]]",
|
"[[$:/plugins/tiddlywiki/innerwiki/examples]]",
|
||||||
"4"
|
"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}`
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user