diff --git a/.github/workflows/cla-check.yml b/.github/workflows/cla-check.yml new file mode 100644 index 000000000..27e404543 --- /dev/null +++ b/.github/workflows/cla-check.yml @@ -0,0 +1,30 @@ +name: Check CLA Signature +on: + pull_request_target: + types: + - opened + - reopened + paths-ignore: + - 'licenses/cla-individual.md' +jobs: + check_cla: + runs-on: ubuntu-latest + permissions: + pull-requests: write + if: ${{ (github.event.pull_request.user.login != github.repository_owner) }} + steps: + - run: | + if ! curl -s https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/tiddlywiki-com/licenses/cla-individual.md | grep -o "@$USER,"; then + echo "CLA not signed" + gh pr comment "$NUMBER" -b "@$USER It appears that this is your first contribution to the project, welcome. + + With apologies for the bureaucracy, please could you prepare a separate PR to the 'tiddlywiki-com' branch with your signature for the Contributor License Agreement (see [contributing.md](https://github.com/Jermolene/TiddlyWiki5/blob/master/contributing.md))." + else + echo "CLA already signed" + gh pr comment "$NUMBER" -b "Confirmed: **$USER** has already signed the Contributor License Agreement (see [contributing.md](https://github.com/Jermolene/TiddlyWiki5/blob/master/contributing.md))" + fi + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + NUMBER: ${{ github.event.pull_request.number }} + USER: ${{ github.actor }} diff --git a/.github/workflows/cla-signed.yml b/.github/workflows/cla-signed.yml new file mode 100644 index 000000000..fc3b205b8 --- /dev/null +++ b/.github/workflows/cla-signed.yml @@ -0,0 +1,70 @@ +name: CLA Signed + +on: + pull_request_target: + types: + - opened + - closed + paths: + - 'licenses/cla-individual.md' + +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + NUMBER: ${{ github.event.pull_request.number }} + AUTHOR: ${{ github.event.pull_request.user.login }} + +jobs: + # check if PRs updating the CLA are targetting the tiddlywiki-com branch + check-signature-branch: + if: (github.event.pull_request.merged != true) && (github.event.pull_request.user.login != github.repository_owner) + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - run: | + if ! $BRANCH == "tiddlywiki-com"; then + echo "This CLA signature targets the wrong branch" + gh pr comment "$NUMBER" -b "@$AUTHOR Signatures to the CLA must target the 'tiddlywiki-com' branch." + fi + env: + BRANCH: ${{ github.event.pull_request.base.ref }} + + # leave a comment on each open PR by a given author when their signature is added to the CLA + cla-signed: + if: (github.event.pull_request.merged == true) && (github.event.pull_request.user.login != github.repository_owner) + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: List open PRs by user + id: list-prs + uses: actions/github-script@v6 + with: + result-encoding: string + script: | + const owner = context.repo.owner, + repo = context.repo.repo, + author = context.payload.pull_request.user.login; + + const { data: pullRequests } = await github.rest.pulls.list({ + owner: owner, + repo: repo, + state: 'open', + sort: 'created', + direction: 'desc', + per_page: 100 + }); + const userPullRequests = pullRequests.filter(pr => pr.user.login === author), + prNumbers = userPullRequests.map(pr => pr.number).join(','); + console.log(`Open pull requests by ${author}:${prNumbers}`); + return prNumbers; + + - name: Comment open PRs by the same author + run: | + prs=($(echo ${{ steps.list-prs.outputs.result }} | tr "," "\n")) + + for number in "${prs[@]}" + do + gh pr comment "$number" -b "**$AUTHOR** has signed the Contributor License Agreement (see [contributing.md](https://github.com/Jermolene/TiddlyWiki5/blob/master/contributing.md))" + done diff --git a/bin/build-site.sh b/bin/build-site.sh index f308518b4..fbb34cc98 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.3.3 + TW5_BUILD_VERSION=v5.3.6 fi echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]" diff --git a/contributing.md b/contributing.md index 9dc10d0da..549e862a6 100644 --- a/contributing.md +++ b/contributing.md @@ -1,3 +1,3 @@ -

Contributing to TiddlyWiki5

Here we focus on contributions via GitHub Pull Requests but there are many other ways that anyone can help the TiddlyWiki project, such as reporting bugs or helping to improve our documentation.

Rules for Pull Requests

PRs must meet these minimum requirements before they can be considered for merging:

Imperative Mood for PR Titles

The "imperative mood" means written as if giving a command or instruction. See this post for more details, but the gist is that the title of the PR should make sense when used to complete the sentence "If applied, this commit will...". So for example, these are good PR titles:

These a poorly worded PR titles:

PR titles may also include a short prefix to indicate the subsystem to which they apply. For example:

Commenting on Pull Requests

One of the principles of open source is that many pairs of eyes on the code can improve quality. So, we welcome comments and critiques of pending PRs. Conventional Comments has some techniques to help make comments as constructive and actionable as possible. Notably, they recommend prefixing a comment with a label to clarify the intention:

praisePraises highlight something positive. Try to leave at least one of these comments per review. Do not leave false praise (which can actually be damaging). Do look for something to sincerely praise
nitpickNitpicks are small, trivial, but necessary changes. Distinguishing nitpick comments significantly helps direct the reader's attention to comments requiring more involvement
suggestionSuggestions are specific requests to improve the subject under review. It is assumed that we all want to do what's best, so these comments are never dismissed as “mere suggestions”, but are taken seriously
issueIssues represent user-facing problems. If possible, it's great to follow this kind of comment with a suggestion
questionQuestions are appropriate if you have a potential concern but are not quite sure if it's relevant or not. Asking the author for clarification or investigation can lead to a quick resolution
thoughtThoughts represent an idea that popped up from reviewing. These comments are non-blocking by nature, but they are extremely valuable and can lead to more focused initiatives and mentoring opportunities
choreChores are simple tasks that must be done before the subject can be “officially” accepted. Usually, these comments reference some common process. Try to leave a link to the process description so that the reader knows how to resolve the chore

Contributor License Agreement

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

How to sign the CLA

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Ensure that the "branch" dropdown at the top left is set to tiddlywiki-com
  3. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  4. Add your name at the bottom
  5. Below the edit box for the CLA text you should see a box labelled Propose file change
  6. Enter a brief title to explain the change (eg, "Signing the CLA")
  7. Click the green button labelled Propose file change
  8. On the following screen, click the green button labelled Create pull request

The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity". +

Contributing to TiddlyWiki5

Here we focus on contributions via GitHub Pull Requests but there are many other ways that anyone can help the TiddlyWiki project, such as reporting bugs or helping to improve our documentation.

Rules for Pull Requests

PRs must meet these minimum requirements before they can be considered for merging:

Imperative Mood for PR Titles

The "imperative mood" means written as if giving a command or instruction. See this post for more details, but the gist is that the title of the PR should make sense when used to complete the sentence "If applied, this commit will...". So for example, these are good PR titles:

These a poorly worded PR titles:

PR titles may also include a short prefix to indicate the subsystem to which they apply. For example:

Commenting on Pull Requests

One of the principles of open source is that many pairs of eyes on the code can improve quality. So, we welcome comments and critiques of pending PRs. Conventional Comments has some techniques to help make comments as constructive and actionable as possible. Notably, they recommend prefixing a comment with a label to clarify the intention:

praisePraises highlight something positive. Try to leave at least one of these comments per review. Do not leave false praise (which can actually be damaging). Do look for something to sincerely praise
nitpickNitpicks are small, trivial, but necessary changes. Distinguishing nitpick comments significantly helps direct the reader's attention to comments requiring more involvement
suggestionSuggestions are specific requests to improve the subject under review. It is assumed that we all want to do what's best, so these comments are never dismissed as “mere suggestions”, but are taken seriously
issueIssues represent user-facing problems. If possible, it's great to follow this kind of comment with a suggestion
questionQuestions are appropriate if you have a potential concern but are not quite sure if it's relevant or not. Asking the author for clarification or investigation can lead to a quick resolution
thoughtThoughts represent an idea that popped up from reviewing. These comments are non-blocking by nature, but they are extremely valuable and can lead to more focused initiatives and mentoring opportunities
choreChores are simple tasks that must be done before the subject can be “officially” accepted. Usually, these comments reference some common process. Try to leave a link to the process description so that the reader knows how to resolve the chore

Contributor License Agreement

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

How to sign the CLA

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Ensure that the "branch" dropdown at the top left is set to tiddlywiki-com
  3. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  4. Add your name at the bottom
  5. Below the edit box for the CLA text you should see a box labelled Propose file change
  6. Enter a brief title to explain the change (eg, "Signing the CLA")
  7. Click the green button labelled Propose file change
  8. On the following screen, click the green button labelled Create pull request

The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".

This file was automatically generated by TiddlyWiki5

