1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-27 03:57:21 +00:00

merge master

This commit is contained in:
pmario 2024-08-26 17:00:41 +02:00
commit c7c895b0de
138 changed files with 980 additions and 274 deletions

View File

@ -231,7 +231,10 @@ rules:
prefer-spread: 'off'
prefer-template: 'off'
quote-props: 'off'
quotes: 'off'
quotes:
- error
- double
- avoidEscape: true
radix: 'off'
require-atomic-updates: error
require-await: error

View File

@ -21,7 +21,7 @@ body:
attributes:
label: To Reproduce
description: "Steps to reproduce the behavior:"
value: |
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
@ -41,7 +41,7 @@ body:
attributes:
label: TiddlyWiki Configuration
description: please complete the following information
value: |
placeholder: |
- Version [e.g. v5.1.24]
- Saving mechanism [e.g. Node.js, TiddlyDesktop, TiddlyHost etc]
- Plugins installed [e.g. Freelinks, TiddlyMap]

View File

@ -15,3 +15,11 @@ node $TW5_BUILD_TIDDLYWIKI \
--output . \
--build readmes \
|| exit 1
# tw.org readmes
node $TW5_BUILD_TIDDLYWIKI \
editions/tw.org \
--verbose \
--output . \
--build readmes \
|| exit 1

1
code-of-conduct.md Normal file
View File

@ -0,0 +1 @@
<p>This community exists because TiddlyWiki is more useful when people share and work together.</p><p>This community is a beautiful but fragile thing: a collection of diverse people from all over the planet, united in their interest in the project, and their commitment to helping one another achieve and learn more.</p><p>We try to make the community as broad and welcoming as possible by remembering some basic principles of culture and behaviour.</p><p>These principles guide technical and non-technical decisions, and help contributors and leaders support our project and community.</p><ul><li>We are optimistic and hopeful</li><li>We aim to foster a learning environment that is collaborative and safe for everyone</li><li>We recognise that the motivation for sharing and helping is usually for appreciation, and not financial gain, and so we take care to acknowledge and <strong>thank the people who enrich the community by sharing what they have created</strong></li><li>While we are united in our interest in TiddlyWiki, we differ in every other conceivable way. We choose to focus on what unites us, and <strong>avoid unnecessarily mixing contentious topics like religion and politics</strong></li><li>We treat each other with respect, and start with the assumption that <strong>others are acting in good faith</strong></li><li>We avoid discriminatory language</li><li>We try to use our strength as a community to help others</li><li>We avoid responding when angry or upset because we try to de-escalate conflict</li><li>We make sure we critique ideas, not people</li><li>When we disagree with others we do so graciously, and treat others with dignity and respoect</li><li>We do not tolerate intolerance towards others</li><li>We seek first to understand others, and then to be understood</li><li>We have fun</li></ul><p>Our discussions are in English. It is not the first language of many people in the community, nor do we all share the same cultural background and reference points. So we take care to use language that is clear and unambigous, and avoid cultural references or jokes that will not be widely understood.</p><p>It is not acceptable to make jokes or other comments that discriminate by race, gender, sexuality, or other protected characteristic.</p><p>As an inclusive community, we are committed to making sure that TiddlyWiki is an accessible tool that understands the needs of people with disabilities.</p>

View File

@ -198,6 +198,12 @@ Settings/TitleLinks/Yes/Description: Display tiddler titles as links
Settings/MissingLinks/Caption: Wiki Links
Settings/MissingLinks/Hint: Choose whether to link to tiddlers that do not exist yet
Settings/MissingLinks/Description: Enable links to missing tiddlers
SocialCard/Caption: Social Media Card
SocialCard/Domain/Prompt: Domain name to display for the link (for example, ''tiddlywiki.com'')
SocialCard/Hint: This information is used by social and messaging services to display a preview card for links to this TiddlyWiki when hosted online
SocialCard/PreviewUrl/Prompt: Full URL to preview image for this TiddlyWiki
SocialCard/PreviewUrl/Preview: Preview image:
SocialCard/Url/Prompt: Full URL of this TiddlyWiki
StoryTiddler/Caption: Story Tiddler
StoryTiddler/Hint: This rule cascade is used to dynamically choose the template for displaying a tiddler in the story river.
StoryView/Caption: Story View
@ -235,3 +241,7 @@ ViewTemplateBody/Caption: View Template Body
ViewTemplateBody/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the body of a tiddler.
ViewTemplateTitle/Caption: View Template Title
ViewTemplateTitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the title of a tiddler.
ViewTemplateSubtitle/Caption: View Template Subtitle
ViewTemplateSubtitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the subtitle of a tiddler.
ViewTemplateTags/Caption: View Template Tags
ViewTemplateTags/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the tags area of a tiddler.

View File

@ -1,5 +1,5 @@
title: $:/language/Docs/Types/text/vnd.tiddlywiki-multiple
description: TiddlyWiki 5 compound tiddler
description: Compound tiddler
name: text/vnd.tiddlywiki-multiple
group: Developer
group-sort: 2

View File

@ -45,7 +45,9 @@ Render individual tiddlers and save the results to the specified files
variableList = variableList.slice(2);
}
$tw.utils.each(tiddlers,function(title) {
var filepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);
var filenameResults = wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]));
if(filenameResults.length > 0) {
var filepath = path.resolve(self.commander.outputPath,filenameResults[0]);
if(self.commander.verbose) {
console.log("Rendering \"" + title + "\" to \"" + filepath + "\"");
}
@ -56,6 +58,9 @@ Render individual tiddlers and save the results to the specified files
var text = type === "text/html" ? container.innerHTML : container.textContent;
$tw.utils.createFileDirectories(filepath);
fs.writeFileSync(filepath,text,"utf8");
} else {
console.log("Not rendering \"" + title + "\" because the filename filter returned an empty result");
}
});
return null;
};

View File

@ -93,11 +93,12 @@ var processRow = function(prevColumns) {
}
// Check whether this is a heading cell
var cell;
var start = this.parser.pos;
if(chr === "!") {
this.parser.pos++;
cell = {type: "element", tag: "th", children: []};
cell = {type: "element", tag: "th", start: start, children: []};
} else {
cell = {type: "element", tag: "td", children: []};
cell = {type: "element", tag: "td", start: start, children: []};
}
tree.push(cell);
// Record information about this cell
@ -121,6 +122,7 @@ var processRow = function(prevColumns) {
}
// Move back to the closing `|`
this.parser.pos--;
cell.end = this.parser.pos;
}
col++;
cellRegExp.lastIndex = this.parser.pos;
@ -169,12 +171,13 @@ exports.parse = function() {
rowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});
} else {
// Create the row
var theRow = {type: "element", tag: "tr", children: []};
var theRow = {type: "element", tag: "tr", children: [], start: rowMatch.index};
$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? "oddRow" : "evenRow");
rowContainer.children.push(theRow);
// Process the row
theRow.children = processRow.call(this,prevColumns);
this.parser.pos = rowMatch.index + rowMatch[0].length;
theRow.end = this.parser.pos;
// Increment the row count
rowCount++;
}

View File

@ -12,7 +12,7 @@ Upgrader module that suppresses certain system tiddlers that shouldn't be import
/*global $tw: false */
"use strict";
var DONT_IMPORT_LIST = ["$:/Import"],
var DONT_IMPORT_LIST = ["$:/Import", "$:/build"],
UNSELECT_PREFIX_LIST = ["$:/temp/","$:/state/","$:/StoryList","$:/HistoryList"],
WARN_IMPORT_PREFIX_LIST = ["$:/core/modules/"];

View File

