diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..30a0dae7c --- /dev/null +++ b/.eslintignore @@ -0,0 +1,15 @@ +# Known minified files +/boot/sjcl.js +/core/modules/utils/base64-utf8/base64-utf8.module.min.js +/core/modules/utils/diff-match-patch/diff_match_patch.js +/plugins/tiddlywiki/async/files/async.min.v1.5.0.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/anyword-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/css-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/html-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/javascript-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/show-hint.js +/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/xml-hint.js +/plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/closebrackets.js +/plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/matchbrackets.js +/plugins/tiddlywiki/codemirror-closetag/files/addon/edit/closetag.js +/plugins/tiddlywiki/codemirror-closetag/files/addon/fold/xml-fold.js diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 000000000..105ca829e --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,267 @@ +env: + browser: true + commonjs: true + es2021: true + node: true +extends: 'eslint:recommended' +globals: + "$tw": "writable" # temporary +parserOptions: + ecmaVersion: 5 +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: 'off' + 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: 'off' + 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: 'off' + 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' + + # temporary rules + 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" diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..77d3f5f03 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,43 @@ +--- +name: Bug report +about: Create a report to help us improve TiddlyWiki 5 +title: "[BUG]" +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**TiddlyWiki Configuration (please complete the following information):** + - Version [e.g. v5.1.24] + - Saving mechanism [e.g. Node.js, TiddlyDesktop, TiddlyHost etc] + - Plugins installed [e.g. Freelinks, TiddlyMap] + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..6eb55dd6b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for TiddlyWiki 5 +title: "[IDEA]" +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 000000000..e3d0735c3 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,22 @@ +--- +name: Pull Request +about: Propose a change to TiddlyWiki 5 +title: "" +labels: '' +assignees: '' + +--- + +**Is your PR related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you are proposing** +A clear and concise description of the changes you are proposing. Include images to show visual changes. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. + +If you link to discussions elsewhere then please copy and paste the important text, and don't expect readers to scan the entire discussion to find the relevant part. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..f377b3921 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,74 @@ +on: + pull_request: + push: + branches: + - master + - tiddlywiki-com +env: + NODE_VERSION: "12" +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: "${{ env.NODE_VERSION }}" + - run: "./bin/test.sh" + build-prerelease: + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/master' + needs: test + env: + TW5_BUILD_TIDDLYWIKI: "./tiddlywiki.js" + TW5_BUILD_MAIN_EDITION: "./editions/prerelease" + TW5_BUILD_OUTPUT: "./output/prerelease" + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: "${{ env.NODE_VERSION }}" + - run: "./bin/ci-pre-build.sh" + # There's another near-duplicate "Set dynamic environment variables" step in + # the `build-tiddlywiki-com` job. + # These _could_ be extracted as a script (or moved into `ci-pre-build.sh`) to do away with the + # duplication, but, the visibility that comes from having these in the workflow file seems + # valuable. Environment variables are global variables and setting them at the top-level + # makes sense. + # Time to reconsider this decision might be when this setup turns out to be mistake-prone. + - name: "Set dynamic environment variables" + run: | + TW5_BUILD_BRANCH=$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }') + echo "TW5_BUILD_BRANCH=${TW5_BUILD_BRANCH}" >> $GITHUB_ENV + echo "TW5_BUILD_VERSION=$(./bin/get-plugin-library-version-number)" >> $GITHUB_ENV + echo "TW5_BUILD_DETAILS=Prerelease built from branch '$TW5_BUILD_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" >> $GITHUB_ENV + - run: "./bin/build-site.sh" + - run: "./bin/ci-push.sh" + env: + GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} + build-tiddlywiki-com: + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/tiddlywiki-com' + needs: test + env: + TW5_BUILD_TIDDLYWIKI: "./node_modules/tiddlywiki/tiddlywiki.js" + TW5_BUILD_MAIN_EDITION: "./editions/tw5.com" + TW5_BUILD_OUTPUT: "./output" + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: "${{ env.NODE_VERSION }}" + - run: "./bin/ci-pre-build.sh" + # When making a change here, don't forget to see if it also applies to the step + # with the same name in the `build-prerelease` job. + - name: "Set dynamic environment variables" + run: | + TW5_BUILD_BRANCH=$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }') + echo "TW5_BUILD_BRANCH=${TW5_BUILD_BRANCH}" >> $GITHUB_ENV + echo "TW5_BUILD_VERSION=$(./bin/get-plugin-library-version-number)" >> $GITHUB_ENV + echo "TW5_BUILD_DETAILS=Built from branch '$TW5_BUILD_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" >> $GITHUB_ENV + - run: "./bin/build-site.sh" + - run: "./bin/ci-push.sh" + env: + GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d7f1a5566..000000000 --- a/.travis.yml +++ /dev/null @@ -1,34 +0,0 @@ -language: node_js - - "node" - -stages: - - name: test - - name: build-prerelease - if: branch = "master" - - name: build-tiddlywiki-com - if: branch = "tiddlywiki-com" - -jobs: - include: - - stage: test - script: ./bin/test.sh - - stage: build-prerelease - script: - - ./bin/travis-pre-build.sh - - export TW5_BUILD_TIDDLYWIKI='./tiddlywiki.js' - - export TW5_BUILD_VERSION=$(./bin/get-plugin-library-version-number) - - export TW5_BUILD_DETAILS="Prerelease built from branch '$TRAVIS_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" - - export TW5_BUILD_MAIN_EDITION='./editions/prerelease' - - export TW5_BUILD_OUTPUT='./output/prerelease' - - ./bin/build-site.sh - - ./bin/travis-push.sh - - stage: build-tiddlywiki-com - script: - - ./bin/travis-pre-build.sh - - export TW5_BUILD_TIDDLYWIKI='./node_modules/tiddlywiki/tiddlywiki.js' - - export TW5_BUILD_VERSION=$(./bin/get-plugin-library-version-number) - - export TW5_BUILD_DETAILS="Built from branch '$TRAVIS_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" - - export TW5_BUILD_MAIN_EDITION='./editions/tw5.com' - - export TW5_BUILD_OUTPUT='./output' - - ./bin/build-site.sh - - ./bin/travis-push.sh diff --git a/bin/build-site.sh b/bin/build-site.sh index ba2fd80ec..5bd4de5ba 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -5,7 +5,7 @@ # Default to the current version number for building the plugin library if [ -z "$TW5_BUILD_VERSION" ]; then - TW5_BUILD_VERSION=v5.1.21 + TW5_BUILD_VERSION=v5.1.24 fi echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]" @@ -107,7 +107,7 @@ node $TW5_BUILD_TIDDLYWIKI \ # /empty.html Empty # /empty.hta For Internet Explorer node $TW5_BUILD_TIDDLYWIKI \ - ./editions/empty \ + $TW5_BUILD_MAIN_EDITION \ --verbose \ --output $TW5_BUILD_OUTPUT \ --build empty \ @@ -136,6 +136,15 @@ node $TW5_BUILD_TIDDLYWIKI \ --build index favicon static \ || exit 1 +# /share.html Custom edition for sharing via the URL +node $TW5_BUILD_TIDDLYWIKI \ + ./editions/share \ + --verbose \ + --load $TW5_BUILD_OUTPUT/build.tid \ + --output $TW5_BUILD_OUTPUT \ + --build share \ + || exit 1 + # /upgrade.html Custom edition for performing upgrades node $TW5_BUILD_TIDDLYWIKI \ ./editions/upgrade \ diff --git a/bin/travis-pre-build.sh b/bin/ci-pre-build.sh similarity index 100% rename from bin/travis-pre-build.sh rename to bin/ci-pre-build.sh diff --git a/bin/ci-push.sh b/bin/ci-push.sh new file mode 100755 index 000000000..dff297c80 --- /dev/null +++ b/bin/ci-push.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Push output back to GitHub + +# Exit script immediately if any command fails +set -e + +cd output +git config --global user.email "actions@github.com" +git config --global user.name "GitHub Actions" +git add -A . +git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))" +git remote add deploy "https://$GH_TOKEN@github.com/Jermolene/jermolene.github.io.git" &>/dev/null +git push deploy master &>/dev/null +cd .. diff --git a/bin/optimise-svgs.js b/bin/optimise-svgs.js new file mode 100755 index 000000000..28f4f715d --- /dev/null +++ b/bin/optimise-svgs.js @@ -0,0 +1,77 @@ +#!/usr/bin/env node + +/* +Optimise the SVGs in ./core/images using SVGO from https://github.com/svg/svgo + +Install SVGO with the following command in the root of the repo: + +npm install svgo +*/ + +"use strict"; + +var fs = require("fs"), + path = require("path"), + SVGO = require("svgo"), + svgo = new SVGO({ + plugins: [ + {cleanupAttrs: true}, + {removeDoctype: true}, + {removeXMLProcInst: true}, + {removeComments: true}, + {removeMetadata: true}, + {removeTitle: true}, + {removeDesc: true}, + {removeUselessDefs: true}, + {removeEditorsNSData: true}, + {removeEmptyAttrs: true}, + {removeHiddenElems: true}, + {removeEmptyText: true}, + {removeEmptyContainers: true}, + {removeViewBox: false}, + {cleanupEnableBackground: true}, + {convertStyleToAttrs: true}, + {convertColors: true}, + {convertPathData: true}, + {convertTransform: true}, + {removeUnknownsAndDefaults: true}, + {removeNonInheritableGroupAttrs: true}, + {removeUselessStrokeAndFill: true}, + {removeUnusedNS: true}, + {cleanupIDs: true}, + {cleanupNumericValues: true}, + {moveElemsAttrsToGroup: true}, + {moveGroupAttrsToElems: true}, + {collapseGroups: true}, + {removeRasterImages: false}, + {mergePaths: true}, + {convertShapeToPath: true}, + {sortAttrs: true}, + {removeDimensions: false}, + {removeAttrs: {attrs: "(stroke|fill)"}} + ] + }); + +var basepath = "./core/images/", + files = fs.readdirSync(basepath).sort(); + +files.forEach(function(filename) { + if(filename.slice(-4) === ".tid") { + var filepath = path.resolve(basepath,filename), + data = fs.readFileSync(filepath,"utf8"), + lines = data.split("\n"), + blankLine = lines.indexOf(""), + header = lines.slice(0,blankLine), + body = lines.slice(blankLine + 1), + fakeSVG = body.join("\n"); + // A hack to make the new-journal-button work + fakeSVG = fakeSVG.replace("<>","<<now "DD">>"); + svgo.optimize(fakeSVG, {path: filepath}).then(function(result) { + var newSVG = header.join("\n") + "\n\n" + result.data.replace("<<now "DD">>","<>"); + fs.writeFileSync(filepath,newSVG); + },function(err) { + console.log("Error " + err + " with " + filename) + process.exit(); + }); + } +}); diff --git a/bin/travis-push.sh b/bin/travis-push.sh deleted file mode 100755 index aa16cd73c..000000000 --- a/bin/travis-push.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Push output back to GitHub - - -cd output || exit 1 - -git config --global user.email "travis@travis-ci.org" || exit 1 - -git config --global user.name "Travis CI" || exit 1 - -git add -A . || exit 1 - -git commit --message "Travis build: $TRAVIS_BUILD_NUMBER of $TRAVIS_BRANCH ($(date +'%F %T %Z'))" || exit 1 - -git remote add deploy "https://$GH_TOKEN@github.com/Jermolene/jermolene.github.io.git" &>/dev/null || exit 1 - -git push deploy master &>/dev/null || exit 1 - -cd .. || exit 1 diff --git a/bin/update-translation-from-html-file.sh b/bin/update-translation-from-html-file.sh new file mode 100755 index 000000000..3fe3d8967 --- /dev/null +++ b/bin/update-translation-from-html-file.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Process translation updates made via the translators edition + +# ./bin/update-translation-from-html-file.sh + +# Assign and check parameters + +LANGUAGE_CODE=$1 +HTML_FILE_PATH=$2 + +if [ -z "$LANGUAGE_CODE" ]; then + echo "Missing parameter: language code" + exit 1 +fi + +if [ -z "$HTML_FILE_PATH" ]; then + echo "Missing parameter: path to HTML file" + exit 1 +fi + +./tiddlywiki.js editions/translators/ --verbose --unpackplugin $:/languages/$LANGUAGE_CODE --load $HTML_FILE_PATH --build output-files || exit 1 + +cp -R ./editions/translators/output/language/. ./languages/$LANGUAGE_CODE/ || exit 1 + diff --git a/boot/boot.js b/boot/boot.js index 9f867c48a..6e99863f8 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -267,8 +267,16 @@ $tw.utils.htmlDecode = function(s) { Get the browser location.hash. We don't use location.hash because of the way that Firefox auto-urldecodes it (see http://stackoverflow.com/questions/1703552/encoding-of-window-location-hash) */ $tw.utils.getLocationHash = function() { - var parts = window.location.href.split('#'); - return "#" + (parts.length > 1 ? parts[1] : ""); + var href = window.location.href; + var idx = href.indexOf('#'); + if(idx === -1) { + return "#"; + } else if(idx < href.length-1 && href[idx+1] === '#') { + // Special case: ignore location hash if it itself starts with a # + return "#"; + } else { + return href.substring(idx); + } }; /* @@ -297,13 +305,21 @@ $tw.utils.stringifyDate = function(value) { // Parse a date from a UTC YYYYMMDDHHMMSSmmm format string $tw.utils.parseDate = function(value) { if(typeof value === "string") { - return new Date(Date.UTC(parseInt(value.substr(0,4),10), + var negative = 1; + if(value.charAt(0) === "-") { + negative = -1; + value = value.substr(1); + } + var year = parseInt(value.substr(0,4),10) * negative, + d = new Date(Date.UTC(year, parseInt(value.substr(4,2),10)-1, parseInt(value.substr(6,2),10), parseInt(value.substr(8,2)||"00",10), parseInt(value.substr(10,2)||"00",10), parseInt(value.substr(12,2)||"00",10), parseInt(value.substr(14,3)||"000",10))); + d.setUTCFullYear(year); // See https://stackoverflow.com/a/5870822 + return d; } else if($tw.utils.isDate(value)) { return value; } else { @@ -409,10 +425,10 @@ $tw.utils.resolvePath = function(sourcepath,rootpath) { }; /* -Parse a semantic version string into its constituent parts +Parse a semantic version string into its constituent parts -- see https://semver.org */ $tw.utils.parseVersion = function(version) { - var match = /^((\d+)\.(\d+)\.(\d+))(?:-([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?(?:\+([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?$/.exec(version); + var match = /^v?((\d+)\.(\d+)\.(\d+))(?:-([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?(?:\+([\dA-Za-z\-]+(?:\.[\dA-Za-z\-]+)*))?$/.exec(version); if(match) { return { version: match[1], @@ -427,25 +443,37 @@ $tw.utils.parseVersion = function(version) { } }; +/* +Returns +1 if the version string A is greater than the version string B, 0 if they are the same, and +1 if B is greater than A. +Missing or malformed version strings are parsed as 0.0.0 +*/ +$tw.utils.compareVersions = function(versionStringA,versionStringB) { + var defaultVersion = { + major: 0, + minor: 0, + patch: 0 + }, + versionA = $tw.utils.parseVersion(versionStringA) || defaultVersion, + versionB = $tw.utils.parseVersion(versionStringB) || defaultVersion, + diff = [ + versionA.major - versionB.major, + versionA.minor - versionB.minor, + versionA.patch - versionB.patch + ]; + if((diff[0] > 0) || (diff[0] === 0 && diff[1] > 0) || (diff[0] === 0 & diff[1] === 0 & diff[2] > 0)) { + return +1; + } else if((diff[0] < 0) || (diff[0] === 0 && diff[1] < 0) || (diff[0] === 0 & diff[1] === 0 & diff[2] < 0)) { + return -1; + } else { + return 0; + } +}; + /* Returns true if the version string A is greater than the version string B. Returns true if the versions are the same */ $tw.utils.checkVersions = function(versionStringA,versionStringB) { - var defaultVersion = { - major: 0, - minor: 0, - patch: 0 - }, - versionA = $tw.utils.parseVersion(versionStringA) || defaultVersion, - versionB = $tw.utils.parseVersion(versionStringB) || defaultVersion, - diff = [ - versionA.major - versionB.major, - versionA.minor - versionB.minor, - versionA.patch - versionB.patch - ]; - return (diff[0] > 0) || - (diff[0] === 0 && diff[1] > 0) || - (diff[0] === 0 && diff[1] === 0 && diff[2] >= 0); + return $tw.utils.compareVersions(versionStringA,versionStringB) !== -1; }; /* @@ -640,11 +668,13 @@ $tw.utils.PasswordPrompt.prototype.createPrompt = function(options) { var promptInfo = { serviceName: options.serviceName, callback: options.callback, - form: form + form: form, + owner: this }; this.passwordPrompts.push(promptInfo); // Make sure the wrapper is displayed this.setWrapperDisplay(); + return promptInfo; }; $tw.utils.PasswordPrompt.prototype.removePrompt = function(promptInfo) { @@ -862,6 +892,19 @@ $tw.modules.applyMethods = function(moduleType,targetObject) { return targetObject; }; +/* +Return a class created from a modules. The module should export the properties to be added to those of the optional base class +*/ +$tw.modules.createClassFromModule = function(moduleExports,baseClass) { + var newClass = function() {}; + if(baseClass) { + newClass.prototype = new baseClass(); + newClass.prototype.constructor = baseClass; + } + $tw.utils.extend(newClass.prototype,moduleExports); + return newClass; +}; + /* Return an array of classes created from the modules of a specified type. Each module should export the properties to be added to those of the optional base class */ @@ -869,13 +912,7 @@ $tw.modules.createClassesFromModules = function(moduleType,subType,baseClass) { var classes = Object.create(null); $tw.modules.forEachModuleOfType(moduleType,function(title,moduleExports) { if(!subType || moduleExports.types[subType]) { - var newClass = function() {}; - if(baseClass) { - newClass.prototype = new baseClass(); - newClass.prototype.constructor = baseClass; - } - $tw.utils.extend(newClass.prototype,moduleExports); - classes[moduleExports.name] = newClass; + classes[moduleExports.name] = $tw.modules.createClassFromModule(moduleExports,baseClass); } }); return classes; @@ -1258,7 +1295,7 @@ $tw.Wiki = function(options) { $tw.utils.each(titles || getTiddlerTitles(),function(title) { var tiddler = tiddlers[title]; if(tiddler) { - if(tiddler.fields.type === "application/json" && tiddler.hasField("plugin-type")) { + if(tiddler.fields.type === "application/json" && tiddler.hasField("plugin-type") && tiddler.fields.text) { pluginInfo[tiddler.fields.title] = JSON.parse(tiddler.fields.text); results.modifiedPlugins.push(tiddler.fields.title); } @@ -1810,7 +1847,7 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) { // Read the specification var filesInfo = JSON.parse(fs.readFileSync(filepath + path.sep + "tiddlywiki.files","utf8")); // Helper to process a file - var processFile = function(filename,isTiddlerFile,fields) { + var processFile = function(filename,isTiddlerFile,fields,isEditableFile) { var extInfo = $tw.config.fileExtensionInfo[path.extname(filename)], type = (extInfo || {}).type || fields.type || "text/plain", typeInfo = $tw.config.contentTypeInfo[type] || {}, @@ -1863,7 +1900,11 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) { } }); }); - tiddlers.push({tiddlers: fileTiddlers}); + if(isEditableFile) { + tiddlers.push({filepath: pathname, hasMetaFile: !!metadata && !isTiddlerFile, isEditableFile: true, tiddlers: fileTiddlers}); + } else { + tiddlers.push({tiddlers: fileTiddlers}); + } }; // Process the listed tiddlers $tw.utils.each(filesInfo.tiddlers,function(tidInfo) { @@ -1886,15 +1927,21 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) { } } else { // Process directory specifier - var dirPath = path.resolve(filepath,dirSpec.path), - files = fs.readdirSync(dirPath), - fileRegExp = new RegExp(dirSpec.filesRegExp || "^.*$"), - metaRegExp = /^.*\.meta$/; - for(var t=0; t 0){ + $tw.wiki.addTiddler({title: "$:/config/OriginalTiddlerPaths", type: "application/json", text: JSON.stringify(output)}); } - $tw.wiki.addTiddler({title: "$:/config/OriginalTiddlerPaths", type: "application/json", text: JSON.stringify(output)}); } - // Save the path to the tiddlers folder for the filesystemadaptor - $tw.boot.wikiTiddlersPath = path.resolve($tw.boot.wikiPath,config["default-tiddler-location"] || $tw.config.wikiTiddlersSubDir); // Load any plugins within the wiki folder var wikiPluginsPath = path.resolve(wikiPath,$tw.config.wikiPluginsSubDir); if(fs.existsSync(wikiPluginsPath)) { @@ -2134,7 +2190,7 @@ $tw.loadTiddlersNode = function() { // Load any extra plugins $tw.utils.each($tw.boot.extraPlugins,function(name) { if(name.charAt(0) === "+") { // Relative path to plugin - var pluginFields = $tw.loadPluginFolder(name.substring(1));; + var pluginFields = $tw.loadPluginFolder(name.substring(1)); if(pluginFields) { $tw.wiki.addTiddler(pluginFields); } @@ -2160,8 +2216,7 @@ $tw.loadTiddlersNode = function() { /* Startup TiddlyWiki */ -$tw.boot.startup = function(options) { - options = options || {}; +$tw.boot.initStartup = function(options) { // Get the URL hash and check for safe mode $tw.locationHash = "#"; if($tw.browser && !$tw.node) { @@ -2245,17 +2300,23 @@ $tw.boot.startup = function(options) { $tw.utils.registerFileType("application/json","utf8",".json"); $tw.utils.registerFileType("application/pdf","base64",".pdf",{flags:["image"]}); $tw.utils.registerFileType("application/zip","base64",".zip"); + $tw.utils.registerFileType("application/x-zip-compressed","base64",".zip"); $tw.utils.registerFileType("image/jpeg","base64",[".jpg",".jpeg"],{flags:["image"]}); + $tw.utils.registerFileType("image/jpg","base64",[".jpg",".jpeg"],{flags:["image"]}); $tw.utils.registerFileType("image/png","base64",".png",{flags:["image"]}); $tw.utils.registerFileType("image/gif","base64",".gif",{flags:["image"]}); $tw.utils.registerFileType("image/webp","base64",".webp",{flags:["image"]}); $tw.utils.registerFileType("image/heic","base64",".heic",{flags:["image"]}); $tw.utils.registerFileType("image/heif","base64",".heif",{flags:["image"]}); $tw.utils.registerFileType("image/svg+xml","utf8",".svg",{flags:["image"]}); + $tw.utils.registerFileType("image/vnd.microsoft.icon","base64",".ico",{flags:["image"]}); $tw.utils.registerFileType("image/x-icon","base64",".ico",{flags:["image"]}); $tw.utils.registerFileType("application/font-woff","base64",".woff"); $tw.utils.registerFileType("application/x-font-ttf","base64",".woff"); + $tw.utils.registerFileType("application/font-woff2","base64",".woff2"); $tw.utils.registerFileType("audio/ogg","base64",".ogg"); + $tw.utils.registerFileType("video/ogg","base64",[".ogm",".ogv",".ogg"]); + $tw.utils.registerFileType("video/webm","base64",".webm"); $tw.utils.registerFileType("video/mp4","base64",".mp4"); $tw.utils.registerFileType("audio/mp3","base64",".mp3"); $tw.utils.registerFileType("audio/mp4","base64",[".mp4",".m4a"]); @@ -2290,6 +2351,9 @@ $tw.boot.startup = function(options) { return result; } } +}; +$tw.boot.loadStartup = function(options){ + // Load tiddlers if($tw.boot.tasks.readBrowserTiddlers) { $tw.loadTiddlersBrowser(); @@ -2302,6 +2366,8 @@ $tw.boot.startup = function(options) { } // Give hooks a chance to modify the store $tw.hooks.invokeHook("th-boot-tiddlers-loaded"); +} +$tw.boot.execStartup = function(options){ // Unpack plugin tiddlers $tw.wiki.readPluginInfo(); $tw.wiki.registerPluginTiddlers("plugin",$tw.safeMode ? ["$:/core"] : undefined); @@ -2330,6 +2396,16 @@ $tw.boot.startup = function(options) { $tw.boot.disabledStartupModules = $tw.boot.disabledStartupModules || []; // Repeatedly execute the next eligible task $tw.boot.executeNextStartupTask(options.callback); +} +/* +Startup TiddlyWiki +*/ +$tw.boot.startup = function(options) { + options = options || {}; + // Get the URL hash and check for safe mode + $tw.boot.initStartup(options); + $tw.boot.loadStartup(options); + $tw.boot.execStartup(options); }; /* diff --git a/core/copyright.tid b/core/copyright.tid index 21470e3c4..da72136c4 100644 --- a/core/copyright.tid +++ b/core/copyright.tid @@ -4,7 +4,7 @@ type: text/plain TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com) Copyright (c) 2004-2007, Jeremy Ruston -Copyright (c) 2007-2018, UnaMesa Association +Copyright (c) 2007-2021, UnaMesa Association All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/core/images/add-comment.tid b/core/images/add-comment.tid index 3e77ed518..178221806 100644 --- a/core/images/add-comment.tid +++ b/core/images/add-comment.tid @@ -1,4 +1,4 @@ title: $:/core/images/add-comment tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/advanced-search-button.tid b/core/images/advanced-search-button.tid index 5579193ac..6fda3fe8b 100755 --- a/core/images/advanced-search-button.tid +++ b/core/images/advanced-search-button.tid @@ -1,11 +1,4 @@ title: $:/core/images/advanced-search-button tags: $:/tags/Image - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/auto-height.tid b/core/images/auto-height.tid index e65b9c5b6..78f95418b 100755 --- a/core/images/auto-height.tid +++ b/core/images/auto-height.tid @@ -1,6 +1,4 @@ title: $:/core/images/auto-height tags: $:/tags/Image - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/blank.tid b/core/images/blank.tid index 17cd2e65a..731b55a5a 100755 --- a/core/images/blank.tid +++ b/core/images/blank.tid @@ -1,4 +1,4 @@ title: $:/core/images/blank tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/bold.tid b/core/images/bold.tid index 0e5d9d8d6..67a00f894 100755 --- a/core/images/bold.tid +++ b/core/images/bold.tid @@ -1,8 +1,4 @@ title: $:/core/images/bold tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/cancel-button.tid b/core/images/cancel-button.tid index 2bca34874..c55620b06 100755 --- a/core/images/cancel-button.tid +++ b/core/images/cancel-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/cancel-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/chevron-down.tid b/core/images/chevron-down.tid index a20539d7a..f1b363dfc 100755 --- a/core/images/chevron-down.tid +++ b/core/images/chevron-down.tid @@ -1,9 +1,4 @@ title: $:/core/images/chevron-down tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/chevron-left.tid b/core/images/chevron-left.tid index 379db701e..e4c69d95a 100755 --- a/core/images/chevron-left.tid +++ b/core/images/chevron-left.tid @@ -1,9 +1,4 @@ title: $:/core/images/chevron-left tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/chevron-right.tid b/core/images/chevron-right.tid index 2d379867e..6ff5b6c0d 100755 --- a/core/images/chevron-right.tid +++ b/core/images/chevron-right.tid @@ -1,9 +1,4 @@ title: $:/core/images/chevron-right tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/chevron-up.tid b/core/images/chevron-up.tid index 29824211a..9acbdec40 100755 --- a/core/images/chevron-up.tid +++ b/core/images/chevron-up.tid @@ -1,9 +1,4 @@ title: $:/core/images/chevron-up tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/clone-button.tid b/core/images/clone-button.tid index 4aa1c9362..9ff4903ad 100755 --- a/core/images/clone-button.tid +++ b/core/images/clone-button.tid @@ -1,9 +1,4 @@ title: $:/core/images/clone-button tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/close-all-button.tid b/core/images/close-all-button.tid index d998e68e9..3334c5dbc 100755 --- a/core/images/close-all-button.tid +++ b/core/images/close-all-button.tid @@ -1,11 +1,4 @@ title: $:/core/images/close-all-button tags: $:/tags/Image - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/close-button.tid b/core/images/close-button.tid index da83fd5fb..c462c9bac 100755 --- a/core/images/close-button.tid +++ b/core/images/close-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/close-button tags: $:/tags/Image - - - - - + \ No newline at end of file diff --git a/core/images/close-others-button.tid b/core/images/close-others-button.tid index 78a163299..1cd54d797 100755 --- a/core/images/close-others-button.tid +++ b/core/images/close-others-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/close-others-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/copy-clipboard.tid b/core/images/copy-clipboard.tid index 583808bd4..e4e55b6e9 100644 --- a/core/images/copy-clipboard.tid +++ b/core/images/copy-clipboard.tid @@ -1,15 +1,4 @@ title: $:/core/images/copy-clipboard tags: $:/tags/Image - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/delete-button.tid b/core/images/delete-button.tid index 5dde6fe03..e8c9b6108 100755 --- a/core/images/delete-button.tid +++ b/core/images/delete-button.tid @@ -1,14 +1,4 @@ title: $:/core/images/delete-button tags: $:/tags/Image - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/done-button.tid b/core/images/done-button.tid index 069adafe9..265528d06 100755 --- a/core/images/done-button.tid +++ b/core/images/done-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/done-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/down-arrow.tid b/core/images/down-arrow.tid index 8315c8e49..4cac65a00 100755 --- a/core/images/down-arrow.tid +++ b/core/images/down-arrow.tid @@ -1,6 +1,4 @@ title: $:/core/images/down-arrow tags: $:/tags/Image - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/download-button.tid b/core/images/download-button.tid index 0c524b28f..e3a549639 100755 --- a/core/images/download-button.tid +++ b/core/images/download-button.tid @@ -1,4 +1,4 @@ title: $:/core/images/download-button tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/edit-button.tid b/core/images/edit-button.tid index d65f94903..190dffc41 100755 --- a/core/images/edit-button.tid +++ b/core/images/edit-button.tid @@ -1,9 +1,4 @@ title: $:/core/images/edit-button tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/erase.tid b/core/images/erase.tid index ba18f5bd0..22b31e7cc 100755 --- a/core/images/erase.tid +++ b/core/images/erase.tid @@ -1,8 +1,4 @@ title: $:/core/images/erase tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/excise.tid b/core/images/excise.tid index 2360cb5a7..e6c2c9404 100755 --- a/core/images/excise.tid +++ b/core/images/excise.tid @@ -1,8 +1,4 @@ title: $:/core/images/excise tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/export-button.tid b/core/images/export-button.tid index 940ffe7d5..eb3284c80 100755 --- a/core/images/export-button.tid +++ b/core/images/export-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/export-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/file.tid b/core/images/file.tid index d66b19e50..67ebc22ac 100755 --- a/core/images/file.tid +++ b/core/images/file.tid @@ -1,14 +1,4 @@ title: $:/core/images/file tags: $:/tags/Image - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/fixed-height.tid b/core/images/fixed-height.tid index 3b53256ab..c15162267 100755 --- a/core/images/fixed-height.tid +++ b/core/images/fixed-height.tid @@ -1,8 +1,4 @@ title: $:/core/images/fixed-height tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/fold-all-button.tid b/core/images/fold-all-button.tid index c74ae421a..edff8b22b 100755 --- a/core/images/fold-all-button.tid +++ b/core/images/fold-all-button.tid @@ -1,11 +1,4 @@ title: $:/core/images/fold-all-button tags: $:/tags/Image - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/fold-button.tid b/core/images/fold-button.tid index 190e61d64..f0b2b474d 100755 --- a/core/images/fold-button.tid +++ b/core/images/fold-button.tid @@ -1,10 +1,4 @@ title: $:/core/images/fold-button tags: $:/tags/Image - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/fold-others-button.tid b/core/images/fold-others-button.tid index d19505cea..5cb086f85 100755 --- a/core/images/fold-others-button.tid +++ b/core/images/fold-others-button.tid @@ -1,10 +1,4 @@ title: $:/core/images/fold-others-button tags: $:/tags/Image - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/folder.tid b/core/images/folder.tid index 354e6e633..4b89418ff 100755 --- a/core/images/folder.tid +++ b/core/images/folder.tid @@ -1,9 +1,4 @@ title: $:/core/images/folder tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/full-screen-button.tid b/core/images/full-screen-button.tid index acc6edbd6..8572ff646 100755 --- a/core/images/full-screen-button.tid +++ b/core/images/full-screen-button.tid @@ -1,19 +1,4 @@ title: $:/core/images/full-screen-button tags: $:/tags/Image - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/github.tid b/core/images/github.tid index 98d9aeef3..6389f5cdc 100755 --- a/core/images/github.tid +++ b/core/images/github.tid @@ -1,8 +1,4 @@ title: $:/core/images/github tags: $:/tags/Image - - - - - + \ No newline at end of file diff --git a/core/images/gitter.tid b/core/images/gitter.tid index 0ac6deb4d..876fc3da1 100644 --- a/core/images/gitter.tid +++ b/core/images/gitter.tid @@ -1,9 +1,4 @@ title: $:/core/images/gitter tags: $:/tags/Image - - - - - - + \ No newline at end of file diff --git a/core/images/globe.tid b/core/images/globe.tid index 02b58e219..9448ed7a4 100755 --- a/core/images/globe.tid +++ b/core/images/globe.tid @@ -1,10 +1,4 @@ title: $:/core/images/globe tags: $:/tags/Image - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/heading-1.tid b/core/images/heading-1.tid index 94d57dee9..f8a98123b 100755 --- a/core/images/heading-1.tid +++ b/core/images/heading-1.tid @@ -1,8 +1,4 @@ title: $:/core/images/heading-1 tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/heading-2.tid b/core/images/heading-2.tid index 65b2e3750..ef0022cc6 100755 --- a/core/images/heading-2.tid +++ b/core/images/heading-2.tid @@ -1,8 +1,4 @@ title: $:/core/images/heading-2 tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/heading-3.tid b/core/images/heading-3.tid index 6899440a7..d706d067b 100755 --- a/core/images/heading-3.tid +++ b/core/images/heading-3.tid @@ -1,8 +1,4 @@ title: $:/core/images/heading-3 tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/heading-4.tid b/core/images/heading-4.tid index c30a44692..16d4440db 100755 --- a/core/images/heading-4.tid +++ b/core/images/heading-4.tid @@ -1,8 +1,4 @@ title: $:/core/images/heading-4 tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/heading-5.tid b/core/images/heading-5.tid index 8e0a7fdc8..8f34b7058 100755 --- a/core/images/heading-5.tid +++ b/core/images/heading-5.tid @@ -1,8 +1,4 @@ title: $:/core/images/heading-5 tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/heading-6.tid b/core/images/heading-6.tid index 93f7bcfd7..b348c70af 100755 --- a/core/images/heading-6.tid +++ b/core/images/heading-6.tid @@ -1,8 +1,4 @@ title: $:/core/images/heading-6 tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/help.tid b/core/images/help.tid index 33f924bc4..07167ae93 100755 --- a/core/images/help.tid +++ b/core/images/help.tid @@ -1,8 +1,4 @@ title: $:/core/images/help tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/home-button.tid b/core/images/home-button.tid index 5eabf6a98..10c00626a 100755 --- a/core/images/home-button.tid +++ b/core/images/home-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/home-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/import-button.tid b/core/images/import-button.tid index 54534bb6c..6850513ef 100755 --- a/core/images/import-button.tid +++ b/core/images/import-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/import-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/info-button.tid b/core/images/info-button.tid index 263fe9056..2679a135a 100755 --- a/core/images/info-button.tid +++ b/core/images/info-button.tid @@ -1,12 +1,4 @@ title: $:/core/images/info-button tags: $:/tags/Image - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/italic.tid b/core/images/italic.tid index f7c46b55c..06aada589 100755 --- a/core/images/italic.tid +++ b/core/images/italic.tid @@ -1,8 +1,4 @@ title: $:/core/images/italic tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/left-arrow.tid b/core/images/left-arrow.tid index 461aec452..a418581cd 100755 --- a/core/images/left-arrow.tid +++ b/core/images/left-arrow.tid @@ -3,6 +3,4 @@ modified: 20150315235324760 tags: $:/tags/Image title: $:/core/images/left-arrow - - - + \ No newline at end of file diff --git a/core/images/line-width.tid b/core/images/line-width.tid index 1e8854c4e..f77763ce6 100755 --- a/core/images/line-width.tid +++ b/core/images/line-width.tid @@ -1,9 +1,4 @@ title: $:/core/images/line-width tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/link.tid b/core/images/link.tid index 1e094a9b0..395307c42 100644 --- a/core/images/link.tid +++ b/core/images/link.tid @@ -1,9 +1,4 @@ title: $:/core/images/link tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/linkify.tid b/core/images/linkify.tid index 368d27490..40acdc19a 100644 --- a/core/images/linkify.tid +++ b/core/images/linkify.tid @@ -1,4 +1,4 @@ title: $:/core/images/linkify tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/list-bullet.tid b/core/images/list-bullet.tid index 7951ad229..322dd4ae6 100755 --- a/core/images/list-bullet.tid +++ b/core/images/list-bullet.tid @@ -1,8 +1,4 @@ title: $:/core/images/list-bullet tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/list-number.tid b/core/images/list-number.tid index 768f16d25..161917823 100755 --- a/core/images/list-number.tid +++ b/core/images/list-number.tid @@ -1,8 +1,4 @@ title: $:/core/images/list-number tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/list.tid b/core/images/list.tid index c27a51647..22b784bfe 100644 --- a/core/images/list.tid +++ b/core/images/list.tid @@ -1,9 +1,4 @@ title: $:/core/images/list tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/locked-padlock.tid b/core/images/locked-padlock.tid index 28a6ea986..14d95560c 100755 --- a/core/images/locked-padlock.tid +++ b/core/images/locked-padlock.tid @@ -1,8 +1,4 @@ title: $:/core/images/locked-padlock tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/mail.tid b/core/images/mail.tid index 50d39f35f..cf0f4eab7 100755 --- a/core/images/mail.tid +++ b/core/images/mail.tid @@ -1,8 +1,4 @@ title: $:/core/images/mail tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/menu-button.tid b/core/images/menu-button.tid index b2a9162d6..6d1872e4c 100755 --- a/core/images/menu-button.tid +++ b/core/images/menu-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/menu-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/mono-block.tid b/core/images/mono-block.tid index 1675e3854..f8695302b 100755 --- a/core/images/mono-block.tid +++ b/core/images/mono-block.tid @@ -1,8 +1,4 @@ title: $:/core/images/mono-block tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/mono-line.tid b/core/images/mono-line.tid index 81d0faf3f..09cfe513e 100755 --- a/core/images/mono-line.tid +++ b/core/images/mono-line.tid @@ -1,8 +1,4 @@ title: $:/core/images/mono-line tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/new-button.tid b/core/images/new-button.tid index 560d15350..6e592ada9 100755 --- a/core/images/new-button.tid +++ b/core/images/new-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/new-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/new-here-button.tid b/core/images/new-here-button.tid index 333265220..ab0f7a6f3 100755 --- a/core/images/new-here-button.tid +++ b/core/images/new-here-button.tid @@ -1,13 +1,4 @@ title: $:/core/images/new-here-button tags: $:/tags/Image - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/new-image-button.tid b/core/images/new-image-button.tid index 5109bf98d..16b63c3c3 100755 --- a/core/images/new-image-button.tid +++ b/core/images/new-image-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/new-image-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/new-journal-button.tid b/core/images/new-journal-button.tid index 86c3c589c..fb67c8007 100755 --- a/core/images/new-journal-button.tid +++ b/core/images/new-journal-button.tid @@ -1,16 +1,4 @@ title: $:/core/images/new-journal-button tags: $:/tags/Image - - - - - - - - <> - - - - - \ No newline at end of file +<> \ No newline at end of file diff --git a/core/images/opacity.tid b/core/images/opacity.tid index e9bb732e1..e9a29aea2 100755 --- a/core/images/opacity.tid +++ b/core/images/opacity.tid @@ -1,10 +1,4 @@ title: $:/core/images/opacity tags: $:/tags/Image - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/open-window.tid b/core/images/open-window.tid index 337c582a1..14b556484 100755 --- a/core/images/open-window.tid +++ b/core/images/open-window.tid @@ -1,9 +1,4 @@ title: $:/core/images/open-window tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/options-button.tid b/core/images/options-button.tid index 6b00b23f9..bd0ffcb1a 100755 --- a/core/images/options-button.tid +++ b/core/images/options-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/options-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/paint.tid b/core/images/paint.tid index c6dcab834..bb536b53a 100755 --- a/core/images/paint.tid +++ b/core/images/paint.tid @@ -1,8 +1,4 @@ title: $:/core/images/paint tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/palette.tid b/core/images/palette.tid index 083769bb6..d605fd853 100755 --- a/core/images/palette.tid +++ b/core/images/palette.tid @@ -1,8 +1,4 @@ title: $:/core/images/palette tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/permalink-button.tid b/core/images/permalink-button.tid index 28f1223a0..e8fd0aecd 100755 --- a/core/images/permalink-button.tid +++ b/core/images/permalink-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/permalink-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/permaview-button.tid b/core/images/permaview-button.tid index a501f6f6f..b2ad9a408 100755 --- a/core/images/permaview-button.tid +++ b/core/images/permaview-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/permaview-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/picture.tid b/core/images/picture.tid index 71d2bf1a6..7d035e2fc 100755 --- a/core/images/picture.tid +++ b/core/images/picture.tid @@ -1,8 +1,4 @@ title: $:/core/images/picture tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/plugin-generic-language.tid b/core/images/plugin-generic-language.tid index 1c5aa3ce5..5c777d98d 100755 --- a/core/images/plugin-generic-language.tid +++ b/core/images/plugin-generic-language.tid @@ -1,8 +1,4 @@ title: $:/core/images/plugin-generic-language tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/plugin-generic-plugin.tid b/core/images/plugin-generic-plugin.tid index 6f56da7a3..ab2e6670e 100755 --- a/core/images/plugin-generic-plugin.tid +++ b/core/images/plugin-generic-plugin.tid @@ -1,8 +1,4 @@ title: $:/core/images/plugin-generic-plugin tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/plugin-generic-theme.tid b/core/images/plugin-generic-theme.tid index 1f4224b10..9ae3cd779 100755 --- a/core/images/plugin-generic-theme.tid +++ b/core/images/plugin-generic-theme.tid @@ -1,8 +1,4 @@ title: $:/core/images/plugin-generic-theme tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/preview-closed.tid b/core/images/preview-closed.tid index 1ca8f24ba..5986d8966 100755 --- a/core/images/preview-closed.tid +++ b/core/images/preview-closed.tid @@ -1,15 +1,4 @@ title: $:/core/images/preview-closed tags: $:/tags/Image - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/preview-open.tid b/core/images/preview-open.tid index 17f2319e1..4664990b4 100755 --- a/core/images/preview-open.tid +++ b/core/images/preview-open.tid @@ -1,9 +1,4 @@ title: $:/core/images/preview-open tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/print-button.tid b/core/images/print-button.tid index 5e7c1d8e0..55b33c896 100644 --- a/core/images/print-button.tid +++ b/core/images/print-button.tid @@ -1,12 +1,4 @@ title: $:/core/images/print-button tags: $:/tags/Image - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/quote.tid b/core/images/quote.tid index 882b1debc..7134306a6 100755 --- a/core/images/quote.tid +++ b/core/images/quote.tid @@ -1,8 +1,4 @@ title: $:/core/images/quote tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/refresh-button.tid b/core/images/refresh-button.tid index c28c7af32..2422b0679 100755 --- a/core/images/refresh-button.tid +++ b/core/images/refresh-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/refresh-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/right-arrow.tid b/core/images/right-arrow.tid index 14095b3b1..42e7dea56 100755 --- a/core/images/right-arrow.tid +++ b/core/images/right-arrow.tid @@ -1,6 +1,4 @@ title: $:/core/images/right-arrow tags: $:/tags/Image - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/rotate-left.tid b/core/images/rotate-left.tid index 7530aedde..188d3b45c 100644 --- a/core/images/rotate-left.tid +++ b/core/images/rotate-left.tid @@ -1,4 +1,4 @@ title: $:/core/images/rotate-left tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/save-button.tid b/core/images/save-button.tid index dd57a92e5..a66756616 100755 --- a/core/images/save-button.tid +++ b/core/images/save-button.tid @@ -1,8 +1,4 @@ title: $:/core/images/save-button tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/size.tid b/core/images/size.tid index 4822dbb50..db84ecf9b 100755 --- a/core/images/size.tid +++ b/core/images/size.tid @@ -1,6 +1,4 @@ title: $:/core/images/size tags: $:/tags/Image - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/spiral.tid b/core/images/spiral.tid index 5ad004f46..ca4684cab 100755 --- a/core/images/spiral.tid +++ b/core/images/spiral.tid @@ -1,8 +1,4 @@ title: $:/core/images/spiral tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/stamp.tid b/core/images/stamp.tid index ab8949c1d..ba385aaae 100755 --- a/core/images/stamp.tid +++ b/core/images/stamp.tid @@ -1,8 +1,4 @@ title: $:/core/images/stamp tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/star-filled.tid b/core/images/star-filled.tid index 3199c14db..10b8f1c3d 100755 --- a/core/images/star-filled.tid +++ b/core/images/star-filled.tid @@ -1,8 +1,4 @@ title: $:/core/images/star-filled tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/storyview-classic.tid b/core/images/storyview-classic.tid index a0f7b7af0..86872817b 100755 --- a/core/images/storyview-classic.tid +++ b/core/images/storyview-classic.tid @@ -1,8 +1,4 @@ title: $:/core/images/storyview-classic tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/storyview-pop.tid b/core/images/storyview-pop.tid index f56cb58bc..a610c89d5 100755 --- a/core/images/storyview-pop.tid +++ b/core/images/storyview-pop.tid @@ -1,8 +1,4 @@ title: $:/core/images/storyview-pop tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/storyview-zoomin.tid b/core/images/storyview-zoomin.tid index 949f535e2..61b7ff273 100755 --- a/core/images/storyview-zoomin.tid +++ b/core/images/storyview-zoomin.tid @@ -1,8 +1,4 @@ title: $:/core/images/storyview-zoomin tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/strikethrough.tid b/core/images/strikethrough.tid index 80898c870..1f7a1c202 100755 --- a/core/images/strikethrough.tid +++ b/core/images/strikethrough.tid @@ -1,9 +1,4 @@ title: $:/core/images/strikethrough tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/subscript.tid b/core/images/subscript.tid index a56aa2f1d..96548bdb5 100755 --- a/core/images/subscript.tid +++ b/core/images/subscript.tid @@ -1,8 +1,4 @@ title: $:/core/images/subscript tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/superscript.tid b/core/images/superscript.tid index ca48636e0..149e44893 100755 --- a/core/images/superscript.tid +++ b/core/images/superscript.tid @@ -1,8 +1,4 @@ title: $:/core/images/superscript tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/tag-button.tid b/core/images/tag-button.tid index 9eb2a70d7..9f6cad8b4 100755 --- a/core/images/tag-button.tid +++ b/core/images/tag-button.tid @@ -1,9 +1,4 @@ title: $:/core/images/tag-button tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/theme-button.tid b/core/images/theme-button.tid index 8e14a45d5..d80a0e82a 100755 --- a/core/images/theme-button.tid +++ b/core/images/theme-button.tid @@ -1,9 +1,4 @@ title: $:/core/images/theme-button tags: $:/tags/Image - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/timestamp-off.tid b/core/images/timestamp-off.tid index 132dfc127..0d20f28d6 100644 --- a/core/images/timestamp-off.tid +++ b/core/images/timestamp-off.tid @@ -1,8 +1,4 @@ title: $:/core/images/timestamp-off tags: $:/tags/Image - - - - - + \ No newline at end of file diff --git a/core/images/timestamp-on.tid b/core/images/timestamp-on.tid index 292181b49..3a16df7eb 100644 --- a/core/images/timestamp-on.tid +++ b/core/images/timestamp-on.tid @@ -1,8 +1,4 @@ title: $:/core/images/timestamp-on tags: $:/tags/Image - - - - - + \ No newline at end of file diff --git a/core/images/tip.tid b/core/images/tip.tid index 88a622ab0..f8109ada4 100755 --- a/core/images/tip.tid +++ b/core/images/tip.tid @@ -1,8 +1,4 @@ title: $:/core/images/tip tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/transcludify.tid b/core/images/transcludify.tid index 33f7e0af1..0579feb10 100644 --- a/core/images/transcludify.tid +++ b/core/images/transcludify.tid @@ -1,4 +1,4 @@ title: $:/core/images/transcludify tags: $:/tags/Image - + \ No newline at end of file diff --git a/core/images/twitter.tid b/core/images/twitter.tid index 614cf762c..28cfccdbd 100755 --- a/core/images/twitter.tid +++ b/core/images/twitter.tid @@ -1,8 +1,4 @@ title: $:/core/images/twitter tags: $:/tags/Image - - - - - + \ No newline at end of file diff --git a/core/images/underline.tid b/core/images/underline.tid index 22465748b..768d2a199 100755 --- a/core/images/underline.tid +++ b/core/images/underline.tid @@ -1,8 +1,4 @@ title: $:/core/images/underline tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/unfold-all-button.tid b/core/images/unfold-all-button.tid index 29f217b94..e496bdd89 100755 --- a/core/images/unfold-all-button.tid +++ b/core/images/unfold-all-button.tid @@ -1,11 +1,4 @@ title: $:/core/images/unfold-all-button tags: $:/tags/Image - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/unfold-button.tid b/core/images/unfold-button.tid index bd4e9036d..cfad70570 100755 --- a/core/images/unfold-button.tid +++ b/core/images/unfold-button.tid @@ -1,10 +1,4 @@ title: $:/core/images/unfold-button tags: $:/tags/Image - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/unlocked-padlock.tid b/core/images/unlocked-padlock.tid index 6e24bb3b3..c5367c085 100755 --- a/core/images/unlocked-padlock.tid +++ b/core/images/unlocked-padlock.tid @@ -1,8 +1,4 @@ title: $:/core/images/unlocked-padlock tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/up-arrow.tid b/core/images/up-arrow.tid index b680b69df..a1bd132bf 100755 --- a/core/images/up-arrow.tid +++ b/core/images/up-arrow.tid @@ -3,7 +3,4 @@ modified: 20150316000831867 tags: $:/tags/Image title: $:/core/images/up-arrow - - - - + \ No newline at end of file diff --git a/core/images/video.tid b/core/images/video.tid index 6ae9fd46a..3bf0bb259 100755 --- a/core/images/video.tid +++ b/core/images/video.tid @@ -1,8 +1,4 @@ title: $:/core/images/video tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/warning.tid b/core/images/warning.tid index 1a34233dc..53bff59ec 100755 --- a/core/images/warning.tid +++ b/core/images/warning.tid @@ -1,8 +1,4 @@ title: $:/core/images/warning tags: $:/tags/Image - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index 99a526b9f..6fc42e954 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -17,6 +17,8 @@ Basics/NewJournal/Tags/Prompt: Tags for new journal tiddlers Basics/NewTiddler/Title/Prompt: Title of new tiddlers Basics/NewTiddler/Tags/Prompt: Tags for new tiddlers Basics/OverriddenShadowTiddlers/Prompt: Number of overridden shadow tiddlers +Basics/RemoveTags: Update to current format +Basics/RemoveTags/Hint: Update the tags configuration to the latest format Basics/ShadowTiddlers/Prompt: Number of shadow tiddlers Basics/Subtitle/Prompt: Subtitle Basics/SystemTiddlers/Prompt: Number of system tiddlers @@ -44,6 +46,7 @@ KeyboardShortcuts/Platform/Linux: Linux platform only KeyboardShortcuts/Platform/NonLinux: Non-Linux platforms only KeyboardShortcuts/Platform/Windows: Windows platform only KeyboardShortcuts/Platform/NonWindows: Non-Windows platforms only +LayoutSwitcher/Caption: Layout LoadedModules/Caption: Loaded Modules LoadedModules/Hint: These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process. Palette/Caption: Palette @@ -70,6 +73,7 @@ Plugins/Caption: Plugins Plugins/Disable/Caption: disable Plugins/Disable/Hint: Disable this plugin when reloading page Plugins/Disabled/Status: (disabled) +Plugins/Downgrade/Caption: downgrade Plugins/Empty/Hint: None Plugins/Enable/Caption: enable Plugins/Enable/Hint: Enable this plugin when reloading page @@ -87,6 +91,11 @@ Plugins/Plugins/Hint: Plugins Plugins/Reinstall/Caption: reinstall Plugins/Themes/Caption: Themes Plugins/Themes/Hint: Theme plugins +Plugins/Update/Caption: update +Plugins/Updates/Caption: Updates +Plugins/Updates/Hint: Available updates to installed plugins +Plugins/Updates/UpdateAll/Caption: Update <> plugins +Plugins/SubPluginPrompt: With <> sub-plugins available Saving/Caption: Saving Saving/DownloadSaver/AutoSave/Description: Permit automatic saving for the download saver Saving/DownloadSaver/AutoSave/Hint: Enable Autosave for Download Saver @@ -107,8 +116,11 @@ Saving/GitService/GitHub/Caption: ~GitHub Saver Saving/GitService/GitHub/Password: Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details) Saving/GitService/GitLab/Caption: ~GitLab Saver Saving/GitService/GitLab/Password: Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details) +Saving/GitService/Gitea/Caption: Gitea Saver +Saving/GitService/Gitea/Password: Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`) Saving/TiddlySpot/Advanced/Heading: Advanced Settings Saving/TiddlySpot/BackupDir: Backup Directory +Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel Saving/TiddlySpot/Backups: Backups Saving/TiddlySpot/Caption: ~TiddlySpot Saver Saving/TiddlySpot/Description: These settings are only used when saving to http://tiddlyspot.com or a compatible remote server @@ -116,6 +128,7 @@ Saving/TiddlySpot/Filename: Upload Filename Saving/TiddlySpot/Heading: ~TiddlySpot Saving/TiddlySpot/Hint: //The server URL defaults to `http://.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.// Saving/TiddlySpot/Password: Password +Saving/TiddlySpot/ReadOnly: The ~TiddlySpot service is currently only available in read-only form. Please see http://tiddlyspot.com/ for the latest details. The ~TiddlySpot saver can still be used to save to compatible servers. Saving/TiddlySpot/ServerURL: Server URL Saving/TiddlySpot/UploadDir: Upload Directory Saving/TiddlySpot/UserName: Wiki Name diff --git a/core/language/en-GB/Docs/ModuleTypes.multids b/core/language/en-GB/Docs/ModuleTypes.multids index 1e1abd424..9a03d8887 100644 --- a/core/language/en-GB/Docs/ModuleTypes.multids +++ b/core/language/en-GB/Docs/ModuleTypes.multids @@ -23,6 +23,7 @@ tiddlerfield: Defines the behaviour of an individual tiddler field. tiddlermethod: Adds methods to the `$tw.Tiddler` prototype. upgrader: Applies upgrade processing to tiddlers during an upgrade/import. utils: Adds methods to `$tw.utils`. +utils-browser: Adds browser-specific methods to `$tw.utils`. utils-node: Adds Node.js-specific methods to `$tw.utils`. widget: Widgets encapsulate DOM rendering and refreshing. wikimethod: Adds methods to `$tw.Wiki`. diff --git a/core/language/en-GB/Docs/PaletteColours.multids b/core/language/en-GB/Docs/PaletteColours.multids index 5e13de9f3..98addbf85 100644 --- a/core/language/en-GB/Docs/PaletteColours.multids +++ b/core/language/en-GB/Docs/PaletteColours.multids @@ -29,6 +29,8 @@ external-link-foreground-hover: External link foreground hover external-link-foreground-visited: External link foreground visited external-link-foreground: External link foreground foreground: General foreground +menubar-background: Menu bar background +menubar-foreground: Menu bar foreground message-background: Message box background message-border: Message box border message-foreground: Message box foreground diff --git a/core/language/en-GB/EditTemplate.multids b/core/language/en-GB/EditTemplate.multids index 31f18765a..8072ba42d 100644 --- a/core/language/en-GB/EditTemplate.multids +++ b/core/language/en-GB/EditTemplate.multids @@ -19,6 +19,8 @@ Shadow/OverriddenWarning: This is a modified shadow tiddler. You can revert to t Tags/Add/Button: add Tags/Add/Button/Hint: add tag Tags/Add/Placeholder: tag name +Tags/ClearInput/Caption: clear input +Tags/ClearInput/Hint: Clear tag input Tags/Dropdown/Caption: tag list Tags/Dropdown/Hint: Show tag list Title/BadCharacterWarning: Warning: avoid using any of the characters <> in tiddler titles diff --git a/core/language/en-GB/Fields.multids b/core/language/en-GB/Fields.multids index f39ea69d7..d1eeabd42 100644 --- a/core/language/en-GB/Fields.multids +++ b/core/language/en-GB/Fields.multids @@ -13,7 +13,6 @@ description: The descriptive text for a plugin, or a modal dialogue draft.of: For draft tiddlers, contains the title of the tiddler of which this is a draft draft.title: For draft tiddlers, contains the proposed new title of the tiddler footer: The footer text for a wizard -hack-to-give-us-something-to-compare-against: A temporary storage field used in [[$:/core/templates/static.content]] hide-body: The view template will hide bodies of tiddlers if set to: ''yes'' icon: The title of the tiddler containing the icon associated with a tiddler library: Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes'' @@ -36,3 +35,4 @@ title: The unique name of a tiddler toc-link: Suppresses the tiddler's link in a Table of Contents tree if set to: ''no'' type: The content type of a tiddler version: Version information for a plugin +_is_skinny: If present, indicates that the tiddler text field must be loaded from the server diff --git a/core/language/en-GB/Help/listen.tid b/core/language/en-GB/Help/listen.tid index 88208ea29..7b2c78cbe 100644 --- a/core/language/en-GB/Help/listen.tid +++ b/core/language/en-GB/Help/listen.tid @@ -22,6 +22,7 @@ All parameters are optional with safe defaults, and can be specified in any orde * ''readers'' - comma separated list of principals allowed to read from this wiki * ''writers'' - comma separated list of principals allowed to write to this wiki * ''csrf-disable'' - set to "yes" to disable CSRF checks (defaults to "no") +* ''sse-enabled'' - set to "yes" to enable Server-sent events (defaults to "no") * ''root-tiddler'' - the tiddler to serve at the root (defaults to "$:/core/save/all") * ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to "text/plain") * ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to "text/html") diff --git a/core/language/en-GB/Help/render.tid b/core/language/en-GB/Help/render.tid index 2b7b168c9..47be85517 100644 --- a/core/language/en-GB/Help/render.tid +++ b/core/language/en-GB/Help/render.tid @@ -8,15 +8,15 @@ Optionally, the title of a template tiddler can be specified. In this case, inst A name and value for an additional variable may optionally also be specified. ``` ---render [] [] [