\ No newline at end of file diff --git a/core/images/input-button.tid b/core/images/input-button.tid new file mode 100644 index 000000000..731a1e0cd --- /dev/null +++ b/core/images/input-button.tid @@ -0,0 +1,5 @@ +title: $:/core/images/input-button +tags: $:/tags/Image + +\parameters (size:"22pt") +> height=<> class="tc-image-input-button tc-image-button" viewBox="0 0 22 22"> \ No newline at end of file diff --git a/core/language/en-GB/Buttons.multids b/core/language/en-GB/Buttons.multids index 3ee898b4f..15273d18e 100644 --- a/core/language/en-GB/Buttons.multids +++ b/core/language/en-GB/Buttons.multids @@ -104,6 +104,8 @@ ShowSideBar/Caption: show sidebar ShowSideBar/Hint: Show sidebar TagManager/Caption: tag manager TagManager/Hint: Open tag manager +TestCaseImport/Caption: import tiddlers +TestCaseImport/Hint: Import tiddlers Timestamp/Caption: timestamps Timestamp/Hint: Choose whether modifications update timestamps Timestamp/On/Caption: timestamps are on diff --git a/core/language/en-GB/Docs/PaletteColours.multids b/core/language/en-GB/Docs/PaletteColours.multids index 1c671a67c..bc1b36c3d 100644 --- a/core/language/en-GB/Docs/PaletteColours.multids +++ b/core/language/en-GB/Docs/PaletteColours.multids @@ -65,6 +65,10 @@ sidebar-tab-foreground-selected: Sidebar tab foreground for selected tabs sidebar-tab-foreground: Sidebar tab foreground sidebar-tiddler-link-foreground-hover: Sidebar tiddler link foreground hover sidebar-tiddler-link-foreground: Sidebar tiddler link foreground +stability-stable: Badge for stability level "stable" +stability-experimental: Badge for stability level "experimental" +stability-deprecated: Badge for stability level "deprecated" +stability-legacy: Badge for stability level "legacy" testcase-accent-level-1: Test case accent colour with no nesting testcase-accent-level-2: Test case accent colour with 2nd level nesting testcase-accent-level-3: Test case accent colour with 3rd level nesting or higher diff --git a/core/modules/filters/backtranscludes.js b/core/modules/filters/backtranscludes.js index 7d4215073..253b9dd7b 100644 --- a/core/modules/filters/backtranscludes.js +++ b/core/modules/filters/backtranscludes.js @@ -16,11 +16,11 @@ Filter operator for returning all the backtranscludes from a tiddler Export our filter function */ exports.backtranscludes = function(source,operator,options) { - var results = []; + var results = new $tw.utils.LinkedList(); source(function(tiddler,title) { - $tw.utils.pushTop(results,options.wiki.getTiddlerBacktranscludes(title)); + results.pushTop(options.wiki.getTiddlerBacktranscludes(title)); }); - return results; + return results.makeTiddlerIterator(options.wiki); }; })(); diff --git a/core/modules/filters/transcludes.js b/core/modules/filters/transcludes.js index bd618296b..8f42b3bae 100644 --- a/core/modules/filters/transcludes.js +++ b/core/modules/filters/transcludes.js @@ -20,7 +20,7 @@ exports.transcludes = function(source,operator,options) { source(function(tiddler,title) { results.pushTop(options.wiki.getTiddlerTranscludes(title)); }); - return results.toArray(); + return results.makeTiddlerIterator(options.wiki); }; })(); diff --git a/core/modules/indexers/back-indexer.js b/core/modules/indexers/back-indexer.js index b9daf3328..77b51b819 100644 --- a/core/modules/indexers/back-indexer.js +++ b/core/modules/indexers/back-indexer.js @@ -75,7 +75,7 @@ BackSubIndexer.prototype._getTarget = function(tiddler) { } var parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {}); if(parser) { - return this.wiki[this.extractor](parser.tree); + return this.wiki[this.extractor](parser.tree, tiddler.fields.title); } return []; } diff --git a/core/modules/saver-handler.js b/core/modules/saver-handler.js index 119c3e67a..23056bcc2 100644 --- a/core/modules/saver-handler.js +++ b/core/modules/saver-handler.js @@ -95,6 +95,7 @@ function SaverHandler(options) { if($tw.browser) { $tw.rootWidget.addEventListener("tm-save-wiki",function(event) { self.saveWiki({ + wiki: event.widget.wiki, template: event.param, downloadType: "text/plain", variables: event.paramObject @@ -102,6 +103,7 @@ function SaverHandler(options) { }); $tw.rootWidget.addEventListener("tm-download-file",function(event) { self.saveWiki({ + wiki: event.widget.wiki, method: "download", template: event.param, downloadType: "text/plain", @@ -147,20 +149,22 @@ Save the wiki contents. Options are: method: "save", "autosave" or "download" template: the tiddler containing the template to save downloadType: the content type for the saved file + wiki: optional wiki, overriding the default wiki specified in the constructor */ SaverHandler.prototype.saveWiki = function(options) { options = options || {}; var self = this, + wiki = options.wiki || this.wiki, method = options.method || "save"; // Ignore autosave if disabled - if(method === "autosave" && ($tw.config.disableAutoSave || this.wiki.getTiddlerText(this.titleAutoSave,"yes") !== "yes")) { + if(method === "autosave" && ($tw.config.disableAutoSave || wiki.getTiddlerText(this.titleAutoSave,"yes") !== "yes")) { return false; } var variables = options.variables || {}, template = (options.template || - this.wiki.getTiddlerText("$:/config/SaveWikiButton/Template","$:/core/save/all")).trim(), + wiki.getTiddlerText("$:/config/SaveWikiButton/Template","$:/core/save/all")).trim(), downloadType = options.downloadType || "text/plain", - text = this.wiki.renderTiddler(downloadType,template,options), + text = wiki.renderTiddler(downloadType,template,options), callback = function(err) { if(err) { alert($tw.language.getString("Error/WhileSaving") + ":\n\n" + err); diff --git a/core/modules/startup/plugins.js b/core/modules/startup/plugins.js index ab74214b9..fc8ba9589 100644 --- a/core/modules/startup/plugins.js +++ b/core/modules/startup/plugins.js @@ -61,7 +61,7 @@ exports.startup = function() { // Collect the shadow tiddlers of any modified plugins $tw.utils.each(changes.modifiedPlugins,function(pluginTitle) { var pluginInfo = $tw.wiki.getPluginInfo(pluginTitle); - if(pluginInfo) { + if(pluginInfo && pluginInfo.tiddlers) { $tw.utils.each(Object.keys(pluginInfo.tiddlers),function(title) { changedShadowTiddlers[title] = false; }); diff --git a/core/modules/storyviews/classic.js b/core/modules/storyviews/classic.js index c2848c435..044cd97f0 100644 --- a/core/modules/storyviews/classic.js +++ b/core/modules/storyviews/classic.js @@ -82,6 +82,10 @@ ClassicStoryView.prototype.remove = function(widget) { removeElement = function() { widget.removeChildDomNodes(); }; + // Blur the focus if it is within the descendents of the node we are removing + if($tw.utils.domContains(targetElement,targetElement.ownerDocument.activeElement)) { + targetElement.ownerDocument.activeElement.blur(); + } // Abandon if the list entry isn't a DOM element (it might be a text node) if(!targetElement || targetElement.nodeType === Node.TEXT_NODE) { removeElement(); diff --git a/core/modules/utils/dom/dom.js b/core/modules/utils/dom/dom.js index 4ba037ed5..0b71e128c 100644 --- a/core/modules/utils/dom/dom.js +++ b/core/modules/utils/dom/dom.js @@ -270,6 +270,7 @@ Copy plain text to the clipboard on browsers that support it */ exports.copyToClipboard = function(text,options) { options = options || {}; + text = text || ""; var textArea = document.createElement("textarea"); textArea.style.position = "fixed"; textArea.style.top = 0; @@ -289,7 +290,7 @@ exports.copyToClipboard = function(text,options) { var succeeded = false; try { succeeded = document.execCommand("copy"); - } catch (err) { + } catch(err) { } if(!options.doNotNotify) { var successNotification = options.successNotification || "$:/language/Notifications/CopiedToClipboard/Succeeded", @@ -326,7 +327,7 @@ exports.collectDOMVariables = function(selectedNode,domNode,event) { variables["tv-popup-coords"] = Popup.buildCoordinates(Popup.coordinatePrefix.csOffsetParent,nodeRect); var absRect = $tw.utils.extend({}, nodeRect); - for (var currentNode = selectedNode.offsetParent; currentNode; currentNode = currentNode.offsetParent) { + for(var currentNode = selectedNode.offsetParent; currentNode; currentNode = currentNode.offsetParent) { absRect.left += currentNode.offsetLeft; absRect.top += currentNode.offsetTop; } diff --git a/core/modules/widgets/data.js b/core/modules/widgets/data.js index 2c6e2c593..63f12e1f9 100644 --- a/core/modules/widgets/data.js +++ b/core/modules/widgets/data.js @@ -91,7 +91,9 @@ DataWidget.prototype.computeDataTiddlerValues = function() { var titles = this.wiki.filterTiddlers(filter); $tw.utils.each(titles,function(title) { var tiddler = self.wiki.getTiddler(title); - tiddlers.push(tiddler); + if(tiddler) { + tiddlers.push(tiddler); + } }); } } diff --git a/core/modules/wiki.js b/core/modules/wiki.js index 2850dec5f..5673c9e3b 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -551,28 +551,45 @@ exports.getTiddlerBacklinks = function(targetTitle) { /* -Return an array of tiddler titles that are directly transcluded within the given parse tree +Return an array of tiddler titles that are directly transcluded within the given parse tree. `title` is the tiddler being parsed, we will ignore its self-referential transclusions, only return */ -exports.extractTranscludes = function(parseTreeRoot) { +exports.extractTranscludes = function(parseTreeRoot, title) { // Count up the transcludes var transcludes = [], checkParseTree = function(parseTree, parentNode) { for(var t=0; t`) means self-referential transclusion. + value = title; + } else if(parseTreeNode.attributes.field && parseTreeNode.attributes.field.type === "string") { + // Old usage with Empty value (like `<$transclude field='created'/>`) + value = title; } - if(transcludes.indexOf(value) === -1 && value !== undefined) { - transcludes.push(value); + // Deduplicate the result. + if(value && transcludes.indexOf(value) === -1) { + $tw.utils.pushTop(transcludes,value); } } if(parseTreeNode.children) { - checkParseTree(parseTreeNode.children, parseTreeNode); + checkParseTree(parseTreeNode.children,parseTreeNode); } } }; @@ -591,7 +608,8 @@ exports.getTiddlerTranscludes = function(title) { // Parse the tiddler var parser = self.parseTiddler(title); if(parser) { - return self.extractTranscludes(parser.tree); + // this will ignore self-referential transclusions from `title` + return self.extractTranscludes(parser.tree,title); } return []; }); diff --git a/core/palettes/GruvBoxDark.tid b/core/palettes/GruvBoxDark.tid index 3b62eb311..6c3fa6a73 100644 --- a/core/palettes/GruvBoxDark.tid +++ b/core/palettes/GruvBoxDark.tid @@ -82,6 +82,10 @@ sidebar-tab-foreground: <> sidebar-tiddler-link-foreground-hover: #458588 sidebar-tiddler-link-foreground: #98971a site-title-foreground: <> +stability-deprecated: #cc241d +stability-experimental: #d79921 +stability-legacy: #458588 +stability-stable: #98971a static-alert-foreground: #B48EAD tab-background-selected: #ebdbb2 tab-background: #665c54 diff --git a/core/palettes/Nord.tid b/core/palettes/Nord.tid index b296ba783..e8e280998 100644 --- a/core/palettes/Nord.tid +++ b/core/palettes/Nord.tid @@ -82,6 +82,10 @@ sidebar-tab-foreground: <> sidebar-tiddler-link-foreground-hover: #A3BE8C sidebar-tiddler-link-foreground: #81A1C1 site-title-foreground: <> +stability-deprecated: #bf616a +stability-experimental: #d08770 +stability-legacy: #88c0d0 +stability-stable: #a3be8c static-alert-foreground: #B48EAD tab-background-selected: #ECEFF4 tab-background: #4C566A diff --git a/core/palettes/SolarizedDark.tid b/core/palettes/SolarizedDark.tid index eea273c30..bacd385b2 100644 --- a/core/palettes/SolarizedDark.tid +++ b/core/palettes/SolarizedDark.tid @@ -18,7 +18,7 @@ button-foreground: #93a1a1 code-background: #073642 code-border: #586e75 code-foreground: #93a1a1 -dirty-indicator: inherit +dirty-indicator: #dc322f download-background: #859900 download-foreground: #073642 dragger-background: #073642 @@ -72,6 +72,10 @@ sidebar-tab-foreground-selected: #93a1a1 sidebar-tiddler-link-foreground: #2aa198 sidebar-tiddler-link-foreground-hover: #eee8d5 site-title-foreground: #d33682 +stability-deprecated: #dc322f +stability-experimental: #b58900 +stability-legacy: #268bd2 +stability-stable: #859900 static-alert-foreground: #93a1a1 tab-background: #073642 tab-background-selected: #002b36 diff --git a/core/palettes/SolarizedLight.tid b/core/palettes/SolarizedLight.tid index 3cf954bb5..5d8757386 100644 --- a/core/palettes/SolarizedLight.tid +++ b/core/palettes/SolarizedLight.tid @@ -18,7 +18,7 @@ button-foreground: #586e75 code-background: #eee8d5 code-border: #93a1a1 code-foreground: #586e75 -dirty-indicator: inherit +dirty-indicator: #dc322f download-background: #859900 download-foreground: #eee8d5 dragger-background: #eee8d5 @@ -72,6 +72,10 @@ sidebar-tab-foreground-selected: #586e75 sidebar-tiddler-link-foreground: #2aa198 sidebar-tiddler-link-foreground-hover: #002b36 site-title-foreground: #d33682 +stability-deprecated: #dc322f +stability-experimental: #b58900 +stability-legacy: #268bd2 +stability-stable: #859900 static-alert-foreground: #586e75 tab-background: #eee8d5 tab-background-selected: #fdf6e3 diff --git a/core/palettes/Vanilla.tid b/core/palettes/Vanilla.tid index c7c800046..067f32519 100644 --- a/core/palettes/Vanilla.tid +++ b/core/palettes/Vanilla.tid @@ -82,6 +82,10 @@ sidebar-tab-foreground: <> sidebar-tiddler-link-foreground-hover: #444444 sidebar-tiddler-link-foreground: #999999 site-title-foreground: <> +stability-stable: #008000 +stability-experimental: #c07c00 +stability-deprecated: #ff0000 +stability-legacy: #0000ff static-alert-foreground: #aaaaaa tab-background-selected: #ffffff tab-background: #d8d8d8 @@ -95,7 +99,7 @@ table-footer-background: #a8a8a8 table-header-background: #f0f0f0 tag-background: #ec6 tag-foreground: #ffffff -testcase-accent-level-1: #84C5E6 +testcase-accent-level-1: #c1eaff testcase-accent-level-2: #E3B740 testcase-accent-level-3: #5FD564 tiddler-background: <> diff --git a/core/ui/ControlPanel/TiddlyWiki.tid b/core/ui/ControlPanel/TiddlyWiki.tid index ca3c88831..f8d923da2 100644 --- a/core/ui/ControlPanel/TiddlyWiki.tid +++ b/core/ui/ControlPanel/TiddlyWiki.tid @@ -9,7 +9,7 @@ list-before: <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]"> -
> style="border-top:1px solid #eee;"> +
> > !!.tc-control-panel-accent <$link><$transclude field="caption"/> diff --git a/core/ui/TestCases/DefaultTemplate.tid b/core/ui/TestCases/DefaultTemplate.tid index 3a68253e8..fb6e9edf1 100644 --- a/core/ui/TestCases/DefaultTemplate.tid +++ b/core/ui/TestCases/DefaultTemplate.tid @@ -15,7 +15,7 @@ title: $:/core/ui/testcases/DefaultTemplate

- <$genesis $type={{{ [!match[]then[$link]else[div]] }}} to=<>> + <$genesis $type={{{ [!match[]then[$link]else[span]] }}} to=<>> <%if [!match[]] %> !match[fail]then[tc-test-case-result-icon-pass]] [match[fail]then[tc-test-case-result-icon-fail]] +[join[ ]] }}}> <%if [!match[fail]] %> @@ -27,6 +27,31 @@ title: $:/core/ui/testcases/DefaultTemplate <%endif%> <$view tiddler="Description" mode="inline"/> + + <$button popup=`$(state)$-more` + tooltip={{$:/language/Buttons/More/Hint}} + aria-label={{$:/language/Buttons/More/Caption}} + class="tc-btn-invisible" + selectedClass="tc-selected" + > + {{$:/core/images/down-arrow}} + + <$let + tv-config-toolbar-icons="yes" + tv-config-toolbar-text="yes" + tv-config-toolbar-class="tc-btn-invisible" + > + <$reveal state=`$(state)$-more` type="popup" position="belowleft" animate="yes"> +
+ <$list filter="[all[shadows+tiddlers]tag[$:/tags/TestCase/Actions]!has[draft.of]]" + variable="listItem" + > + <$transclude tiddler=<> mode="inline"/> + +
+ + +

<%if [[Narrative]is[tiddler]] %> @@ -46,7 +71,7 @@ title: $:/core/ui/testcases/DefaultTemplate <%endif%>
- <$macrocall $name="tabs" tabsList="[all[tiddlers]sort[]] -[prefix] -Description -Narrative -ExpectedResult -Output Output +[putfirst[]] -[has[plugin-type]]" state=<> default="Output" template="$:/core/ui/testcases/DefaultTemplate/SourceTabs"/> + <$macrocall $name="tabs" tabsList="[all[tiddlers]sort[]] -[prefix] -Description -Narrative -Output Output +[putfirst[]] -[has[plugin-type]]" state=<> default="Output" template="$:/core/ui/testcases/DefaultTemplate/SourceTabs"/>
diff --git a/core/ui/TestCases/DefaultTemplateSourceTabs.tid b/core/ui/TestCases/DefaultTemplateSourceTabs.tid index 68c62c1f6..862a7f57a 100644 --- a/core/ui/TestCases/DefaultTemplateSourceTabs.tid +++ b/core/ui/TestCases/DefaultTemplateSourceTabs.tid @@ -19,6 +19,9 @@ title: $:/core/ui/testcases/DefaultTemplate/SourceTabs <$edit class="tc-edit-texteditor" tiddler=<>/> + \end <$transclude $variable="body" $mode="inline"/> diff --git a/core/ui/TestCases/actions/Export.tid b/core/ui/TestCases/actions/Export.tid new file mode 100644 index 000000000..0d5f976e5 --- /dev/null +++ b/core/ui/TestCases/actions/Export.tid @@ -0,0 +1,4 @@ +title: $:/core/ui/testcases/actions/Export +tags: $:/tags/TestCase/Actions + +<$macrocall $name="exportButton" exportFilter="[all[tiddlers]sort[]] -[prefix[$:/state/]] -Description -Narrative -ExpectedResult -Output Output +[putfirst[]] -[has[plugin-type]]" lingoBase="$:/language/Buttons/ExportTiddlers/"/> \ No newline at end of file diff --git a/core/ui/TestCases/actions/Import.tid b/core/ui/TestCases/actions/Import.tid new file mode 100644 index 000000000..f433118c2 --- /dev/null +++ b/core/ui/TestCases/actions/Import.tid @@ -0,0 +1,11 @@ +title: $:/core/ui/testcases/actions/Import +tags: $:/tags/TestCase/Actions + +\whitespace trim +<$button tooltip={{$:/language/Buttons/TestCaseImport/Hint}} aria-label={{$:/language/Buttons/TestCaseImport/Caption}} class=<>> +<$action-sendmessage $message="tm-import-tiddlers" $param=<>/> +{{$:/core/images/input-button}} + +<$text text={{$:/language/Buttons/TestCaseImport/Caption}}/> + + diff --git a/core/ui/ViewTemplate/body/import.tid b/core/ui/ViewTemplate/body/import.tid index a456e1a4f..d8618c7cf 100644 --- a/core/ui/ViewTemplate/body/import.tid +++ b/core/ui/ViewTemplate/body/import.tid @@ -6,6 +6,7 @@ title: $:/core/ui/ViewTemplate/body/import \whitespace trim <$action-confirm $message={{$:/language/Import/Listing/Cancel/Warning}} > <$action-deletetiddler $tiddler=<>/> +<$action-deletetiddler $tiddler="$:/state/import/select-all"/> <$action-sendmessage $message="tm-close-tiddler" title=<>/> \end diff --git a/core/wiki/config/OfficialPluginLibrary.tid b/core/wiki/config/OfficialPluginLibrary.tid index ed4a78d6a..fc11b6140 100644 --- a/core/wiki/config/OfficialPluginLibrary.tid +++ b/core/wiki/config/OfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/library/v5.3.4/index.html +url: https://tiddlywiki.com/library/v5.3.6/index.html caption: {{$:/language/OfficialPluginLibrary}} {{$:/language/OfficialPluginLibrary/Hint}} diff --git a/core/wiki/macros/CSS.tid b/core/wiki/macros/CSS.tid index 2aca2c363..3d7dfcdb2 100644 --- a/core/wiki/macros/CSS.tid +++ b/core/wiki/macros/CSS.tid @@ -1,18 +1,17 @@ title: $:/core/macros/CSS tags: $:/tags/Macro $:/tags/Global -\procedure colour(name) + +\define colour(name) \whitespace trim -<$transclude $tiddler={{$:/palette}} $index=`$(name)$`> - <$transclude $tiddler="$:/palettes/Vanilla" $index=`$(name)$`> - <$transclude $tiddler=`$:/config/DefaultColourMappings/$(name)$`/> +<$transclude tiddler={{$:/palette}} index="$name$"> + <$transclude tiddler="$:/palettes/Vanilla" index="$name$"> + <$transclude tiddler="$:/config/DefaultColourMappings/$name$"/> \end -\procedure color(name) -<$macrocall $name=colour name=`$(name)$`/> -\end +\define color(name) <> \function box-shadow(shadow) [[ -webkit-box-shadow: $(shadow)$; diff --git a/core/wiki/macros/lingo.tid b/core/wiki/macros/lingo.tid index 24d451b03..fc2e60ebc 100644 --- a/core/wiki/macros/lingo.tid +++ b/core/wiki/macros/lingo.tid @@ -1,24 +1,10 @@ title: $:/core/macros/lingo -tags: $:/tags/Global +tags: $:/tags/Macro - -\procedure lingo-base() +\define lingo-base() $:/language/ -\end lingo-base +\end -\procedure lingo(title,override-lingo-base) - - -<$parameters $parseMode="parseMode"> - - <$let active-lingo-base={{{ [!match[]else] }}}> - - <$transclude $tiddler={{{ [addsuffix] }}} $mode=<<parseMode>>> - <!-- If that didn't work, try the new <lingo-base><langcode>/<title> format --> - <$let language-code={{{ [[$:/language]get[text]get[name]else[en-GB]] }}}> - <$transclude $tiddler={{{ [<active-lingo-base>addsuffix<language-code>addsuffix[/]addsuffix<title>] }}} $mode=<<parseMode>>/> - </$let> - </$transclude> - </$let> -</$parameters> -\end lingo +\define lingo(title) +{{$(lingo-base)$$title$}} +\end diff --git a/core/wiki/macros/tag-picker.tid b/core/wiki/macros/tag-picker.tid index 4618285be..8bd3caf4e 100644 --- a/core/wiki/macros/tag-picker.tid +++ b/core/wiki/macros/tag-picker.tid @@ -1,9 +1,12 @@ title: $:/core/macros/tag-picker -tags: tags: $:/tags/Macro $:/tags/Global -first-search-filter: [subfilter<tagListFilter>!is[system]search:title<userInput>sort[]] -second-search-filter: [subfilter<tagListFilter>is[system]search:title<userInput>sort[]] +tags: $:/tags/Macro $:/tags/Global +first-search-filter: [subfilter<tagListFilter>!is[system]search:title<userInput>] +second-search-filter: [subfilter<tagListFilter>is[system]search:title<userInput>] -<!-- first-search-filter and second-search-filter fields are not used here in the code, but they are defined as parameters for keyboard-driven-input macro --> +<!-- + Fields: "first-search-filter", "second-search-filter" are assigned to the keyboard-driven input macro with parameter: "configTiddlerFilter" + They __need to be the same__ as used for variables: "nonSystemTagsFilter" and "systemTagsFilter". See code below! +--> \whitespace trim @@ -150,12 +153,15 @@ The second ESC tries to close the "draft tiddler" \end <!-- prepare all variables for tag-picker keyboard handling --> -\procedure tag-picker(actions, tagField:"tags", tiddler, tagListFilter:"[tags[]]") +\procedure tag-picker(actions, tagField:"tags", tiddler, tagListFilter:"[tags[]sort[]]") \function _tf.getUserInput() [<storeTitle>get[text]] \function _tf.getTag() [<newTagNameTiddler>get[text]] +<!-- Use this function if tag-picker is a stand alone macro. Otherwise use "newTagNameTiddler" defined for fieldmangler in EditTemplate --> +\function _tf.makeTagNameTiddler() [[$:/temp/NewTagName]] [<tagField>!match[tags]] +[join[/]] [<qualify>] +[join[]] -<!-- keep those variables because they may "blead" into macros using old syntax --> +<!-- keep those variables because they may "bleed" into macros using old syntax --> +<!-- "nonSystemTagsFilter", "systemTagsFilter" __need to be the same__ as fields: "first-search-filter", "second-search-filter" --> <$let palette={{$:/palette}} colourA={{{ [<palette>getindex[foreground]] }}} @@ -164,7 +170,7 @@ The second ESC tries to close the "draft tiddler" saveTiddler={{{ [<tiddler>is[blank]then<currentTiddler>else<tiddler>] }}} - newTagNameTiddler={{{ [[$:/temp/NewTagName]] [<tagField>!match[tags]] +[join[/]] [<qualify>] +[join[]] }}} + newTagNameTiddler={{{ [[newTagNameTiddler]is[variable]then<newTagNameTiddler>] :else[<_tf.makeTagNameTiddler>] }}} storeTitle={{{ [[$:/temp/NewTagName/input]] [<tagField>!match[tags]] +[join[/]] [<qualify>] +[join[]] }}} newTagNameSelectionTiddlerQualified=<<qualify "$:/temp/NewTagName/selected-item">> @@ -172,11 +178,11 @@ The second ESC tries to close the "draft tiddler" refreshTitle=<<qualify "$:/temp/NewTagName/refresh">> - nonSystemTagsFilter="[subfilter<tagListFilter>!is[system]search:title<userInput>sort[]]" - systemTagsFilter="[subfilter<tagListFilter>is[system]search:title<userInput>sort[]]" + nonSystemTagsFilter="[subfilter<tagListFilter>!is[system]search:title<userInput>]" + systemTagsFilter="[subfilter<tagListFilter>is[system]search:title<userInput>]" cancelPopups="yes" > <$macrocall $name="tag-picker-inner"/> </$let> -\end \ No newline at end of file +\end diff --git a/core/wiki/tags/TestCaseActions.tid b/core/wiki/tags/TestCaseActions.tid new file mode 100644 index 000000000..79b2780dd --- /dev/null +++ b/core/wiki/tags/TestCaseActions.tid @@ -0,0 +1,2 @@ +title: $:/tags/TestCase/Actions +list: diff --git a/editions/fr-FR/tiddlers/community/editions/_Noteself_ by Danielo Rodríguez.tid b/editions/fr-FR/tiddlers/community/editions/_Noteself_ by Danielo Rodriguez.tid similarity index 100% rename from editions/fr-FR/tiddlers/community/editions/_Noteself_ by Danielo Rodríguez.tid rename to editions/fr-FR/tiddlers/community/editions/_Noteself_ by Danielo Rodriguez.tid diff --git a/editions/prerelease/tiddlers/Release 5.3.6.tid b/editions/prerelease/tiddlers/Release 5.3.6.tid new file mode 100644 index 000000000..06dd74b8b --- /dev/null +++ b/editions/prerelease/tiddlers/Release 5.3.6.tid @@ -0,0 +1,56 @@ +caption: 5.3.6 +created: 20240710120027897 +modified: 20240710120027897 +tags: ReleaseNotes +title: Release 5.3.6 +type: text/vnd.tiddlywiki +description: Under development + +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.5...master]]// + +! Major Improvements + +! Translation improvements + +This release includes improvements to the following translations: + +* + +! Plugin Improvements + +* + +! Widget Improvements + +* + +! Filter Improvements + +* + +! Usability Improvements + +* + +! Hackability Improvements + +* + +! Bug Fixes + +* + +! Node.js Improvements + +* + +! Developer Improvements + +* + +! Acknowledgements + +[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: + +<<.contributors """ +""">> diff --git a/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid b/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid index 9f3972203..9c7a90f45 100644 --- a/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +++ b/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/LocalPluginLibrary tags: $:/tags/PluginLibrary -url: http://127.0.0.1:8080/prerelease/library/v5.3.2/index.html +url: http://127.0.0.1:8080/prerelease/library/v5.3.6/index.html caption: {{$:/language/OfficialPluginLibrary}} (Prerelease Local) A locally installed version of the official ~TiddlyWiki plugin library at tiddlywiki.com for testing and debugging. //Requires a local web server to share the library// diff --git a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid index 07b5ab48a..149770f59 100644 --- a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +++ b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/prerelease/library/v5.3.4/index.html +url: https://tiddlywiki.com/prerelease/library/v5.3.6/index.html caption: {{$:/language/OfficialPluginLibrary}} (Prerelease) The prerelease version of the official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team. diff --git a/editions/test/tiddlers/tests/test-backtranscludes.js b/editions/test/tiddlers/tests/test-backtranscludes.js index fe6d09706..afc09af4e 100644 --- a/editions/test/tiddlers/tests/test-backtranscludes.js +++ b/editions/test/tiddlers/tests/test-backtranscludes.js @@ -22,6 +22,9 @@ describe('Backtranscludes and transclude filter tests', function() { it('should have no backtranscludes', function() { expect(wiki.filterTiddlers('TestIncoming +[backtranscludes[]]').join(',')).toBe(''); }); + it('should have no transcludes', function() { + expect(wiki.filterTiddlers('TestIncoming +[transcludes[]]').join(',')).toBe(''); + }); }); describe('A tiddler added to the wiki with a transclude to it', function() { @@ -38,6 +41,9 @@ describe('Backtranscludes and transclude filter tests', function() { it('should have a backtransclude', function() { expect(wiki.filterTiddlers('TestIncoming +[backtranscludes[]]').join(',')).toBe('TestOutgoing'); }); + it('should have a transclude', function() { + expect(wiki.filterTiddlers('TestOutgoing +[transcludes[]]').join(',')).toBe('TestIncoming'); + }); }); describe('A tiddler transclude with template will still use the tiddler as result.', function() { @@ -182,12 +188,44 @@ describe('Backtranscludes and transclude filter tests', function() { }); }); - describe('ignore self transclusion', function() { + describe('include implicit self transclusion', function() { var wiki = new $tw.Wiki(); wiki.addTiddler({ title: 'TestOutgoing', - text: "{{!!created}}\n\nA transclude to {{!!title}}"}); + text: "{{!!created}}\n\nAn implicit self-referential transclude to <$transclude $field='created'/> and <$transclude field='created'/>"}); + + it('should have no transclude', function() { + expect(wiki.filterTiddlers('TestOutgoing +[transcludes[]]').join(',')).toBe('TestOutgoing'); + }); + + it('should have no back transcludes', function() { + expect(wiki.filterTiddlers('TestOutgoing +[backtranscludes[]]').join(',')).toBe('TestOutgoing'); + }); + }); + + describe('include explicit self transclusion', function() { + var wiki = new $tw.Wiki(); + + wiki.addTiddler({ + title: 'TestOutgoing', + text: "{{TestOutgoing!!created}}\n\n<$transclude $tiddler='TestOutgoing' $field='created'/> and <$transclude tiddler='TestOutgoing' field='created'/>"}); + + it('should have no transclude', function() { + expect(wiki.filterTiddlers('TestOutgoing +[transcludes[]]').join(',')).toBe('TestOutgoing'); + }); + + it('should have no back transcludes', function() { + expect(wiki.filterTiddlers('TestOutgoing +[backtranscludes[]]').join(',')).toBe('TestOutgoing'); + }); + }); + + describe('exclude self when target tiddler is not string', function() { + var wiki = new $tw.Wiki(); + + wiki.addTiddler({ + title: 'TestOutgoing', + text: "<$transclude $tiddler={{TestOutgoing!!title}} $field='created'/> and <$transclude tiddler={{TestOutgoing!!title}} field='created'/>"}); it('should have no transclude', function() { expect(wiki.filterTiddlers('TestOutgoing +[transcludes[]]').join(',')).toBe(''); @@ -198,19 +236,20 @@ describe('Backtranscludes and transclude filter tests', function() { }); }); - describe('recognize soft transclusion defined by widget', function() { + describe('recognize transclusion defined by widget', function() { var wiki = new $tw.Wiki(); wiki.addTiddler({ title: 'TestOutgoing', - text: "<$tiddler tiddler='TestIncoming'><$transclude $tiddler /></$tiddler>"}); + text: "<$tiddler tiddler='TestIncoming'><$transclude $tiddler /></$tiddler>\n\n<$transclude tiddler='TiddlyWiki Pre-release'/>"}); it('should have a transclude', function() { - expect(wiki.filterTiddlers('TestOutgoing +[transcludes[]]').join(',')).toBe('TestIncoming'); + expect(wiki.filterTiddlers('TestOutgoing +[transcludes[]]').join(',')).toBe('TestIncoming,TiddlyWiki Pre-release'); }); it('should have a back transclude', function() { expect(wiki.filterTiddlers('TestIncoming +[backtranscludes[]]').join(',')).toBe('TestOutgoing'); + expect(wiki.filterTiddlers('[[TiddlyWiki Pre-release]] +[backtranscludes[]]').join(',')).toBe('TestOutgoing'); }); }); }); diff --git a/editions/test/tiddlers/tests/test-tags-operator.js b/editions/test/tiddlers/tests/test-tags-operator.js new file mode 100644 index 000000000..87970d113 --- /dev/null +++ b/editions/test/tiddlers/tests/test-tags-operator.js @@ -0,0 +1,75 @@ +/*\ +title: test-tags-operator.js +type: application/javascript +tags: [[$:/tags/test-spec]] + +Tests the tagging mechanism. + +\*/ +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +describe("Tags Operator tests", function() { + +describe("With no indexers", function() { + var wikiOptions = {enableIndexers: []}, + wiki = setupWiki(wikiOptions); + runTests(wiki,wikiOptions); +}); + +describe("With all indexers", function() { + var wikiOptions = {}, + wiki = setupWiki(); + runTests(wiki,wikiOptions); +}); + +function setupWiki(wikiOptions) { + // Create a wiki + var wiki = new $tw.Wiki(wikiOptions); + + // Add a few tiddlers + wiki.addTiddler({ title: "aaa",text: "text aaa",color: "red"}); + wiki.addTiddler({ title: "1"}); + wiki.addTiddler({ title: "10"}); + wiki.addTiddler({ title: "bbb"}); + wiki.addTiddler({ title: "bb bb"}); + wiki.addTiddler({ title: "BBB"}); + wiki.addTiddler({ title: "AAA"}); + wiki.addTiddler({ title: "BB BB"}); + wiki.addTiddler({ title: "bb bb", text: "text bb bb"}); + return wiki; +} + + // Our tests +function runTests(wiki,wikiOptions) { + + var TAGS = "aaa 10 1 bbb AAA [[bb bb]] BBB [[BB BB]]"; + + // Tests before PR #8228 to make sure there are now incompatibilities + it("should apply tags ordering in SORT order up to TW v5.3.6", function () { + var wiki = new $tw.Wiki(wikiOptions); + var EXPECTED = "1,10,aaa,AAA,bb bb,BB BB,bbb,BBB"; + + wiki.addTiddler({ title: "test-tags-operator", text: "", tags: TAGS}); + expect(wiki.filterTiddlers("[[test-tags-operator]tags[]sort[title]]").join(',')).toBe(EXPECTED); + + wiki.addTiddler({ title: "$:/config/Tags/CustomSort/subfilter", text: "[{!!title}]"}); + expect(wiki.filterTiddlers("[[test-tags-operator]tags[]] :sort:alphanumeric:caseinsensitive[subfilter{$:/config/Tags/CustomSort/subfilter}]").join(',')).toBe(EXPECTED); + + // Due to the implementation of the tags[] operator with v5.3.6 we can not guarantee the order that `[tags[]]` returns + }); + + // The following test can be enabled once the core allows us to do so. + xit("should apply tags ordering in order of creation. TW v5.3.7+", function () { + var wiki = new $tw.Wiki(wikiOptions); + + wiki.addTiddler({ title: "$:/config/Tags/CustomSort/subfilter", text: ""}); + wiki.addTiddler({ title: "test-tags-operator", text: "", tags: TAGS}); + + var EXPECTED = "aaa,10,1,bbb,AAA,bb bb,BBB,BB BB" + expect(wiki.filterTiddlers("[[test-tags-operator]tags[]] :sort:alphanumeric:caseinsensitive[subfilter{$:/config/Tags/CustomSort/subfilter}]").join(',')).toBe(EXPECTED); + }); +} + +}); diff --git a/editions/tw5.com/tiddlers/Operators without parameters.tid b/editions/tw5.com/tiddlers/Operators without parameters.tid new file mode 100644 index 000000000..756efb74e --- /dev/null +++ b/editions/tw5.com/tiddlers/Operators without parameters.tid @@ -0,0 +1,18 @@ +created: 20240708171243370 +modified: 20240708201827711 +tags: +title: Operators without parameters + +Many [[Filter Operators]] have no [[parameter|Filter Parameter]] available. Still, each operator must be followed by a bracketed parameter expression — even if it is empty — as with the <<.olink backlinks>> operator below: + +`[<currentTiddler>backlinks[]]` + +(Even though an expression such as `[<currentTiddler>backlinks]` may at first <<.em seem>> well-formed — insofar as closing brackets seem to pair properly with opening brackets — each operator needs its own parameter brackets, even if empty. See [[Filter Syntax]].) + +The following [[Filter Operators]] accept no parameters: + +<div> + +<<list-links filter:"[op-parameter[none]] [tag[Filter Operators]!has[op-parameter]] -[search:op-purpose[same]]" class:"multi-columns">> + +</div> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/Selection Constructors Conditional.tid b/editions/tw5.com/tiddlers/Selection Constructors Conditional.tid new file mode 100644 index 000000000..511b0f979 --- /dev/null +++ b/editions/tw5.com/tiddlers/Selection Constructors Conditional.tid @@ -0,0 +1,9 @@ +created: 20240708174435694 +modified: 20240708175546166 +title: Selection Constructors: Conditional + +Most [[filter Operators|filter Operator]] are either ''selection modifiers'' or [[Selection Constructors]]. + +Within the exceptional category <<tag>> are a tiny minority that //usually// act as ''selection modifiers'', but which can construct a fresh selection under special conditions — namely, whenever their [[parameter|Filter Parameter]] is specified with a selection constructor. + +<<list-links "[tag<currentTiddler>]">> diff --git a/editions/tw5.com/tiddlers/about/Archive.tid b/editions/tw5.com/tiddlers/about/Archive.tid index 988f65e7b..bf7667e9a 100644 --- a/editions/tw5.com/tiddlers/about/Archive.tid +++ b/editions/tw5.com/tiddlers/about/Archive.tid @@ -1,14 +1,14 @@ -title: TiddlyWiki Archive created: 20231005205623086 -modified: 20231005210538879 +modified: 20240628132622052 tags: About +title: TiddlyWiki Archive \procedure versions() 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.1.10 5.1.11 5.1.12 5.1.13 5.1.14 5.1.15 5.1.16 5.1.17 5.1.18 5.1.19 5.1.20 5.1.21 5.1.22 5.1.23 5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 -5.3.0 5.3.1 +5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 \end Older versions of TiddlyWiki are available in the [[archive|https://github.com/Jermolene/jermolene.github.io/tree/master/archive]]: diff --git a/editions/tw5.com/tiddlers/concepts/Dominant Append.tid b/editions/tw5.com/tiddlers/concepts/Dominant Append.tid index 59e79d6c7..70c9815ee 100644 --- a/editions/tw5.com/tiddlers/concepts/Dominant Append.tid +++ b/editions/tw5.com/tiddlers/concepts/Dominant Append.tid @@ -1,5 +1,5 @@ created: 20150123220223000 -modified: 20190610165255223 +modified: 20240709170746678 tags: Filters title: Dominant Append type: text/vnd.tiddlywiki @@ -13,3 +13,5 @@ For example, if a selection contains `Andrew Becky Clara Daniel` and `Andrew Bar This behaviour can cause unexpected results when working with [[Mathematics Operators]]. For example, `1 2 3 +[sum[]]` evaluates to `6`, as expected. But `1 1 1 +[sum[]]` evaluates to `1`. Removing the `+[sum[]]` from each filter reveals the problem: `1 2 3` evaluates to the list `1`, `2`, `3`, while `1 1 1` evaluates to the single item `1` due to de-duplication. In such situations, the `=` prefix can be used to disable the de-duplication. For example, `=1 =1 =1 +[sum[]]` evaluates to `3` as expected. Alternatively, the [[split Operator]] can be used: `[[1,1,1]split[,]sum[]]`. + +<<.tip """To build a list of unique values that retains only the <<.em earliest>> copy of each value (the opposite behavior from <<.link "Dominant Append" "Dominant Append">>), first use the <<.link `:all` "All Filter Run Prefix">> filter run prefix (or its short form `=`) to retain all duplicate values while building your list. Then finish your filter run with the <<.olink unique>> operator to remove later duplicates.""">> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/concepts/Selection Constructors.tid b/editions/tw5.com/tiddlers/concepts/Selection Constructors.tid index 9aac725a5..313339efb 100644 --- a/editions/tw5.com/tiddlers/concepts/Selection Constructors.tid +++ b/editions/tw5.com/tiddlers/concepts/Selection Constructors.tid @@ -1,5 +1,5 @@ created: 20150117204109000 -modified: 20150917193713204 +modified: 20240708201746542 tags: Filters title: Selection Constructors type: text/vnd.tiddlywiki @@ -11,3 +11,7 @@ The output of a [[Filter Step]] depends on its [[operator|Filter Operators]]: * A few operators ignore their input and generate an independent output instead. These are called <<.def "selection constructors">>: they construct an entirely new [[selection|Title Selection]]. A good example of a constructor is <<.olink title>>. The output of `[title[A]title[B]]` is just <<.tid B>>. But the <<.olink field>> operator is a modifier, so `[title[A]field:title[B]` outputs nothing at all. + +The following [[filter Operators|filter Operator]] are tagged <<tag>>: + +<<list-links "[tag<currentTiddler>]" class:"multi-columns">> diff --git a/editions/tw5.com/tiddlers/concepts/Transclusion.tid b/editions/tw5.com/tiddlers/concepts/Transclusion.tid index aed6ab635..80068b8e5 100644 --- a/editions/tw5.com/tiddlers/concepts/Transclusion.tid +++ b/editions/tw5.com/tiddlers/concepts/Transclusion.tid @@ -1,9 +1,15 @@ created: 20141129194651420 -modified: 20141130195444237 -tags: Concepts +modified: 20240621074019077 +tags: Concepts Definitions title: Transclusion -[[Transclusion|https://en.wikipedia.org/wiki/Transclusion]] is the process of referencing one tiddler "A" from another tiddler "B" such that the content of "A" appears to be a part of "B". +! Definition + +<<< Wikipedia: [[Transclusion|https://en.wikipedia.org/wiki/Transclusion]] +In computer science, transclusion is the inclusion of part or all of an electronic document into one or more other documents by reference via hypertext. +<<< + +In ~TiddlyWiki: ''Transclusion'' is the process of referencing one tiddler "A" from another tiddler "B" such that the content of "A" appears to be a part of "B". Copying and pasting content creates multiple copies of the same content in several different places. With transclusion, there can be a single copy and a special instruction in "B" which indicates the point at which content should be inserted from tiddler "A". diff --git a/editions/tw5.com/tiddlers/currentTab Variable.tid b/editions/tw5.com/tiddlers/currentTab Variable.tid new file mode 100644 index 000000000..288f4b8a3 --- /dev/null +++ b/editions/tw5.com/tiddlers/currentTab Variable.tid @@ -0,0 +1,12 @@ +caption: currentTab +created: 20240627195924480 +modified: 20240627201655746 +tags: Variables [[Core Variables]] +title: currentTab Variable +type: text/vnd.tiddlywiki + +The <<.def currentTab>> [[variable|Variables]] contains the title of the current tab within an enclosing set of tabs generated by the [[tabs Macro]]. + +When a tiddler is [[transcluded|Transclusion]] within a tab, any use of the [[currentTiddler Variable]] will point to the tiddler containing the [[tabs Macro]] call. This may lead to surprises if the transcluded tiddler was originally written to display by itself in the [[Story River]] in ways that rely on self-reference. The currentTab macro enables a similar effect to currentTiddler for the special case of a tiddler rendered as a tab. + +Compare <<.vlink currentTiddler>>. \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid b/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid index 09f7009fd..071d00dbd 100644 --- a/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid +++ b/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid @@ -1,5 +1,5 @@ created: 20201123172925848 -modified: 20230803052005116 +modified: 20240627060629394 tags: [[Customise TiddlyWiki]] title: Alternative page layouts type: text/vnd.tiddlywiki @@ -8,8 +8,39 @@ type: text/vnd.tiddlywiki ! Creating an alternative page layout -Creating an alternative layout goes beyond [[adding or removing features|Customising TiddlyWiki's user interface]] from the default interface and allows you to create an entirely new layout from scratch. +Creating an alternative layout goes beyond [[adding or removing features|Customising TiddlyWiki's user interface]] from the default interface, which also known as [[standard layout|$:/core/ui/PageTemplate]], and allows you to create an entirely new layout from scratch. To create an alternative page layout and have the ability to switch to it, you need to create an alternative page template tiddler with the [[SystemTag: $:/tags/Layout]]. -This alternative page template can either be a tweaked and modified version of the [[default page template|$:/core/ui/PageTemplate]], or something entirely different. The layout switching mechanism requires that your page template tiddler has the fields `name` and `description`, which are used in the listing in the switching user interface. \ No newline at end of file +This alternative page template can either be a tweaked and modified version of the [[default page template|$:/core/ui/PageTemplate]], or something entirely different. The layout switching mechanism requires that your page template tiddler has the fields `name` and `description`, which are used in the listing in the switching user interface. + +!! Common layout setup + +```tid +\whitespace trim +\import [subfilter{$:/core/config/GlobalImportFilter}] +\define containerClasses() +tc-page-container tc-language-$(languageTitle)$ your-plugin-name-container +\end +\procedure redirected-navigate-actions() + <$action-setfield $tiddler="$:/layout" text="" $timestamp="no"> + <$action-navigate $to=<<event-navigateTo>> $scroll="yes" /> + </$action-setfield> +\end + +<$navigator story="$:/StoryList" history="$:/HistoryList" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}> + <$messagecatcher $tm-navigate=<<redirected-navigate-actions>>> + {{$:/core/ui/CommandPaletteTemplate}} + <div class=<<containerClasses>>> + <!-- Your layout content here --> + </div> + </$messagecatcher> +</$navigator> +``` + +It includes + +# Import macros that is globally available in standard layout, so wikitext that works on standard layout also works on your layout. +# Define the top-level css class, some style may depends on them. You can add your plugin's name in css class here. +# Handle navigation when click on links. If your layout does not contains a story view (for example, you are writing a calendar or whiteboard layout), then the combination of `redirected-navigate-actions` `$navigator` and `$messagecatcher` will redirect user back to standard layout, and open the tiddler there. +# Add some [[PageTemplate|$:/tags/PageTemplate]] back, for example the `$:/core/ui/CommandPaletteTemplate` or `$:/core/ui/PageTemplate/sidebar`, if you want them exist on your layout. diff --git a/editions/tw5.com/tiddlers/empty-tag-node-template.tid b/editions/tw5.com/tiddlers/empty-tag-node-template.tid new file mode 100644 index 000000000..6827c6fe2 --- /dev/null +++ b/editions/tw5.com/tiddlers/empty-tag-node-template.tid @@ -0,0 +1,11 @@ +created: 20240710161501472 +list-after: +modified: 20240719201317702 +tags: $:/tags/ViewTemplate +title: $:/editions/tw5.com/empty-tag-node-template +type: + +<$list filter='[<storyTiddler>!has[text]!has[tags]] :filter[tagging[]]'> +The following tiddlers are tagged with <<tag>>: +</$list> +<<list-links filter:"[<storyTiddler>!has[text]!has[tags]tagging[]]" class:"multi-columns">> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/features/AutoSave.tid b/editions/tw5.com/tiddlers/features/AutoSave.tid index 17a0ef59c..50758bf6e 100644 --- a/editions/tw5.com/tiddlers/features/AutoSave.tid +++ b/editions/tw5.com/tiddlers/features/AutoSave.tid @@ -4,7 +4,7 @@ tags: Features title: AutoSave type: text/vnd.tiddlywiki -If there is a SaverModule available that supports it, TiddlyWiki will automatically trigger a save of the current document on clicking <<.icon $:/core/images/done-button>> ''ok'' or <<.icon $:/core/images/delete-button>> ''delete'' when editing a tiddler. +If there is a SavingMechanism available that supports it, TiddlyWiki will automatically trigger a save of the current document on clicking <<.icon $:/core/images/done-button>> ''ok'' or <<.icon $:/core/images/delete-button>> ''delete'' when editing a tiddler. You should see a yellow notification at the top right of the window to confirm that an automatic save has taken place. diff --git a/editions/tw5.com/tiddlers/fields/_canonical_uriField.tid b/editions/tw5.com/tiddlers/fields/_canonical_uriField.tid new file mode 100644 index 000000000..aa4a3b41b --- /dev/null +++ b/editions/tw5.com/tiddlers/fields/_canonical_uriField.tid @@ -0,0 +1,5 @@ +created: 20240627223618060 +modified: 20240627223637576 +title: $:/language/Docs/Fields/_canonical_uri + +The full URI of an external image, audio, or html file \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/filters/minlength.tid b/editions/tw5.com/tiddlers/filters/minlength.tid index d450df35f..e5fbe8594 100644 --- a/editions/tw5.com/tiddlers/filters/minlength.tid +++ b/editions/tw5.com/tiddlers/filters/minlength.tid @@ -1,12 +1,12 @@ caption: minlength created: 20161011074235805 -modified: 20161011074235805 +from-version: 5.1.14 +modified: 20240709161140504 op-input: a list of items op-output: those items at least as long as the specified minimum length op-parameter: the minimum length for items op-parameter-name: minlength -op-purpose: filter items shorter than the specified minimum length -from-version: 5.1.14 +op-purpose: filter items whose length is greater than or equal to the specified minimum length tags: [[Filter Operators]] title: minlength Operator type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/filters/sortsub Operator.tid b/editions/tw5.com/tiddlers/filters/sortsub Operator.tid index df7d99cfa..d6c244a07 100644 --- a/editions/tw5.com/tiddlers/filters/sortsub Operator.tid +++ b/editions/tw5.com/tiddlers/filters/sortsub Operator.tid @@ -1,6 +1,6 @@ caption: sortsub created: 20200424160155182 -modified: 20210522162521222 +modified: 20240717115735166 op-input: a [[selection of titles|Title Selection]] op-neg-output: the input, sorted into reverse order by the result of evaluating subfilter <<.param S>> op-output: the input, sorted into ascending order by the result of evaluating subfilter <<.param S>> @@ -15,19 +15,23 @@ type: text/vnd.tiddlywiki Each item in the list of input titles is passed to the subfilter in turn. The subfilter transforms the input titles into the form needed for sorting. For example, the subfilter `[length[]]` transforms each input title in the number representing its length, and thus sorts the input titles according to their length. -Note that within the subfilter, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits subfilters like `[{!!value}divide{!!cost}]` to be used for computation. +Note that within the subfilter <<.place S>>, the <<.var currentTiddler>> variable is set to the title of the tiddler being processed. This permits subfilters like `[{!!value}divide{!!cost}]` to be used for computation. -The value of currentTiddler outside the subfilter is available in the variable "..currentTiddler". <<.from-version "5.2.0">> +The value of <<.var currentTiddler>> outside the subfilter is available in the variable <<.var ..currentTiddler>>. <<.from-version "5.2.0">> The suffix <<.place T>> determines how the items are compared and can be: -* "string" (the default) -* "number" - invalid numbers are interpreted as zero -* "integer" - invalid integers are interpreted as zero -* "date" - invalid dates are interpreted as 1st January 1970 -* "version" - invalid versions are interpreted as "v0.0.0" -* "alphanumeric" - treat items as alphanumerics <<.from-version "5.2.0">> +* ''string'' (the default) +* ''number'' - invalid numbers are interpreted as zero +* ''integer'' - invalid integers are interpreted as zero +* ''date'' - invalid dates are interpreted as 1st January 1970 +* ''version'' - invalid versions are interpreted as "v0.0.0" +* ''alphanumeric'' - treat items as alphanumerics <<.from-version "5.2.0">> -Note that subfilters should return the same number of items that they are passed. Any missing entries will be treated as zero or the empty string. In particular, when retrieving the value of a field with the [[get Operator]] it is helpful to guard against a missing field value using the [[else Operator]]. For example `[get[myfield]else[default-value]...`. +<<.tip """Note that subfilters <<.place S>> ''should return the same number of items that they are passed''. In particular, when retrieving the value of a field with the <<.olink get>> operator it is helpful to guard against a missing field value using the <<.olink else>> operator. For example `...[get[myfield]else[default-value]]`.<br><br> + +Any ''missing'' entries will be treated as ''zero'' or the ''empty string''.""">> + +Also see: [[Sort Filter Run Prefix]] <<.operator-examples "sortsub">> diff --git a/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid b/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid index 9334fd069..0cfb83d5c 100644 --- a/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid +++ b/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid @@ -1,5 +1,5 @@ created: 20150220152540000 -modified: 20230710074423650 +modified: 20240708202234843 tags: [[Filter Step]] title: Filter Parameter type: text/vnd.tiddlywiki @@ -29,6 +29,8 @@ The parameter to a [[filter operator|Filter Operators]] can be: :: The parameter is the current value of the [[variable|Variables]] whose name appears between the angle brackets. Macro parameters are <<.em not>> supported up to v5.2.0 ::<<.from-version "5.2.0">> Literal macro parameters are supported. For example: `[<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>]`. +<<.note """Every [[filter Operator]] must be followed by a parameter expression. In the case of [[Operators without parameters]], that expression is empty, as with the filter Operator <<.olink links>> in `[<currentTiddler>links[]]`.""">> + --- <<.from-version "5.1.23">> [[Filter Step]]s support multiple parameters which are separated by a `,` character. diff --git a/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid b/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid index ed389b987..31534479e 100644 --- a/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid +++ b/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid @@ -4,7 +4,7 @@ tags: [[Filter Run Prefix]] title: Named Filter Run Prefix type: text/vnd.tiddlywiki -In <<.from-version "5.1.23">> the named filter run prefixes where implemented. `:cascade`, `:map` and `:sort` have been added later as shown in the diagrams. +In <<.from-version "5.1.23">> the named filter run prefixes were implemented. `:cascade`, `:map` and `:sort` have been added later as shown in the diagrams. A named filter run prefix can precede any [[run|Filter Run]] of a [[filter expression|Filter Expression]] in place of a [[shortcut run prefix|Shortcut Filter Run Prefix]]. diff --git a/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid b/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid index 16b9c9711..d16c31d55 100644 --- a/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid +++ b/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid @@ -30,4 +30,4 @@ Sort as text with case sensitivity: <<.operator-example 7 "Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:casesensitive[{!!title}]">> Sort as text ignoring case: -<<.operator-example 8 "Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:caseinsensitive[{!!title}]">> \ No newline at end of file +<<.operator-example 8 "Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:caseinsensitive[{!!title}]">> diff --git a/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid b/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid index e17b88356..7df986274 100644 --- a/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid +++ b/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid @@ -1,10 +1,11 @@ created: 20210428083929749 from-version: 5.2.0 -modified: 20240312203002082 +modified: 20240717120111427 rp-input: the filter output of all previous runs so far rp-output: output titles replace the output of previous filter runs rp-purpose: sort the input titles by the result of evaluating this filter run for each item -rp-suffix: the <<.op :sort>> filter run prefix uses a rich suffix, see below for details +rp-suffix: the :sort filter run prefix uses a rich suffix, see below for details +rp-suffix-name: S tags: [[Named Filter Run Prefix]] title: Sort Filter Run Prefix type: text/vnd.tiddlywiki @@ -12,9 +13,19 @@ type: text/vnd.tiddlywiki <$railroad text=""" \start none \end none -( ( ":sort" ) -( : ":string" | ":alphanumeric" | ":number" | ":integer" | ":version" | ":date" ) -( : ":casesensitive" /"required for string and alphanumeric"/ | ":caseinsensitive" /"required for string and alphanumeric"/ | ":reverse" /"optional"/ | - ) | - ) +( ":sort" ) +( ":" ) +( : "string" | "alphanumeric" | "number" | "integer" | "version" | "date" ) +( ":" ) +{ + ( + ( + ( : "caseinsensitive" /"required for string and alphanumeric"/ | "casesensitive" /"required for string and alphanumeric"/) + | "reverse" /"optional"/ + ) + ) + +"," +} [[run|"Filter Run"]] """/> @@ -22,7 +33,7 @@ Each input title from previous runs is passed to this run in turn. The filter ru Note that within the filter run, the <<.var currentTiddler>> variable is set to the title of the tiddler being processed. This permits filter runs like `:sort:number[{!!value}divide{!!cost}]` to be used for computation. The value of <<.var currentTiddler>> outside the run is available in the variable <<.var "..currentTiddler">>. -The `:sort` filter run prefix uses an extended syntax that allows for multiple suffixes, some of which are required: +The `:sort` <<.place S>> filter run prefix uses an extended syntax that allows for multiple suffixes, some of which are required: ``` :sort:<type>:<flaglist>[...filter run...] @@ -30,10 +41,19 @@ The `:sort` filter run prefix uses an extended syntax that allows for multiple s ``` * ''type'': Required. Determines how the items are compared and can be any of: ''string'', ''alphanumeric'', ''number'', ''integer'', ''version'' or ''date''. + * ''flaglist'': comma separated list of the following flags: + ** ''casesensitive'' or ''caseinsensitive'' (required for types `string` and `alphanumeric`). +*** defaults to: //caseinsensitive// if the flag is missing. +*** for clarity this parameter should be always defined. + ** ''reverse'' to invert the order of the filter run (optional). -Note that filter runs used with the `:sort` prefix should return the same number of items that they are passed. Any missing entries will be treated as zero or the empty string. In particular, when retrieving the value of a field with the [[get Operator]] it is helpful to guard against a missing field value using the [[else Operator]]. For example `[get[myfield]else[default-value]...`. +<<.tip """Note that filter runs used with the `:sort` prefix ''should return the same number of items that they are passed''. In particular, when retrieving the value of a field with the [[get Operator]] it is helpful to guard against a missing field value using the [[else Operator]]. For example `...[get[myfield]else[default-value]]`.<br><br> + +Any ''missing'' entries will be treated as ''zero'' or the ''empty string''.""">> + +Also see: <<.olink sortsub>> Operator [[Examples|Sort Filter Run Prefix (Examples)]] \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/filters/unique.tid b/editions/tw5.com/tiddlers/filters/unique.tid index 672817968..836c41db8 100644 --- a/editions/tw5.com/tiddlers/filters/unique.tid +++ b/editions/tw5.com/tiddlers/filters/unique.tid @@ -1,4 +1,6 @@ caption: unique +created: 20240709151018238 +modified: 20240709151336906 op-input: a list of items op-output: a list of unique items op-parameter: ignored @@ -7,4 +9,6 @@ tags: [[Filter Operators]] [[Order Operators]] [[Listops Operators]] title: unique Operator type: text/vnd.tiddlywiki +<<.note """Unlike the default <<.link "Dominant Append" "Dominant Append">> handling of duplication, the effect of <<.op unique>> is to retain only the <<.em earliest>> instance among duplicated values.""">> + <<.operator-examples "unique">> diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 956deec8c..c665d217b 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -1,6 +1,6 @@ created: 20130822170200000 list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] -modified: 20231223102201587 +modified: 20240710115948992 tags: TableOfContents title: HelloThere type: text/vnd.tiddlywiki diff --git a/editions/tw5.com/tiddlers/images/New Release Banner.png b/editions/tw5.com/tiddlers/images/New Release Banner.png index 6577e8923..c2351b9e9 100644 Binary files a/editions/tw5.com/tiddlers/images/New Release Banner.png and b/editions/tw5.com/tiddlers/images/New Release Banner.png differ diff --git a/editions/tw5.com/tiddlers/images/Open Collective Logo.tid b/editions/tw5.com/tiddlers/images/Open Collective Logo.tid index 25e91161a..7dec4d62b 100644 --- a/editions/tw5.com/tiddlers/images/Open Collective Logo.tid +++ b/editions/tw5.com/tiddlers/images/Open Collective Logo.tid @@ -1,4 +1,6 @@ -title: Open Collective Logo +created: 20240621075644739 +modified: 20240621075647009 tags: picture +title: Open Collective Logo -<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" viewBox="0 0 28 28"><path d="M25.509 6.026A13.934 13.934 0 0 1 28 14c0 2.963-.92 5.71-2.491 7.974l-3.626-3.627A8.96 8.96 0 0 0 23 14a8.964 8.964 0 0 0-1.117-4.347l3.626-3.627Z"/><path d="m21.974 2.49-3.627 3.628a9 9 0 1 0 0 15.765l3.627 3.626A13.934 13.934 0 0 1 14 27.999C6.268 28 0 21.733 0 14 0 6.269 6.268 0 14 0c2.963 0 5.711.922 7.974 2.492Z"/></svg> \ No newline at end of file +<svg style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" viewBox="0 0 28 28"><path d="M25.509 6.026A13.934 13.934 0 0 1 28 14c0 2.963-.92 5.71-2.491 7.974l-3.626-3.627A8.96 8.96 0 0 0 23 14a8.964 8.964 0 0 0-1.117-4.347l3.626-3.627Z"/><path d="m21.974 2.49-3.627 3.628a9 9 0 1 0 0 15.765l3.627 3.626A13.934 13.934 0 0 1 14 27.999C6.268 28 0 21.733 0 14 0 6.269 6.268 0 14 0c2.963 0 5.711.922 7.974 2.492Z"/></svg> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/macros/LingoMacro.tid b/editions/tw5.com/tiddlers/macros/LingoMacro.tid index 7c222e2df..f91f94c6f 100644 --- a/editions/tw5.com/tiddlers/macros/LingoMacro.tid +++ b/editions/tw5.com/tiddlers/macros/LingoMacro.tid @@ -1,37 +1,16 @@ -caption: lingo created: 20150221154907000 -modified: 20231028123405895 -tags: Macros [[Core Macros]] +modified: 20150221155706000 title: lingo Macro -type: text/vnd.tiddlywiki +tags: Macros [[Core Macros]] +caption: lingo The <<.def lingo>> [[macro|Macros]] relates to the translation of ~TiddlyWiki's user interface into other languages. It returns a piece of text in the user's currently selected language. -Translatable text is supplied by: +Translatable text is supplied by language plugins containing tiddlers with specific titles that start with `$:/language/`. -# Language plugins -# Any l10n (localization) strings outside of the language plugins - -!! Language plugins - -You can directly pass title to `lingo` macro, when there is a language plugin containing a tiddler with such title that start with `$:/language/`. +!! Parameters ;title : The title of the shadow tiddler that contains the text. The prefix `$:/language/` is added automatically -<<.macro-examples "lingo (for language plugin)">> - -!! Any l10n strings - -To translate any text that directly placed in user's wiki, instead of in a language plugin, you can set the `lingo-base` variable to teach <<.def lingo>> macro the place to look for. - -!!! Parameters - -;key -: The last part of title of the tiddler that contains the text. The `<<lingo-base>>` prefix and current language name prefix is added automatically -;lingo-base-fallback -: Optional lingo-base when it is not possible to define `lingo-base` variable (for example, when using this macro in the caption field), you can set the lingo base by passing this parameter - -<<.macro-examples "lingo (for custom base)">> - -{{lingo Macro (file structure)}} +<<.macro-examples "lingo">> diff --git a/editions/tw5.com/tiddlers/macros/TabsMacro.tid b/editions/tw5.com/tiddlers/macros/TabsMacro.tid index 4708e6356..38e6bbe51 100644 --- a/editions/tw5.com/tiddlers/macros/TabsMacro.tid +++ b/editions/tw5.com/tiddlers/macros/TabsMacro.tid @@ -1,6 +1,6 @@ caption: tabs created: 20131228162203521 -modified: 20210721122823354 +modified: 20240627201724476 tags: Macros [[Core Macros]] title: tabs Macro type: text/vnd.tiddlywiki @@ -34,7 +34,7 @@ By default the tabs are arranged horizontally above the content. To get vertical Within the template, the title of the selected tab is available in the <<.var currentTab>> variable. -The <<.vlink currentTiddler>> variable is not affected by the <<.var tabs>> macro. This can put you in trouble if the list of tabs includes tiddlers that depend on the value of the <<.vlink currentTiddler>>, for example tiddlers listing children based on its own name. To overcome this problem you can use a [[TemplateTiddler|TemplateTiddlers]] like the following: +The <<.vlink currentTiddler>> variable is not affected by the <<.var tabs>> macro. This can put you in trouble if the list of tabs includes tiddlers that depend on the value of the <<.vlink currentTiddler>>, for example tiddlers listing children based on its own name. To overcome this problem you can make use of the <<.vlink currentTab>> variable, which can be used in a [[TemplateTiddler|TemplateTiddlers]] such as the following: ``` <$tiddler tiddler=<<currentTab>>> diff --git a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (custom base examples).tid b/editions/tw5.com/tiddlers/macros/examples/lingo Macro (custom base examples).tid deleted file mode 100644 index 26f4e0735..000000000 --- a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (custom base examples).tid +++ /dev/null @@ -1,21 +0,0 @@ -created: 20231028120432257 -modified: 20240206113509050 -tags: [[lingo Macro]] [[Macro Examples]] -title: lingo (for custom base) Macro (Examples) -type: text/vnd.tiddlywiki - -\define lingo-base() lingo Macro (custom base examples)/ - -Given the `\define lingo-base() lingo Macro (custom base examples)/`, this example shows the localizaion key `ExampleKey` being translate to the text in [[lingo Macro (custom base examples)/en-GB/ExampleKey]]: - -<$macrocall $name=".example" n="1" eg="""<<lingo ExampleKey>>"""/> - -This example shows the `lingo-base` can be set as second parameter: - -<$macrocall $name=".example" n="2" eg="""<<lingo ExampleKey "lingo Macro (custom base examples)/">>"""/> - -When use lingo macro in a [[Inline Mode WikiText]] like [[list|Lists in WikiText]] or [[title|Headings in WikiText]], the parse mode will be inline, so translated text will be inlined too. - -<$macrocall $name=".example" n="3" eg="""# <<lingo ExampleKey>>"""/> - -<$macrocall $name=".example" n="4" eg="""!! <<lingo ExampleKey>>"""/> diff --git a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (custom base examples)_en-GB_ExampleKey.tid b/editions/tw5.com/tiddlers/macros/examples/lingo Macro (custom base examples)_en-GB_ExampleKey.tid deleted file mode 100644 index d94d1bdee..000000000 --- a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (custom base examples)_en-GB_ExampleKey.tid +++ /dev/null @@ -1,8 +0,0 @@ -created: 20231028120526948 -modified: 20240206113155142 -title: lingo Macro (custom base examples)/en-GB/ExampleKey -type: text/vnd.tiddlywiki - -This is the translated text of key "~ExampleKey" under lingo-base `lingo Macro (custom base examples)/` (don't forget the tailing slash `/`) - -And is multi-line, if it is translated in the block mode by default. (Become single line if set to inline mode.) diff --git a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (file structure).tid b/editions/tw5.com/tiddlers/macros/examples/lingo Macro (file structure).tid deleted file mode 100644 index e653f234b..000000000 --- a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (file structure).tid +++ /dev/null @@ -1,73 +0,0 @@ -created: 20231028120432257 -modified: 20240206122408606 -tags: [[lingo Macro]] [[Macro Examples]] -title: lingo Macro (file structure) - -!! Example file structure for [[TiddlyWiki on Node.js]] - -!!! Suggested file structure - -When developing a plugin, you may want to organize your language files like this on the file system as [[MultiTiddlerFiles]]: - -```tree -├── language -│ ├── en-GB -│ │ ├── Translations.multids -│ │ └── SomeLongText.tid -│ └── zh-Hans -│ ├── Translations.multids -│ └── SomeLongText.tid -├── other files -└── plugin.info -``` - -See [[$:/plugins/tiddlywiki/menubar/tree]] for an example. - -!!! Define Multiple Translations in One Tiddler - -And the content of `language/en-GB/Translations.multids` may looks like this: - -```multids -title: $:/plugins/yourName/pluginName/language/en-GB/ - -OpenInteractiveCard: Open Interactive Card -OpenStaticCard: Open Static Card -``` - -Later you can use it like: - -```tid -title: someTiddler -caption: <<lingo OpenStaticCard "$:/plugins/yourName/pluginName/language/">> - -\define lingo-base() $:/plugins/yourName/pluginName/language/ -\whitespace trim - -<<lingo OpenInteractiveCard>> -``` - -!!! Define Long Text in a regular Tiddler - -You can also use a regular tiddler for long text, like `SomeLongText.tid` in the example above, to store a multi-paragraph long text: - -```tid -title: $:/plugins/yourName/pluginName/language/en-GB/SomeLongText - -!!! SubTitle - -This is a long text. -``` - -Later you can use it like: - -```tid -title: someTiddler - -\define lingo-base() $:/plugins/yourName/pluginName/language/ - -!! <<lingo "OpenInteractiveCard">> - -<<lingo SomeLongText>> -``` - -Note that lingo macro will use the [[parse mode|WikiText Parser Modes]] in the current position where this procedure is invoked. diff --git a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (language plugin examples).tid b/editions/tw5.com/tiddlers/macros/examples/lingo.tid similarity index 90% rename from editions/tw5.com/tiddlers/macros/examples/lingo Macro (language plugin examples).tid rename to editions/tw5.com/tiddlers/macros/examples/lingo.tid index 8b7bceba1..8f0fb9d57 100644 --- a/editions/tw5.com/tiddlers/macros/examples/lingo Macro (language plugin examples).tid +++ b/editions/tw5.com/tiddlers/macros/examples/lingo.tid @@ -1,7 +1,7 @@ created: 20150221151358000 modified: 20150221160113000 tags: [[lingo Macro]] [[Macro Examples]] -title: lingo (for language plugin) Macro (Examples) +title: lingo Macro (Examples) type: text/vnd.tiddlywiki This example shows the text used as the basis for the title of a newly created tiddler: diff --git a/editions/tw5.com/tiddlers/macros/tag-picker_Macro.tid b/editions/tw5.com/tiddlers/macros/tag-picker_Macro.tid index 612b9365a..a983e440f 100644 --- a/editions/tw5.com/tiddlers/macros/tag-picker_Macro.tid +++ b/editions/tw5.com/tiddlers/macros/tag-picker_Macro.tid @@ -1,6 +1,6 @@ caption: tag-picker created: 20161128191316701 -modified: 20230616114543787 +modified: 20240708175550512 tags: Macros [[Core Macros]] title: tag-picker Macro type: text/vnd.tiddlywiki @@ -19,7 +19,8 @@ The <<.def tag-picker>> [[macro|Macros]] generates a combination of a text box a : <<.from-version 5.3.4>> Defines the target tiddler, which should be manipulated. Defaults to: <<.var currentTiddler>>. ; tagListFilter -: <<.from-version 5.3.4>> This parameter defaults to: `[tags[]]` which creates a list of all existing tags. If the tag list should come from a different source the filter should look similar to eg: `[<listSource>get[field-name]enlist-input[]]`. +: <<.from-version 5.3.4>> This parameter defaults to: `[tags[]]` which creates a list of all existing tags. If the tag list should come from a different source the filter should look similar to eg: `[<listSource>get[field-name]enlist-input[]]`. See examples. +: <<.from-version 5.3.5>> This parameter defaults to: `[tags[]sort[]]`. This change allows a custom sort order, since `sort[]` is not hardcoded into the tag-picker macro anymore. <<.macro-examples "tag-picker">> diff --git a/editions/tw5.com/tiddlers/procedures/Procedures.tid b/editions/tw5.com/tiddlers/procedures/Procedures.tid index 7bc0f608f..321284f93 100644 --- a/editions/tw5.com/tiddlers/procedures/Procedures.tid +++ b/editions/tw5.com/tiddlers/procedures/Procedures.tid @@ -18,12 +18,13 @@ The name wrapped in double angled [[brackets|Brackets]] is a shorthand way of [[ ``` <<my-procedure>> +<<my-procedure "The parameter">> <<my-procedure parameter:"The parameter">> ``` The parameters that are specified in the procedure call are made available as variables. -<<.tip """If a procedure has more than 1 parameter, it is highly encouraged to use "named parameters", as shown in the second example above. Even if it is more to type, it will pay off in the long run.""">> +<<.tip """If a procedure has more than one parameter, it is highly encouraged to use "named parameters", as shown in the third example above and in contrast to the second example. Even if it is more to type, it will pay off in the long run.""">> !! How Procedures Work diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid index e2f3637cb..17edb4784 100644 --- a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid @@ -1,11 +1,11 @@ caption: 5.3.2 created: 20231213080637781 +description: Conditional Shortcut Syntax, ListWidget Improvements modified: 20231213080637781 released: 20231213080637781 tags: ReleaseNotes title: Release 5.3.2 type: text/vnd.tiddlywiki -description: Under development //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.1...v5.3.2]]// diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.3.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.3.tid index b6d1cc451..5a7c649f9 100644 --- a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.3.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.3.tid @@ -1,11 +1,11 @@ caption: 5.3.3 created: 20231223102201587 +description: Bugfix release for v5.3.2 modified: 20231223102201587 released: 20231223102201587 tags: ReleaseNotes title: Release 5.3.3 type: text/vnd.tiddlywiki -description: Under development //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.2...v5.3.3]]// diff --git a/editions/prerelease/tiddlers/Release 5.3.4.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.4.tid similarity index 90% rename from editions/prerelease/tiddlers/Release 5.3.4.tid rename to editions/tw5.com/tiddlers/releasenotes/Release 5.3.4.tid index c378fb9a3..f751db509 100644 --- a/editions/prerelease/tiddlers/Release 5.3.4.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.4.tid @@ -1,12 +1,19 @@ caption: 5.3.4 -created: 20240529100240232 -modified: 20240529100240232 +created: 20240627165458407 +description: Testcase Widget, Tour Plugin, Geospatial Plugin, transcludes- backtranscludes operators, ... +modified: 20240628132840367 +released: 20240627165458407 tags: ReleaseNotes title: Release 5.3.4 type: text/vnd.tiddlywiki -description: Under development -//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.3...master]]// +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.3...v5.3.4]]// + +<<.banner-credits + credit:"""Congratulations to [[duarte.framos|https://talk.tiddlywiki.org/u/duarte.framos]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/banner-image-competition-for-v5-3-4/9940]]). +""" + url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/05792a9de331dc31b5016c2029a43977114eb018/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png" +>> ! Major Improvements @@ -14,7 +21,7 @@ description: Under development <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7734">> several new features that together allow interactive learning tours to be created and presented in TiddlyWiki. -The demo TiddlyWiki interactive tour can be seen at https://tiddlywiki.com/prerelease/tour +The demo TiddlyWiki interactive tour can be seen at https://tiddlywiki.com/tour The new features include: @@ -34,7 +41,7 @@ The Geospatial Plugin incorporates a number of third party libraries and online * [[Flickr|https://www.flickr.com/services/api/]], a free API for retrieving geotagged photographs * [[OpenLocationCode|https://github.com/google/open-location-code]], Google's open source library for converting to and from Open Location Codes (also known as [[PlusCodes|https://maps.google.com/pluscodes/]]) -Try it out at https://tiddlywiki.com/prerelease/plugins/tiddlywiki/geospatial/ +Try it out at https://tiddlywiki.com/plugins/tiddlywiki/geospatial/ !! <<.wlink TestCaseWidget>> Widget @@ -48,16 +55,15 @@ Test cases can also specify the raw HTML of the expected result which causes the <<testcase "TestCases/TestCaseWidget/FailingTest">> -The easiest way to use the <<.wlink TestCaseWidget>> is by creating TestCaseTiddlers using the new CompoundTiddlers format. There are also many test cases to view in the TiddlyWiki test edition at https://tiddlywiki.com/prerelease/test.html +The easiest way to use the <<.wlink TestCaseWidget>> is by creating TestCaseTiddlers using the new CompoundTiddlers format. There are also many test cases to view in the TiddlyWiki test edition at https://tiddlywiki.com/test.html ! Translation improvements -<<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7821">> the [[lingo Macro]] so that plugins can be translated in a similar way to the core. The menubar and tiddlyweb plugins have been updated to use the new mechanism, and we welcome pull requests to convert more of the core plugins to the new mechanism. - This release also includes improvements to the following translations: * Chinese * French +* German * Macedonian * Polish @@ -118,10 +124,8 @@ This release also includes improvements to the following translations: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/8141">> usage of "Cache-Control" header * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7878">> SaveCommand not overwriting files when required - -! Performance Improvements - -* +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/8237">> server header authentication when header is missing +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/8253">> ButtonWidget should refresh when "tooltip" attribute changes ! Developer Improvements @@ -129,10 +133,6 @@ This release also includes improvements to the following translations: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8099">> SJCL library creating variables in global scope * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8179">> `widget.getVariableInfo()` to always return a `params` property -! Infrastructure Improvements - -* - ! Acknowledgements [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.5.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.5.tid new file mode 100644 index 000000000..09d23ab12 --- /dev/null +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.5.tid @@ -0,0 +1,49 @@ +caption: 5.3.5 +created: 20240710115948992 +modified: 20240710115948992 +tags: ReleaseNotes +title: Release 5.3.5 +type: text/vnd.tiddlywiki +description: Under development + +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.4...v5.3.5]]// + +<<.banner-credits + credit:"""Congratulations to [[duarte.framos|https://talk.tiddlywiki.org/u/duarte.framos]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/banner-image-competition-for-v5-3-4/9940]]). +""" + url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/a9b6de8c35f0789a27a36218e8422bb11066f115/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png" +>> + +This is a bug fix release to address a number of bugs that were introduced with [[Release 5.3.4]]. + +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8327">> backwards compatibility issues with [[colour Macro]] as a procedure +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8322">> typo extra "tags: " +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8332">> adding fields without clicking the "add" button +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8317">> stability badges colors in the Gruvbox, Nord and Solarized palettes +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8333">> crash with DataWidget if `$filter` attribute specifies a missing tiddler +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/6554b5c9f4f6888f0c25c833b775c3a74ea15531">> reapplies [[#8246 Link to correct plugin instructions for Node.js|https://github.com/Jermolene/TiddlyWiki5/pull/8246]] which had accidentally been reverted +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/d2c2ada33ccd3d73d39d8c0461f327e4dee68234">> tour display in "zoomin" storyview +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/8f1792df2059378db0f038c563551373e5d95fbe">> test case import icon +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/8354">> crash when editing JSON text of a plugin tiddler + +! Acknowledgements for v5.3.5 + +[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: + +<<.contributors """ +andrewgoz +btheado +Leilei332 +michaeljmcd +oeyoews +pmario +springerspandrel +""">> + +--- + +! Release Note for v5.3.4 + +Since v5.3.5 replaces v5.3.4 after only a couple of weeks, here is the release note for v5.3.4. + +{{Release 5.3.4}} diff --git a/editions/tw5.com/tiddlers/saving/Saving with Polly.tid b/editions/tw5.com/tiddlers/saving/Saving with Polly.tid index 103c9e0c7..60ae74087 100644 --- a/editions/tw5.com/tiddlers/saving/Saving with Polly.tid +++ b/editions/tw5.com/tiddlers/saving/Saving with Polly.tid @@ -9,7 +9,6 @@ modified: 20220223160414274 tags: Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows Edge title: Saving with Polly type: text/vnd.tiddlywiki -ribbon-text: NEW [[Polly|https://github.com/Marxsal/polly]] is a batch file system using Windows //~PowerShell// to restore ~TiddlyWiki files from a specified download directory to their original home directory. diff --git a/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid b/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid index d4aefdb0e..272f22bbc 100644 --- a/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid +++ b/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid @@ -8,7 +8,6 @@ modified: 20221126192853897 tags: Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows iOS Edge title: TiddlyBucket - Save to AWS or Google Storage type: text/vnd.tiddlywiki -ribbon-text: NEW ~TiddlyBucket - Save to AWS or Google Storage using Go diff --git a/editions/tw5.com/tiddlers/system/SiteTitle.tid b/editions/tw5.com/tiddlers/system/SiteTitle.tid index efac7b528..c407957d6 100644 --- a/editions/tw5.com/tiddlers/system/SiteTitle.tid +++ b/editions/tw5.com/tiddlers/system/SiteTitle.tid @@ -3,4 +3,4 @@ modified: 20131211131023829 title: $:/SiteTitle type: text/vnd.tiddlywiki -TiddlyWiki \ No newline at end of file +TiddlyWiki @@font-size:small; v<<version>>@@ \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/system/systemtag-template.tid b/editions/tw5.com/tiddlers/system/systemtag-template.tid index 4b0120269..f2d3eee69 100644 --- a/editions/tw5.com/tiddlers/system/systemtag-template.tid +++ b/editions/tw5.com/tiddlers/system/systemtag-template.tid @@ -1,19 +1,19 @@ created: 20220719120233104 list-after: $:/core/ui/ViewTemplate/body -modified: 20220719120319922 +modified: 20240710163659672 tags: $:/tags/ViewTemplate title: $:/editions/tw5.com/systemtag-template <$list filter='[all[current]prefix[SystemTag: ]]'> -<$let tag={{{ [all[current]removeprefix[SystemTag: ]] }}} > +<$let thisTag={{{ [all[current]removeprefix[SystemTag: ]] }}} > -<$list filter='[all[tiddlers+shadows]tag<tag>limit[1]]' emptyMessage='(No tiddlers are currently tagged with <<tag>> )'> +<$list filter='[all[tiddlers+shadows]tag<thisTag>limit[1]]' emptyMessage='(No tiddlers are currently tagged with <<tag>> )'> -The following tiddlers are tagged with <<tag>> +The following tiddlers are tagged with <<tag $(thisTag)$ >> <table> <tr><th></th><th>caption</th></tr> -<$list filter='[all[tiddlers+shadows]tag<tag>sort[]]'> +<$list filter='[all[tiddlers+shadows]tag<thisTag>sort[]]'> <tr> <td><$link/></td> <td><$transclude field="caption"><$transclude field="description"><$view field="title"/></$transclude></$transclude></td> diff --git a/editions/tw5.com/tiddlers/system/wikitext-macros.tid b/editions/tw5.com/tiddlers/system/wikitext-macros.tid index c09b0d8fe..9746af1ae 100644 --- a/editions/tw5.com/tiddlers/system/wikitext-macros.tid +++ b/editions/tw5.com/tiddlers/system/wikitext-macros.tid @@ -75,7 +75,7 @@ type: text/vnd.tiddlywiki <tr> <th><<id>></th> <td><$codeblock code=<<code>>/></td> - <td><<code>></td> + <td><$transclude $variable="code" $mode="block"/></td> </tr> \end diff --git a/editions/tw5.com/tiddlers/tag-picker Macro (Examples).tid b/editions/tw5.com/tiddlers/tag-picker Macro (Examples).tid index 1fc150dcc..89c9a9d11 100644 --- a/editions/tw5.com/tiddlers/tag-picker Macro (Examples).tid +++ b/editions/tw5.com/tiddlers/tag-picker Macro (Examples).tid @@ -1,13 +1,13 @@ created: 20230616104546608 -modified: 20240214174032498 +modified: 20240708132312901 tags: [[tag-picker Macro]] [[Macro Examples]] title: tag-picker Macro (Examples) type: text/vnd.tiddlywiki -<<.warning """The first example will set the tag of the <<.tid currentTiddler>> so you should copy / paste it to a new tiddler for testing. Otherwise you'll change "this tiddler" """>> +<<.warning """The first example will add tags to the <<.tid currentTiddler>> so you should copy / paste it to a new tiddler for testing. Otherwise you'll change "this tiddler" """>> -<$macrocall $name=".example" n="1" -eg="""Use all existing tags and set the ''tags'' field here: <<tag-picker>> +<$transclude $variable=".example" n="1" +eg="""Add tags to this tiddler's ''tags'' field (selecting from a list of all tags): <<tag-picker>> """/> ---- @@ -17,41 +17,41 @@ eg="""Use all existing tags and set the ''tags'' field here: <<tag-picker>> <<.tip """The following examples use a temporary tiddler: $:/temp/test/tag-picker. So this tiddler will not be changed """>> -<$macrocall $name=".example" n="2" +<$transclude $variable=".example" n="2" eg="""$:/temp/test/tag-picker ''tags'': <$text text={{{ [[$:/temp/test/tag-picker]get[tags]enlist-input[]join[, ]else[n/a]] }}}/> -Use all existing tags and set the $:/temp/test/tag-picker ''tags'' field: <<tag-picker tiddler:"$:/temp/test/tag-picker">> +Add tags to the $:/temp/test/tag-picker ''tags'' field (selecting from a list of all tags): <<tag-picker tiddler:"$:/temp/test/tag-picker">> """/> ---- <<.tip """Use the following example to populate the $:/temp/test/tag-picker ''foo''-field, which are needed by some examples below """>> -<$macrocall $name=".example" n="3" +<$transclude $variable=".example" n="3" eg="""$:/temp/test/tag-picker ''foo'': <$text text={{{ [[$:/temp/test/tag-picker]get[foo]enlist-input[]join[, ]else[n/a]] }}}/> -Use all existing tags and set the $:/temp/test/tag-picker ''foo'' field: <<tag-picker tagField:"foo" tiddler:"$:/temp/test/tag-picker">> +Add tags to the $:/temp/test/tag-picker ''foo'' field (selecting from a list of all tags): <<tag-picker tagField:"foo" tiddler:"$:/temp/test/tag-picker">> """/> ---- <<.tip """The following example expects some values in the "foo" field of the tiddler $:/temp/test/tag-picker, which can be created by the example above.""">> -<$macrocall $name=".example" n="4" eg="""\procedure listSource() $:/temp/test/tag-picker +<$transclude $variable=".example" n="4" eg="""\procedure listSource() $:/temp/test/tag-picker $:/temp/test/tag-picker foo: <$text text={{{ [[$:/temp/test/tag-picker]get[foo]enlist-input[]join[, ]else[n/a]] }}}/><br> $:/temp/test/tag-picker bar: <$text text={{{ [[$:/temp/test/tag-picker]get[bar]enlist-input[]join[, ]else[n/a]] }}}/> -Use $:/temp/test/tag-picker ''foo'' field as source and set ''bar'': <<tag-picker tagField:"bar" tagListFilter:"[<listSource>get[foo]enlist-input[]]" tiddler:"$:/temp/test/tag-picker">> +Add tags to the ''bar'' field, selecting from values in ''foo'' field of $:/temp/test/tag-picker: <<tag-picker tagField:"bar" tagListFilter:"[<listSource>get[foo]enlist-input[]]" tiddler:"$:/temp/test/tag-picker">> """/> ---- <<.tip """The following example expects some values in the "foo" field of the tiddler $:/temp/test/tag-picker, which can be created by the example above.<br> -It will also add completely new tags to the bar-field and the source tiddlers foo-field. New tags can be entered by typing into the tag-name input +It will also add completely new tags to the bar-field and the source tiddler‘s foo-field. New tags can be entered by typing into the tag-name input """>> -<$macrocall $name=".example" n="5" eg=""" +<$transclude $variable=".example" n="5" eg=""" \procedure listSource() $:/temp/test/tag-picker \procedure listSourceField() foo @@ -62,7 +62,7 @@ It will also add completely new tags to the bar-field and the source tiddlers fo $:/temp/test/tag-picker foo: <$text text={{{ [[$:/temp/test/tag-picker]get[foo]enlist-input[]join[, ]else[n/a]] }}}/><br> $:/temp/test/tag-picker ''bar'': <$text text={{{ [[$:/temp/test/tag-picker]get[bar]enlist-input[]join[, ]else[n/a]] }}}/> -Use $:/temp/test/tag-picker ''foo'' field as source and set ''bar'': <$macrocall $name="tag-picker" tagField="bar" tagListFilter="[<listSource>get<listSourceField>enlist-input[]]" tiddler="$:/temp/test/tag-picker" actions=<<addNewTagToSource>>/> +Add tags to ''bar'' field, selecting from values in ''foo'' field of $:/temp/test/tag-picker: <$macrocall $name="tag-picker" tagField="bar" tagListFilter="[<listSource>get<listSourceField>enlist-input[]]" tiddler="$:/temp/test/tag-picker" actions=<<addNewTagToSource>>/> """/> diff --git a/editions/tw5.com/tiddlers/testcases/DataWidget/FilterMissingTiddler.tid b/editions/tw5.com/tiddlers/testcases/DataWidget/FilterMissingTiddler.tid new file mode 100644 index 000000000..5c8f242fc --- /dev/null +++ b/editions/tw5.com/tiddlers/testcases/DataWidget/FilterMissingTiddler.tid @@ -0,0 +1,17 @@ +title: TestCases/DataWidget/FilterMissingTiddler +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] +description: Filter returns title of missing tiddler +display-format: plaintext + +title: Narrative + +When the $filter attribute of the data widget returns the title of a missing tiddler, no tiddler should be added to the output array of tiddlers. ++ +title: Output + +<$data $filter="missing"/> ++ +title: ExpectedResult + +<p>[]</p> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/testcases/TestCaseWidget/FailingTest.tid b/editions/tw5.com/tiddlers/testcases/TestCaseWidget/FailingTest.tid index 5524a9852..bad3e1395 100644 --- a/editions/tw5.com/tiddlers/testcases/TestCaseWidget/FailingTest.tid +++ b/editions/tw5.com/tiddlers/testcases/TestCaseWidget/FailingTest.tid @@ -5,7 +5,7 @@ description: An example of a failing test title: Narrative -This test case intentionally fails (in order to show how failures are displayed) +This test case intentionally fails (in order to show how failures are displayed). The expected result is set to <code><$text text={{ExpectedResult}}/></code>, but the result computes to <code><$wikify name="html" text={{Output}} mode="block" output="html"><$text text=<<html>>/></$wikify></code> + title: Output diff --git a/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid b/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid index 93da9b865..dcfd088fb 100644 --- a/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid @@ -1,7 +1,9 @@ caption: edit-text created: 20131024141900000 -modified: 20230122210049893 +heading: +modified: 20240627184331133 tags: Widgets +temp: title: EditTextWidget type: text/vnd.tiddlywiki @@ -66,3 +68,18 @@ Provide a dated heading for this example where only the placeholder (but not the <$macrocall $name=".example" n="3" eg="""<$edit-text tiddler=<<currentTiddler>> field="heading" size="25" focus="yes" focusSelectFromEnd="13" default={{{ [[Heading Text (]] [<now YYYY-0MM-0DD>] [[)]] +[join[]] }}} /> """/> + +!!! Input Actions, with class attribute + +<$macrocall $name=".example" n="4" +eg="""\procedure onInput() + <%if [get[temp]match[$:/]] %> + <$action-confirm $message="Yes, this is how system tiddler names begin!"/> + <% endif %> +\end + +Type a new tiddler name, starting with the system prefix `$:/`: <$edit-text inputActions=<<onInput>> field="temp" class="tc-edit-texteditor"/> + +"""/> + + diff --git a/editions/tw5.com/tiddlers/widgets/EditWidget.tid b/editions/tw5.com/tiddlers/widgets/EditWidget.tid index 338541b94..2b72aa8ec 100644 --- a/editions/tw5.com/tiddlers/widgets/EditWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EditWidget.tid @@ -1,6 +1,6 @@ caption: edit created: 20131024141900000 -modified: 20211009121634055 +modified: 20240627220419761 tags: Widgets TriggeringWidgets title: EditWidget type: text/vnd.tiddlywiki @@ -24,3 +24,16 @@ The content of the `<$edit>` widget is ignored. |inputActions |<<.from-version 5.1.23>> Optional actions that are triggered every time an input event occurs within the input field or textarea | |refreshTitle |<<.from-version 5.1.23>> An optional tiddler title that makes the input field update whenever the specified tiddler changes | +! Examples + +!! Edit the contents (text field) of a tiddler titled <%if [<now YYYY-0MM-0DD>is[tiddler]] %> <$tiddler tiddler=<<now YYYY-0MM-0DD>> > <$link/></$tiddler> <%else %> with today’s date <% endif %> + +<$macrocall $name=".example" n="1" +eg="""<$edit tiddler=<<now YYYY-0MM-0DD>> class="tc-edit-texteditor"/> +"""/> + +!! Edit $:/status/UserName with single-line input box, have browser offer autocomplete for email + +<$macrocall $name=".example" n="2" +eg="""<$edit-text tiddler="$:/status/UserName" tag="input" size=40 autocomplete="email"/> +"""/> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/widgets/TestCaseWidget.tid b/editions/tw5.com/tiddlers/widgets/TestCaseWidget.tid index 608a964d6..2ac2ee487 100644 --- a/editions/tw5.com/tiddlers/widgets/TestCaseWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/TestCaseWidget.tid @@ -23,6 +23,11 @@ Notice also that clicking on links within the output pane will switch to the tab The text of the payload tiddlers listed on the left are editable, with the results being immediately reflected in the preview pane on the right. However, if the <<.wid testcase>> widget is refreshed then the modifications are lost. +There is a dropdown menu at the top right of the menu that has two options: + +* Export the payload tiddlers to a file in the usual export formats +* Import the payload tiddlers into the host wiki. This option loads the payload tiddlers into the $:/Import tiddler so that they can be renamed and/or individually selected + The green tick at the top left of a test case indicates that a test has been set up and that it passes. If the test fails, a red cross is shown, and there is a display of the differences between the actual results and the expected results: @@ -72,6 +77,7 @@ The test case wiki will inherit variables that are visible to the <<.wid testcas |!Variable |!Description | |<<.var linkTarget>> |Causes the test case description to be rendered as a link to the current tiddler | |<<.var displayFormat>> |Defaults to "wikitext", can also be "plaintext" to force plain text display | +|<<.var testcaseTiddler>> |Title of the tiddler to be used as a link target for the testcase description | A custom template can be specified for special purposes. For example, the provided template $:/core/ui/testcases/RawJSONTemplate just displays the payload tiddlers in JSON, which can be used for debugging purposes. diff --git a/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid b/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid index 6bc81de3c..1a71c0581 100644 --- a/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid @@ -1,21 +1,48 @@ caption: transclude created: 20130824142500000 -modified: 20230511022612458 +modified: 20240621073236430 tags: Widgets title: TranscludeWidget type: text/vnd.tiddlywiki ! Introduction -The <<.wlink TranscludeWidget>> widget dynamically includes the content from another tiddler or variable, rendering it as if the transclude widget were replaced by the target content. +Transclusion is the underlying mechanism for many higher level wikitext features, such as ''procedures'', ''functions'', ''custom widgets'' and ''macros''. -The <<.wlink TranscludeWidget>> widget can be used to render content of any type: wikitext, images, videos, etc. +The <<.wid transclude>> widget dynamically includes the content from another ''tiddler'' or ''variable'', rendering it as if the transclude widget were replaced by the target content. -Transclusion is the underlying mechanism for many higher level wikitext features, such as procedures, custom widgets and macros. +The <<.wid transclude>> widget can be used to render content of any type: wikitext, images, videos, etc. + +! Attributes + +| !Attribute |<| !Description | +| !(modern) | !(legacy) |~| +|$variable |- |Name of the variable to transclude. Eg: Name of <<.dlink procedures Procedures>>, <<.dlink functions Functions>>, <<.dlink "custom widgets" Widgets>> and <<.dlink macros Macros>> | +|$tiddler |tiddler |The title of the tiddler to transclude (defaults to the current tiddler) | +|$field |field |The field name of the current tiddler (defaults to "text"; if present takes precedence over the index attribute) | +|$index |index |The index of a property in a [[DataTiddler|DataTiddlers]] | +|$subtiddler |subtiddler |Optional SubTiddler title when the target tiddler is a [[plugin|Plugins]] (see below) | +|$mode |mode |Override the default parsing mode for the transcluded text to "block" or "inline" | +|$type |– |Optional ContentType used when transcluding variables, indexes or fields other than the ''text'' field| +|$output |- |ContentType for the output rendering (defaults to `text/html`, can also be `text/plain` or `text/raw`) | +|$recursionMarker |recursionMarker |Set to ''no'' to prevent creation of [[Legacy Transclusion Recursion Marker]] (defaults to ''yes'') | +|$fillignore |- |Set to ''yes'' to make this transclusion invisible to the <<.attr $depth>> attribute of the <<.wlink SlotWidget>> widget (defaults to ''no'') | +|//{attributes not starting with $}// |– |Any other attributes that do not start with a dollar are used as parameters to the transclusion | +|//{other attributes starting with $}// |– |Other attributes starting with a single dollar sign are ''reserved'' for future use | +|//{attributes starting with $$}// |– |Attributes starting with two dollar signs are used as parameters to the transclusion, but with the name changed to use a single dollar sign | + +! Legacy vs. Modern Mode + +The <<.wid transclude>> widget can be used in two modes: + +* <<.from-version "5.3.0">> ''Modern mode'' offers the full capabilities of the <<.wid transclude>> widget, and incorporates the functionality of the <<.wlink MacroCallWidget>> widget. It is indicated by the presence of at least one attribute starting with a dollar sign `$` +* ''Legacy mode'' offers a more limited set of capabilities. It is indicated by the absence of any attributes starting with a dollar sign `$` + +Modern mode is recommended for use in new applications. ! Example -Here is a complete example showing the important features of the <<.wlink TranscludeWidget>> widget: +Here is a complete example showing the important features of the <<.wid transclude>> widget: ``` \procedure myproc(name,age) @@ -29,36 +56,9 @@ My name is <<name>> and my age is <<age>>. * The content of the procedure refers to the parameters as variables * The <<.wlink TranscludeWidget>> widget specifies the variable to transclude, and values for the parameters. -! Legacy vs. Modern Mode - -The <<.wlink TranscludeWidget>> widget can be used in two modes: - -* <<.from-version "5.3.0">> ''Modern mode'' offers the full capabilities of the <<.wlink TranscludeWidget>> widget, and incorporates the functionality of the <<.wlink MacroCallWidget>> widget. It is indicated by the presence of at least one attribute starting with a dollar sign `$` -* ''Legacy mode'' offers a more limited set of capabilities. It is indicated by the absence of any attributes starting with a dollar sign `$` - -Modern mode is recommended for use in new applications. - -! Attributes - -| !Attribute |<| !Description | -| !(modern) | !(legacy) |~| -|$variable |- |Name of the variable to transclude | -|$tiddler |tiddler |The title of the tiddler to transclude (defaults to the current tiddler) | -|$field |field |The field name of the current tiddler (defaults to "text"; if present takes precedence over the index attribute) | -|$index |index |The index of a property in a [[DataTiddler|DataTiddlers]] | -|$subtiddler |subtiddler |Optional SubTiddler title when the target tiddler is a [[plugin|Plugins]] (see below) | -|$mode |mode |Override the default parsing mode for the transcluded text to "block" or "inline" | -|$type |– |Optional ContentType used when transcluding variables, indexes or fields other than the ''text'' field| -|$output |- |ContentType for the output rendering (defaults to `text/html`, can also be `text/plain` or `text/raw`) | -|$recursionMarker |recursionMarker |Set to ''no'' to prevent creation of [[Legacy Transclusion Recursion Marker]] (defaults to ''yes'') | -|$fillignore |- |Set to ''yes'' to make this transclusion invisible to the <<.attr $depth>> attribute of the <<.wlink SlotWidget>> widget (defaults to ''no'') | -|//{attributes not starting with $}// |– |Any other attributes that do not start with a dollar are used as parameters to the transclusion | -|//{other attributes starting with $}// |– |Other attributes starting with a single dollar sign are reserved for future use | -|//{attributes starting with $$}// |– |Attributes starting with two dollar signs are used as parameters to the transclusion, but with the name changed to use a single dollar sign | - ! Basic Operation -The basic operation of the <<.wlink TranscludeWidget>> widget is as follows: +The basic operation of the <<.wid transclude>> widget is as follows: |`<$transclude/>` |Transcludes the text field of the current tiddler | |`<$transclude $variable="alpha"/>` |Transcludes the variable "alpha" (note that procedures, custom widgets and macros are all special types of variable) | @@ -69,7 +69,7 @@ The basic operation of the <<.wlink TranscludeWidget>> widget is as follows: ! Transclusion Parameters -Named string parameters can be passed to the <<.wlink TranscludeWidget>> widget. They are made available as variables within the transcluded text. Parameters are only supported in modern mode. +Named string parameters can be passed to the <<.wid transclude>> widget. They are made available as variables within the transcluded text. Parameters are only supported in modern mode. When invoking a transclusion, parameters are specified as additional attributes that do not start with a dollar sign `$`: @@ -108,7 +108,7 @@ Parameters are available here as the variables <<firstParameter>> and <<secondPa ! Transclusion Slots -Transcluded content can define special named locations called slots. At the point of transclusion, blocks of wikitext can be passed to the <<.wlink TranscludeWidget>> widget to fill those slots. +Transcluded content can define special named locations called slots. At the point of transclusion, blocks of wikitext can be passed to the <<.wid transclude>> widget to fill those slots. Slots work very similarly to parameters except that they can contain structured wikitext, and not just plain text. The primary advantage of slots over parameters is that the contents do not need to be wrapped in quotation symbols, making it much simpler to pass complex structures. diff --git a/editions/tw5.com/tiddlers/wikitext/Lists in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Lists in WikiText.tid index feca125ee..29cd06464 100644 --- a/editions/tw5.com/tiddlers/wikitext/Lists in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Lists in WikiText.tid @@ -48,7 +48,7 @@ Here's an example the other way around, with numbers as the first level: You can also assign a CSS class to an individual member of a list with this notation: <<wikitext-example src:"* List One -*.MyClass List Two +*.tc-muted List Two * List Three ">> diff --git a/languages/de-DE/Buttons.multids b/languages/de-DE/Buttons.multids index 54bb2dc09..050897b22 100644 --- a/languages/de-DE/Buttons.multids +++ b/languages/de-DE/Buttons.multids @@ -28,6 +28,7 @@ Encryption/ClearPassword/Caption: Verschlüsselung deaktivieren Encryption/ClearPassword/Hint: Lösche das Passwort und speichere ohne Verschlüsselung Encryption/SetPassword/Caption: Verschlüsselung Encryption/SetPassword/Hint: Definiert ein Passwort, um dieses Wiki zu verschlüsseln +EmergencyDownload/Caption: Speichern aller Tiddler als JSON File ExportPage/Caption: Alle exportieren ExportPage/Hint: Alle Tiddler exportieren ExportTiddler/Caption: Exportieren @@ -103,6 +104,8 @@ ShowSideBar/Caption: Sidebar einblenden ShowSideBar/Hint: Sidebar einblenden TagManager/Caption: Tag-Manager TagManager/Hint: Öffne den Tag-Manager +TestCaseImport/Caption: importiere Tiddler +TestCaseImport/Hint: Importiere im Test enthaltene Tiddler Timestamp/Caption: Zeitstempel Timestamp/Hint: Einstellung, ob Änderungen den Zeitstempel beeinflussen Timestamp/On/Caption: Zeitstempel EIN @@ -192,4 +195,4 @@ ToggleSidebar/Hint: Invertiere die "sidebar" Sichtbarkeit Transcludify/Caption: Transklusion Transcludify/Hint: Transklusion - Den selektierten Text in geschwungene Klammern setzen Underline/Caption: Unterstreichen -Underline/Hint: Ausgewählten Text unterstrichen darstellen +Underline/Hint: Ausgewählten Text unterstrichen darstellen \ No newline at end of file diff --git a/languages/de-DE/ControlPanel.multids b/languages/de-DE/ControlPanel.multids index c713e34d7..bfac26d5b 100644 --- a/languages/de-DE/ControlPanel.multids +++ b/languages/de-DE/ControlPanel.multids @@ -206,6 +206,12 @@ Stylesheets/Caption: Stylesheets Stylesheets/Expand/Caption: Alle erweitern Stylesheets/Hint: Hier wird der "erweiterte" CSS Code dargestellt. Die Reihenfolge, kann in der "Tag-Liste" <<tag "$:/tags/Stylesheet">> mit "Drag & Drop" angepasst werden! Stylesheets/Restore/Caption: Alle zurücksetzen +TestCases/Caption: Test Beispiele +TestCases/Hint: Test Beispiele sind eigenständige Beispiele zum testen und lernen einzelner Funktionen +TestCases/All/Caption: Alle Beispiele +TestCases/All/Hint: Alle Test Beispiele +TestCases/Failed/Caption: Test Nicht Bestehenden +TestCases/Failed/Hint: Nicht bestandene Tests - Übersicht Theme/Caption: Theme Theme/Prompt: Ausgewähltes Theme: TiddlerFields/Caption: Tiddler Felder @@ -228,4 +234,4 @@ Tools/Download/Full/Caption: Herunterladen des ''gesamten Wikis'' ViewTemplateBody/Caption: View Template Text ViewTemplateBody/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Textbereich auszuwählen. ViewTemplateTitle/Caption: View Template Titel -ViewTemplateTitle/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Titel auszuwählen. +ViewTemplateTitle/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Titel auszuwählen. \ No newline at end of file diff --git a/languages/de-DE/Dates.multids b/languages/de-DE/Dates.multids index ff028f0f6..d6526e752 100644 --- a/languages/de-DE/Dates.multids +++ b/languages/de-DE/Dates.multids @@ -84,4 +84,4 @@ RelativeDate/Past/Minutes: vor <<period>> Minuten RelativeDate/Past/Months: vor <<period>> Monaten RelativeDate/Past/Second: vor einer Sekunde RelativeDate/Past/Seconds: vor <<period>> Sekunden -RelativeDate/Past/Years: vor <<period>> Jahren +RelativeDate/Past/Years: vor <<period>> Jahren \ No newline at end of file diff --git a/languages/de-DE/Docs/ModuleTypes.multids b/languages/de-DE/Docs/ModuleTypes.multids index 5b7738d84..730c58777 100644 --- a/languages/de-DE/Docs/ModuleTypes.multids +++ b/languages/de-DE/Docs/ModuleTypes.multids @@ -9,7 +9,7 @@ config: Daten, die in `$tw.config` eingefügt werden. filteroperator: Individuelle Funktionen für den Filter-Operator. global: Globale Daten, die in `$tw` eingefügt werden. info: Veröffentlicht System-Informationen mit dem Pseudo-plugin: [[$:/temp/info-plugin]] -isfilteroperator: Operanden für den Filter-Operator: ''is'' +isfilteroperator: Parameter für den Filter-Operator: ''is'' library: Allgemeiner Modultyp, für JavaScript Module. macro: Globale Makro-Definitionen in JavaScript. parser: Parser für verschiedene Tiddler Typen. @@ -27,4 +27,4 @@ utils-browser: Browser-spezifische Methoden werden zu `$tw.utils` hinzugefügt. utils-node: Erweitert `$tw.utils` mit Methoden aus node.js. widget: Widgets verarbeiten das Rendern und Aktualisieren der Anzeige in der DOM. wikimethod: Methoden werden zu `$tw.Wiki` hinzugefügt. -wikirule: Enthält die individuellen Parser Regeln für den WikiText-Parser. +wikirule: Enthält die individuellen Parser Regeln für den WikiText-Parser. \ No newline at end of file diff --git a/languages/de-DE/Docs/PaletteColours.multids b/languages/de-DE/Docs/PaletteColours.multids index 036f002ad..5710b2b29 100644 --- a/languages/de-DE/Docs/PaletteColours.multids +++ b/languages/de-DE/Docs/PaletteColours.multids @@ -67,6 +67,9 @@ sidebar-tiddler-link-foreground-hover: Seitenleiste Tiddler Link Vordergrund (ho sidebar-tiddler-link-foreground: Seitenleiste Tiddler Link Vordergrund site-title-foreground: Wiki Titel Vordergrund static-alert-foreground: Statische Warnung Vordergrund +testcase-accent-level-1: Test Beispiel Akzent Farbe nicht "verschachtelt" - Ebene 1 +testcase-accent-level-2: Test Beispiel Akzent Farbe with Ebene 2 +testcase-accent-level-3: Test Beispiel Akzent Farbe with Ebene 3 tab-background-selected: Reiter Hintergrund für selektierte Reiter tab-background: Reiter Hintergrund tab-border-selected: Reiter Rahmen für selektierte Reiter @@ -106,4 +109,4 @@ toolbar-delete-button: Werkzeugleiste 'Löschen' Button Vordergrund toolbar-cancel-button: Werkzeugleiste 'Abbruch' Button Vordergrund toolbar-done-button: Werkzeugleiste 'Fertig' Button Vordergrund untagged-background: (untagged) Pille Hintergrund -very-muted-foreground: Stark abgedunkelter Vordergrund +very-muted-foreground: Stark abgedunkelter Vordergrund \ No newline at end of file diff --git a/languages/de-DE/EditTemplate.multids b/languages/de-DE/EditTemplate.multids index 4482435e2..f28f120e4 100644 --- a/languages/de-DE/EditTemplate.multids +++ b/languages/de-DE/EditTemplate.multids @@ -35,4 +35,4 @@ Title/References/Prompt: Die folgenden Referenz-Links zu diesem Tiddler werden N Type/Delete/Caption: Lösche Inhalts Typ Type/Delete/Hint: Lösche Inhalts Typ Type/Placeholder: Tiddler Format -Type/Prompt: Typ: +Type/Prompt: Typ: \ No newline at end of file diff --git a/languages/de-DE/Exporters.multids b/languages/de-DE/Exporters.multids index 6663dd17b..73c4e6280 100644 --- a/languages/de-DE/Exporters.multids +++ b/languages/de-DE/Exporters.multids @@ -3,4 +3,4 @@ title: $:/language/Exporters/ StaticRiver: HTML - Statisch JsonFile: JSON - Format CsvFile: CSV - Format -TidFile: TID - Text Format +TidFile: TID - Text Format \ No newline at end of file diff --git a/languages/de-DE/Fields.multids b/languages/de-DE/Fields.multids index d1f773053..79aa97483 100755 --- a/languages/de-DE/Fields.multids +++ b/languages/de-DE/Fields.multids @@ -4,6 +4,7 @@ _canonical_uri: Die komplette URI eines externen Foto Tiddlers. URI = Uniform Re author: Name des Plugin-Authors bag: Der Name eines ~TiddlyWeb "bags" von dem der Tiddler kam. caption: Der Text, der auf "Tab-Buttons" angezeigt wird. +class: Die CSS Klasse, die angewendet wird, wenn ein Tiddler ausgegeben wird. Siehe: [[Custom styles by user-class]]. Wird auch verwended für: [[Modals]] code-body: Das "View Template" wird den Tiddler Text als "Code" anzeigen, wenn dieses Feld auf: ''"yes"'' gesetzt wird. color: Der CSS Farbwert, der mit einem Tiddler assoziiert wird. component: Der Name einer Komponente, die für eine [[Alarm Anzeige|AlertMechanism]] verantwortlich ist. @@ -31,6 +32,7 @@ plugin-priority: Ein numerischer Wert, der die Priorität eines "plugins" festle plugin-type: Der Typ eines "plugins". revision: Die Revisionsnummer eines Tiddlers. Wird von einem Server vergeben. released: Datum der ~TiddlyWiki Ausgabe. +stability: Entwicklungs Status: "deprecated"=abgekündigt, "experimental"=experimentell, "stable"=stabil, "legacy"=Altlast. source: Eine Quelltext URL, verbunden mit diesem Tiddler. subtitle: Der Untertitel für einen "~Wizard-Dialog". tags: Eine Liste von "Tags" für diesen Tiddler. @@ -40,4 +42,4 @@ title: Ein individueller einmaliger Name eines Tiddlers. toc-link: Unterdrückt die Anzeige als Link, wenn der Wert auf ''"no"'' gesetzt wird type: Legt den Typ eines Tiddlers fest (aka MIME-type). version: Versions-Information eines "plugins". -_is_skinny: Wenn es existiert, zeigt diese Feld an, dass das "Text-Feld" dynamisch vom Server geladen wird. +_is_skinny: Wenn es existiert, zeigt diese Feld an, dass das "Text-Feld" dynamisch vom Server geladen wird. \ No newline at end of file diff --git a/languages/de-DE/Help/build.tid b/languages/de-DE/Help/build.tid index acc9428d0..7fe8e4bbb 100644 --- a/languages/de-DE/Help/build.tid +++ b/languages/de-DE/Help/build.tid @@ -1,7 +1,7 @@ title: $:/language/Help/build description: Ausführen, von vorkonfigurierten Befehlen. -Dieser Befehl erstellt die vorkonfigurierten Ziele, der aktuellen Wiki Edition. Sind keine Ziele spezifiziert, dann werden all konfigurierten Ziele erstellt. +Dieser Befehl erstellt eine Zielversion, der aktuellen Wiki Edition. Sind keine Ziele spezifiziert, dann werden all konfigurierten Ziele erstellt. ``` --build <target> [<target> ...] diff --git a/languages/de-DE/Help/clearpassword.tid b/languages/de-DE/Help/clearpassword.tid index a6542b847..8dd656a75 100644 --- a/languages/de-DE/Help/clearpassword.tid +++ b/languages/de-DE/Help/clearpassword.tid @@ -1,7 +1,7 @@ title: $:/language/Help/clearpassword -description: Lösche das Passwort, das für die vorhergehenen Verschlüsselungen verwendet wurde. +description: Lösche das Passwort, das für die vorhergehenden Verschlüsselungen verwendet wurde. -Lösche das Passwort, das für die vorhergehenen Verschlüsselungen verwendet wurde. +Lösche das Passwort, das für die vorhergehenden Verschlüsselungen verwendet wurde. ``` --clearpassword diff --git a/languages/de-DE/Help/commands.tid b/languages/de-DE/Help/commands.tid index 55aefa16e..11cf698ee 100644 --- a/languages/de-DE/Help/commands.tid +++ b/languages/de-DE/Help/commands.tid @@ -1,7 +1,7 @@ title: $:/language/Help/commands -description: Ausführen von Befehlen aus einem Tiddler +description: Ausführen von Befehlen aus einem Filter -Sequentielle Abarbeitung von Befehlen aus einem Tiddler. +Sequentielle Abarbeitung von Befehlen aus einem Filter. ``` --commands <filter> diff --git a/languages/de-DE/Help/editions.tid b/languages/de-DE/Help/editions.tid index 1e997b1e1..83ab3238a 100644 --- a/languages/de-DE/Help/editions.tid +++ b/languages/de-DE/Help/editions.tid @@ -7,4 +7,4 @@ Listet alle verfügbaren TiddlyWiki Editionen auf. --editions ``` -Sie können ein neues Wiki mit dem `--init` Kommando erstellen. Dabei wird eine der angezeigten Editionen "geklont". +Sie können ein neues Wiki mit dem `--init` Befehl erstellen. Dabei wird eine der angezeigten Editionen "geklont". diff --git a/languages/de-DE/Help/fetch.tid b/languages/de-DE/Help/fetch.tid index 8b628965d..2c2517d59 100644 --- a/languages/de-DE/Help/fetch.tid +++ b/languages/de-DE/Help/fetch.tid @@ -1,7 +1,7 @@ title: $:/language/Help/fetch -description: Fetch tiddlers from wiki by URL +description: Laden mehrerer Tiddler über eine URL -Abrufen eines oder mehrerer Dateien über HTTP/HTTPS. Importieren der tiddler, die dem Filter entsprechen. Umwandeln der ankommenden Titel, wenn nötig. +Abrufen eines oder mehrerer Tiddler über HTTP/HTTPS. Importieren der tiddler, die dem Filter entsprechen. Umwandeln der ankommenden Titel, wenn nötig. ``` --fetch file <url> <import-filter> <transform-filter> @@ -10,11 +10,11 @@ Abrufen eines oder mehrerer Dateien über HTTP/HTTPS. Importieren der tiddler, d --fetch raw-files <url-filter> <transform-filter> ``` -Wird der `file` Parameter verwendet, wird nur eine einzelne Datei geholt. Der erste Parameter ist die URL von der die Datei ''importiert'' werden soll. +Wird der `file` oder `raw-file` Parameter verwendet, wird nur eine einzelne Datei geladen. Der erste Parameter ist die URL von der die Datei ''importiert'' werden soll. -Wird der `files` Parameter verwendet, werden mehrere Dateien geholt. In diesem Fall ist der erste Parameter ein Filter, der eine Liste von URLs ergibt, von denen die Dateien gelesen werden sollen. Zum Beispiel: Mehrere Tiddler sind getagged mit: `remote-server` und enthalten ein Feld: `url`. ... Der Filter `[tag[remote-server]get[url]]` wird alle verfügbaren URLs ansprechen. +Wird der `files` Parameter verwendet, werden mehrere Dateien geholt. In diesem Fall ist der erste Parameter ein Filter, der eine Liste von URLs ergibt, von denen die Dateien gelesen werden sollen. Zum Beispiel: Mehrere Tiddler sind getaggt mit: `remote-server` und enthalten ein Feld: `url`. ... Der Filter `[tag[remote-server]get[url]]` wird alle verfügbaren URLs ansprechen. -Werden die `raw-file` oder `raw-files` Varianten verwendet, wird der Klartext der Datei importiert. Es wird nicht versucht die Import-logik anzuwenden. +Werden die `raw-file` oder `raw-files` Varianten verwendet, wird der Klartext der Datei importiert. Es wird nicht versucht die Import-Logik anzuwenden. Der `<import-filter>` Parameter spezifiziert jene Tiddler, die importiert werden sollen. Ohne diesen Parameter wird standardmäßig `[all[tiddlers]]` als Filter verwendet. @@ -22,7 +22,7 @@ Der `<transform-filter>` Parameter, spezifiziert einen Filter, mit dem der Tiddl Wird `--verbose` vor dem `--fetch` Befehl benutzt, dann werden erweiterte Diagnose Infos ausgegeben. -Hinweis: ~TiddlyWiki wird ''keine'' veralteten plugins importieren. +Hinweis: TiddlyWiki wird ''keine'' veraltete Plugins importieren. Das folgende Beispiel wird alle "nicht-system" Tiddler von https://tiddlywiki.com holen und in ein `JSON` file speichern. diff --git a/languages/de-DE/Help/import.tid b/languages/de-DE/Help/import.tid index 395f196f5..79b4fe223 100644 --- a/languages/de-DE/Help/import.tid +++ b/languages/de-DE/Help/import.tid @@ -1,13 +1,13 @@ title: $:/language/Help/import -description: Importiert mehrere Tiddler aus einer Datei +description: Importiert mehrere Tiddler aus einer Datei. Dieser Befehl importiert / extrahiert Tiddler aus folgenden Dateien: -* ~TiddlyWiki `*.html` +* TiddlyWiki `*.html` * `*.tiddler` * `*.tid` * `*.json` -* oder andere lokale `text` Dateien +* oder andere lokale `.text` Dateien Der `<deserializer>` Parameter muss angegeben werden. Anders als beim `--load` Befehl, der diese Information aus der Dateiendung ableiten kann. @@ -27,6 +27,6 @@ TiddlyWiki enthält folgende `deserializer` Standard-Typen: Der Tiddler-Titel entspricht nach dem Import, dem Dateinamen. -Die Zeichenkodierung ist auf `utf8` eingestellt. Sie kann aber auf `base64` für binäre Daten geändert werden. +Die Zeichenkodierung ist auf "utf8" eingestellt. Sie kann aber auf "base64" für binäre Daten geändert werden. -Hinweis: ~TiddlyWiki importiert nur neuere Plugins, als jene, die bereits geladen sind. +Hinweis: TiddlyWiki importiert nur neuere Plugins, als jene, die bereits geladen sind. diff --git a/languages/de-DE/Help/init.tid b/languages/de-DE/Help/init.tid index 5549f2d21..a3bcceba4 100644 --- a/languages/de-DE/Help/init.tid +++ b/languages/de-DE/Help/init.tid @@ -18,7 +18,7 @@ Anmerkung: * Das Wiki Verzeichnis wird angelegt, wenn es nicht existiert. * Der <edition> Parameter ist standardmäßig: ''empty''. * Der --init Befehl bricht ab, wenn das angegebene Verzeichnis nicht leer ist. -* Der --init Befehl löscht alle `includeWikis` Definitionen aus der neuen `tiddlywiki.info` Datei +* Der --init Befehl löscht alle `includeWikis` Definitionen aus der neuen `tiddlywiki.info` Datei. * Wenn mehrere Editionen importiert werden, wird die zuletzt importierte `tidlywiki.info` Datei aktiv sein. Alle anderen weden überschrieben. * `--editions` listet alle verfügbaren Editionen auf. diff --git a/languages/de-DE/Help/listen.tid b/languages/de-DE/Help/listen.tid index 764386359..4f5060ef4 100644 --- a/languages/de-DE/Help/listen.tid +++ b/languages/de-DE/Help/listen.tid @@ -1,20 +1,20 @@ title: $:/language/Help/listen description: Definiert das HTTP-Server Interface für Tiddlywiki -Stellt das Wiki über einen HTTP-Server zur Verfügung. +Stellt das Wiki mit einem HTTP-Server zur Verfügung. -Die "listen" Parameter werden wie folgt verwendet: +Der "listen" Parameter wird wie folgt verwendet: ``` --listen [<name>=<wert>]... ``` -Alle Parameter sind optional, die Reihenfolge ist beliebig und es werden "sichere" standard parametern verwendet. +Alle Parameter sind optional, die Reihenfolge ist beliebig und es werden "sichere" standard Parameter verwendet. Mögliche Parameter: -* ''host'' - Host-Name, von dem übertragen wird. (Standard: "127.0.0.1" aka "localhost") -* ''path-prefix'' - Prefix, der auf alle Pfade angewendet wird +* ''host'' - Host-Name, von dem übertragen wird. (Standard: "127.0.0.1" alias "localhost") +* ''path-prefix'' - Pfad-prefix, der auf alle Pfade angewendet wird * ''port'' - Port Nummer, die überwacht werden soll; Nicht-numerische Werte werden als System Umgebungs-Variable interpretiert. (Standard: 8080) * ''credentials'' - Pfad zur Authentifizierungsdatei im CSV-format. Angabe ist relativ zum Wiki-Verzeichnis * ''anon-username'' - Name, der für anonymer Benutzer verwendet wird, um bearbeitete Tiddler zu markieren @@ -23,12 +23,12 @@ Mögliche Parameter: * ''authenticated-user-header'' - Optionaler HTTP Header-Name für vertrauenswürdige, authentifizierte Benutzer * ''readers'' - Komma-separierte Liste für Benutzer, mit Schreiberlaubnis * ''writers'' - Komma-separierte Liste für Benutzer, mit Leseerlaubnis -* ''csrf-disable'' - "yes" bedeutet, dass CSRF checks deaktiviert sind. (Standard: "no") +* ''csrf-disable'' - "yes" bedeutet, dass CSRF Überprüfungen deaktiviert sind. (Standard: "no") * ''root-tiddler'' - Tiddler, der für den "Root-Pfad" verwendet wird. (Standard: "$:/core/save/all") * ''root-render-type'' - Darstellungs-Type, die für den Root-Tiddler verwendet wird. (Standard: "text/plain") * ''root-serve-type'' - Inhalts-Type, die für den Root-Tiddler verwendet wird. (Standard: "text/html") -* ''tls-cert'' - Pfad zur "TLS certificate" Datei (relativ zum Wiki Verzeichnis) -* ''tls-key'' - Pfad zur "TLS key" Datei (relativ zum Wiki Verzeichnis) +* ''tls-cert'' - Pfad zur "TLS Zertifikat" Datei (relativ zum Wiki Verzeichnis) +* ''tls-key'' - Pfad zur "TLS Schlüssel" Datei (relativ zum Wiki Verzeichnis) * ''debug-level'' - "debug" bewikt eine detailierte Anzeige der HTTP Anfrage-Parameter. (Standard: "none") * ''gzip'' - Wenn auf "yes" gesetzt, dann wird gzip Kompression aktiviert. (Standard: "no") * ''use-browser-cache'' - Ist dieser Parameter auf "yes" gesetzt kann der Browser Inhalte zwischenspeichern um Übertragungsbandbreite zu sparen. (Standard: "no") diff --git a/languages/de-DE/Help/load.tid b/languages/de-DE/Help/load.tid index 079855a32..a4302a504 100644 --- a/languages/de-DE/Help/load.tid +++ b/languages/de-DE/Help/load.tid @@ -3,7 +3,7 @@ description: Lade Tiddler von einer Datei. Lade Tiddler aus einer TiddlyWiki `.html`, `.tiddler`, `.tid`, `.json` oder anderen lokalen Datei. -Die Umsetzung der geladenen Datei wird anhand der Datei-Erweiterung bestimmt. Verwenden sie den alternativen `import` Befehl, wenn sie den Umsetzungstyp ändern möchten. +Die Verarbeitung der geladenen Datei wird anhand der Datei-Erweiterung bestimmt. Verwenden sie den alternativen `import` Befehl, wenn sie die verarbeitungsweise ändern möchten. ``` @@ -11,14 +11,14 @@ Die Umsetzung der geladenen Datei wird anhand der Datei-Erweiterung bestimmt. Ve --load <dirpath> [noerror] ``` -Der "load" Befehl erzeugt eine Fehlermeldung, wenn keine Tiddler gefunden werden. Diese Verhalten kann mit dem Parameter "noerror" unterdrückt werden. +Der "load" Befehl erzeugt eine Fehlermeldung, wenn keine Tiddler gefunden werden. Dieses Verhalten kann mit dem Parameter "noerror" unterdrückt werden. Um Daten aus einer verschlüsselten TiddlyWiki Datei zu laden, muss zuerst mit dem "password" Parameter ein Passwort definiert werden. Beispiel: ``` -tiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html +tiddlywiki ./MyWiki --password hier-sicheres-passwort-verwenden --load my_encrypted_wiki.html ``` Hinweis: TiddlyWiki wird nur neuere Versionen eines bestehenden Plugins laden! diff --git a/languages/de-DE/Help/makelibrary.tid b/languages/de-DE/Help/makelibrary.tid index ee1bd8616..7508d0522 100644 --- a/languages/de-DE/Help/makelibrary.tid +++ b/languages/de-DE/Help/makelibrary.tid @@ -1,7 +1,7 @@ title: $:/language/Help/makelibrary -description: Erstellt die "Upgrade Bibliothek", die vom upgrade Prozess benötigt wird +description: Erstellt die "Upgrade Bibliothek", die vom "upgrade" Prozess benötigt wird -Erstellt den tiddler: `$:/UpgradeLibrary`, der vom upgrade Prozess benötigt wird. +Erstellt den tiddler: `$:/UpgradeLibrary`, der vom "upgrade" Prozess benötigt wird. Die "Upgrade Bibliothek" ist ein "normales" Plugin, vom Typ: `library`. Es enthält eine Kopie jedes Plugins, Themas und Sprachpacketes, das im TiddlyWiki Archiv enthalten ist. diff --git a/languages/de-DE/Help/output.tid b/languages/de-DE/Help/output.tid index 7fd9df10d..0138cd5f0 100644 --- a/languages/de-DE/Help/output.tid +++ b/languages/de-DE/Help/output.tid @@ -1,7 +1,7 @@ title: $:/language/Help/output -description: Setzt das Basis Ausgabeverzeichnis für die folgenden Befehle. +description: Setzt das Basis Ausgabeverzeichnis für alle folgenden Befehle. -Setzt das Basis Ausgabeverzeichnis für die folgenden Befehle. Das Standard Verzeichnis heißt: `output` und ist ein Unterverzeichnis des `edition` Verzeichnisses. +Setzt das Basis Ausgabeverzeichnis für alle folgenden Befehle. Das Standard Verzeichnis heißt: "output" und ist ein Unterverzeichnis des "edition" Verzeichnisses. ``` --output <pathname> diff --git a/languages/de-DE/Help/password.tid b/languages/de-DE/Help/password.tid index 07212963a..7e590ba93 100644 --- a/languages/de-DE/Help/password.tid +++ b/languages/de-DE/Help/password.tid @@ -7,4 +7,4 @@ Setzen eines Passwortes für Verschlüsselungsoperationen --password <password> ``` -Hinweis: Diese Option kann nicht verwendet werden, um ein "Server Passwort" festzulegen! Informationen zum Server Passwort siehe "--server" Kommando. +Hinweis: Diese Option kann nicht verwendet werden, um ein "Server Passwort" festzulegen! Informationen zum Server Passwort siehe [[ServerCommand]]. diff --git a/languages/de-DE/Help/render.tid b/languages/de-DE/Help/render.tid index cc8bdedef..67a4343a1 100644 --- a/languages/de-DE/Help/render.tid +++ b/languages/de-DE/Help/render.tid @@ -1,9 +1,9 @@ title: $:/language/Help/render description: Ausgabe individueller Tiddler in Dateien -Individuelle Tiddler werden anhand von Filtern spezifiziert, gelesen und in Dateien umgesetzt. +Individuelle Tiddler werden anhand von Filtern spezifiziert, gelesen und in Dateien umgewandelt. -Optionell kann eine Template-Datei angegeben werden. In diesem Fall wird nicht der Inhalt des Tiddlers, sondern des Templates umgesetzt. Die `currentTiddler` Variable wird auf den Titel, des auszugebenden, Tiddlers gesetzt. +Optionell kann eine Template-Datei angegeben werden. In diesem Fall wird nicht der Inhalt des Tiddlers, sondern des Templates übersetzt. Die `currentTiddler` Variable wird auf den Titel, des auszugebenden, Tiddlers gesetzt. Es können noch zusätzliche Variablen per Name und Wert gesetzt werden. @@ -11,9 +11,9 @@ Es können noch zusätzliche Variablen per Name und Wert gesetzt werden. --render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [ [<name>] [<value>] ]* ``` -* ''tiddler-filter'': Ein Filter, der die Auszugebenden Tiddler eindeutig spezifiziert. -* ''filename-filter'': [Option] Filter, der aus Tiddler Titeln, Pfadnamen extrahiert. Wenn weggelassen, dann wird der Standard verwendet: `[is[tiddler]addsuffix[.html]]`, welcher den Titel als Dateiname verwendet. -* ''render-type'': [Option] Ausgabe Type: `text/html` (Standard) generiert HTML Text und `text/plain` gibt den "reinen" Text Inhalt zurück. `text/plain` ignoriert HTML Marker und andere "nicht-druckbare" Zeichen. +* ''tiddler-filter'': Ein Filter, der die Auszugebenden Tiddler eindeutig spezifiziert. +* ''filename-filter'': [Option] Filter, der aus Tiddler Titeln, Pfadnamen generiert. Wenn weggelassen, dann wird der Standard verwendet: `[is[tiddler]addsuffix[.html]]`, welcher den Titel als Dateiname verwendet. +* ''render-type'': [Option] Ausgabe Typ: `text/html` (Standard) generiert HTML Text und `text/plain` gibt den "reinen" Text Inhalt zurück. `text/plain` ignoriert HTML Marker und andere "nicht-druckbare" Zeichen. * ''template'': [Option] Template, das verwendet werden soll * ''name'': [Option] Name einer zusätzlichen Variablen. * ''value'': [Option] Wert dieser zusätzlichen Variablen. @@ -27,7 +27,7 @@ Wichtig: * Das `output` Verzeichnis wird nicht gelöscht, bevor neue Dateien geschrieben werden. * Verzeichnisse und Dateien werden automatisch angelegt, sollten sie nicht vorhanden sein. * Wenn eine Datei Leerzeichen enthält, dann muss dies ''doppelt'' angezeigt werden. Für TiddlyWiki mit eckigen Klammern `[[]]` und für die Kommandozeile mit Hochkomma "". Zum Beispiel: `--render "[[Motovun Jack.jpg]]"` -* Dateinamens-Filter zeigen immer auf den Titel, des gerade umzusetzenden Tiddlers. Das erlaubt uns, diesen als Basis für den Dateinamen zu verwenden. zB: `[encodeuricomponent[]addprefix[static/]]` ... Verwendet eine URI-Enkodierung für jeden Dateinamen und stellt das Wort `static/` als Pfadname voran. +* Dateinamens-Filter zeigen immer auf den Titel, des gerade bearbeiteten Tiddlers. Das erlaubt uns, diesen als Basis für den Dateinamen zu verwenden. zB: `[encodeuricomponent[]addprefix[static/]]` ... Verwendet eine URI-Enkodierung für jeden Dateinamen und stellt das Wort `static/` als Pfadname voran. * Es können mehrere ''name/value'' Paare verwendet werden. * Der `--render` Befehl ist flexibler und ersetzt daher `--rendertiddler` und `--rendertiddlers`, welche mit V5.1.15 auslaufen! diff --git a/languages/de-DE/Help/save.tid b/languages/de-DE/Help/save.tid index 3d0f15027..121b6978a 100644 --- a/languages/de-DE/Help/save.tid +++ b/languages/de-DE/Help/save.tid @@ -1,14 +1,13 @@ title: $:/language/Help/save description: Speichert Klartext Tiddler als Dateien -Speichert einzelne oder mehrere Klartext Tiddler als Text oder im Binärformat in Dateien. Die zu speichernden Tiddler werden über Filter spezifiziert. - +Speichert einzelne oder mehrere Klartext Tiddler als Text oder im Binärformat in Dateien. Die zu speichernden Tiddler werden über Filter spezifiziert. ``` --save <tiddler-filter> <filename-filter> ``` -* ''tiddler-filter'': Ein Filter, der die zu speichernden Tiddler anzeigt. +* ''tiddler-filter'': Ein Filter, der die zu speichernden Tiddler anzeigt. * ''filename-filter'': [Option] Ein Filter, der die Tiddler Titel in Verzeichnis Namen aufspaltet. Wenn nicht spezifiziert, dann wird: `[is[tiddler]]` verwendet. `[is[tiddler]]` übernimmt den Tiddler Titel unverändert. Standardmäßig sind die Dateinamen "relativ" zum `output` Verzeichnis, des `edition` Verzeichnisses. @@ -20,7 +19,7 @@ Hinweise: * Das `output` Verzeichnis wird nicht gelöscht, bevor neue Dateien geschrieben werden. * Verzeichnisse und Dateien werden automatisch angelegt, sollten sie nicht vorhanden sein. * Wenn eine Datei Leerzeichen enthält, dann muss dies ''doppelt'' angezeigt werden. Für TiddlyWiki mit eckigen Klammern `[[]]` und für die Kommandozeile mit Hochkomma "". Zum Beispiel: `--render "[[Motovun Jack.jpg]]"` -* Dateinamens-Filter zeigen immer auf den Titel, des gerade umzusetzenden Tiddlers. Das erlaubt uns, diesen als Basis für den Dateinamen zu verwenden. zB: `[encodeuricomponent[]addprefix[static/]]` ... Verwendet eine URI-Enkodierung für jeden Dateinamen und stellt das Wort `static/` als Pfadname voran. +* Dateinamens-Filter zeigen immer auf den Titel, des gerade umzusetzenden Tiddlers. Das erlaubt uns, diesen als Basis für den Dateinamen zu verwenden. zB: `[encodeuricomponent[]addprefix[static/]]` ... Verwendet eine URI-Enkodierung für jeden Dateinamen und stellt das Wort `static/` als Pfadname voran. * Der `--save` Befehl ist flexibler und ersetzt daher `--savetiddler` und `--savetiddlers`, welche mit V5.1.15 auslaufen! Beispiel: diff --git a/languages/de-DE/Help/server.tid b/languages/de-DE/Help/server.tid index 2bfbbdb47..00991f1a3 100644 --- a/languages/de-DE/Help/server.tid +++ b/languages/de-DE/Help/server.tid @@ -1,6 +1,11 @@ title: $:/language/Help/server description: (Dieser Befehl ist abgekündigt! - Neu ist: "listen") -- Stellt einen HTTP server für TiddlyWiki zur Verfügung. +''WICHTIG:'' + +* Dieser Befehl ist abgekündigt! +* Wird durch: "listen" ersetzt. + TiddlyWiki bringt einen einfachen Web-Server mit. Der Server kann spezifische Tiddler im angegebenen Format anzeigen (rendern). Zudem können einzelne, oder mehrere Tiddler im JSON Format übertragen werden. Die unterstützten HTTP Funktionen sind: `GET`, `PUT` und `DELETE` diff --git a/languages/de-DE/Help/setfield.tid b/languages/de-DE/Help/setfield.tid index 9ba1632ed..a3d89c3e9 100644 --- a/languages/de-DE/Help/setfield.tid +++ b/languages/de-DE/Help/setfield.tid @@ -3,7 +3,7 @@ description: Experimentell - Setzt ein Tiddler "field" auf einen bestimmten Wert //Wichtig! Dieser Befehl is experimentell und kann während der Betaphase geändert oder ersetzt werden!// -Setzt ein spezifiziertes Feld, für eine Gruppe von Tiddlern. Ein Template wird "wikifiziert" und das Ergebnis in das Feld geschrieben. Die `currentTiddler` Variable wird auf den jeweiligen Tiddler gesetzt. +Setzt ein spezifiziertes Feld, für eine Gruppe von Tiddlern. Ein Template wird "wikifiziert" und das Ergebnis in das Feld geschrieben. Die `currentTiddler` Variable wird auf den jeweiligen Tiddler gesetzt. ``` --setfield <filter> <fieldname> <templatetitle> <rendertype> diff --git a/languages/de-DE/Import.multids b/languages/de-DE/Import.multids index a7895e184..82a1171fe 100644 --- a/languages/de-DE/Import.multids +++ b/languages/de-DE/Import.multids @@ -31,4 +31,4 @@ Upgrader/System/Alert: Sie sind dabei einen Tiddler zu importieren, der einen "C Upgrader/ThemeTweaks/Created: Migrieren der "theme tweaks" von: <$text text=<<from>>/>. Upgrader/Tiddler/Disabled: Deaktivierter Tiddler. Upgrader/Tiddler/Selected: Ausgewählter Tiddler. -Upgrader/Tiddler/Unselected: Auswahl aufgehoben. +Upgrader/Tiddler/Unselected: Auswahl aufgehoben. \ No newline at end of file diff --git a/languages/de-DE/Misc.multids b/languages/de-DE/Misc.multids index 2b2b60c41..4026c7ac0 100644 --- a/languages/de-DE/Misc.multids +++ b/languages/de-DE/Misc.multids @@ -25,13 +25,13 @@ Encryption/RepeatPassword: Passwort wiederholen Encryption/PasswordNoMatch: Passwörter stimmen nicht überein Encryption/SetPassword: Passwort setzen Error/Caption: Fehler -Error/DeserializeOperator/MissingOperand: Filter Fehler: Fehlender Operand für 'deserialize' Operator -Error/DeserializeOperator/UnknownDeserializer: Filter Fehler: Unbekannter "deserializer" als Operand für 'deserialize' Operator verwendet +Error/DeserializeOperator/MissingOperand: Filter Fehler: Fehlender Parameter für 'deserialize' Operator +Error/DeserializeOperator/UnknownDeserializer: Filter Fehler: Unbekannter "deserializer" als Parameter für 'deserialize' Operator verwendet Error/Filter: Filter Fehler Error/FilterSyntax: Syntax Fehler im Filter-Ausdruck Error/FilterRunPrefix: Filter Fehler: Unbekanntes Prefix für Filter lauf -Error/IsFilterOperator: Filter Fehler: Unbekannter Operand für den 'is' Filter Operator -Error/FormatFilterOperator: Filter Fehler: Unbekannter Operand für den 'format' Filter Operator +Error/IsFilterOperator: Filter Fehler: Unbekannter Parameter für den 'is' Filter Operator +Error/FormatFilterOperator: Filter Fehler: Unbekannter Parameter für den 'format' Filter Operator Error/LoadingPluginLibrary: Fehler beim Laden der "plugin library" Error/NetworkErrorAlert: `<h2>''Netzwerk Fehler''</h2>Es scheint, die Verbindung zum Server ist ausgefallen. Das weist auf Probleme mit der Netzwerkverbindung hin. Bitte versuchen Sie die Verbingung wider herzustellen, bevor Sie weitermachen.<br><br>''Nicht gespeicherte Änderungen werden automatich synchronisiert, sobald die Verbindung wider hergestellt ist. Error/PutEditConflict: Datei am Server verändert @@ -70,7 +70,7 @@ No: Nein OfficialPluginLibrary: Offizielles ~TiddlyWiki Plugin-Verzeichnis OfficialPluginLibrary/Hint: Offizielles ~TiddlyWiki Plugin-Verzeichnis auf tiddlywiki.com. Plugin, Themes und Sprach Dateien werden vom "core team" gewartet. PageTemplate/Description: das Standard ~TiddlyWiki Layout -PageTemplate/Name: Standard ~PageTemplate +PageTemplate/Name: Standard Layout PluginReloadWarning: Das Wiki muss gespeichert {{$:/core/ui/Buttons/save-wiki}} und neu gladen {{$:/core/ui/Buttons/refresh}} werden, damit die ~JavaScript Plugins ausgeführt werden. RecentChanges/DateFormat: YYYY MMM DD Shortcuts/Input/AdvancedSearch/Hint: Öffne den ~AdvancedSearch Tiddler vom "Suchmenü" aus @@ -96,4 +96,4 @@ TagManager/Info/Heading: Info TagManager/Tag/Heading: Tag Tiddler/DateFormat: DDth MMM YYYY um 0hh:0mm UnsavedChangesWarning: ~TiddlyWiki wurde geändert, aber noch nicht gespeichert! -Yes: Ja +Yes: Ja \ No newline at end of file diff --git a/languages/de-DE/Modals/Download.tid b/languages/de-DE/Modals/Download.tid index 57b853af3..a6122b4cf 100644 --- a/languages/de-DE/Modals/Download.tid +++ b/languages/de-DE/Modals/Download.tid @@ -1,5 +1,4 @@ title: $:/language/Modals/Download -type: text/vnd.tiddlywiki subtitle: Änderungen Speichern footer: <$button message="tm-close-tiddler">Schließen</$button> help: https://tiddlywiki.com/static/DownloadingChanges.html diff --git a/languages/de-DE/NewJournal.multids b/languages/de-DE/NewJournal.multids index b82834420..e52db9711 100644 --- a/languages/de-DE/NewJournal.multids +++ b/languages/de-DE/NewJournal.multids @@ -1,4 +1,4 @@ title: $:/config/NewJournal/ Title: YYYY MMM 0DD -Text: +Text: \ No newline at end of file diff --git a/languages/de-DE/Notifications.multids b/languages/de-DE/Notifications.multids index d4d995a3d..0b0de20b4 100644 --- a/languages/de-DE/Notifications.multids +++ b/languages/de-DE/Notifications.multids @@ -3,4 +3,4 @@ title: $:/language/Notifications/ Save/Done: Wiki gespeichert! Save/Starting: Wiki zum Speichern vorbereiten! CopiedToClipboard/Succeeded: Kopiert! -CopiedToClipboard/Failed: Fehler, beim kopieren in die Zwischenablage! +CopiedToClipboard/Failed: Fehler, beim kopieren in die Zwischenablage! \ No newline at end of file diff --git a/languages/de-DE/Search.multids b/languages/de-DE/Search.multids index a689f449c..a711d3a35 100644 --- a/languages/de-DE/Search.multids +++ b/languages/de-DE/Search.multids @@ -17,4 +17,4 @@ Standard/Hint: Suche in Standard-Tiddlern. Standard/Matches: //<small><<resultCount>> matches</small>// System/Caption: System System/Hint: Suche in System-Tiddlern. -System/Matches: //<small><<resultCount>> Treffer</small>// +System/Matches: //<small><<resultCount>> Treffer</small>// \ No newline at end of file diff --git a/languages/de-DE/SideBar.multids b/languages/de-DE/SideBar.multids index a32faaf22..82fb54238 100644 --- a/languages/de-DE/SideBar.multids +++ b/languages/de-DE/SideBar.multids @@ -15,4 +15,4 @@ System/Caption: System Tags/Caption: Tags Tags/Untagged/Caption: untagged Tools/Caption: Tools -Types/Caption: Typen +Types/Caption: Typen \ No newline at end of file diff --git a/languages/de-DE/SiteSubtitle.tid b/languages/de-DE/SiteSubtitle.tid index 12b838045..72e79a166 100644 --- a/languages/de-DE/SiteSubtitle.tid +++ b/languages/de-DE/SiteSubtitle.tid @@ -1,3 +1,3 @@ title: $:/SiteSubtitle -ein persönliches nicht-lineares Web-Notizbuch +ein persönliches nicht-lineares Web-Notizbuch \ No newline at end of file diff --git a/languages/de-DE/ThemeTweaks.multids b/languages/de-DE/ThemeTweaks.multids index e4341e2d7..8944c7a1e 100644 --- a/languages/de-DE/ThemeTweaks.multids +++ b/languages/de-DE/ThemeTweaks.multids @@ -39,4 +39,4 @@ Metrics/TiddlerWidth/Hint: im "story river" Metrics/SidebarBreakpoint: Seitenleiste "breakpoint" Metrics/SidebarBreakpoint/Hint: Minimum Fensterbreite, bei der die Seitenleiste an den Anfang der Seite verschoben wird. Metrics/SidebarWidth: Seitenleiste Breite -Metrics/SidebarWidth/Hint: Die Breite der Leiste bei variabler/fixer Darstellung +Metrics/SidebarWidth/Hint: Die Breite der Leiste bei variabler/fixer Darstellung \ No newline at end of file diff --git a/languages/de-DE/TiddlerInfo.multids b/languages/de-DE/TiddlerInfo.multids index b425d6459..b28229f9e 100755 --- a/languages/de-DE/TiddlerInfo.multids +++ b/languages/de-DE/TiddlerInfo.multids @@ -18,4 +18,4 @@ References/Caption: Rückverweise References/Empty: Kein Tiddler linkt zu diesem Tiddler. Tagging/Caption: Tagging Tagging/Empty: Kein Tiddler ist mit diesem Tiddler "getaggt". -Tools/Caption: Tools +Tools/Caption: Tools \ No newline at end of file diff --git a/languages/zh-Hans/Buttons.multids b/languages/zh-Hans/Buttons.multids index c56e41ffe..3fa13f740 100644 --- a/languages/zh-Hans/Buttons.multids +++ b/languages/zh-Hans/Buttons.multids @@ -104,6 +104,8 @@ ShowSideBar/Caption: 显示侧边栏 ShowSideBar/Hint: 显示侧边栏 TagManager/Caption: 标签管理 TagManager/Hint: 标签管理 +TestCaseImport/Caption: 导入条目 +TestCaseImport/Hint: 导入条目 Timestamp/Caption: 时间戳 Timestamp/Hint: 选择修改是否更新时间戳 Timestamp/On/Caption: 时间戳开启 diff --git a/languages/zh-Hans/Docs/PaletteColours.multids b/languages/zh-Hans/Docs/PaletteColours.multids index 51ec7a3b5..a45797815 100644 --- a/languages/zh-Hans/Docs/PaletteColours.multids +++ b/languages/zh-Hans/Docs/PaletteColours.multids @@ -65,6 +65,10 @@ sidebar-tab-foreground-selected: 侧边栏选定页签前景 sidebar-tab-foreground: 侧边栏页签前景 sidebar-tiddler-link-foreground-hover: 侧边栏悬停条目链结前景 sidebar-tiddler-link-foreground: 侧边栏条目链结前景 +stability-stable: 稳定性等级 "stable" 的徽章 +stability-experimental: 稳定性等级 "experimental" 的徽章 +stability-deprecated: 稳定性等级 "deprecated" 的徽章 +stability-legacy: 稳定性等级 "legacy" 的徽章 testcase-accent-level-1: 无嵌套的测试案例强调色 testcase-accent-level-2: 第二级嵌套的测试案例强调色 testcase-accent-level-3: 第三级或更高级别嵌套的测试案例强调色 diff --git a/languages/zh-Hant/Buttons.multids b/languages/zh-Hant/Buttons.multids index 75514b6da..b45b88f79 100644 --- a/languages/zh-Hant/Buttons.multids +++ b/languages/zh-Hant/Buttons.multids @@ -104,6 +104,8 @@ ShowSideBar/Caption: 顯示側邊欄 ShowSideBar/Hint: 顯示側邊欄 TagManager/Caption: 標籤管理 TagManager/Hint: 標籤管理 +TestCaseImport/Caption: 導入條目 +TestCaseImport/Hint: 導入條目 Timestamp/Caption: 時間戳記 Timestamp/Hint: 選擇修改是否更新時間戳記 Timestamp/On/Caption: 時間戳記開啟 diff --git a/languages/zh-Hant/Docs/PaletteColours.multids b/languages/zh-Hant/Docs/PaletteColours.multids index a09aa3115..21e88952d 100644 --- a/languages/zh-Hant/Docs/PaletteColours.multids +++ b/languages/zh-Hant/Docs/PaletteColours.multids @@ -65,6 +65,10 @@ sidebar-tab-foreground-selected: 側邊欄選定頁籤前景 sidebar-tab-foreground: 側邊欄頁籤前景 sidebar-tiddler-link-foreground-hover: 側邊欄懸停條目鏈結前景 sidebar-tiddler-link-foreground: 側邊欄條目鏈結前景 +stability-stable: 穩定性等級 "stable" 的徽章 +stability-experimental: 穩定性等級 "experimental" 的徽章 +stability-deprecated: 穩定性等級 "deprecated" 的徽章 +stability-legacy: 穩定性等級 "legacy" 的徽章 testcase-accent-level-1: 無嵌套的測試案例強調色 testcase-accent-level-2: 第二級嵌套的測試案例強調色 testcase-accent-level-3: 第三級或更高級別嵌套的測試案例強調色 diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 48d5ed04d..e7a7136f1 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -571,3 +571,13 @@ Anders Jarmund, @andjar, 2024/04/05 @sarna, 2024/04/28 Fokzo Kat, @CyberFoxar, 2024/05/20 + +Andrei Rybak, @rybak, 2024/06/09 + +@Leilei332, 2024/06/28 + +@springerspandrel, 2024/06/27 + +@andrewgoz, 2024/07/10 + +Michael McDermott, @michaeljmcd, 2024-07-09 diff --git a/package.json b/package.json index cb4eb8fc9..ed1b7f5d8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.3.4-prerelease", + "version": "5.3.6-prerelease", "author": "Jeremy Ruston <jeremy@jermolene.com>", "description": "a non-linear personal web notebook", "contributors": [ diff --git a/plugins/tiddlywiki/confetti/confetti-manager.js b/plugins/tiddlywiki/confetti/confetti-manager.js index 98384bf32..0ddd6139f 100644 --- a/plugins/tiddlywiki/confetti/confetti-manager.js +++ b/plugins/tiddlywiki/confetti/confetti-manager.js @@ -33,7 +33,7 @@ ConfettiManager.prototype.launch = function (delay,options) { self.outstandingTimers.splice(p,1); } else { console.log("Confetti Manager Error: Cannot find previously stored timer ID"); - debugger; + // debugger; } confetti(options); },delay); diff --git a/plugins/tiddlywiki/confetti/examples/staggered.tid b/plugins/tiddlywiki/confetti/examples/staggered.tid index 8b45ceef4..f9351c9e0 100644 --- a/plugins/tiddlywiki/confetti/examples/staggered.tid +++ b/plugins/tiddlywiki/confetti/examples/staggered.tid @@ -3,7 +3,8 @@ tags: $:/tags/ConfettiExample <$button> <$action-sendmessage $message="tm-confetti-launch"/> -<$action-sendmessage $message="tm-confetti-launch" originY=0.6 spread=70 delay=300/> -<$action-sendmessage $message="tm-confetti-launch" originY=0.55 spread=30 delay=600/> -Launch three staggered rounds of confetti +<$action-sendmessage $message="tm-confetti-launch" delay=300 originY=0.6 spread=100 scalar=1.5/> +<$action-sendmessage $message="tm-confetti-launch" delay=400 originY=0.55 spread=130/> +<$action-sendmessage $message="tm-confetti-launch" delay=500 originY=0.55 spread=170 scalar=2/> +Launch four staggered rounds of confetti </$button> diff --git a/plugins/tiddlywiki/confetti/examples/typing-trigger.tid b/plugins/tiddlywiki/confetti/examples/typing-trigger.tid index d4362bb63..5765fdf94 100644 --- a/plugins/tiddlywiki/confetti/examples/typing-trigger.tid +++ b/plugins/tiddlywiki/confetti/examples/typing-trigger.tid @@ -6,5 +6,5 @@ Type the word "launch": <$edit-text tiddler="$:/temp/confetti/launchstatus" tag= <$list filter="[{$:/temp/confetti/launchstatus}match:caseinsensitive[launch]]" variable="ignore"> Launched! <$confetti particleCount=100/> -<$confetti particleCount=100 delay=300/> +<$confetti particleCount=100 spread=170 delay=300/> </$list> diff --git a/plugins/tiddlywiki/geospatial/docs/geomap.tid b/plugins/tiddlywiki/geospatial/docs/geomap.tid index 20c0d426e..44bc67c88 100644 --- a/plugins/tiddlywiki/geospatial/docs/geomap.tid +++ b/plugins/tiddlywiki/geospatial/docs/geomap.tid @@ -10,7 +10,7 @@ The following attributes are supported: |!Attribute |!Description | |''state'' |The title of a state tiddler used to track the state of the map in the `zoom`, `long` and `lat` fields | -|''startPosition'' |Optional starting position for the map: "world" (the default) shows the entire map, "bounds" zooms to the bounds of the loaded layes | +|''startPosition'' |Optional keyword representing the starting position for the map: "world" (the default) shows the entire map, "bounds" zooms to the bounds of the loaded layers | |''layersPanel'' |Optional starting status for the layers panel: "collapsed" (the default) causes the layers panel to initially be shown collapsed, "open" causes the layers panel to initially be shown opened | If no base layers are defined by `<$geobaselayer>` widgets within the `<$geomap>` widget then all the available base layers will be loaded by the equivalent of the following code: diff --git a/plugins/tiddlywiki/geospatial/widgets/geomap.js b/plugins/tiddlywiki/geospatial/widgets/geomap.js index 15e027a4a..d316ddd8d 100644 --- a/plugins/tiddlywiki/geospatial/widgets/geomap.js +++ b/plugins/tiddlywiki/geospatial/widgets/geomap.js @@ -54,7 +54,7 @@ GeomapWidget.prototype.render = function(parent,nextSibling) { parent.insertBefore(this.domNode,nextSibling); this.domNodes.push(this.domNode); // Render the map - if($tw.browser) { + if($tw.browser && !this.domNode.isTiddlyWikiFakeDom) { this.renderMap(); this.refreshMap(); } diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/strikethrough.tid b/plugins/tiddlywiki/markdown/EditorToolbar/strikethrough.tid new file mode 100644 index 000000000..0befd9022 --- /dev/null +++ b/plugins/tiddlywiki/markdown/EditorToolbar/strikethrough.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown/EditorToolbar/strikethrough +list-after: $:/core/ui/EditorToolbar/strikethrough +tags: $:/tags/EditorToolbar +icon: $:/core/images/strikethrough +caption: {{$:/language/Buttons/Strikethrough/Caption}} (Markdown) +description: {{$:/language/Buttons/Strikethrough/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((strikethrough)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-selection" + prefix="~~" + suffix="~~" +/> diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/subscript.tid b/plugins/tiddlywiki/markdown/EditorToolbar/subscript.tid new file mode 100644 index 000000000..3a40facb7 --- /dev/null +++ b/plugins/tiddlywiki/markdown/EditorToolbar/subscript.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown/EditorToolbar/subscript +list-after: $:/core/ui/EditorToolbar/subscript +tags: $:/tags/EditorToolbar +icon: $:/core/images/subscript +caption: {{$:/language/Buttons/Subscript/Caption}} (Markdown) +description: {{$:/language/Buttons/Subscript/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((subscript)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-selection" + prefix="~" + suffix="~" +/> diff --git a/plugins/tiddlywiki/markdown/EditorToolbar/superscript.tid b/plugins/tiddlywiki/markdown/EditorToolbar/superscript.tid new file mode 100644 index 000000000..430cb397b --- /dev/null +++ b/plugins/tiddlywiki/markdown/EditorToolbar/superscript.tid @@ -0,0 +1,15 @@ +title: $:/plugins/tiddlywiki/markdown/EditorToolbar/superscript +list-after: $:/core/ui/EditorToolbar/superscript +tags: $:/tags/EditorToolbar +icon: $:/core/images/superscript +caption: {{$:/language/Buttons/Superscript/Caption}} (Markdown) +description: {{$:/language/Buttons/Superscript/Hint}} +condition: [<targetTiddler>type[text/x-markdown]] [<targetTiddler>type[text/markdown]] +shortcuts: ((superscript)) + +<$action-sendmessage + $message="tm-edit-text-operation" + $param="wrap-selection" + prefix="^" + suffix="^" +/> diff --git a/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js b/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js index b124325c8..76f62f5a5 100644 --- a/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js +++ b/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js @@ -13,15 +13,15 @@ Text editor operation to make a markdown link "use strict"; exports["make-markdown-link"] = function(event,operation) { - var rx = /[()\\]/g, rs = '\\$&'; + var rx = /[()<>\\]/g, rs = '\\$&'; if(operation.selection) { var desc = operation.selection.replace(/[\[\]\\]/g, rs); if(event.paramObject.text.indexOf("://") !== -1) { - operation.replacement = "[" + desc + "](" + event.paramObject.text.replace(rx, rs) + ")"; + operation.replacement = "[" + desc + "](" + event.paramObject.text.replace(/[()\\]/g, rs) + ")"; } else { - operation.replacement = "[" + desc + "](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")"; + operation.replacement = "[" + desc + "](<#" + event.paramObject.text.replace(rx, rs) + ">)"; } operation.cutStart = operation.selStart; operation.cutEnd = operation.selEnd; @@ -31,7 +31,7 @@ exports["make-markdown-link"] = function(event,operation) { return encodeURI(m); }) + ">"; } else { - operation.replacement = "[](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")"; + operation.replacement = "[](<#" + event.paramObject.text.replace(rx, rs) + ">)"; } operation.cutStart = operation.selStart; operation.cutEnd = operation.selEnd; diff --git a/plugins/tiddlywiki/menubar/config.tid b/plugins/tiddlywiki/menubar/config.tid index 056575fbd..abcb8fcea 100644 --- a/plugins/tiddlywiki/menubar/config.tid +++ b/plugins/tiddlywiki/menubar/config.tid @@ -3,13 +3,12 @@ tags: $:/tags/ControlPanel/Toolbars caption: Menu Bar \define config-base() $:/config/plugins/menubar/MenuItems/Visibility/ -\define lingo-base() $:/plugins/tiddlywiki/menubar/language/ -! <<lingo Config/Heading1>> +! Menu Bar Configuration -!! <<lingo Config/MenuItems/Heading>> +!! Menu Items -<<lingo Config/MenuItems/Description>> +Select which menu items will be shown. You can also drag items to reorder them. <$set name="tv-config-toolbar-icons" value="yes"> @@ -21,18 +20,18 @@ caption: Menu Bar </$set> -!! <<lingo Config/BreakpointPosition/Heading>> +!! Breakpoint Position -<<lingo Config/BreakpointPosition/Description>> +The breakpoint position between narrow and wide screens. Should include CSS units (eg. `400px`). <$edit-text tiddler="$:/config/plugins/menubar/breakpoint" default="" tag="input"/> -!! <<lingo Config/ContentsTag/Heading>> +!! Contents Tag -<<lingo Config/ContentsTag/Description>> +The tag for the ~TableOfContents used in the Contents dropdown <$edit-text tiddler="$:/config/plugins/menubar/TableOfContents/Tag" default="" tag="input"/> -!! <<lingo Config/MenuBarColours/Heading>> +!! Menu Bar Colours -<<lingo Config/MenuBarColours/Description>> +To change the colour of the menu bar, define the colours `menubar-foreground` and `menubar-background` in the currently selected palette diff --git a/plugins/tiddlywiki/menubar/items/contents.tid b/plugins/tiddlywiki/menubar/items/contents.tid index 56bd134b7..f4fbdb2c2 100644 --- a/plugins/tiddlywiki/menubar/items/contents.tid +++ b/plugins/tiddlywiki/menubar/items/contents.tid @@ -1,6 +1,6 @@ title: $:/plugins/tiddlywiki/menubar/items/contents -caption: <<lingo Items/TOC/Name $:/plugins/tiddlywiki/menubar/language/>> -description: <<lingo Items/TOC/Description $:/plugins/tiddlywiki/menubar/language/>> +caption: Contents +description: Table of Contents is-dropdown: yes tags: $:/tags/MenuBar diff --git a/plugins/tiddlywiki/menubar/items/hamburger.tid b/plugins/tiddlywiki/menubar/items/hamburger.tid index 363b5e5d0..cbacb5a26 100644 --- a/plugins/tiddlywiki/menubar/items/hamburger.tid +++ b/plugins/tiddlywiki/menubar/items/hamburger.tid @@ -1,7 +1,7 @@ title: $:/plugins/tiddlywiki/menubar/items/hamburger tags: $:/tags/MenuBar -caption: <<lingo Items/Hamburger/Name $:/plugins/tiddlywiki/menubar/language/>> -description: <<lingo Items/Hamburger/Description $:/plugins/tiddlywiki/menubar/language/>> +caption: Hamburger +description: Show the full menu bar on a narrow screen custom-menu-content: {{$:/plugins/tiddlywiki/menubar/items/hamburger}} show-when: narrow diff --git a/plugins/tiddlywiki/menubar/items/pagecontrols.tid b/plugins/tiddlywiki/menubar/items/pagecontrols.tid index ea91141b3..af4026664 100644 --- a/plugins/tiddlywiki/menubar/items/pagecontrols.tid +++ b/plugins/tiddlywiki/menubar/items/pagecontrols.tid @@ -1,7 +1,7 @@ title: $:/plugins/tiddlywiki/menubar/items/pagecontrols tags: $:/tags/MenuBar -description: <<lingo Items/PageControls/Name $:/plugins/tiddlywiki/menubar/language/>> -caption: <<lingo Items/PageControls/Name $:/plugins/tiddlywiki/menubar/language/>> +description: Page controls from the sidebar +caption: Page controls custom-menu-content: <$transclude tiddler="$:/plugins/tiddlywiki/menubar/items/pagecontrols" mode="inline"/> \whitespace trim diff --git a/plugins/tiddlywiki/menubar/items/search.tid b/plugins/tiddlywiki/menubar/items/search.tid index 280330214..e40f27ab5 100644 --- a/plugins/tiddlywiki/menubar/items/search.tid +++ b/plugins/tiddlywiki/menubar/items/search.tid @@ -1,7 +1,7 @@ title: $:/plugins/tiddlywiki/menubar/items/search custom-menu-content: {{$:/plugins/tiddlywiki/menubar/items/search}} -description: <<lingo Items/Search/Name $:/plugins/tiddlywiki/menubar/language/>> -caption: <<lingo Items/Search/Name $:/plugins/tiddlywiki/menubar/language/>> +description: Search +caption: Search tags: $:/tags/MenuBar \define cancel-search-actions() diff --git a/plugins/tiddlywiki/menubar/items/server.tid b/plugins/tiddlywiki/menubar/items/server.tid index a2cf2c457..0f0e438ad 100644 --- a/plugins/tiddlywiki/menubar/items/server.tid +++ b/plugins/tiddlywiki/menubar/items/server.tid @@ -1,7 +1,7 @@ title: $:/plugins/tiddlywiki/menubar/items/server tags: $:/tags/MenuBar -description: <<lingo Items/Server/Description $:/plugins/tiddlywiki/menubar/language/>> -caption: <<lingo Items/Server/Name $:/plugins/tiddlywiki/menubar/language/>> +description: Server options +caption: Server custom-menu-content: <$transclude tiddler="$:/plugins/tiddlywiki/menubar/items/server" mode="inline"/> <$list filter="[[$:/status/IsLoggedIn]get[text]else[no]match[yes]]" variable="ignore"> diff --git a/plugins/tiddlywiki/menubar/items/sidebar.tid b/plugins/tiddlywiki/menubar/items/sidebar.tid index c5e81c79e..616195a6a 100644 --- a/plugins/tiddlywiki/menubar/items/sidebar.tid +++ b/plugins/tiddlywiki/menubar/items/sidebar.tid @@ -1,6 +1,6 @@ title: $:/plugins/tiddlywiki/menubar/items/sidebar -caption: <<lingo Items/Sidebar/Name $:/plugins/tiddlywiki/menubar/language/>> -description: <<lingo Items/Sidebar/Name $:/plugins/tiddlywiki/menubar/language/>> +caption: Sidebar +description: Sidebar is-dropdown: yes tags: $:/tags/MenuBar diff --git a/plugins/tiddlywiki/menubar/items/topleftbar.tid b/plugins/tiddlywiki/menubar/items/topleftbar.tid index d25c19f08..2743848a6 100644 --- a/plugins/tiddlywiki/menubar/items/topleftbar.tid +++ b/plugins/tiddlywiki/menubar/items/topleftbar.tid @@ -1,7 +1,7 @@ title: $:/plugins/tiddlywiki/menubar/items/topleftbar tags: $:/tags/MenuBar -description: <<lingo Items/TopLeftBar/Description $:/plugins/tiddlywiki/menubar/language/>> -caption: <<lingo Items/TopLeftBar/Name $:/plugins/tiddlywiki/menubar/language/>> +description: Items from $:/tags/TopLeftBar +caption: Legacy Top Left Bar custom-menu-content: <$transclude tiddler="$:/plugins/tiddlywiki/menubar/items/topleftbar" mode="inline"/> <$list filter="[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]" variable="listItem" storyview="pop"> diff --git a/plugins/tiddlywiki/menubar/items/toprightbar.tid b/plugins/tiddlywiki/menubar/items/toprightbar.tid index e6bb842e4..ae59e759b 100644 --- a/plugins/tiddlywiki/menubar/items/toprightbar.tid +++ b/plugins/tiddlywiki/menubar/items/toprightbar.tid @@ -1,7 +1,7 @@ title: $:/plugins/tiddlywiki/menubar/items/toprightbar tags: $:/tags/MenuBar -description: <<lingo Items/TopRightBar/Description $:/plugins/tiddlywiki/menubar/language/>> -caption: <<lingo Items/TopRightBar/Name $:/plugins/tiddlywiki/menubar/language/>> +description: Items from $:/tags/TopRightBar +caption: Legacy Top Right Bar custom-menu-content: <$transclude tiddler="$:/plugins/tiddlywiki/menubar/items/toprightbar" mode="inline"/> custom-menu-styles-wide: float: right; diff --git a/plugins/tiddlywiki/menubar/language/en-GB/Translations.multids b/plugins/tiddlywiki/menubar/language/en-GB/Translations.multids deleted file mode 100644 index 443acbbd5..000000000 --- a/plugins/tiddlywiki/menubar/language/en-GB/Translations.multids +++ /dev/null @@ -1,25 +0,0 @@ -title: $:/plugins/tiddlywiki/menubar/language/en-GB/ - -Config/Heading1: Menu Bar Configuration -Config/MenuItems/Heading: Menu Items -Config/MenuItems/Description: Select which menu items will be shown. You can also drag items to reorder them. -Config/BreakpointPosition/Heading: Breakpoint Position -Config/BreakpointPosition/Description: The breakpoint position between narrow and wide screens. Should include CSS units (eg. `400px`). -Config/ContentsTag/Heading: Contents Tag -Config/ContentsTag/Description: The tag for the ~TableOfContents used in the Contents dropdown -Config/MenuBarColours/Heading: Menu Bar Colours -Config/MenuBarColours/Description: To change the colour of the menu bar, define the colours `menubar-foreground` and `menubar-background` in the currently selected palette -Items/TOC/Name: Contents -Items/TOC/Description: Table of Contents -Items/Hamburger/Name: Hamburger -Items/Hamburger/Description: Show the full menu bar on a narrow screen -Items/PageControls/Name: Page controls -Items/PageControls/Description: Page controls from the sidebar -Items/Search/Name: Search -Items/Server/Name: Server -Items/Server/Description: Server options -Items/Sidebar/Name: Sidebar -Items/TopLeftBar/Name: Legacy Top Left Bar -Items/TopLeftBar/Description: Items from $:/tags/TopLeftBar -Items/TopRightBar/Name: Legacy Top Right Bar -Items/TopRightBar/Description: Items from $:/tags/TopRightBar \ No newline at end of file diff --git a/plugins/tiddlywiki/menubar/language/en-GB/readme.tid b/plugins/tiddlywiki/menubar/language/en-GB/readme.tid deleted file mode 100644 index 0cbb781cd..000000000 --- a/plugins/tiddlywiki/menubar/language/en-GB/readme.tid +++ /dev/null @@ -1,30 +0,0 @@ -title: $:/plugins/tiddlywiki/menubar/language/en-GB/readme - -!! Introduction - -This plugin provides a menu bar with the following features: - -* Menu items take the form of simple text links, dropdowns, or entirely custom content -* Menu items can be individually enabled via the control panel -* Responds to reduced screen width by abbreviating the menu items to a "hamburger" dropdown - -!! Menu Item Tiddlers - -Menu items are tagged <<tag $:/tags/MenuBar>>. The following fields are used by this plugin: - -|!Field Name |!Purpose | -|title |Each menu item must have a unique title (not shown to the user) | -|description |Description for use in listings | -|tags |Must contain `$:/tags/MenuBar` | -|caption |The text that is displayed for the menu item. Avoid links, using `~` to suppress CamelCase links if required | -|target |For simple link menu items specifies a tiddler title as the target of the link | -|is-dropdown |Set to `yes` to indicate a dropdown menu item | -|dropdown-position |Optional position for the dropdown (can be ''left'', ''above'', ''aboveleft'', ''aboveright'', ''right'', ''belowleft'', ''belowright'' or ''below'') | -|text |For dropdown menu items, specifies the body of the dropdown | -|custom-menu-content |Optional wikitext to be displayed in place of the caption | -|custom-menu-styles-wide |Optional string of styles to be applied to menu item when the menubar is wide | -|custom-menu-styles-narrow |Optional string of styles to be applied to menu item when the menubar is narrow | - -Custom menu items should make sure that the clickable link or button is an immediate child, and not wrapped in another element. - -Note that menu items can be pushed to the right of the menu bar setting the ''custom-menu-styles'' field to `float: right;`. diff --git a/plugins/tiddlywiki/menubar/language/zh-Hans/Translations.multids b/plugins/tiddlywiki/menubar/language/zh-Hans/Translations.multids deleted file mode 100644 index 2c7574dd8..000000000 --- a/plugins/tiddlywiki/menubar/language/zh-Hans/Translations.multids +++ /dev/null @@ -1,25 +0,0 @@ -title: $:/plugins/tiddlywiki/menubar/language/zh-Hans/ - -Config/Heading1: 菜单栏配置 -Config/MenuItems/Heading: 菜单项 -Config/MenuItems/Description: 选择要显示的菜单项。您还可以通过拖动项目来重新排序。 -Config/BreakpointPosition/Heading: 响应式断点位置 -Config/BreakpointPosition/Description: 窄屏和宽屏之间的分界点位置。应包含 CSS 单位(如 `400px`)。 -Config/ContentsTag/Heading: 内容标签 -Config/ContentsTag/Description: 内容下拉菜单中使用的 TOC 目录标签 -Config/MenuBarColours/Heading: 菜单栏颜色 -Config/MenuBarColours/Description: 要更改菜单栏的颜色,请在当前选定的调色板中定义颜色 `menubar-foreground` 和 `menubar-background`。 -Items/TOC/Name: 内容 -Items/TOC/Description: 目录 -Items/Hamburger/Name: 抽屉 -Items/Hamburger/Description: 在窄屏幕上显示完整的菜单栏 -Items/PageControls/Name: 页面控件 -Items/PageControls/Description: 来自侧边栏的页面控件 -Items/Search/Name: 搜索 -Items/Server/Name: 服务器 -Items/Server/Description: 服务器选项 -Items/Sidebar/Name: 侧边栏 -Items/TopLeftBar/Name: 旧版左上角栏 -Items/TopLeftBar/Description: 来自 $:/tags/TopLeftBar 的项目 -Items/TopRightBar/Name: 旧版右上角栏 -Items/TopRightBar/Description: 来自 $:/tags/TopRightBar 的项目 \ No newline at end of file diff --git a/plugins/tiddlywiki/menubar/language/zh-Hans/readme.tid b/plugins/tiddlywiki/menubar/language/zh-Hans/readme.tid deleted file mode 100644 index 1f4a536ac..000000000 --- a/plugins/tiddlywiki/menubar/language/zh-Hans/readme.tid +++ /dev/null @@ -1,30 +0,0 @@ -title: $:/plugins/tiddlywiki/menubar/language/zh-Hans/readme - -!! 简介 - -该插件提供的菜单栏具有以下功能: - -* 菜单项的形式可以是简单的文本链接、下拉菜单或完全自定义的内容 -* 可通过控制面板单独启用菜单项 -* 通过将菜单项缩减为抽屉式导航(也叫"汉堡包"下拉菜单)来应对屏幕宽度减小的情况 - -!! 菜单项标记 - -菜单项被标记为 <<tag $:/tags/MenuBar>>。本插件使用以下字段: - -|!字段名称 |!用途 | -|title |每个菜单项必须有一个唯一的标题(不显示给用户)| -|description |在列表中使用的描述 | -|tags |必须包含 `$:/tags/MenuBar` | -|caption |菜单项显示的文本。避免使用链接,必要时使用 `~` 来抑制 CamelCase 链接 | -|target |对于简单链接菜单项,指定一个 tiddler 标题作为链接的目标 | -|is-dropdown |设置为 `yes` 表示下拉菜单项 | -|dropdown-position |下拉位置(可选 "左"、"上"、"左上" 等,需要使用英文 ''left'', ''above'', ''aboveleft'', ''aboveright'', ''right'', ''belowleft'', ''belowright'', ''below'') | -|text |对于下拉菜单项,指定下拉菜单的正文 | -|custom-menu-content |可选显示的维基文本,以代替标题 | -|custom-menu-styles-wide |当菜单栏是宽模式时,应用于菜单项的样式字符串选项 | -|custom-menu-styles-narrow |当菜单栏是窄模式时,应用于菜单项的样式的可选字符串 | - -自定义菜单项应确保可点击链接或按钮是直接子元素,而不是包裹在其他元素中。 - -请注意,菜单项可以通过将 ''custom-menu-styles'' 字段设置为 `float: right;` 而推到菜单栏的右侧。 diff --git a/plugins/tiddlywiki/menubar/readme.tid b/plugins/tiddlywiki/menubar/readme.tid index c9b75abbe..4282654bd 100644 --- a/plugins/tiddlywiki/menubar/readme.tid +++ b/plugins/tiddlywiki/menubar/readme.tid @@ -1,5 +1,30 @@ title: $:/plugins/tiddlywiki/menubar/readme -\define lingo-base() $:/plugins/tiddlywiki/menubar/language/ +!! Introduction -<<lingo readme>> +This plugin provides a menu bar with the following features: + +* Menu items take the form of simple text links, dropdowns, or entirely custom content +* Menu items can be individually enabled via the control panel +* Responds to reduced screen width by abbreviating the menu items to a "hamburger" dropdown + +!! Menu Item Tiddlers + +Menu items are tagged <<tag $:/tags/MenuBar>>. The following fields are used by this plugin: + +|!Field Name |!Purpose | +|title |Each menu item must have a unique title (not shown to the user) | +|description |Description for use in listings | +|tags |Must contain `$:/tags/MenuBar` | +|caption |The text that is displayed for the menu item. Avoid links, using `~` to suppress CamelCase links if required | +|target |For simple link menu items specifies a tiddler title as the target of the link | +|is-dropdown |Set to `yes` to indicate a dropdown menu item | +|dropdown-position |Optional position for the dropdown (can be ''left'', ''above'', ''aboveleft'', ''aboveright'', ''right'', ''belowleft'', ''belowright'' or ''below'') | +|text |For dropdown menu items, specifies the body of the dropdown | +|custom-menu-content |Optional wikitext to be displayed in place of the caption | +|custom-menu-styles-wide |Optional string of styles to be applied to menu item when the menubar is wide | +|custom-menu-styles-narrow |Optional string of styles to be applied to menu item when the menubar is narrow | + +Custom menu items should make sure that the clickable link or button is an immediate child, and not wrapped in another element. + +Note that menu items can be pushed to the right of the menu bar setting the ''custom-menu-styles'' field to `float: right;`. diff --git a/plugins/tiddlywiki/menubar/tree.tid b/plugins/tiddlywiki/menubar/tree.tid deleted file mode 100644 index f818ca78e..000000000 --- a/plugins/tiddlywiki/menubar/tree.tid +++ /dev/null @@ -1,4 +0,0 @@ -title: $:/plugins/tiddlywiki/menubar/tree -type: text/vnd.tiddlywiki - -<<tree prefix:"$:/plugins/tiddlywiki/menubar/">> \ No newline at end of file diff --git a/plugins/tiddlywiki/tiddlyweb/GettingStarted.tid b/plugins/tiddlywiki/tiddlyweb/GettingStarted.tid index 012dce8aa..08df08c07 100644 --- a/plugins/tiddlywiki/tiddlyweb/GettingStarted.tid +++ b/plugins/tiddlywiki/tiddlyweb/GettingStarted.tid @@ -1,7 +1,16 @@ title: GettingStarted tags: $:/tags/GettingStarted -caption: <<lingo GettingStartedStep1 "$:/plugins/tiddlywiki/tiddlyweb/language/">> +caption: Step 1<br>Syncing -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ +Welcome to ~TiddlyWiki and the ~TiddlyWiki community -<<lingo GettingStarted>> +Visit https://tiddlywiki.com/ to find out more about ~TiddlyWiki and what it can do. + +! Syncing Changes to the Server + +Before you can start storing important information in ~TiddlyWiki it is important to make sure that your changes are being reliably saved by the server. + +# Create a new tiddler using the {{$:/core/images/new-button}} button in the sidebar on the right +# Click the {{$:/core/images/done-button}} button at the top right of the new tiddler +# Check the ~TiddlyWiki command line for a message confirming the tiddler has been saved +# Refresh the page in the browser to and verify that the new tiddler has been correctly saved diff --git a/plugins/tiddlywiki/tiddlyweb/configOfficialPluginLibrary.tid b/plugins/tiddlywiki/tiddlyweb/configOfficialPluginLibrary.tid index dc5b3ae7e..4b98d3872 100644 --- a/plugins/tiddlywiki/tiddlyweb/configOfficialPluginLibrary.tid +++ b/plugins/tiddlywiki/tiddlyweb/configOfficialPluginLibrary.tid @@ -4,6 +4,4 @@ url: https://tiddlywiki.com/library/v5.1.23/index.html caption: {{$:/language/OfficialPluginLibrary}} enabled: no -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ - -<<lingo ConfigOfficialPluginLibrary>> +The official plugin library is disabled when using the client-server configuration. Instead, plugins should be installed via the `tiddlywiki.info` file, as described [[here|https://tiddlywiki.com/#Installing%20official%20plugins%20on%20Node.js]]. \ No newline at end of file diff --git a/plugins/tiddlywiki/tiddlyweb/language/en-GB/GettingStarted.tid b/plugins/tiddlywiki/tiddlyweb/language/en-GB/GettingStarted.tid deleted file mode 100644 index 990b02f81..000000000 --- a/plugins/tiddlywiki/tiddlyweb/language/en-GB/GettingStarted.tid +++ /dev/null @@ -1,14 +0,0 @@ -title: $:/plugins/tiddlywiki/tiddlyweb/language/en-GB/GettingStarted - -Welcome to ~TiddlyWiki and the ~TiddlyWiki community - -Visit https://tiddlywiki.com/ to find out more about ~TiddlyWiki and what it can do. - -! Syncing Changes to the Server - -Before you can start storing important information in ~TiddlyWiki it is important to make sure that your changes are being reliably saved by the server. - -# Create a new tiddler using the {{$:/core/images/new-button}} button in the sidebar on the right -# Click the {{$:/core/images/done-button}} button at the top right of the new tiddler -# Check the ~TiddlyWiki command line for a message confirming the tiddler has been saved -# Refresh the page in the browser to and verify that the new tiddler has been correctly saved diff --git a/plugins/tiddlywiki/tiddlyweb/language/en-GB/Translations.multids b/plugins/tiddlywiki/tiddlyweb/language/en-GB/Translations.multids deleted file mode 100644 index f823b2823..000000000 --- a/plugins/tiddlywiki/tiddlyweb/language/en-GB/Translations.multids +++ /dev/null @@ -1,12 +0,0 @@ -title: $:/plugins/tiddlywiki/tiddlyweb/language/en-GB/ - -ConfigOfficialPluginLibrary: The official plugin library is disabled when using the client-server configuration. Instead, plugins should be installed via the `tiddlywiki.info` file, as described [[here|https://tiddlywiki.com/#Installing%20official%20plugins%20on%20Node.js]]. -GettingStartedStep1: Step 1<br>Syncing -CopySyncerLogs: Copy syncer logs to clipboard -LoginAs: You are logged in<$reveal state="$:/status/UserName" type="nomatch" text="" default=""> as <strong><$text text={{$:/status/UserName}}/></strong></$reveal> -Readonly: <$reveal state="$:/status/IsReadOnly" type="match" text="yes" default="no"> (read-only)</$reveal> -Login: Login -Logout: Logout -SaveSnapshot: Save snapshot for offline use -Refresh/Label: Refresh from server -Refresh/Button: Get latest changes from the server \ No newline at end of file diff --git a/plugins/tiddlywiki/tiddlyweb/language/en-GB/readme.tid b/plugins/tiddlywiki/tiddlyweb/language/en-GB/readme.tid deleted file mode 100644 index 63a487e80..000000000 --- a/plugins/tiddlywiki/tiddlyweb/language/en-GB/readme.tid +++ /dev/null @@ -1,7 +0,0 @@ -title: $:/plugins/tiddlywiki/tiddlyweb/language/en-GB/readme - -This plugin runs in the browser to synchronise tiddler changes to and from a TiddlyWeb-compatible server (including TiddlyWiki 5 itself, running on Node.js). It is inert when run under Node.js. Disabling this plugin via the browser can not be undone via the browser since this plugin provides the mechanism to synchronize settings with the server. - -Changes made while offline are saved in memory and automatically synchonised with the server when the connection is re-established. However, if the browser tab is closed or another URL is loaded, the in-memory changes will be lost. The [[https://tiddlywiki.com/#BrowserStorage Plugin]] may be added to provide temporary filesystem storage of tiddler changes made while offline and enable them to be synchronised with the server the next time the wiki is loaded in the same browser. - -[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/tiddlyweb]] diff --git a/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/GettingStarted.tid b/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/GettingStarted.tid deleted file mode 100644 index 814f8b9c9..000000000 --- a/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/GettingStarted.tid +++ /dev/null @@ -1,14 +0,0 @@ -title: $:/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/GettingStarted - -欢迎来到太微和太微社区 - -访问 https://tiddlywiki.com/ 了解太微的细节和了解它能做什么。 - -! 同步更改到服务器 - -在你开始在太微中存储重要信息之前,确保你的修改被服务器可靠地保存是非常重要的。 - -# 使用右侧边栏的 {{$:/core/images/new-button}} 按钮创建一个新条目 -# 点击新条目右上方的 {{$:/core/images/done-button}} 按钮 -# 检查太微命令行是否有确认条目已保存的信息 -# 刷新浏览器页面,确认新条目已正确保存 diff --git a/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/Translations.multids b/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/Translations.multids deleted file mode 100644 index 142e872c4..000000000 --- a/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/Translations.multids +++ /dev/null @@ -1,12 +0,0 @@ -title: $:/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/ - -ConfigOfficialPluginLibrary: 使用客户端-服务器配置时,官方插件库将被禁用。取而代之的是,应按照[[here|https://tiddlywiki.com/#Installing%20a%20plugin%20from%20the%20plugin%20library]]所述,通过 "tiddlywiki.info" 文件安装插件。 -GettingStartedStep1: 第一步<br>同步 -CopySyncerLogs: 将同步器日志复制到剪贴板 -LoginAs: 您目前已登录<$reveal state="$:/status/UserName" type="nomatch" text="" default="">为<strong><$text text={{$:/status/UserName}}/></strong></$reveal> -Readonly: <$reveal state="$:/status/IsReadOnly" type="match" text="yes" default="no">(只读)</$reveal> -Login: 登录 -Logout: 登出 -SaveSnapshot: 保存快照以供离线使用 -Refresh/Label: 从服务器刷新 -Refresh/Button: 从服务器获取最新变更 \ No newline at end of file diff --git a/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/readme.tid b/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/readme.tid deleted file mode 100644 index b60ef77e2..000000000 --- a/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/readme.tid +++ /dev/null @@ -1,7 +0,0 @@ -title: $:/plugins/tiddlywiki/tiddlyweb/language/zh-Hans/readme - -该插件在浏览器中运行,用于双向同步更改的条目到与 TiddlyWeb 兼容的服务器上(包括在 Node.js 上运行的 TiddlyWiki 5 本身)。在 Node.js 上运行时,它是无法自救的:由于就是该插件提供了与服务器同步设置和插件的机制,因此通过浏览器禁用该插件后,是无法撤销对自己的禁用的。 - -离线时所作的更改会保存在内存中,并在重新建立连接时自动与服务器同步。不过,如果关闭浏览器标签页或加载另一个 URL,内存中的更改就会丢失。可以添加[[https://tiddlywiki.com/#BrowserStorage Plugin]],为离线时的条目更改提供临时文件系统存储,并使其在下次在同一浏览器中加载知识库时与服务器同步。 - -[[源代码|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/tiddlyweb]] diff --git a/plugins/tiddlywiki/tiddlyweb/readme.tid b/plugins/tiddlywiki/tiddlyweb/readme.tid index ac3991be6..ee30a2dd4 100644 --- a/plugins/tiddlywiki/tiddlyweb/readme.tid +++ b/plugins/tiddlywiki/tiddlyweb/readme.tid @@ -1,5 +1,7 @@ title: $:/plugins/tiddlywiki/tiddlyweb/readme -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ +This plugin runs in the browser to synchronise tiddler changes to and from a TiddlyWeb-compatible server (including TiddlyWiki 5 itself, running on Node.js). It is inert when run under Node.js. Disabling this plugin via the browser can not be undone via the browser since this plugin provides the mechanism to synchronize settings with the server. -<<lingo readme>> +Changes made while offline are saved in memory and automatically synchonised with the server when the connection is re-established. However, if the browser tab is closed or another URL is loaded, the in-memory changes will be lost. The [[https://tiddlywiki.com/#BrowserStorage Plugin]] may be added to provide temporary filesystem storage of tiddler changes made while offline and enable them to be synchronised with the server the next time the wiki is loaded in the same browser. + +[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/tiddlyweb]] diff --git a/plugins/tiddlywiki/tiddlyweb/syncer-actions-copy-logs.tid b/plugins/tiddlywiki/tiddlyweb/syncer-actions-copy-logs.tid index 6a8539028..b141670e6 100644 --- a/plugins/tiddlywiki/tiddlyweb/syncer-actions-copy-logs.tid +++ b/plugins/tiddlywiki/tiddlyweb/syncer-actions-copy-logs.tid @@ -1,8 +1,6 @@ title: $:/plugins/tiddlywiki/tiddlyweb/syncer-actions/copy-logs tags: $:/tags/SyncerDropdown -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ - <$button message="tm-copy-syncer-logs-to-clipboard" class="tc-btn-invisible"> -{{$:/core/images/copy-clipboard}} <<lingo CopySyncerLogs>> +{{$:/core/images/copy-clipboard}} Copy syncer logs to clipboard </$button> diff --git a/plugins/tiddlywiki/tiddlyweb/syncer-actions-login-status.tid b/plugins/tiddlywiki/tiddlyweb/syncer-actions-login-status.tid index e87c87516..11816f1b4 100644 --- a/plugins/tiddlywiki/tiddlyweb/syncer-actions-login-status.tid +++ b/plugins/tiddlywiki/tiddlyweb/syncer-actions-login-status.tid @@ -1,11 +1,9 @@ title: $:/plugins/tiddlywiki/tiddlyweb/syncer-actions/login-status tags: $:/tags/SyncerDropdown -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ - <$reveal state="$:/status/IsLoggedIn" type="match" text="yes"> <div class="tc-drop-down-info"> -<<lingo LoginAs>><<lingo Readonly>> +You are logged in<$reveal state="$:/status/UserName" type="nomatch" text="" default=""> as <strong><$text text={{$:/status/UserName}}/></strong></$reveal><$reveal state="$:/status/IsReadOnly" type="match" text="yes" default="no"> (read-only)</$reveal> </div> <hr/> </$reveal> diff --git a/plugins/tiddlywiki/tiddlyweb/syncer-actions-login.tid b/plugins/tiddlywiki/tiddlyweb/syncer-actions-login.tid index f0648c70c..cdd95f5a6 100644 --- a/plugins/tiddlywiki/tiddlyweb/syncer-actions-login.tid +++ b/plugins/tiddlywiki/tiddlyweb/syncer-actions-login.tid @@ -1,10 +1,8 @@ title: $:/plugins/tiddlywiki/tiddlyweb/syncer-actions/login tags: $:/tags/SyncerDropdown -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ - <$reveal state="$:/status/IsLoggedIn" type="nomatch" text="yes"> <$button message="tm-login" class="tc-btn-invisible"> -{{$:/core/images/unlocked-padlock}} <<lingo Login>> +{{$:/core/images/unlocked-padlock}} Login </$button> </$reveal> diff --git a/plugins/tiddlywiki/tiddlyweb/syncer-actions-logout.tid b/plugins/tiddlywiki/tiddlyweb/syncer-actions-logout.tid index 861007f2b..358944d1a 100644 --- a/plugins/tiddlywiki/tiddlyweb/syncer-actions-logout.tid +++ b/plugins/tiddlywiki/tiddlyweb/syncer-actions-logout.tid @@ -1,10 +1,8 @@ title: $:/plugins/tiddlywiki/tiddlyweb/syncer-actions/logout tags: $:/tags/SyncerDropdown -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ - <$reveal state="$:/status/IsLoggedIn" type="match" text="yes"> <$button message="tm-logout" class="tc-btn-invisible"> -{{$:/core/images/cancel-button}} <<lingo Logout>> +{{$:/core/images/cancel-button}} Logout </$button> </$reveal> diff --git a/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid b/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid index 2cb2ffd82..c397badc5 100644 --- a/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid +++ b/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid @@ -1,17 +1,9 @@ title: $:/plugins/tiddlywiki/tiddlyweb/syncer-actions/refresh tags: $:/tags/SyncerDropdown -\whitespace trim -<$let lingo-base="$:/plugins/tiddlywiki/tiddlyweb/language/"> - <$wikify name=buttonText text="<<lingo Refresh/Button>>"> - <$wikify name=ariaLabel text="<<lingo Refresh/Label>>"> - <$reveal state="$:/status/IsLoggedIn" type="match" text="yes"> - <$button tooltip=<<ariaLabel>> aria-label=<<ariaLabel>> class="tc-btn-invisible"> - <$action-sendmessage $message="tm-server-refresh"/> - {{$:/core/images/refresh-button}} - <span class="tc-btn-text"><<buttonText>></span> - </$button> - </$reveal> - </$wikify> - </$wikify> -</$let> +<$reveal state="$:/status/IsLoggedIn" type="match" text="yes"> +<$button tooltip="Get latest changes from the server" aria-label="Refresh from server" class="tc-btn-invisible"> +<$action-sendmessage $message="tm-server-refresh"/> +{{$:/core/images/refresh-button}}<span class="tc-btn-text"><$text text="Get latest changes from the server"/></span> +</$button> +</$reveal> diff --git a/plugins/tiddlywiki/tiddlyweb/syncer-actions-save-snapshot.tid b/plugins/tiddlywiki/tiddlyweb/syncer-actions-save-snapshot.tid index e0eea1994..23bb4c914 100644 --- a/plugins/tiddlywiki/tiddlyweb/syncer-actions-save-snapshot.tid +++ b/plugins/tiddlywiki/tiddlyweb/syncer-actions-save-snapshot.tid @@ -1,11 +1,9 @@ title: $:/plugins/tiddlywiki/tiddlyweb/syncer-actions/save-snapshot tags: $:/tags/SyncerDropdown -\define lingo-base() $:/plugins/tiddlywiki/tiddlyweb/language/ - <$button class="tc-btn-invisible"> <$wikify name="site-title" text={{$:/config/SaveWikiButton/Filename}}> <$action-sendmessage $message="tm-download-file" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/> </$wikify> -{{$:/core/images/download-button}} <<lingo SaveSnapshot>> +{{$:/core/images/download-button}} Save snapshot for offline use </$button> diff --git a/plugins/tiddlywiki/tiddlyweb/tree.tid b/plugins/tiddlywiki/tiddlyweb/tree.tid deleted file mode 100644 index cc7ef97ba..000000000 --- a/plugins/tiddlywiki/tiddlyweb/tree.tid +++ /dev/null @@ -1,4 +0,0 @@ -title: $:/plugins/tiddlywiki/tiddlyweb/tree -type: text/vnd.tiddlywiki - -<<tree prefix:"$:/plugins/tiddlywiki/tiddlyweb/">> \ No newline at end of file diff --git a/plugins/tiddlywiki/tour/styles.tid b/plugins/tiddlywiki/tour/styles.tid index 2cd28bc93..7bb434dab 100644 --- a/plugins/tiddlywiki/tour/styles.tid +++ b/plugins/tiddlywiki/tour/styles.tid @@ -136,19 +136,20 @@ tags: $:/tags/Stylesheet .tc-tour-panel-fullscreen .tc-tour-panel-banner-image { display: block; - width: 200px; + width: 100px; float: right; margin: 4em 2em 2em 2em; } .tc-tour-panel-fullscreen .tc-tour-panel-inner { width: 30%; - min-width: 400px; + min-width: 350px; height: 30%; - margin: 20% auto; + margin: 10em auto 0 auto; } .tc-tour-panel .tc-tour-panel-inner .tc-tiddler-frame { + position: static; width: auto; padding: 1.5em 2.5em; } diff --git a/plugins/tiddlywiki/tour/tour-panel.tid b/plugins/tiddlywiki/tour/tour-panel.tid index 63a23f6e6..7e9949290 100644 --- a/plugins/tiddlywiki/tour/tour-panel.tid +++ b/plugins/tiddlywiki/tour/tour-panel.tid @@ -20,11 +20,9 @@ tags: $:/tags/PageTemplate <%endif%> <%if [function[tour-is-last-step]] %> <$confetti/> - <$confetti delay=100/> - <$confetti delay=200/> - <$confetti delay=300/> - <$confetti delay=400/> - <$confetti delay=500/> + <$confetti delay=300 originY=0.6 spread=100 scalar=1.5/> + <$confetti delay=400 originY=0.55 spread=130/> + <$confetti delay=500 originY=0.55 spread=170 scalar=2/> <%endif%> </div> \end diff --git a/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/finished.tid b/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/finished.tid index 16cdd6509..98dc3058e 100644 --- a/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/finished.tid +++ b/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/finished.tid @@ -4,6 +4,10 @@ tags: $:/tags/Tour/IntroductionToTiddlyWiki You have completed the tour. +<%if [all[shadows+tiddlers]tag[$:/tags/Tour]] -[<currentTour>] %> + You can choose to take another tour: <<tour-chooser filter:"[all[shadows+tiddlers]tag[$:/tags/Tour]] -[<currentTour>]">> + +<%endif%> diff --git a/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/search.tid b/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/search.tid index 44b153785..a6cf89a76 100644 --- a/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/search.tid +++ b/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/search.tid @@ -2,8 +2,8 @@ title: $:/plugins/tiddlywiki/tour/introduction-to-tiddlywiki/steps/search caption: Searching tags: $:/tags/Tour/IntroductionToTiddlyWiki hint-selector: .tc-sidebar-search .tc-popup-handle -step-success-filter: [{$:/temp/search}match[help]] +step-success-filter: [{$:/temp/search}match[home]] -<<tour-task "Search for the phrase 'help'">> +<<tour-task "Search for the phrase 'home'">> Type the phrase into the text box labelled "search" in the sidebar at the right. diff --git a/plugins/tiddlywiki/tour/tours/using-tags/finished.tid b/plugins/tiddlywiki/tour/tours/using-tags/finished.tid deleted file mode 100644 index 6d8a9e4f9..000000000 --- a/plugins/tiddlywiki/tour/tours/using-tags/finished.tid +++ /dev/null @@ -1,5 +0,0 @@ -title: $:/plugins/tiddlywiki/tour/using-tags/finished -caption: Congratulations -tags: $:/tags/Tour/UsingTags - -<<tour-chooser filter:"[all[shadows+tiddlers]tag[$:/tags/Tour]] -[<currentTour>]">> diff --git a/plugins/tiddlywiki/tour/tours/using-tags/tags-tour-logo.svg b/plugins/tiddlywiki/tour/tours/using-tags/tags-tour-logo.svg deleted file mode 100644 index 0773e0f00..000000000 --- a/plugins/tiddlywiki/tour/tours/using-tags/tags-tour-logo.svg +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="100%" height="100%" viewBox="0 0 500 335" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> - <g transform="matrix(0.488281,0,0,0.436198,0,0)"> - <rect id="Artboard1" x="0" y="0" width="1024" height="768" style="fill:none;"/> - <clipPath id="_clip1"> - <rect id="Artboard11" serif:id="Artboard1" x="0" y="0" width="1024" height="768"/> - </clipPath> - <g clip-path="url(#_clip1)"> - <g transform="matrix(3.66495,0,0,4.10256,0,0.218772)"> - <g transform="matrix(1,0,0,1,-59.5095,-391.468)"> - <path d="M320.725,420.421C326.96,417.788 332.843,414.256 338.913,411.253C338.882,411.406 338.722,411.458 338.626,411.561C328.964,419.375 327.614,432.589 328.751,444.808C329.174,451.149 327.382,458.033 325.167,464.525C321.022,475.102 313.017,486.251 303.726,485.68C300.214,485.568 298.174,483.58 295.563,481.456C295.057,485.757 293.067,489.595 291.148,493.398C286.718,501.831 275.14,505.548 264.419,514.553C253.699,523.558 267.849,555.718 271.28,561.578C274.711,567.439 284.287,569.583 280.571,574.872C279.434,576.618 277.696,577.243 275.838,577.921L273.318,578.249C262.308,577.938 257.466,577.965 251.859,568.744L247.489,568.87C242.402,568.644 244.522,568.746 241.129,568.577C235.455,568.356 236.364,562.965 235.366,560.117C233.769,550.449 237.478,540.73 237.361,531.06C237.32,527.627 232.462,515.476 230.727,511.132C225.287,512.156 219.817,512.351 214.298,512.626C201.576,512.595 188.94,511.037 176.396,509.059C173.952,519.157 166.686,533.291 172.692,543.554C179.982,554.17 185.098,557.111 193.028,557.751C200.957,558.39 202.748,567.343 200.829,570.541C199.131,572.751 196.147,573.152 193.611,573.687L188.539,573.925C184.548,573.791 180.98,572.714 177.424,571.052C171.485,567.736 165.351,560.844 160.793,555.895C161.854,557.871 162.487,561.729 161.525,563.524C158.83,567.341 147.176,567.318 141.839,564.946C135.776,562.252 121.125,543.335 118.86,529.168C124.886,517.772 133.665,507.845 138.106,495.437C128.425,489.26 123.24,479.204 123.913,467.813L124.156,466.494C114.631,468.277 119.57,467.614 109.323,468.389C76.689,468.289 47.99,446.162 64.15,411.773C65.201,409.737 66.201,407.885 67.982,408.77C69.412,409.479 69.207,412.325 68.487,415.481C59.25,456.572 104.396,456.886 132.149,449.282C134.903,448.528 140.381,443.444 144.176,441.759C150.379,439.004 157.111,437.887 163.793,437.082C180.411,435.188 200.384,443.943 210.533,444.228C220.681,444.514 235.118,441.798 243.98,442.37C250.41,442.664 256.724,443.825 262.928,445.478C266.944,425.911 267.228,411.489 276.748,408.151C281.18,408.851 284.806,413.787 287.706,417.829L287.706,423.746C287.706,428.653 295.104,432.636 304.216,432.636C313.328,432.636 320.725,428.653 320.725,423.746L320.725,420.421ZM151.046,554.19L152.645,554.662C154.654,553.763 158.693,555.152 160.836,555.832C156.89,551.458 150.947,545.035 146.664,540.986C145.259,536.084 145.859,531.152 146.161,526.148L146.222,525.734C144.534,529.74 142.391,533.634 141.24,537.85C139.893,543.539 147.228,549.677 150.073,553.194L151.046,554.19Z" fill="red"/> - </g> - <g transform="matrix(2.12347,0,0,2.12347,219.225,-7.42467)"> - <g transform="matrix(1,0,0,0.666667,-0.185118,3.43957)"> - <path d="M0.667,9.362C0.576,9.293 0.518,9.153 0.518,9C0.518,8.847 0.576,8.707 0.667,8.638C2.756,7.072 10.971,0.911 12.065,0.09C12.14,0.033 12.23,0.033 12.306,0.09C13.399,0.911 21.614,7.072 23.703,8.638C23.794,8.707 23.852,8.847 23.852,9C23.852,9.153 23.794,9.293 23.703,9.362C21.614,10.928 13.399,17.089 12.306,17.91C12.23,17.967 12.14,17.967 12.065,17.91C10.971,17.089 2.756,10.928 0.667,9.362Z"/> - </g> - <g transform="matrix(1,0,0,1,1.77636e-15,4.43957)"> - <path d="M18.5,8.75L18.5,13.744C18.5,15.675 15.587,17.244 12,17.244C8.413,17.244 5.5,15.675 5.5,13.744L5.5,8.75L11.951,11.975C11.982,11.991 12.018,11.991 12.049,11.975L18.5,8.75Z"/> - </g> - <g transform="matrix(1,0,0,0.648293,19.2746,5.5086)"> - <path d="M2,6L2.207,11L1.526,14C1.526,14 1.524,14.709 2.5,14.717C3.421,14.724 3.5,14 3.5,14L2.707,11L3,6L2,6Z"/> - </g> - </g> - </g> - </g> - </g> -</svg> diff --git a/plugins/tiddlywiki/tour/tours/using-tags/tags-tour-logo.svg.meta b/plugins/tiddlywiki/tour/tours/using-tags/tags-tour-logo.svg.meta deleted file mode 100644 index 29d308fc0..000000000 --- a/plugins/tiddlywiki/tour/tours/using-tags/tags-tour-logo.svg.meta +++ /dev/null @@ -1,2 +0,0 @@ -title: $:/plugins/tiddlywiki/tour/tags-tour-logo -type: image/svg+xml diff --git a/plugins/tiddlywiki/tour/tours/using-tags/tagsTourUsingTags.tid b/plugins/tiddlywiki/tour/tours/using-tags/tagsTourUsingTags.tid deleted file mode 100644 index 30681ca24..000000000 --- a/plugins/tiddlywiki/tour/tours/using-tags/tagsTourUsingTags.tid +++ /dev/null @@ -1,2 +0,0 @@ -title: $:/tags/Tour/UsingTags -list: $:/plugins/tiddlywiki/tour/using-tags/welcome $:/plugins/tiddlywiki/tour/using-tags/finished diff --git a/plugins/tiddlywiki/tour/tours/using-tags/using-tags.tid b/plugins/tiddlywiki/tour/tours/using-tags/using-tags.tid deleted file mode 100644 index 31c2f4b78..000000000 --- a/plugins/tiddlywiki/tour/tours/using-tags/using-tags.tid +++ /dev/null @@ -1,7 +0,0 @@ -title: $:/plugins/tiddlywiki/tour/using-tags -tags: $:/tags/Tour -tour-tag: $:/tags/Tour/UsingTags -logo: $:/plugins/tiddlywiki/tour/tags-tour-logo -description: Using Tags in ~TiddlyWiki - -An introduction to using tags in ~TiddlyWiki \ No newline at end of file diff --git a/plugins/tiddlywiki/tour/tours/using-tags/welcome.tid b/plugins/tiddlywiki/tour/tours/using-tags/welcome.tid deleted file mode 100644 index 852273629..000000000 --- a/plugins/tiddlywiki/tour/tours/using-tags/welcome.tid +++ /dev/null @@ -1,5 +0,0 @@ -title: $:/plugins/tiddlywiki/tour/using-tags/welcome -caption: Welcome -tags: $:/tags/Tour/UsingTags - -!! An introduction to using tags in ~TiddlyWiki diff --git a/readme.md b/readme.md index 1a7b21df5..ae57b105b 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@ <p>Welcome to <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a>, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.</p><p><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> is a complete interactive wiki in <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/JavaScript.html">JavaScript</a>. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/WikiText.html">WikiText</a>.</p><p>Learn more and see it in action at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/</a></p><p>Developer documentation is in progress at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/dev/</a></p><h1 class="">Join the Community</h1><p> -<h2 class="">Official Forums</h2><p>The new official forum for talking about TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.</p><p><a class="tc-tiddlylink-external" href="https://talk.tiddlywiki.org/" rel="noopener noreferrer" target="_blank">https://talk.tiddlywiki.org/</a></p><p>Note that talk.tiddlywiki.org is a community run service that we host and maintain ourselves. The modest running costs are covered by community contributions.</p><p>For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005):</p><p><a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWiki" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWiki</a></p><h2 class="">Developer Forums</h2><p>There are several resources for developers to learn more about <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> and to discuss and contribute to its development.</p><ul><li><a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev" rel="noopener noreferrer" target="_blank">tiddlywiki.com/dev</a> is the official developer documentation</li><li>Get involved in the <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5" rel="noopener noreferrer" target="_blank">development on GitHub</a><ul><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">Discussions</a> are for Q&A and open-ended discussion</li><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/issues" rel="noopener noreferrer" target="_blank">Issues</a> are for raising bug reports and proposing specific, actionable new ideas</li></ul></li><li>The older TiddlyWikiDev Google Group is now closed in favour of <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">GitHub Discussions</a> but remains a useful archive: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWikiDev" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWikiDev</a><ul><li>An enhanced group search facility is available on <a class="tc-tiddlylink-external" href="https://www.mail-archive.com/tiddlywikidev@googlegroups.com/" rel="noopener noreferrer" target="_blank">mail-archive.com</a></li></ul></li><li>Follow <a class="tc-tiddlylink-external" href="http://twitter.com/#!/TiddlyWiki" rel="noopener noreferrer" target="_blank">@TiddlyWiki on Twitter</a> for the latest news</li><li>Chat at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> (development room coming soon)</li></ul><h2 class="">Other Forums</h2><ul><li><a class="tc-tiddlylink-external" href="https://www.reddit.com/r/TiddlyWiki5/" rel="noopener noreferrer" target="_blank">TiddlyWiki Subreddit</a></li><li>Chat with Gitter at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> !</li><li>Chat on Discord at <a class="tc-tiddlylink-external" href="https://discord.gg/HFFZVQ8" rel="noopener noreferrer" target="_blank">https://discord.gg/HFFZVQ8</a></li></ul><h3 class="">Documentation</h3><p>There is also a discussion group specifically for discussing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> documentation improvement initiatives: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/tiddlywikidocs" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/tiddlywikidocs</a> +<h2 class="">Official Forums</h2><p>The new official forum for talking about TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.</p><p><a class="tc-tiddlylink-external" href="https://talk.tiddlywiki.org/" rel="noopener noreferrer" target="_blank">https://talk.tiddlywiki.org/</a></p><p>Note that talk.tiddlywiki.org is a community run service that we host and maintain ourselves. The modest running costs are covered by community contributions.</p><p>For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005):</p><p><a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWiki" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWiki</a></p><h2 class="">Developer Forums</h2><p>There are several resources for developers to learn more about <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> and to discuss and contribute to its development.</p><ul><li><a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev" rel="noopener noreferrer" target="_blank">tiddlywiki.com/dev</a> is the official developer documentation</li><li>Get involved in the <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5" rel="noopener noreferrer" target="_blank">development on GitHub</a><ul><li><img class=" tc-image-loading" src="https://repobeats.axiom.co/api/embed/5a3bb51fd1ebe84a2da5548f78d2d74e456cebf3.svg"></li><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">Discussions</a> are for Q&A and open-ended discussion</li><li><a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/issues" rel="noopener noreferrer" target="_blank">Issues</a> are for raising bug reports and proposing specific, actionable new ideas</li></ul></li><li>The older TiddlyWikiDev Google Group is now closed in favour of <a class="tc-tiddlylink-external" href="https://github.com/Jermolene/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">GitHub Discussions</a> but remains a useful archive: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWikiDev" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWikiDev</a><ul><li>An enhanced group search facility is available on <a class="tc-tiddlylink-external" href="https://www.mail-archive.com/tiddlywikidev@googlegroups.com/" rel="noopener noreferrer" target="_blank">mail-archive.com</a></li></ul></li><li>Follow <a class="tc-tiddlylink-external" href="http://twitter.com/#!/TiddlyWiki" rel="noopener noreferrer" target="_blank">@TiddlyWiki on Twitter</a> for the latest news</li><li>Chat at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> (development room coming soon)</li></ul><h2 class="">Other Forums</h2><ul><li><a class="tc-tiddlylink-external" href="https://www.reddit.com/r/TiddlyWiki5/" rel="noopener noreferrer" target="_blank">TiddlyWiki Subreddit</a></li><li>Chat with Gitter at <a class="tc-tiddlylink-external" href="https://gitter.im/TiddlyWiki/public" rel="noopener noreferrer" target="_blank">https://gitter.im/TiddlyWiki/public</a> !</li><li>Chat on Discord at <a class="tc-tiddlylink-external" href="https://discord.gg/HFFZVQ8" rel="noopener noreferrer" target="_blank">https://discord.gg/HFFZVQ8</a></li></ul><h3 class="">Documentation</h3><p>There is also a discussion group specifically for discussing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> documentation improvement initiatives: <a class="tc-tiddlylink-external" href="https://groups.google.com/group/tiddlywikidocs" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/tiddlywikidocs</a> </p> -</p><h1 class="">Installing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>yay -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.3.3". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button-dynamic tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"> +</p><h1 class="">Installing <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>yay -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.3.5". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button-dynamic tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"> <g class="tc-image-save-button-dynamic-clean"> <path d="M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z" fill-rule="evenodd"></path> </g> @@ -9,10 +9,10 @@ <path d="M64.856912,0 C100.203136,0 128.856912,28.653776 128.856912,64 C128.856912,99.346224 100.203136,128 64.856912,128 C29.510688,128 0.856911958,99.346224 0.856911958,64 C0.856911958,28.653776 29.510688,0 64.856912,0 Z M64.856912,16 C38.347244,16 16.856912,37.490332 16.856912,64 C16.856912,90.509668 38.347244,112 64.856912,112 C91.3665799,112 112.856912,90.509668 112.856912,64 C112.856912,37.490332 91.3665799,16 64.856912,16 Z"></path> <circle cx="65" cy="64" r="32"></circle> </g> -</svg></span> <strong>save changes</strong> button in the sidebar, <strong>OR</strong></li><li><code>tiddlywiki mynewwiki --build index</code></li></ul></li></ol><p>The <code>-g</code> flag causes <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> to be installed globally. Without it, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> will only be available in the directory where you installed it.</p><p><div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg></div> If you are using Debian or Debian-based Linux and you are receiving a <code>node: command not found</code> error though node.js package is installed, you may need to create a symbolic link between <code>nodejs</code> and <code>node</code>. Consult your distro's manual and <code>whereis</code> to correctly create a link. See github <a class="tc-tiddlylink-external" href="http://github.com/Jermolene/TiddlyWiki5/issues/1434" rel="noopener noreferrer" target="_blank">issue 1434</a>. <br><br>Example Debian v8.0: <code>sudo ln -s /usr/bin/nodejs /usr/bin/node</code></div></p><p><br> -<div class="doc-icon-block"><div class="doc-block-icon"><svg class="tc-image-tip tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z" fill-rule="evenodd"></path></svg></div> You can also install prior versions like this: <br><code> npm install -g tiddlywiki@5.1.13</code></div> -</p><h1 class="">Using <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><p>TiddlyWiki5 includes a set of commands for use on the command line to perform an extensive set of operations based on <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolders</a>, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlerFiles.html">TiddlerFiles</a>.</p><p>For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:</p><pre><code>tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html</code></pre><p>Running <code>tiddlywiki</code> from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.</p><p><a class="tc-tiddlylink tc-tiddlylink-resolves doc-from-version" href="https://tiddlywiki.com/static/Release%25205.1.20.html"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg> New in: 5.1.20</a> First, there can be zero or more plugin references identified by the prefix <code>+</code> for plugin names or <code>++</code> for a path to a plugin folder. These plugins are loaded in addition to any specified in the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a>.</p><p>The next argument is the optional path to the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a> to be loaded. If not present, then the current directory is used.</p><p>The commands and their individual arguments follow, each command being identified by the prefix <code>--</code>.</p><pre><code>tiddlywiki [+<pluginname> | ++<pluginpath>] [<wikipath>] [--<command> [<arg>[,<arg>]]]</code></pre><p>For example:</p><pre><code>tiddlywiki --version +</svg></span> <strong>save changes</strong> button in the sidebar, <strong>OR</strong></li><li><code>tiddlywiki mynewwiki --build index</code></li></ul></li></ol><p>The <code>-g</code> flag causes <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> to be installed globally. Without it, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> will only be available in the directory where you installed it.</p><p><div class="doc-icon-block doc-warning"><div><strong>Warning</strong></div><div class="doc-block-icon"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg></div>If you are using Debian or Debian-based Linux and you are receiving a <code>node: command not found</code> error though node.js package is installed, you may need to create a symbolic link between <code>nodejs</code> and <code>node</code>. Consult your distro's manual and <code>whereis</code> to correctly create a link. See github <a class="tc-tiddlylink-external" href="http://github.com/Jermolene/TiddlyWiki5/issues/1434" rel="noopener noreferrer" target="_blank">issue 1434</a>. <br><br>Example Debian v8.0: <code>sudo ln -s /usr/bin/nodejs /usr/bin/node</code></div></p><p><br> +<div class="doc-icon-block doc-tip"><div><strong>Tip</strong></div><div class="doc-block-icon"><svg class="tc-image-tip tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z" fill-rule="evenodd"></path></svg></div>You can also install prior versions like this: <br><code> npm install -g tiddlywiki@5.1.13</code></div> +</p><h1 class="">Using <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><p>TiddlyWiki5 includes a set of commands for use on the command line to perform an extensive set of operations based on <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolders</a>, <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlerFiles.html">TiddlerFiles</a>.</p><p>For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:</p><pre><code>tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html</code></pre><p>Running <code>tiddlywiki</code> from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.</p><p><a class="tc-tiddlylink tc-tiddlylink-resolves doc-from-version" href="https://tiddlywiki.com/static/Release%25205.1.20.html"><span class="tc-tiny-gap-right"><svg class="tc-image-info-button tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><g fill-rule="evenodd" transform="translate(.05)"><path d="M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z"></path><circle cx="64" cy="32" r="8"></circle><rect height="56" rx="8" width="16" x="56" y="48"></rect></g></svg></span>Introduced in v5.1.20</a> First, there can be zero or more plugin references identified by the prefix <code>+</code> for plugin names or <code>++</code> for a path to a plugin folder. These plugins are loaded in addition to any specified in the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a>.</p><p>The next argument is the optional path to the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolder</a> to be loaded. If not present, then the current directory is used.</p><p>The commands and their individual arguments follow, each command being identified by the prefix <code>--</code>.</p><pre><code>tiddlywiki [+<pluginname> | ++<pluginpath>] [<wikipath>] [--<command> [<arg>[,<arg>]]]</code></pre><p>For example:</p><pre><code>tiddlywiki --version tiddlywiki +plugins/tiddlywiki/filesystem +plugins/tiddlywiki/tiddlyweb mywiki --listen -tiddlywiki ++./mygreatplugin mywiki --listen</code></pre><p><a class="tc-tiddlylink tc-tiddlylink-resolves doc-from-version" href="https://tiddlywiki.com/static/Release%25205.1.18.html"><svg class="tc-image-warning tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z" fill-rule="evenodd"></path></svg> New in: 5.1.18</a> Commands such as the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/ListenCommand.html">ListenCommand</a> that support large numbers of parameters can use <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/NamedCommandParameters.html">NamedCommandParameters</a> to make things less unwieldy. For example:</p><pre><code>tiddlywiki wikipath --listen username=jeremy port=8090</code></pre><p>See <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Commands.html">Commands</a> for a full listing of the available commands. +tiddlywiki ++./mygreatplugin mywiki --listen</code></pre><p><a class="tc-tiddlylink tc-tiddlylink-resolves doc-from-version" href="https://tiddlywiki.com/static/Release%25205.1.18.html"><span class="tc-tiny-gap-right"><svg class="tc-image-info-button tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><g fill-rule="evenodd" transform="translate(.05)"><path d="M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z"></path><circle cx="64" cy="32" r="8"></circle><rect height="56" rx="8" width="16" x="56" y="48"></rect></g></svg></span>Introduced in v5.1.18</a> Commands such as the <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/ListenCommand.html">ListenCommand</a> that support large numbers of parameters can use <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/NamedCommandParameters.html">NamedCommandParameters</a> to make things less unwieldy. For example:</p><pre><code>tiddlywiki wikipath --listen username=jeremy port=8090</code></pre><p>See <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Commands.html">Commands</a> for a full listing of the available commands. </p><h1 class="">Upgrading <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on Node.js</h1><p>If you've installed <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki%2520on%2520Node.js.html">TiddlyWiki on Node.js</a> on the usual way, when a new version is released you can upgrade it with this command:</p><pre><code>npm update -g tiddlywiki</code></pre><p>On Mac or Linux you'll need to add <strong>sudo</strong> like this:</p><pre><code>sudo npm update -g tiddlywiki</code></pre><h1 class="">Also see</h1><p><ul class=""><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Building%2520TiddlyWikiClassic.html">Building TiddlyWikiClassic</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Customising%2520Tiddler%2520File%2520Naming.html">Customising Tiddler File Naming</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Environment%2520Variables%2520on%2520Node.js.html">Environment Variables on Node.js</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Generating%2520Static%2520Sites%2520with%2520TiddlyWiki.html">Generating Static Sites with TiddlyWiki</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/How%2520to%2520build%2520a%2520TiddlyWiki5%2520from%2520individual%2520tiddlers.html">How to build a TiddlyWiki5 from individual tiddlers</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Installing%2520custom%2520plugins%2520on%2520Node.js.html">Installing custom plugins on Node.js</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Installing%2520official%2520plugins%2520on%2520Node.js.html">Installing official plugins on Node.js</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Installing%2520TiddlyWiki%2520on%2520Microsoft%2520Internet%2520Information%2520Server.html">Internet Information Services</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Installing%2520TiddlyWiki%2520Prerelease%2520on%2520Node.js.html">Installing TiddlyWiki Prerelease on Node.js</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/MultiTiddlerFiles.html">MultiTiddlerFiles</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/MultiTiddlerFileSyntax.html">MultiTiddlerFileSyntax</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/NamedCommandParameters.html">NamedCommandParameters</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Scripts%2520for%2520TiddlyWiki%2520on%2520Node.js.html">Scripts for TiddlyWiki on Node.js</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Node.js on Termux</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlerFiles.html">TiddlerFiles</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/tiddlywiki.files%2520Files.html">tiddlywiki.files Files</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/tiddlywiki.info%2520Files.html">tiddlywiki.info Files</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWikiFolders.html">TiddlyWikiFolders</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Uninstalling%2520a%2520plugin%2520with%2520Node.js.html">Uninstalling a plugin with Node.js</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Using%2520a%2520custom%2520path%2520prefix%2520with%2520the%2520client-server%2520edition.html">Using a custom path prefix with the client-server edition</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Using%2520TiddlyWiki%2520for%2520GitHub%2520project%2520documentation.html">Using TiddlyWiki for GitHub project documentation</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Working%2520with%2520the%2520TiddlyWiki5%2520repository.html">Working with the TiddlyWiki5 repository</a></li></ul></p><p><em>This readme file was automatically generated by <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></em> </p> \ No newline at end of file diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index bb658650a..b62b9aee8 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -2513,6 +2513,10 @@ html body.tc-body.tc-single-tiddler-window { width: 100%; } +.tc-control-panel-setting { + border-top: 1px solid <<colour blockquote-bar>>; +} + .tc-plugin-info { display: flex; text-shadow: none; @@ -2572,6 +2576,11 @@ a.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg { fill: <<colour background>>; } +a.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk .tc-plugin-info-stability { + border: 1px solid <<colour background>>; + color: <<colour background>>; +} + .tc-plugin-info-chunk { margin: 2px; } @@ -2601,23 +2610,23 @@ a.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg { } .tc-plugin-info-chunk .tc-plugin-info-stability-stable { - border: 1px solid green; - color: green; + border: 1px solid <<colour stability-stable>>; + color: <<colour stability-stable>>; } .tc-plugin-info-chunk .tc-plugin-info-stability-experimental { - border: 1px solid #c07c00; - color: #c07c00; + border: 1px solid <<colour stability-experimental>>; + color: <<colour stability-experimental>>; } .tc-plugin-info-chunk .tc-plugin-info-stability-deprecated { - border: 1px solid red; - color: red; + border: 1px solid <<colour stability-deprecated>>; + color: <<colour stability-deprecated>>; } .tc-plugin-info-chunk .tc-plugin-info-stability-legacy { - border: 1px solid blue; - color: blue; + border: 1px solid <<colour stability-legacy>>; + color: <<colour stability-legacy>>; } .tc-plugin-info-chunk.tc-plugin-info-buttons { @@ -3260,11 +3269,6 @@ span.tc-translink > a:first-child { border-radius: 6px; } -.tc-tiddler-frame .tc-test-case-wrapper { - margin-left: -0.5em; - margin-right: -0.5em; -} - .tc-test-case-wrapper { background-color: <<colour testcase-accent-level-1>>; } @@ -3293,7 +3297,7 @@ span.tc-translink > a:first-child { display: inline-block; line-height: 0; border-radius: 1em; - vertical-align: bottom; + vertical-align: text-bottom; margin-right: 0.25em; } @@ -3310,6 +3314,12 @@ span.tc-translink > a:first-child { height: 0.5em; } +.tc-test-case-header > h2 { + background: <<colour background>>; + border-radius: 4px; + padding: 0.25em; +} + .tc-test-case-header > h2, .tc-test-case-source > pre { margin: 0; @@ -3319,6 +3329,18 @@ span.tc-translink > a:first-child { font-style: normal; } +.tc-test-case-toolbar { + float: right; +} + +.tc-test-case-toolbar svg { + fill: <<colour tiddler-controls-foreground>>; +} + +.tc-test-case-toolbar .tc-drop-down { + font-size: 0.8em; +} + .tc-test-case-result-fail { border: 1px solid <<colour foreground>>; background-color: <<colour background>>; @@ -3362,10 +3384,14 @@ span.tc-translink > a:first-child { } .tc-test-case-source .tc-tab-content { - background: <<colour background>>; + background: inherit; margin: 0; } +.tc-test-case-source .tc-tab-content .tc-field-table { + background: <<colour background>>; +} + .tc-test-case-source .tc-field-table { width: 100%; } @@ -3386,11 +3412,16 @@ span.tc-translink > a:first-child { padding-top: 0; } +.tc-test-case-footer-toolbar { + display: flex; + justify-content: flex-end; +} + .tc-test-case-output { box-shadow: inset 2px 2px 10px 0px <<colour muted-foreground>>; background: <<colour background>>; border-radius: 4px; - border: 1px solid <<colour foreground>>; + border: 1px solid <<colour muted-foreground>>; flex: 1 0 49%; min-width: 250px; padding: 0.25em 1em;