@ -29,8 +29,11 @@ exports.getEditionInfo = function() {
for(var entryIndex=0; entryIndex<entries.length; entryIndex++) {
var entry = entries[entryIndex];
// Check if directories have a valid tiddlywiki.info
if(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {
var info = $tw.utils.parseJSONSafe(fs.readFileSync(path.resolve(editionPath,entry,"tiddlywiki.info"),"utf8"),null);
// Check if the entry is a hidden directory
if((entry.charAt(0) !== ".") && !editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {
var file=path.resolve(editionPath,entry,"tiddlywiki.info");
if(fs.existsSync(file)) {
var info = $tw.utils.parseJSONSafe(fs.readFileSync(file,"utf8"),null);
if(info) {
editionInfo[entry] = info;
}
@ -38,6 +41,7 @@ exports.getEditionInfo = function() {
}
}
}
}
return editionInfo;
};

View File

@ -924,7 +924,7 @@ exports.transliterate = function(str) {
};
exports.transliterateToSafeASCII = function(str) {
return str.replace(/[^\x00-\x7F]/g,function(ch) {
return str.replace(/[^\x20-\x7F]/g,function(ch) {
return exports.transliterationPairs[ch] || ""
});
};

View File

@ -123,7 +123,6 @@ DataWidget.prototype.computeDataTiddlerValues = function() {
}
} else {
// Apply the item fields to each of the tiddlers
delete item.title; // Do not overwrite the title
if(Object.keys(item).length > 0) {
$tw.utils.each(tiddlers,function(tiddler,index) {
tiddlers[index] = new $tw.Tiddler(tiddler,item);

View File

@ -33,6 +33,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
footnote-target-background: #ecf2ff
foreground: #333333
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -33,6 +33,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
footnote-target-background: #ecf2ff
foreground: #333353
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -33,6 +33,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
footnote-target-background: #ecf2ff
foreground: #333333
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -1,7 +1,7 @@
title: $:/palettes/ContrastLight
name: Contrast (Light)
color-scheme: light
description: High contrast and unambiguous (light version)
title: $:/palettes/ContrastDark
name: Contrast (Dark)
color-scheme: dark
description: High contrast and unambiguous (dark version)
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
@ -9,7 +9,7 @@ alert-background: #f00
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #800
background: #fff
background: #000
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour background>>
button-foreground: <<colour foreground>>
@ -33,7 +33,8 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #00a
external-link-foreground: #00e
foreground: #000
footnote-target-background: #4c4c4c
foreground: #fff
highlight-background: #ffff00
highlight-foreground: #000000
message-background: <<colour foreground>>
@ -82,8 +83,8 @@ tab-foreground: <<colour background>>
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #000
tag-foreground: #fff
tag-background: #fff
tag-foreground: #000
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd

View File

@ -1,7 +1,7 @@
title: $:/palettes/ContrastDark
name: Contrast (Dark)
color-scheme: dark
description: High contrast and unambiguous (dark version)
title: $:/palettes/ContrastLight
name: Contrast (Light)
color-scheme: light
description: High contrast and unambiguous (light version)
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
@ -9,7 +9,7 @@ alert-background: #f00
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #800
background: #000
background: #fff
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour background>>
button-foreground: <<colour foreground>>
@ -33,7 +33,8 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #00a
external-link-foreground: #00e
foreground: #fff
footnote-target-background: #e5e5e5
foreground: #000
highlight-background: #ffff00
highlight-foreground: #000000
message-background: <<colour foreground>>
@ -82,8 +83,8 @@ tab-foreground: <<colour background>>
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #fff
tag-foreground: #000
tag-background: #000
tag-foreground: #fff
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd

View File

@ -31,6 +31,7 @@ external-link-background: transparent
external-link-foreground-hover:
external-link-foreground-visited: #BF5AF2
external-link-foreground: #32D74B
footnote-target-background: #747474
foreground: #FFFFFF
highlight-background: #ffff78
highlight-foreground: #000000

View File

@ -35,6 +35,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
footnote-target-background: #ecf2ff
foreground: #333333
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -39,6 +39,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #313163
external-link-foreground: #555592
footnote-target-background: #fff7d9
foreground: #2D2A23
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -40,6 +40,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #d3869b
external-link-foreground: #8ec07c
footnote-target-background: #665c54
foreground: #fbf1c7
highlight-background: #ffff79
highlight-foreground: #000000

View File

@ -40,6 +40,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #5E81AC
external-link-foreground: #8FBCBB
footnote-target-background: #2E3440
foreground: #d8dee9
highlight-background: #ffff78
highlight-foreground: #000000

View File

@ -33,6 +33,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
footnote-target-background: #ecf2ff
foreground: #333333
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -131,6 +131,7 @@ external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
footnote-target-background: #ded8c5
highlight-background: #ffff00
highlight-foreground: #000000
message-border: #cfd6e6
@ -141,6 +142,10 @@ sidebar-controls-foreground-hover:
sidebar-muted-foreground-hover:
sidebar-tab-background: #ded8c5
sidebar-tiddler-link-foreground-hover:
stability-deprecated: <<colour red>>
stability-experimental: <<colour yellow>>
stability-legacy: <<colour blue>>
stability-stable: <<colour green>>
static-alert-foreground: #aaaaaa
tab-border: #cccccc
modal-footer-border: <<colour tab-border>>

View File

@ -34,6 +34,7 @@ external-link-background-visited: inherit
external-link-foreground: #268bd2
external-link-foreground-hover:
external-link-foreground-visited: #268bd2
footnote-target-background: #073642
foreground: #839496
highlight-background: #ffff78
highlight-foreground: #000000

View File

@ -34,6 +34,7 @@ external-link-background-visited: inherit
external-link-foreground: #268bd2
external-link-foreground-hover: inherit
external-link-foreground-visited: #268bd2
footnote-target-background: #eee8d5
foreground: #657b83
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -33,6 +33,7 @@ external-link-background: transparent
external-link-foreground-hover:
external-link-foreground-visited:
external-link-foreground:
footnote-target-background: #ececec
foreground: rgba(0, 0, 0, 0.87)
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -33,6 +33,7 @@ external-link-background: transparent
external-link-foreground-hover:
external-link-foreground-visited: #7c318c
external-link-foreground: #9e3eb3
footnote-target-background: #494949
foreground: rgba(255, 255, 255, 0.7)
highlight-background: #ffff78
highlight-foreground: #000000

View File

@ -42,6 +42,7 @@ external-link-background-visited: inherit
external-link-foreground: rgb(179, 179, 255)
external-link-foreground-hover: inherit
external-link-foreground-visited: rgb(153, 153, 255)
footnote-target-background: <<colour tag-foreground>>
foreground: rgb(179, 179, 179)
highlight-background: #ffff78
highlight-foreground: #000000

View File

@ -41,6 +41,7 @@ external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
footnote-target-background: #ecf2ff
foreground: #333333
highlight-background: #ffff00
highlight-foreground: #000000

View File

@ -0,0 +1,38 @@
title: $:/core/templates/social-metadata
tags: $:/tags/RawMarkupWikified
\procedure meta-plain(name,source,name-attribute:"name")
\whitespace trim
<%if [<source>has[text]] %>
&lt;meta <$text text=<<name-attribute>>/>="<$text text=<<name>>/>" content="<$text text={{{ [<source>get[text]encodehtml[]] }}}/>"&gt;
<$text text={{{ [charcode[10]] }}}/>
<%endif%>
\end meta-plain
\procedure meta-wikified(name,source,name-attribute:"name")
\whitespace trim
<%if [<source>has[text]] %>
<$wikify name="html" text={{{ [<source>get[text]] }}} output="text">
&lt;meta <$text text=<<name-attribute>>/>="<$text text=<<name>>/>" content="<$text text={{{ [<html>encodehtml[]] }}}/>"&gt;
<$text text={{{ [charcode[10]] }}}/>
</$wikify>
<%endif%>
\end meta-wikified
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock conditional commentinline commentblock
<<meta-wikified "description" "$:/SiteSubtitle">>
<!-- Facebook Meta Tags -->
<<meta-plain "og:url" "$:/SiteUrl" "property">>
<<meta-plain "og:type" "website" "property">>
<<meta-wikified "og:title" "$:/SiteTitle" "property">>
<<meta-wikified "og:description" "$:/SiteSubtitle" "property">>
<<meta-plain "og:image" "$:/SitePreviewUrl" "property">>
<!-- Twitter Meta Tags -->
<<meta-plain "twitter:card" "summary_large_image">>
<<meta-plain "twitter:domain" "$:/SiteDomain" "property">>
<<meta-plain "twitter:url" "$:/SiteUrl" "property">>
<<meta-wikified "twitter:title" "$:/SiteTitle">>
<<meta-wikified "twitter:description" "$:/SiteSubtitle">>
<<meta-plain "twitter:image" "$:/SitePreviewUrl">>

View File

@ -39,6 +39,7 @@ caption: {{$:/language/Search/Standard/Caption}}
</$keyboard>
</$keyboard>
</$keyboard>
&#32;
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
<$button class="tc-btn-invisible">
<<cancel-search-actions>>

View File

@ -25,7 +25,7 @@ caption: {{$:/language/ControlPanel/Basics/Caption}}
|<$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> |
|<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> |
|<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> |
|<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> |
|<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input" type="number"/> |
|<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit class="tc-edit-texteditor" tiddler="$:/DefaultTiddlers" autoHeight="yes"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
|<$link to="$:/language/DefaultNewTiddlerTitle"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler="$:/language/DefaultNewTiddlerTitle" default="" tag="input"/> |
|<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> |

View File

@ -0,0 +1,9 @@
title: $:/core/ui/ControlPanel/ViewTemplateSubtitle
tags: $:/tags/ControlPanel/Cascades
caption: {{$:/language/ControlPanel/ViewTemplateSubtitle/Caption}}
\define lingo-base() $:/language/ControlPanel/ViewTemplateSubtitle/
<<lingo Hint>>
{{$:/tags/ViewTemplateSubtitleFilter||$:/snippets/ListTaggedCascade}}

View File

@ -0,0 +1,9 @@
title: $:/core/ui/ControlPanel/ViewTemplateTags
tags: $:/tags/ControlPanel/Cascades
caption: {{$:/language/ControlPanel/ViewTemplateTags/Caption}}
\define lingo-base() $:/language/ControlPanel/ViewTemplateTags/
<<lingo Hint>>
{{$:/tags/ViewTemplateTagsFilter||$:/snippets/ListTaggedCascade}}

View File

@ -13,4 +13,4 @@ caption: {{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}
|<<lingo Branch>> |<$edit-text tiddler="$:/GitHub/Branch" default="main" tag="input"/> |
|<<lingo Path>> |<$edit-text tiddler="$:/GitHub/Path" default="" tag="input"/> |
|<<lingo Filename>> |<$edit-text tiddler="$:/GitHub/Filename" default="" tag="input"/> |
|<<lingo ServerURL>> |<$edit-text tiddler="$:/GitHub/ServerURL" default="https://api.github.com" tag="input"/> |
|<<lingo ServerURL>> |<$edit-text tiddler="$:/GitHub/ServerURL" default="https://api.github.com" tag="input" type="url"/> |

View File

@ -13,4 +13,4 @@ caption: {{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}
|<<lingo Branch>> |<$edit-text tiddler="$:/GitLab/Branch" default="master" tag="input"/> |
|<<lingo Path>> |<$edit-text tiddler="$:/GitLab/Path" default="" tag="input"/> |
|<<lingo Filename>> |<$edit-text tiddler="$:/GitLab/Filename" default="" tag="input"/> |
|<<lingo ServerURL>> |<$edit-text tiddler="$:/GitLab/ServerURL" default="https://gitlab.com/api/v4" tag="input"/> |
|<<lingo ServerURL>> |<$edit-text tiddler="$:/GitLab/ServerURL" default="https://gitlab.com/api/v4" tag="input" type="url"/> |

View File

@ -34,7 +34,7 @@ http://$(userName)$.tiddlyspot.com/$path$/
''<<lingo Advanced/Heading>>''
|<<lingo ServerURL>> |<$edit-text tiddler="$:/UploadURL" default="" tag="input"/> |
|<<lingo ServerURL>> |<$edit-text tiddler="$:/UploadURL" default="" tag="input" type="url"/> |
|<<lingo Filename>> |<$edit-text tiddler="$:/UploadFilename" default="index.html" tag="input"/> |
|<<lingo UploadDir>> |<$edit-text tiddler="$:/UploadDir" default="." tag="input"/> |
|<<lingo BackupDir>> |<$edit-text tiddler="$:/UploadBackupDir" default="." tag="input"/> |

View File

@ -13,4 +13,4 @@ caption: {{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}
|<<lingo Branch>> |<$edit-text tiddler="$:/Gitea/Branch" default="master" tag="input"/> |
|<<lingo Path>> |<$edit-text tiddler="$:/Gitea/Path" default="" tag="input"/> |
|<<lingo Filename>> |<$edit-text tiddler="$:/Gitea/Filename" default="" tag="input"/> |
|<<lingo ServerURL>> |<$edit-text tiddler="$:/Gitea/ServerURL" default="https://gitea/api/v1" tag="input"/> |
|<<lingo ServerURL>> |<$edit-text tiddler="$:/Gitea/ServerURL" default="https://gitea/api/v1" tag="input" type="url"/> |

View File

@ -0,0 +1,22 @@
title: $:/core/ui/ControlPanel/SocialCard
tags: $:/tags/ControlPanel/Advanced
caption: {{$:/language/ControlPanel/SocialCard/Caption}}
\define lingo-base() $:/language/ControlPanel/
<<lingo SocialCard/Hint>>
|<$link to="$:/SiteTitle"><<lingo Basics/Title/Prompt>></$link> |<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> |
|<$link to="$:/SiteSubtitle"><<lingo Basics/Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> |
|<$link to="$:/SiteDomain"><<lingo SocialCard/Domain/Prompt>></$link> |<$edit-text tiddler="$:/SiteDomain" default="" tag="input" type="url"/> |
|<$link to="$:/SiteUrl"><<lingo SocialCard/Url/Prompt>></$link> |<$edit-text tiddler="$:/SiteUrl" default="" tag="input" type="url"/> |
|<$link to="$:/SitePreviewUrl"><<lingo SocialCard/PreviewUrl/Prompt>></$link> |<$edit-text tiddler="$:/SitePreviewUrl" default="" tag="input" type="url"/> |
<%if [[$:/SitePreviewUrl]get[text]else[]!is[blank]] %>
<div>
<div>
<<lingo SocialCard/PreviewUrl/Preview>>
</div>
<img src={{$:/SitePreviewUrl}}/>
</div>
<%endif%>

View File

@ -55,7 +55,7 @@ tags: $:/tags/SideBarSegment
<$macrocall $name="keyboard-driven-input" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>>
selectionStateTitle=<<searchListState>> refreshTitle="$:/temp/search/refresh" type="search"
tag="input" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify "$:/state/popup/search-dropdown">>
class="tc-popup-handle" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>>
class="tc-tiny-gap-right tc-popup-handle" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>>
inputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> cancelPopups="yes"
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]"/>
</form>

View File

@ -3,7 +3,39 @@ code-body: yes
\whitespace trim
\function tf.state() [<qualify "$:/state/testcase">]
\function tf.state() "$:/state/testcase"
\procedure linkcatcherActions()
<%if [<navigateTo>has[title]] %>
<$action-setfield $tiddler=<<tf.state>> text=<<navigateTo>>/>
<%endif%>
\end
\procedure testcase-header()
<div class="tc-test-case-header">
<h2>
<$genesis $type={{{ [<linkTarget>!match[]then[$link]else[span]] }}} to=<<testcaseTiddler>>>
<%if [<testResult>!match[]] %>
<span class={{{ tc-test-case-result-icon
[<testResult>!match[fail]then[tc-test-case-result-icon-pass]]
[<testResult>match[fail]then[tc-test-case-result-icon-fail]]
+[join[ ]] }}}
>
<%if [<testResult>!match[fail]] %>
{{$:/core/images/done-button}}
<%else%>
{{$:/core/images/close-button}}
<%endif%>
</span>
<%endif%>
<$view tiddler="Description" mode="inline"/>
</$genesis>
<span class="tc-test-case-toolbar">
<<testcase-toolbar>>
</span>
</h2>
</div>
\end
\procedure testcase-toolbar()
<$button popup=`$(tf.state)$-more`
@ -31,28 +63,6 @@ code-body: yes
</$let>
\end
\procedure testcase-header()
<div class="tc-test-case-header">
<h2>
<$genesis $type={{{ [<linkTarget>!match[]then[$link]else[span]] }}} to=<<testcaseTiddler>>>
<%if [<testResult>!match[]] %>
<span class={{{ tc-test-case-result-icon [<testResult>!match[fail]then[tc-test-case-result-icon-pass]] [<testResult>match[fail]then[tc-test-case-result-icon-fail]] +[join[ ]] }}}>
<%if [<testResult>!match[fail]] %>
{{$:/core/images/done-button}}
<%else%>
{{$:/core/images/close-button}}
<%endif%>
</span>
<%endif%>
<$view tiddler="Description" mode="inline"/>
</$genesis>
<span class="tc-test-case-toolbar">
<<testcase-toolbar>>
</span>
</h2>
</div>
\end
\procedure testcase-narrative()
<div class="tc-test-case-narrative">
<$transclude $tiddler="Narrative" $mode="block"/>
@ -70,63 +80,59 @@ code-body: yes
</div>
\end
\procedure testcase-output-wikified()
<$linkcatcher actions=<<linkcatcherActions>>>
<$tiddler tiddler="Output">
<$transclude $tiddler="Output" $mode="block"/>
</$tiddler>
</$linkcatcher>
\end
\procedure testcase-output()
<div class="tc-test-case-output">
<%if [<displayFormat>!match[]else[wikitext]match[plaintext]] %>
<pre><$view tiddler="Output" format="plainwikified" mode="block"/></pre>
<%else%>
<$tiddler tiddler="Output">
<$transclude $tiddler="Output" $mode="block"/>
</$tiddler>
<<testcase-output-wikified>>
<%endif%>
</div>
\end
<!-- Create a tabbed story-river -->
\procedure testcase-tabbed-story()
<div class={{{ [[tc-tab-set]addsuffix[ ]addsuffix<__class__>] }}}>
<div class={{{ [[tc-tab-buttons]addsuffix[ ]addsuffix<__class__>] }}}>
<$list filter="[all[tiddlers]] [enlist{$:/StoryList!!list}] +[sort[]] Output +[putfirst[]] -[prefix<tf.state>] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[[$:/temp/testcase/draft-title]] -Description -Narrative -[has[plugin-type]]"
variable="currentTab"
storyview="pop"
>
<$set name="save-currentTiddler" value=<<currentTiddler>> >
<$tiddler tiddler=<<currentTab>>>
<$button
to=<<currentTab>>
class={{{ [[$:/HistoryList]has[current-tiddler]] :then[{$:/HistoryList!!current-tiddler}match<currentTab>then[tc-tab-selected]else[]] :else[<currentTiddler>match[Output]then[tc-tab-selected]else[]] }}}
tooltip={{{[<currentTab>get[tooltip]]}}}
role="switch"
data-tab-title=<<currentTab>>
>
<$tiddler tiddler=<<save-currentTiddler>>>
<$set name="tv-wikilinks" value="no">
<$transclude tiddler=<<buttonTemplate>> mode="inline">
<$transclude tiddler=<<currentTab>> field="caption">
<$macrocall $name="currentTab" $type="text/plain" $output="text/plain"/>
</$transclude>
</$transclude>
</$set>
</$tiddler>
</$button>
</$tiddler>
</$set>
</$list>
</div>
</div>
<div class="tc-tab-divider "></div>
<div class="tc-tab-content">
{{||$:/core/ui/testcases/DefaultTemplate/TabbedStory}}
\procedure testcase-tabsList()
[all[tiddlers]sort[]] Output +[putfirst[]]
-Description
-Narrative
-[[$:/temp/testcase/draft-title]]
-[has[plugin-type]]
-[prefix<tf.state>]
-[prefix[$:/state/popup/export]]
-[prefix[$:/HistoryList]]
-[prefix[$:/StoryList]]
\end
\procedure testcase-source()
<div class="tc-test-case-source">
<$macrocall $name="tabs"
tabsList=<<testcase-tabsList>>
explicitState=<<tf.state>>
default="Output"
template="$:/core/ui/testcases/DefaultTemplate/SourceTabs"
/>
</div>
\end
\procedure testcase-tabs()
<$macrocall $name="tabs" tabsList="[all[tiddlers]sort[]] -[prefix<tf.state>] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[[$:/temp/testcase/draft-title]] -Description -Narrative -Output Output +[putfirst[]] -[has[plugin-type]]" state=<<tf.state>> default="Output" template="$:/core/ui/testcases/DefaultTemplate/SourceTabs"/>
\procedure testcase-panes()
<div class="tc-test-case-panes">
<<testcase-source>>
<div class="tc-test-case-divider"></div>
<<testcase-output>>
</div>
\end
\procedure testcase-body()
<div class="tc-test-case-wrapper">
<<testcase-header>>
<$let testcase-source-state = <<tf.state>>>
<$navigator story="$:/StoryList" history="$:/HistoryList">
<%if [[Narrative]is[tiddler]] %>
<<testcase-narrative>>
@ -134,16 +140,9 @@ code-body: yes
<%if [<testResult>match[fail]] %>
<<testcase-fail>>
<%endif%>
<div class="tc-test-case-panes">
<div class="tc-test-case-source">
<<testcase-tabs>>
<<testcase-tabbed-story>>
</div>
<div class="tc-test-case-divider"></div>
<<testcase-output>>
</div>
<<testcase-panes>>
</$navigator>
</$let>
</div>
\end

View File

@ -2,14 +2,17 @@ title: $:/core/ui/testcases/DefaultTemplate/SourceTabs
\whitespace trim
\procedure testcaseNewTitle() $:/temp/testcase/draft-title
\procedure saveActions()
<$action-log/>
<$action-setfield $tiddler=<<currentTab>> $field="draft.title" $value=<<newTitle>>/>
<$action-sendmessage $message="tm-save-tiddler" $param=<<title>> />
<$action-navigate $to=<<navTitle>> $scroll="no"/>
<$action-setfield $tiddler=<<testcase-source-state>> text=<<newTitle>>/>
<$action-deletetiddler $tiddler=<<testcaseNewTitle>>/>
\end
\procedure saveButton(title, navTitle)
<$button class="tc-btn-invisible tc-test-case-save-button tc-small-gap-left" actions=<<saveActions>> >
\procedure saveButton(title, newTitle)
<$button class="tc-btn-invisible tc-test-case-save-button tc-small-gap-left" actions=<<saveActions>> disabled={{{ [<testcaseNewTitle>!has[text]then[yes]] }}}>
{{$:/core/images/done-button}}
</$button>
\end
@ -24,9 +27,9 @@ title: $:/core/ui/testcases/DefaultTemplate/SourceTabs
<$text text=<<fieldName>>/>
</td>
<td>
<%if [<fieldName>match[draft.title]] :filter[<currentTab>has[draft.of]] %>
<$edit class="tc-edit-texteditor tc-max-width-80" tiddler=<<currentTab>> field=<<fieldName>>/>
<$macrocall $name="saveButton" navTitle={{{ [<currentTab>get[draft.title]] }}} title=<<currentTab>>/>
<%if [<fieldName>match[draft.title]] %>
<$edit-text class="tc-edit-texteditor tc-max-width-80" tiddler=<<testcaseNewTitle>> focus="yes" tag="input"/>
<$macrocall $name="saveButton" newTitle={{{ [<testcaseNewTitle>get[text]] }}} title=<<currentTab>>/>
<%else%>
<$view tiddler=<<currentTab>> field=<<fieldName>>/>
<%endif%>

View File

@ -1,4 +1,4 @@
title: $:/core/ui/testcases/actions/Export
tags: $:/tags/TestCase/Actions
<$macrocall $name="exportButton" exportFilter="[all[tiddlers]sort[]] -[prefix[$:/state/]] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[[$:/temp/testcase/draft-title]] -Description -Narrative -ExpectedResult -Output Output +[putfirst[]] -[has[plugin-type]]" lingoBase="$:/language/Buttons/ExportTiddlers/"/>
<$macrocall $name="exportButton" exportFilter="[all[tiddlers]sort[]] -[prefix[$:/state/]] -Description -Narrative -ExpectedResult -[has[plugin-type]]" lingoBase="$:/language/Buttons/ExportTiddlers/"/>

View File

@ -2,10 +2,4 @@ title: $:/core/ui/ViewTemplate/subtitle
tags: $:/tags/ViewTemplate
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-subtitle">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Subtitle]!has[draft.of]]" variable="subtitleTiddler">
<$transclude tiddler=<<subtitleTiddler>> mode="inline"/><$list-join>&nbsp;</$list-join>
</$list>
</div>
</$reveal>
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateSubtitleFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/subtitle/default]] }}} />

View File

@ -0,0 +1,10 @@
title: $:/core/ui/ViewTemplate/subtitle/default
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-subtitle">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Subtitle]!has[draft.of]]" variable="subtitleTiddler">
<$transclude tiddler=<<subtitleTiddler>> mode="inline"/><$list-join>&nbsp;</$list-join>
</$list>
</div>
</$reveal>

View File

@ -2,6 +2,4 @@ title: $:/core/ui/ViewTemplate/tags
tags: $:/tags/ViewTemplate
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-tags-wrapper"><$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/></div>
</$reveal>
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateTagsFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/tags/default]] }}} />

View File

@ -0,0 +1,11 @@
title: $:/core/ui/ViewTemplate/tags/default
\whitespace trim
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-tags-wrapper">
<$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Tags]!has[draft.of]]">
<$transclude mode="inline"/>
</$list>
</div>
</$reveal>

View File

@ -0,0 +1,4 @@
title: $:/config/ViewTemplateSubtitleFilters/
tags: $:/tags/ViewTemplateSubtitleFilter
default: [[$:/core/ui/ViewTemplate/subtitle/default]]

View File

@ -0,0 +1,4 @@
title: $:/config/ViewTemplateTagsFilters/
tags: $:/tags/ViewTemplateTagsFilter
default: [[$:/core/ui/ViewTemplate/tags/default]]

View File

@ -1,2 +1,2 @@
title: $:/tags/ViewTemplateBodyFilter
list: $:/config/ViewTemplateBodyFilters/testcase $:/config/ViewTemplateBodyFilters/hide-body $:/config/ViewTemplateBodyFilters/code-body $:/config/ViewTemplateBodyFilters/stylesheet $:/config/ViewTemplateBodyFilters/core-ui-advanced-search $:/config/ViewTemplateBodyFilters/core-ui-tags $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/import $:/config/ViewTemplateBodyFilters/plugin $:/config/ViewTemplateBodyFilters/default
list: $:/config/ViewTemplateBodyFilters/testcase $:/config/ViewTemplateBodyFilters/hide-body $:/config/ViewTemplateBodyFilters/code-body $:/config/ViewTemplateBodyFilters/stylesheet $:/config/ViewTemplateBodyFilters/core-ui-advanced-search $:/config/ViewTemplateBodyFilters/core-ui-tags $:/config/ViewTemplateBodyFilters/import $:/config/ViewTemplateBodyFilters/plugin $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/default

View File

@ -57,7 +57,8 @@
"sl-SI",
"sv-SE",
"zh-Hans",
"zh-Hant"
"zh-Hant",
"zh-HK"
],
"themes": [
"tiddlywiki/centralised",

View File

@ -15,8 +15,8 @@ Import the configuration tiddler: $:/config/LocalPluginLibrary to your "test wik
The following commands will create the library files and start a test server at http://localhost:8888
```
cd /your/path/to/TiddlyWiki5/editions/pluginlibrary
tiddlywiki --build test-server
cd /your/path/to/TiddlyWiki5
node ./tiddlywiki.js ./editions/pluginlibrary --build test-server
```
!! Test the Library with a Single File Wiki

View File

@ -11,7 +11,7 @@
],
"build": {
"test-server": [
"--output", "./files/local/library/tmp",
"--output", "./editions/pluginlibrary/files/local/library/tmp",
"--build", "library",
"--listen", "port=8888"
],

View File

@ -0,0 +1,23 @@
title: Data/ImportCustomTitle
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
description: Importing a payload tiddler and overwriting the title
title: Description
text: Importing a payload tiddler and overwriting the title
+
title: Output
\whitespace trim
<$testcase template="$:/core/ui/testcases/RawJSONTemplate">
<$data $tiddler="HelloThere" title="RealTitle"/>
</$testcase>
+
title: HelloThere
tags: Definitions
This is the tiddler HelloThere
+
title: ExpectedResult
<p><div><div>[{"title":"RealTitle","tags":"Definitions","text":"This is the tiddler HelloThere"}]</div></div></p>

View File

@ -0,0 +1,54 @@
title: ReservedWikiText
description: Verify that reserved wikitext constructions are not parsed
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Narrative
Verifies that certain wikitext constructions that are reserved for use by other tools are not parsed by TiddlyWiki.
+
title: TestTiddler
{%%}
(==)
{% %}
(= =)
{% something %}
(= something =)
Inline {% something %} substitution
Inline (= something =) substitution
Prefix-{%
Prefix-(=
%}-Postfix
=)-Postfix
{%
(=
%}
=)
+
title: Output
<$wikify name="parsetree" text={{TestTiddler}} output="parsetree">
<$text text={{{ [<parsetree>jsonget[0],[children],[0],[text]] }}}/>
</$wikify>
+
title: ExpectedResult
<p>
{%%}
(==)
{% %}
(= =)
{% something %}
(= something =)
Inline {% something %} substitution
Inline (= something =) substitution
Prefix-{%
Prefix-(=
%}-Postfix
=)-Postfix
{%
(=
%}
=)
</p>

View File

@ -324,6 +324,100 @@ describe("WikiText parser tests", function() {
});
it("should parse tables", function() {
let wikitext = `
|!Cell1 |!Cell2 |
|Cell3 |Cell4 |`.trim();
let expectedParseTree = [{
type: 'element',
tag: 'table',
start: 0,
end: 33,
rule: 'table',
children: [{
type: 'element',
tag: 'tbody',
start: 0,
end: 33,
children: [{
type: 'element',
tag: 'tr',
attributes: {
'class': { name: 'class', type: 'string', value: 'evenRow' },
},
orderedAttributes: [
{ name: 'class', type: 'string', value: 'evenRow' },
],
start: 0,
end: 18,
children: [{
type: 'element',
tag: 'th',
attributes: {
'align': { name: 'align', type: 'string', value: 'left' },
},
orderedAttributes: [
{ name: 'align', type: 'string', value: 'left' },
],
start: 1,
end: 8,
children: [{type: 'text', text: 'Cell1', start: 2, end: 7}],
}, {
type: 'element',
tag: 'th',
attributes: {
'align': { name: 'align', type: 'string', value: 'left' },
},
orderedAttributes: [
{ name: 'align', type: 'string', value: 'left' },
],
start: 9,
end: 16,
children: [{type: 'text', text: 'Cell2', start: 10, end: 15}],
}],
}, {
type: 'element',
tag: 'tr',
attributes: {
'class': { name: 'class', type: 'string', value: 'oddRow' },
},
orderedAttributes: [
{ name: 'class', type: 'string', value: 'oddRow' },
],
start: 18,
end: 33,
children: [{
type: 'element',
tag: 'td',
attributes: {
'align': { name: 'align', type: 'string', value: 'left' },
},
orderedAttributes: [
{ name: 'align', type: 'string', value: 'left' },
],
start: 19,
end: 25,
children: [{type: 'text', text: 'Cell3', start: 19, end: 24}],
}, {
type: 'element',
tag: 'td',
attributes: {
'align': { name: 'align', type: 'string', value: 'left' },
},
orderedAttributes: [
{ name: 'align', type: 'string', value: 'left' },
],
start: 26,
end: 32,
children: [{type: 'text', text: 'Cell4', start: 26, end: 31}],
}],
}],
}],
}];
expect(parse(wikitext)).toEqual(expectedParseTree);
});
});
})();

View File

@ -16,6 +16,8 @@
"--setfield","[tag[external-image]]","_canonical_uri","$:/core/templates/canonical-uri-external-image","text/plain",
"--setfield","[tag[external-image]]","text","","text/plain",
"--render","$:/core/save/all","index.html","text/plain"],
"readmes": [
"--render","[[Code of Conduct]]","code-of-conduct.md","text/html"],
"favicon": [
"--savetiddler","$:/favicon.ico","favicon.ico"],
"static": [

View File

@ -15,4 +15,6 @@ In the example above, a comma appears between each occurrence of the `repeated`
Characters in round boxes are literal, i.e. they denote themselves. A name in a rectangular box denotes a further railroad diagram.
The TW [[Filter Syntax]] documentation makes extensive use of railroad diagrams.
The railroad diagrams in ~TiddlyWiki's documentation are generated with the [[Railroad Plugin]].

View File

@ -4,6 +4,6 @@ tags: Definitions
title: Intertwingled Innovations
type: text/vnd.tiddlywiki
Intertwingled Innovations Limited is the company through which [[JeremyRuston]] performs commercial consultancy work helping companies and individuals release the businesss value of TiddlyWiki.
Intertwingled Innovations Limited is the company through which [[JeremyRuston]] performs commercial consultancy work helping companies and individuals release the business value of TiddlyWiki.
See https://intertwingledinnovations.com/ for more information.

View File

@ -6,7 +6,7 @@ type: text/vnd.tiddlywiki
By default, a [[TiddlyWiki on Node.js]] instance using a [[wiki folder|TiddlyWikiFolders]] will create new tiddler files by using the sanitised and disambiguated title as filename. All filepath operations are relative to a `default-tiddler-location` which defaults to the wiki folder's `tiddlers/` directory. This can be overridden by mapping a path in the wiki's tiddlywiki.info file, by using a `default-tiddler-location` property in the `config` object.
The default file extension of `.tid` is used for tiddlers that are missing the `type` field, or for tiddlers of type "text/vnd.tiddlywiki". Tidders of other types are saved according to their MIME types (defined at boot startup).
The default file extension of `.tid` is used for tiddlers that are missing the `type` field, or for tiddlers of type "text/vnd.tiddlywiki". Tiddlers of other types are saved according to their MIME types (defined at boot startup).
Both the logical path (directory and file name) and the file extension can be customised independently by creating optional tiddlers [[$:/config/FileSystemPaths]] and [[$:/config/FileSystemExtensions]].
@ -29,7 +29,7 @@ Logical paths do not include the file-on-disk's extension (see below), and they
<<.note "All paths are relative to the wiki's `default-tiddler-location`.">>
This will store newly created system tiddlers that are not drafts of other tiddlers in `./_system/` (after stripping the `$:/` prefix). Next, all drafts have the path separator characters in their titles replaced by "_" and are stored in `./drafts/`. Then tiddlers tagged [[task]] are stored in a subdirectory `./mytasks/`. Finally, all tidders not tagged with "externalnote" will match the final `[!tag[externalnote]addprefix[wiki/]]` storing these in `./wiki/`. In this example, tiddlers tagged with "externalnote" have been imported using [[tiddlywiki.files Files]] with an "isEditableFile" flag set to true, causing the server to remember their original file path in the $:/config/OriginalTiddlerPaths tiddler.
This will store newly created system tiddlers that are not drafts of other tiddlers in `./_system/` (after stripping the `$:/` prefix). Next, all drafts have the path separator characters in their titles replaced by "_" and are stored in `./drafts/`. Then tiddlers tagged [[task]] are stored in a subdirectory `./mytasks/`. Finally, all tiddlers not tagged with "externalnote" will match the final `[!tag[externalnote]addprefix[wiki/]]` storing these in `./wiki/`. In this example, tiddlers tagged with "externalnote" have been imported using [[tiddlywiki.files Files]] with an "isEditableFile" flag set to true, causing the server to remember their original file path in the $:/config/OriginalTiddlerPaths tiddler.
Whenever a tiddler generates a $:/config/FileSystemPaths filter match, any `/` or `\` in the tiddler title is mapped to a path separator. With the above filters, the non-system, non-draft tiddler titled `some/thing/entirely/new` (with no tags) will be saved to `./wiki/some/thing/entirely/new.tid` (ie, the file `new.tid` in a directory called `entirely/`). Thus, $:/config/FileSystemPaths itself will end up in `./_system/config/FileSystemPaths.tid` or `.\_system\config\FileSystemPaths.tid`, depending on the platform.
@ -39,7 +39,7 @@ Normally, the file system extension of a tiddler on disk is determined by the pr
If the tiddler does not have such field values, then the `type` field is referenced to find a matching file-type, with `.tid` used for tiddlers without a type value. The boot engine defines a set of these tiddler-type to file-type relationships in the [[$:/boot/boot.js]] tiddler. Search for `// Add file extension information` to find the section of code that defines these relationships.
The file extension of individual tidders can be customised by creating a tiddler [[$:/config/FileSystemExtensions]] containing one or more [[filter expressions|Filter Syntax]], each on a line of its own. Every time a tiddler is saved to disk it is tested against these filters, and the first output of the first filter to produce any output is taken as the file extension to be used for the tiddler file. Extensions should always start with a leading dot (see example). If no filter matches, the default extension is used. If the extension has changed a new file is created and the old file is deleted.
The file extension of individual tiddlers can be customised by creating a tiddler [[$:/config/FileSystemExtensions]] containing one or more [[filter expressions|Filter Syntax]], each on a line of its own. Every time a tiddler is saved to disk it is tested against these filters, and the first output of the first filter to produce any output is taken as the file extension to be used for the tiddler file. Extensions should always start with a leading dot (see example). If no filter matches, the default extension is used. If the extension has changed a new file is created and the old file is deleted.
<<.note """A result of ".tid" will force the tiddler to be written to disk as a single-file text tiddler. A result of ".json" will force the tiddler to be written to disk as a single file tiddler in json-format (a single tiddler fields object in an array), NOT as a tiddler of type "application/json". All other recognised file-types will be saved using their defined extension along with an accompanying *.meta file of the same name which describes all fields but the "text" field.""">>
@ -51,6 +51,6 @@ The file extension of individual tidders can be customised by creating a tiddler
[tag[.tid]then[.tid]]
```
This will cause all tidders that have the tag ".txt" to be saved at the filepath determined by the File System Paths filters, but with their text field saved as a *.txt file, and all other fields saved as a *.txt.meta file.
This will cause all tiddlers that have the tag ".txt" to be saved at the filepath determined by the File System Paths filters, but with their text field saved as a *.txt file, and all other fields saved as a *.txt.meta file.
Next, all tiddlers that have the ".json" tag are saved as *.json files. Finally, all tiddlers that have tag ".tid" are saved as single files. If a tiddler matches none of the filters, the default extension determined by the tiddlers `type` field would be used.

View File

@ -5,6 +5,12 @@ tags: OfficialPlugins [[Plugin Editions]]
title: Railroad Plugin
type: text/vnd.tiddlywiki
!! Railroad Diagrams
{{Railroad Diagrams}}
!! Plugin
{{$:/plugins/tiddlywiki/railroad/readme}}
{{$:/plugins/tiddlywiki/railroad/syntax}}
Learn more about the [[Railroad Plguin Syntax Description|$:/plugins/tiddlywiki/railroad/syntax]]

View File

@ -6,6 +6,8 @@ type: text/vnd.tiddlywiki
New releases of TiddlyWiki and TiddlyDesktop are announced via the [[official discussion groups|Forums]] and [[Twitter|https://twitter.com/TiddlyWiki]]
The prerelease of the next version of TiddlyWiki can be found at https://tiddlywiki.com/prerelease for testing and review purposes.
See the [[TiddlyWiki Archive]] to download older versions.
<<tabs "[[TiddlyWiki Releases]] [[TiddlyDesktop Releases]]" "TiddlyWiki Releases" "$:/state/tab">>

View File

@ -0,0 +1,29 @@
title: TestCases/DataWidget/ImportCustomTitle
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
description: Importing a payload tiddler and overwriting the title
display-format: plaintext
title: Narrative
Importing a payload tiddler and overwriting the title
+
title: Output
\whitespace trim
<$data $tiddler="HelloThere" title="RealTitle"/>
+
title: HelloThere
tags: Definitions
This is the tiddler HelloThere
+
title: ExpectedResult
<p>[
{
"title": "RealTitle",
"tags": "Definitions",
"text": "This is the tiddler HelloThere"
}
]</p>

View File

@ -1,6 +1,6 @@
caption: link
created: 20131024141900000
modified: 20231113093304323
modified: 20240730065043721
tags: Widgets
title: LinkWidget
type: text/vnd.tiddlywiki
@ -69,11 +69,13 @@ This causes the tooltip to be the ''tooltip'' field of the target tiddler. If th
The link widget automatically determines and applies the following classes to links:
* `tc-tiddlylink` - applied to all links
* `tc-tiddlylink` - applied to ''all'' links
* `tc-tiddlylink-external` - applied to external, non-tiddler links
* `tc-tiddlylink-internal` - applied to tiddler links
* `tc-tiddlylink-missing` - applied to tiddler links where the target tiddler doesn't exist
* `tc-tiddlylink-resolves` - applied to tiddler links when the target tiddler does exist
* `tc-tiddlylink-shadow` - applied to tiddler links when the target is a shadow tiddler
** `tc-tiddlylink-shadow tc-tiddlylink-resolves` - applied to ''overwritten'' shadow tiddlers
Use the `class` attribute to specify additional css classes, or `overrideClass` to apply only that but not the above defaults, e.g. when used in a LinkCatcherWidget:

View File

@ -1,16 +1,13 @@
{
"description": "Documentation from https://tiddlywiki.com",
"plugins": [
"tiddlywiki/nodewebkitsaver",
"tiddlywiki/browser-sniff",
"tiddlywiki/railroad",
"tiddlywiki/evernote",
"tiddlywiki/internals",
"tiddlywiki/menubar",
"tiddlywiki/confetti",
"tiddlywiki/dynannotate",
"tiddlywiki/tour",
"tiddlywiki/qrcode"
"tiddlywiki/tour"
],
"themes": [
"tiddlywiki/vanilla",

View File

@ -2,7 +2,7 @@
"title": "$:/languages/ar-PS",
"name": "ar-PS",
"plugin-type": "language",
"description": "Arabic (Palestine)",
"description": "العربية (فلسطين)",
"author": "Kamal-Habash",
"core-version": ">=5.1.23",
"text-direction": "rtl"

View File

@ -2,7 +2,7 @@
"title": "$:/languages/ca-ES",
"name": "ca-ES",
"plugin-type": "language",
"description": "Catalan (Spain)",
"description": "Català (Espanya)",
"author": "Paco Rivière",
"core-version": ">=5.0.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/cs-CZ",
"name": "cs-CZ",
"plugin-type": "language",
"description": "Česky (Czech Republic)",
"description": "Čeština (Česká republika)",
"author": "Zdeněk Jašek",
"core-version": ">=5.0.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/da-DK",
"name": "da-DK",
"plugin-type": "language",
"description": "Danish (Denmark)",
"description": "Dansk (Danmark)",
"author": "Birthe C",
"core-version": ">=5.0.8"
}

View File

@ -1,5 +1,5 @@
title: $:/language/Docs/Types/text/vnd.tiddlywiki-multiple
description: TW5 - TiddlyWiki Wikitext Verbund Tiddler
description: Verbund Tiddler
name: text/vnd.tiddlywiki-multiple
group: Entwickler
group-sort: 2

View File

@ -2,7 +2,7 @@
"title": "$:/languages/el-GR",
"name": "el-GR",
"plugin-type": "language",
"description": "Greek (Greece)",
"description": "Ελληνικά (Ελλάδα)",
"author": "Stratis Aravias@ΓΕΛ Σαμοθράκης",
"core-version": ">=5.0.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/es-ES",
"name": "es-ES",
"plugin-type": "language",
"description": "Castellano. (Spain)",
"description": "Castellano. (España)",
"author": "Pau DeLuca,Joe Bordes",
"core-version": ">=5.1.23"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/fa-IR",
"name": "fa",
"plugin-type": "language",
"description": "Persian (Iran)",
"description": "فارسی (ایران)",
"author": "amirography",
"core-version": ">=5.0.0",
"text-direction": "rtl"

View File

@ -2,7 +2,7 @@
"title": "$:/languages/he-IL",
"name": "he-IL",
"plugin-type": "language",
"description": "Hebrew (Israel)",
"description": "עברית (ישראל)",
"author": "DoronTzur",
"core-version": ">=5.0.0",
"text-direction": "rtl"

View File

@ -2,7 +2,7 @@
"title": "$:/languages/hi-IN",
"name": "hi-IN",
"plugin-type": "language",
"description": "Hindi (India)",
"description": "हिन्दी (भारत)",
"author": "Atul Grover",
"core-version": ">=5.0.8"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/it-IT",
"name": "it-IT",
"plugin-type": "language",
"description": "Italian (Italy)",
"description": "Italiano (Italia)",
"author": "MaurizioPollio",
"core-version": ">=5.0.8"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/ja-JP",
"name": "ja-JP",
"plugin-type": "language",
"description": "Japanese (Japan)",
"description": "日本語 (日本)",
"author": "Makoto Hirohashi, OGOSHI Masayuki, pekopeko1, dajya-ranger.com, BALLOON | FU-SEN (Keiichi Shiga)",
"core-version": ">=5.1.4"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/ko-KR",
"name": "ko-KR",
"plugin-type": "language",
"description": "Korean (Korea Republic)",
"description": "한국어 (대한민국)",
"author": "Myeongjin",
"core-version": ">=5.1.4"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/mk-MK",
"name": "mk-MK",
"plugin-type": "language",
"description": "Macedonian (North Macedonia)",
"description": "Македонски (Македонија)",
"author": "Nikola Dio Petkovski",
"core-version": ">=5.1.4"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/nl-NL",
"name": "nl-NL",
"plugin-type": "language",
"description": "Dutch (The Netherlands)",
"description": "Nederlands (Nederland)",
"author": "gernert",
"core-version": ">=5.1.5"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/pa-IN",
"name": "pa-IN",
"plugin-type": "language",
"description": "Punjabi (India)",
"description": "ਪੰਜਾਬੀ (ਭਾਰਤ)",
"author": "Atul Grover",
"core-version": ">=5.0.8"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/pl-PL",
"name": "pl-PL",
"plugin-type": "language",
"description": "Polish (Poland)",
"description": "Polski (Polska)",
"author": "Maurycy Zarzycki (Evidently Cube)",
"core-version": ">=5.2.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/pt-PT",
"name": "pt-PT",
"plugin-type": "language",
"description": "Portuguese (Portugal)",
"description": "Português (Portugal)",
"author": "Duarte Farrajota Ramos",
"core-version": ">=5.0.8"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/ru-RU",
"name": "ru-RU",
"plugin-type": "language",
"description": "Russian (Russia)",
"description": "Русский (Россия)",
"author": "AndreyYankin aka andrey013, Глеб Прохожев <glebujka@gmail.com>",
"core-version": ">=5.0.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/sk-SK",
"name": "sk-SK",
"plugin-type": "language",
"description": "Slovak (Slovakia)",
"description": "Slovenčina (Slovensko)",
"author": "Vlado Luknar",
"core-version": ">=5.0.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/sl-SI",
"name": "sl-SI",
"plugin-type": "language",
"description": "Solvenian (Slovenia)",
"description": "Slovenščina (Slovenija)",
"author": "Tomaž Ficko",
"core-version": ">=5.0.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/sv-SE",
"name": "sv-SE",
"plugin-type": "language",
"description": "Swedish (Sweden)",
"description": "Svenska (Sverige)",
"author": "SuperDOS",
"core-version": ">=5.1.0"
}

View File

@ -2,7 +2,7 @@
"title": "$:/languages/zh-CN",
"name": "zh-CN",
"plugin-type": "language",
"description": "Chinese (China)",
"description": "简体中文 (中国)",
"author": "BramChen",
"core-version": ">=5.0.8",
"dependents": ["$:/languages/zh-Hans"],

View File

@ -0,0 +1,17 @@
title: $:/language/Buttons/
ControlPanel/Hint: 開啓控制台
FoldOthers/Hint: 收合其他已開啓條目的內容
FoldAll/Hint: 收合所有已開啓條目的內容
UnfoldAll/Hint: 展開所有已開啓條目的內容
Help/Caption: 説明
Help/Hint: 顯示説明中心
Home/Hint: 開啓首頁條目
LayoutSwitcher/Hint: 開啓版面切換器
Manager/Hint: 開啓條目管理器
OpenControlPanel/Hint: 開啓控制台
OpenWindow/Caption: 開啓於新視窗
OpenWindow/Hint: 在新視窗中開啓條目
Permaview/Hint: 設定瀏覽器網址列為直接連結到當前所有已開啓條目
Timestamp/On/Caption: 時間戳記開啓
Stamp/New/Text: 片段的文字。(記得在 `caption` 欄位中新增一個説明性的標題)。

View File

@ -0,0 +1,31 @@
title: $:/language/ControlPanel/
Basics/DefaultTiddlers/BottomHint: 標題含空白時請使用 &#91;&#91;雙中括弧&#93;&#93;,或者您可用 {{保留開啓中的條目順序||$:/snippets/retain-story-ordering-button}}
Basics/DefaultTiddlers/TopHint: 預設開啓的條目
KeyboardShortcuts/Platform/All: 所有平台
KeyboardShortcuts/Platform/Mac: 僅 Macintosh 平台
KeyboardShortcuts/Platform/NonMac: 僅非 Macintosh 平台
KeyboardShortcuts/Platform/Linux: 僅 Linux 平台
KeyboardShortcuts/Platform/NonLinux: 僅非 Linux 平台
KeyboardShortcuts/Platform/Windows: 僅 Windows 平台
KeyboardShortcuts/Platform/NonWindows: 僅非 Windows 平台
Plugins/Enable/Caption: 啓用
Plugins/Enable/Hint: 重新載入頁面時啓用此插件
Plugins/OpenPluginLibrary: 開啓插件程式庫
Parsing/Hint: 在此您可以全域停用或啓用維基解析規則。要使更改生效,請儲存並重新載入您的維基。停用某些解析規則,會妨礙 <$text text="TiddlyWiki"/> 正常運作。可使用[[安全模式|https://tiddlywiki.com/#SafeMode]]恢復正常操作。
Saving/DownloadSaver/AutoSave/Hint: 啓用下載儲存模組的自動儲存
Saving/GitService/GitHub/Password: 密碼、OAUTH 權杖,或個人存取權杖 (詳見 [[GitHub 説明頁面|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]])
Saving/GitService/GitLab/Password: 個人存取權杖的 API (詳見 [[GitLab 説明頁面|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]])
Settings/CamelCase/Caption: 駝峯式維基鏈接
Settings/CamelCase/Hint: 您可以全域停用駝峯式短語自動鏈接。須儲存後重新載入,方才生效。
Settings/CamelCase/Description: 啓用自動駝峯式鏈接
Settings/EditorToolbar/Hint: 啓用或停用編輯器工具列︰
Settings/InfoPanelMode/Sticky/Description: 條目資訊面板保持開啓狀態,直到明確關閉
Settings/LinkToBehaviour/Caption: 條目開啓行為
Settings/LinkToBehaviour/OpenAbove: 開啓於當前條目之上
Settings/LinkToBehaviour/OpenBelow: 開啓於當前條目之下
Settings/LinkToBehaviour/OpenAtTop: 開啓於故事河的頂端
Settings/LinkToBehaviour/OpenAtBottom: 開啓於故事河的底部
Settings/MissingLinks/Description: 啓用鏈接到佚失條目
Settings/NavigationAddressBar/Permaview/Description: 包括目標條目和當前已開啓的條目序列
Settings/PerformanceInstrumentation/Description: 啓用效能檢測

View File

@ -0,0 +1,3 @@
title: $:/language/Docs/ModuleTypes/
startup: 啓動時期的功能函數。

View File

@ -0,0 +1,5 @@
title: $:/language/Docs/Fields/
class: 渲染條目時,套用到條目的 CSS 類別 - 請參閲[[依自訂類別的自訂樣式|Custom styles by user-class]]。也適用於[[互動視窗|Modals]]
description: 插件的説明、描述
toc-link: 若設定為 ''no'',則抑制目錄樹中的條目鏈接。

View File

@ -0,0 +1,18 @@
title: GettingStarted
\define lingo-base() $:/language/ControlPanel/Basics/
歡迎使用 ~TiddlyWiki 及參與 ~TiddlyWiki 社羣
開始將重要資訊存放於 ~TiddlyWiki 之前,確認您可以可靠地儲存變更是很重要的。詳細資訊請參閲 https://tiddlywiki.com/#GettingStarted
!! 設定此 ~TiddlyWiki
<div class="tc-control-panel">
|tc-table-no-border tc-first-col-min-width tc-first-link-nowrap|k
| <$link to="$:/SiteTitle"><<lingo Title/Prompt>></$link>|<$edit-text tiddler="$:/SiteTitle" default="" tag="input"/> |
| <$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link>|<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> |
|^ <$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link><br><<lingo DefaultTiddlers/TopHint>>|<$edit tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
</div>
請參閲[[控制枱|$:/ControlPanel]]查看更多選項。

View File

@ -0,0 +1,35 @@
title: $:/language/Help/listen
description: 為 TiddlyWiki 提供一個 HTTP 伺服器介面
通過 HTTP 提供一個維基服務。
listen 命令使用[[命名的命令參數|NamedCommandParameters]]
```
--listen [<name>=<value>]...
```
所有參數都是可選的, 具有安全的預設值, 可以按任意順序指定。認可的參數有:
* ''host'' - 可選的主機名稱, (預設為 "127.0.0.1" 或名為 "localhost")
* ''path-prefix'' - 可選的路徑前綴
* ''port'' - 偵聽的埠號;非數值會被解譯為一個系統環境變數,從其中提取埠號 (預設為 "8080")
* ''credentials'' - 憑證 CSV 檔案的路徑名(相對於維基資料夾)
* ''anon-username'' - 匿名使用者的編輯署名
* ''username'' - 可選的基本驗證使用者名稱
* ''password'' - 可選的基本驗證密碼
* ''authenticated-user-header'' - 可選的 HTTP 請求功能參數名稱,用於受信任身份驗證
* ''readers'' - 允許讀取此維基,以逗號分隔的使用者名稱的清單
* ''writers'' - 允許寫入此維基,以逗號分隔的使用者名稱的清單
* ''csrf-disable'' - 設定為 "yes" 以停用 CSRF 檢查 (預設為 "no")
* ''sse-enabled'' - 設定為 "yes" 以啟用伺服器傳送的事件 (預設為 "no")
* ''root-tiddler'' - 服務的基本條目 (預設為 "$:/core/save/all")
* ''root-render-type'' - 呈現的基本條目的內容類型 (預設為 "text/plain")
* ''root-serve-type'' - 服務的基本條目的內容類型 (預設為 "text/html")
* ''tls-cert'' - TLS 證書檔案的路徑名(相對於維基資料夾)
* ''tls-key'' - TLS 密鑰檔案的路徑名(相對於維基資料夾)
* ''debug-level'' - 可選的偵錯層級;設定為 "debug" 來檢視請求的詳細資訊;(預設為 "none")
* ''gzip'' - 設為 "yes" 以啟用某些 http 端點的 gzip 壓縮 (預設為 "no")
* ''use-browser-cache'' - 設定為 "yes" ,允許瀏覽器快取回應,以節省頻寬(預設值為 "no"
有關向整個本地網路開啟實例的資訊,以及可能的安全問題,請參閲 TiddlyWiki.com 的 WebServer 條目。

View File

@ -0,0 +1,3 @@
title: $:/language/Help/notfound
無此項目説明

View File

@ -0,0 +1,10 @@
title: $:/language/Help/password
description: 設定用以加密的密碼
設定用以加密的密碼
```
--password <password>
```
''請注意'':這不是用於提供 TiddlyWiki 具有密碼保護功能。相反地,請看 [[ServerCommand]] 的密碼選項説明。

View File

@ -0,0 +1,34 @@
title: $:/language/Help/render
description: 呈現個別條目到檔案
呈現由篩選器標識的個別條目,並將結果儲存到指定的檔案。
可選擇性地指定範本條目名稱。在此情況下,不是直接呈現每個條目,而是使用設為正在呈現的條目名稱的 "currentTiddler" 變數,來呈現範本條目。
也可以選擇性地指定附加變數的名稱和值。
```
--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [ [<name>] [<value>] ]*
```
* ''tiddler-filter'': 標識要呈現的條目的篩選器
* ''filename-filter'': 可選的篩選器,轉換條目名稱至路徑名。如果省略,預設為 `[is[tiddler]addsuffix[.html]]`,其使用未改變的條目名稱為檔名
* ''template'': 可選的範本,用於呈現每個條目
* ''render-type'': 可選的呈現類型:`text/html` (預設值) 會傳回完整的 HTML 文字,而 `text/plain` 只會傳迴文字內容 (即其忽略 HTML 標記與其他不可印出的資料)
* ''name'': 可選的變數名稱
* ''value'': 可選的變數值
預設情況下,檔名被解析為相對於發行版資料夾的 `output` 子資料夾。`--output` 命令可用於將輸出指到一個不同的資料夾。
附註:
* 輸出資料夾不清除任何現有的檔案
* 檔名的路徑中,任何不存在的資料夾,將自動建立。
* 當正呈現的條目名稱中帶有空格,請注意同時使用命令列介面所要求的引號,與 TiddlyWiki 的雙重方括號:`--render "[[Motovun Jack.jpg]]"`
* 所選的項目被設定為當前正在呈現的條目名稱,以此評估檔名篩選器,允條目名稱用作基礎計算的檔名。例如,`[encodeuricomponent[]addprefix[static/]]` 為每個條目名稱套用 URI 編碼,然後增加首碼 `static/`
* `--render` 命令是已棄用的 `--rendertiddler` 和 `--rendertiddlers` 的一個更靈活的替代命令。
範例:
* `--render "[!is[system]]" "[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]"` -- 呈現所有非系統條目為 "tiddlers" 子資料夾中的檔案,檔名為 URL 編碼的條目名稱和副檔名 HTML
* `--render '.' 'tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[HelloThere]]'` -- 將標籤為 "HelloThere" 的條目渲染到名為 "tiddlers.json" 的 JSON 檔案

View File

@ -0,0 +1,16 @@
title: $:/language/Help/savetiddlers
description: 將一羣條目的原始內容儲存到一個資料夾
(請注意:`--savetiddlers` 命令已被棄用,而支援新的、更靈活得 `--save` 命令)
儲存一羣條目的原始文字或二進位格式到指定的資料夾。
```
--savetiddlers <filter> <pathname> [noclean]
```
預設情況下,路徑名被解析為相對於發行版資料夾的 `output` 子資料夾。 `--output` 命令可以用於將輸出指定到一個不同的資料夾。
儲存指定的檔案之前,會先清除輸出目錄的現有檔案。可藉由指定 ''noclean'' 旗標,停用該刪除動作。
自動建立在路徑中任何缺少的資料夾。

View File

@ -0,0 +1,44 @@
title: $:/language/Help/server
description: (已棄用:請參閲 'listen' 命令)提供一個 HTTP 伺服器介面到 TiddlyWiki
在伺服器中內建 TiddlyWiki5 是非常簡單。雖與 TiddlyWeb 相容,但不支援許多健全網際網路面向的使用方式所需的功能。
提供呈現一個指定條目,也可將個別條目編碼成 JSON且支援基本的 HTTP 操作 `GET`、`PUT` 及 `DELETE`.
```
--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>
```
參數説明:
* ''port'' - 要偵聽的埠號;非數值會被解譯為一個系統環境變數,從其中提取埠號 (預設為 "8080")
* ''root-tiddler'' - 服務的基本條目 (預設為 "$:/core/save/all")
* ''root-render-type'' - 呈現的基本條目的內容類型 (預設為 "text/plain")
* ''root-serve-type'' - 服務的基本條目的內容類型 (預設為 "text/html")
* ''username'' - 預設的編輯者署名
* ''password'' - 可選的基本驗證密碼
* ''host'' - 可選的主機名稱, (預設為 "127.0.0.1" 或名為 "localhost")
* ''path-prefix'' - 可選的的路徑前綴
* ''debug-level'' - 可選的偵錯層級;設定為 "debug" 來檢視請求的詳細資訊;(預設為 "none")
若指定密碼參數,瀏覽器將提示使用者輸入帳號與密碼。注意,密碼係以明碼方式傳遞,應只在受信任的網路或 HTTPS 上使用。
例如:
```
--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd
```
若您需要設定主機名稱或路徑前綴,而不要求輸入密碼,則可以指定空字串的使用者名和密碼。
```
--server 8080 $:/core/save/all text/plain text/html "" "" 192.168.0.245
```
使用這樣的位址,會將您的系統暴露給本地網路。有關向整個本地網路開啟實例的資訊,以及可能的安全問題,請參閲 TiddlyWiki.com 的 WebServer 條目。
同時執行多個 TiddlyWiki 伺服器,須分別指定不同的埠號。使用環境變數,有助於將埠號傳遞給 Node.js 進程。本示例引用一個名為 "MY_PORT_NUMBER" 的環境變數:
```
--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd
```

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