Merge branch 'master' into performance-plugin

This commit is contained in:
Jeremy Ruston
2026-03-30 09:29:53 +01:00
51 changed files with 301 additions and 219 deletions
+79 -63
View File
@@ -107,7 +107,7 @@ exports.parseStringLiteral = function(source,pos) {
type: "string",
start: pos
};
var reString = /(?:"""([\s\S]*?)"""|"([^"]*)")|(?:'([^']*)')|\[\[((?:[^\]]|\](?!\]))*)\]\]/g;
var reString = /(?:"""([\s\S]*?)"""|"([^"]*)")|(?:'([^']*)')|\[\[((?:[^\]]|\](?!\]))*)\]\]/y;
reString.lastIndex = pos;
var match = reString.exec(source);
if(match && match.index === pos) {
@@ -221,7 +221,7 @@ exports.parseMacroInvocationAsTransclusion = function(source,pos) {
orderedAttributes: []
};
// Define our regexps
var reVarName = /([^\s>"'=:]+)/g;
var reVarName = /([^\s>"'=:]+)/y;
// Skip whitespace
pos = $tw.utils.skipWhiteSpace(source,pos);
// Look for a double opening angle bracket
@@ -237,9 +237,11 @@ exports.parseMacroInvocationAsTransclusion = function(source,pos) {
}
$tw.utils.addAttributeToParseTreeNode(node,"$variable",token.match[1]);
pos = token.end;
// Check that the tag is terminated by a space or >>
if(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === ">" && source.charAt(pos + 1) === ">") ) {
return null;
// Check that the tag is terminated by a space or >>, and that there is a closing >> somewhere ahead
if(!(source.charAt(pos) === ">" && source.charAt(pos + 1) === ">") ) {
if(!$tw.utils.parseWhiteSpace(source,pos) || source.indexOf(">>",pos) === -1) {
return null;
}
}
// Process attributes
pos = $tw.utils.parseMacroParametersAsAttributes(node,source,pos);
@@ -267,7 +269,7 @@ exports.parseMVVReferenceAsTransclusion = function(source,pos) {
orderedAttributes: []
};
// Define our regexps
var reVarName = /([^\s>"'=:)]+)/g;
var reVarName = /([^\s>"'=:)]+)/y;
// Skip whitespace
pos = $tw.utils.skipWhiteSpace(source,pos);
// Look for a double opening parenthesis
@@ -323,17 +325,17 @@ exports.parseMacroParameterAsAttribute = function(source,pos) {
start: pos
};
// Define our regexps
var reAttributeName = /([^\/\s>"'`=:]+)/g,
reUnquotedAttribute = /((?:(?:>(?!>))|[^\s>"'])+)/g,
reFilteredValue = /\{\{\{([\S\s]+?)\}\}\}/g,
reIndirectValue = /\{\{([^\}]+)\}\}/g,
reSubstitutedValue = /(?:```([\s\S]*?)```|`([^`]|[\S\s]*?)`)/g;
var reAttributeName = /([^\/\s>"'`=:]+)/y,
reUnquotedAttribute = /((?:(?:>(?!>))|[^\s>"'])+)/y,
reFilteredValue = /\{\{\{([\S\s]+?)\}\}\}/y,
reIndirectValue = /\{\{([^\}]+)\}\}/y,
reSubstitutedValue = /(?:```([\s\S]*?)```|`([^`]|[\S\s]*?)`)/y;
// Skip whitespace
pos = $tw.utils.skipWhiteSpace(source,pos);
// Get the attribute name and the separator token
var nameToken = $tw.utils.parseTokenRegExp(source,pos,reAttributeName),
namePos = nameToken && $tw.utils.skipWhiteSpace(source,nameToken.end),
separatorToken = nameToken && $tw.utils.parseTokenRegExp(source,namePos,/=|:/g),
separatorToken = nameToken && $tw.utils.parseTokenRegExp(source,namePos,/=|:/y),
isNewStyleSeparator = false; // If there is no separator then we don't allow new style values
// If we have a name and a separator then we have a named attribute
if(nameToken && separatorToken) {
@@ -345,64 +347,78 @@ exports.parseMacroParameterAsAttribute = function(source,pos) {
}
// Skip whitespace
pos = $tw.utils.skipWhiteSpace(source,pos);
// Look for a string literal
var stringLiteral = $tw.utils.parseStringLiteral(source,pos);
if(stringLiteral) {
pos = stringLiteral.end;
node.type = "string";
node.value = stringLiteral.value;
// Mark the value as having been quoted in the source
node.quoted = true;
} else {
// Look for a filtered value
var filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);
if(filteredValue && isNewStyleSeparator) {
pos = filteredValue.end;
node.type = "filtered";
node.filter = filteredValue.match[1];
} else {
do {
// Look for a string literal
var stringLiteral = $tw.utils.parseStringLiteral(source,pos);
if(stringLiteral) {
pos = stringLiteral.end;
node.type = "string";
node.value = stringLiteral.value;
// Mark the value as having been quoted in the source
node.quoted = true;
break;
}
if(isNewStyleSeparator) {
// Look for a filtered value
var filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);
if(filteredValue) {
pos = filteredValue.end;
node.type = "filtered";
node.filter = filteredValue.match[1];
break;
}
// Look for an indirect value
var indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);
if(indirectValue && isNewStyleSeparator) {
if(indirectValue) {
pos = indirectValue.end;
node.type = "indirect";
node.textReference = indirectValue.match[1];
} else {
// Look for a macro invocation value
var macroInvocation = $tw.utils.parseMacroInvocationAsTransclusion(source,pos);
if(macroInvocation && isNewStyleSeparator) {
pos = macroInvocation.end;
node.type = "macro";
node.value = macroInvocation;
} else {
// Look for an MVV reference value
var mvvReference = $tw.utils.parseMVVReferenceAsTransclusion(source,pos);
if(mvvReference && isNewStyleSeparator) {
pos = mvvReference.end;
node.type = "macro";
node.value = mvvReference;
node.isMVV = true;
} else {
var substitutedValue = $tw.utils.parseTokenRegExp(source,pos,reSubstitutedValue);
if(substitutedValue && isNewStyleSeparator) {
pos = substitutedValue.end;
node.type = "substituted";
node.rawValue = substitutedValue.match[1] || substitutedValue.match[2];
} else {
// Look for a unquoted value
var unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);
if(unquotedValue) {
pos = unquotedValue.end;
node.type = "string";
node.value = unquotedValue.match[1];
} else {
}
}
}
}
break;
}
// Look for a macro invocation value
var macroInvocation = $tw.utils.parseMacroInvocationAsTransclusion(source,pos);
if(macroInvocation) {
pos = macroInvocation.end;
node.type = "macro";
node.value = macroInvocation;
break;
}
// Look for an MVV reference value
var mvvReference = $tw.utils.parseMVVReferenceAsTransclusion(source,pos);
if(mvvReference) {
pos = mvvReference.end;
node.type = "macro";
node.value = mvvReference;
node.isMVV = true;
break;
}
// Look for a substituted value
var substitutedValue = $tw.utils.parseTokenRegExp(source,pos,reSubstitutedValue);
if(substitutedValue) {
pos = substitutedValue.end;
node.type = "substituted";
node.rawValue = substitutedValue.match[1] || substitutedValue.match[2];
break;
}
}
}
// Look for a unquoted value
var unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);
if(unquotedValue) {
pos = unquotedValue.end;
node.type = "string";
node.value = unquotedValue.match[1];
break; // redundant, but leaving for consistency
}
} while(false);
// Bail if we don't have a value
if(!node.type) {
return null;
+54
View File
@@ -0,0 +1,54 @@
/*\
title: $:/core/modules/relinkers/tiddlers.js
type: application/javascript
module-type: relinker
Relinks the tags and list fields of tiddlers.
Calls a tw-relinking-tiddler hook for every altered tiddler.
\*/
exports.name = "tiddlers";
exports.relink = function(wiki,fromTitle,toTitle,options) {
wiki.each(function(tiddler,title) {
var type = tiddler.fields.type || "";
// Don't touch plugins or JavaScript modules
if(!tiddler.fields["plugin-type"] && type !== "application/javascript") {
var tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,
list = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,
isModified = false,
processList = function(listField) {
if(listField && listField.indexOf(fromTitle) !== -1) {
// Remove any existing instances of the toTitle
var p = listField.indexOf(toTitle);
while(p !== -1) {
listField.splice(p,1);
p = listField.indexOf(toTitle);
}
// Replace the fromTitle with toTitle
$tw.utils.each(listField,function (title,index) {
if(title === fromTitle) {
listField[index] = toTitle;
isModified = true;
}
});
}
};
if(!options.dontRenameInTags) {
// Rename tags
processList(tags);
}
if(!options.dontRenameInLists) {
// Rename lists
processList(list);
}
if(isModified) {
var newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},wiki.getModificationFields());
newTiddler = $tw.hooks.invokeHook("th-relinking-tiddler",newTiddler,tiddler);
wiki.addTiddler(newTiddler);
}
}
});
};
+2 -2
View File
@@ -61,7 +61,7 @@ LogWidget.prototype.log = function() {
$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {
if(name.substring(0,2) !== "$$") {
var resultList = self.computeAttribute(attribute,{asList: true});
if(resultList.length <= 1) {
if(resultList && resultList.length <= 1) {
data[name] = resultList[0] || "";
} else {
data[name] = resultList;
@@ -75,7 +75,7 @@ LogWidget.prototype.log = function() {
allVars[v] = variable.value;
} else {
var variableInfo = this.getVariableInfo(v);
allVars[v] = variableInfo.resultList.length > 1 ? variableInfo.resultList : variableInfo.text;
allVars[v] = variableInfo && variableInfo.resultList && variableInfo.resultList.length > 1 ? variableInfo.resultList : variableInfo.text;
}
}
if(this.filter) {
+2 -2
View File
@@ -189,7 +189,7 @@ Widget.prototype.getVariableInfo = function(name,options) {
}
return {
text: text,
resultList: [text]
resultList: text === undefined ? text : [text]
};
};
@@ -338,7 +338,7 @@ Widget.prototype.makeFakeWidgetWithVariables = function(vars = {}) {
const value = vars[name];
return Array.isArray(value)
? { text: value[0], resultList: value }
: { text: value, resultList: [value] };
: { text: value, resultList: value === undefined ? value : [value] };
}
opts = opts || {};
opts.variables = Object.assign({}, vars, opts.variables || {});
+4 -40
View File
@@ -9,6 +9,7 @@ Bulk tiddler operations such as rename.
"use strict";
var relinkers = $tw.modules.getModulesByTypeAsHashmap("relinker");
/*
Rename a tiddler, and relink any tags or lists that reference it.
*/
@@ -32,50 +33,13 @@ function renameTiddler(fromTitle,toTitle,options) {
Relink any tags or lists that reference a given tiddler
*/
function relinkTiddler(fromTitle,toTitle,options) {
var self = this;
fromTitle = (fromTitle || "").trim();
toTitle = (toTitle || "").trim();
options = options || {};
if(fromTitle && toTitle && fromTitle !== toTitle) {
this.each(function(tiddler,title) {
var type = tiddler.fields.type || "";
// Don't touch plugins or JavaScript modules
if(!tiddler.fields["plugin-type"] && type !== "application/javascript") {
var tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,
list = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,
isModified = false,
processList = function(listField) {
if(listField && listField.indexOf(fromTitle) !== -1) {
// Remove any existing instances of the toTitle
var p = listField.indexOf(toTitle);
while(p !== -1) {
listField.splice(p,1);
p = listField.indexOf(toTitle);
}
// Replace the fromTitle with toTitle
$tw.utils.each(listField,function (title,index) {
if(title === fromTitle) {
listField[index] = toTitle;
isModified = true;
}
});
}
};
if(!options.dontRenameInTags) {
// Rename tags
processList(tags);
}
if(!options.dontRenameInLists) {
// Rename lists
processList(list);
}
if(isModified) {
var newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields());
newTiddler = $tw.hooks.invokeHook("th-relinking-tiddler",newTiddler,tiddler);
self.addTiddler(newTiddler);
}
}
});
for(var name in relinkers) {
relinkers[name].relink(this,fromTitle,toTitle,options);
}
}
};
@@ -0,0 +1,13 @@
title: Transclude/MissingTiddlerAttributeVariable
description: Missing Tiddler Attribute Variable
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
description: hello
<$transclude tiddler=<<nonExistentVariable>> field="description"/>
+
title: ExpectedResult
<p>hello</p>
@@ -0,0 +1,13 @@
change-category: hackability
change-type: enhancement
created: 20260228212206750
description: Allows modular relinking behavior for plugin support
github-contributors: flibbles
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9703
modified: 20260228212206750
release: 5.4.0
tags: $:/tags/ChangeNote
title: $:/changenotes/5.4.0/#9703
type: text/vnd.tiddlywiki
This PR introduces the `relinker` module type so that plugins can introduce behavior whenever a tiddler is renamed. This could be enhanced tiddler relinking behavior, server behavior, or temp tiddler changes.
+1
View File
@@ -30,6 +30,7 @@ EditorHeight/Caption: エディタの縦幅
EditorHeight/Caption/Auto: コンテンツに合わせて自動的に高さを調整します
EditorHeight/Caption/Fixed: 縦幅の固定:
EditorHeight/Hint: テキストエディタの縦幅を選択します
EmergencyDownload/Caption: JSON形式でTiddlerをダウンロード
Encryption/Caption: 暗号化
Encryption/ClearPassword/Caption: パスワードの解除
Encryption/ClearPassword/Hint: パスワードと暗号化を解除します
+7 -7
View File
@@ -6,6 +6,7 @@ Appearance/Caption: 外観
Appearance/Hint: TiddlyWiki 外観のカスタマイズ方法
Basics/AnimDuration/Prompt: アニメーション時間:
Basics/AutoFocus/Prompt: 新しい Tiddler の標準フォーカスフィールド
Basics/AutoFocusEdit/Prompt: 既存のTIddlerの標準フォーカスフィールド
Basics/Caption: 基本
Basics/DefaultTiddlers/BottomHint: タイトルに空白を含めたいときは &#91;&#91;二重の角カッコ&#93;&#93; を使用してください。そのほか {{保存時の表示を維持||$:/snippets/retain-story-ordering-button}} することもできます。
Basics/DefaultTiddlers/Prompt: デフォルト Tiddler:
@@ -136,14 +137,13 @@ Saving/Hint: セーバーモジュールで TiddlyWiki 全体を 1 ファイル
Saving/TiddlySpot/Advanced/Heading: 詳細設定
Saving/TiddlySpot/BackupDir: バックアップディレクトリ
Saving/TiddlySpot/Backups: バックアップ
Saving/TiddlySpot/Caption: ~TiddlySpot セーバー
Saving/TiddlySpot/ControlPanel: ~TiddlySpot コントロールパネル
Saving/TiddlySpot/Description: この設定は、 http://tiddlyspot.com または互換性のあるリモートサーバーへ保存する場合に使います。
Saving/TiddlySpot/Caption: ~TiddlyHost セーバー
Saving/TiddlySpot/ControlPanel: ~TiddlyHost コントロールパネル
Saving/TiddlySpot/Description: この設定は、 [[TiddlyHost|https://tiddlyhost.com]] または互換性のあるリモートサーバーへ保存する場合に使います。~TiddlyHostへの保存設定に関しては、[[ここ|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]]を参照してください
Saving/TiddlySpot/Filename: アップロードファイル名
Saving/TiddlySpot/Heading: ~TiddlySpot
Saving/TiddlySpot/Hint: //サーバーのURLには `http://<wikiname>.tiddlyspot.com/store.cgi` がデフォルトで使用されます。ほかのサーバーのアドレスを指定することもできます。//
Saving/TiddlySpot/Heading: ~TiddlyHost
Saving/TiddlySpot/Hint: //サーバーのURLには `http://<wikiname>.tiddlyspot.com/` がデフォルトで使用されます。ほかのサーバーのアドレス(例えば、`http://example.com/store.php`)を指定することもできます。//
Saving/TiddlySpot/Password: パスワード
Saving/TiddlySpot/ReadOnly: [[TiddlySpot|http://tiddlyspot.com]] では、新しいサイトの作成ができなくなりました。 ~TiddlySpot に代わる新しいホスティングサービスである [[TiddlyHost|https://tiddlyhost.com]] 新しいサイトを制作できます。
Saving/TiddlySpot/ServerURL: サーバー URL
Saving/TiddlySpot/UploadDir: アップロードディレクトリ
Saving/TiddlySpot/UserName: Wiki 名
@@ -153,7 +153,7 @@ Settings/AutoSave/Enabled/Description: 自動的に保存する
Settings/AutoSave/Hint: 自動的に保存するかどうかを設定します
Settings/CamelCase/Caption: Camel Case Wiki リンク
Settings/CamelCase/Description: 自動で ~CamelCase リンクを有効にする
Settings/CamelCase/Hint: ~CamelCase フレーズの自動リンクをグローバルに無効にすることができます。有効にするには再読み込みが必要です
Settings/CamelCase/Hint: 有効にするには再読み込みが必要です
Settings/Caption: 設定
Settings/DefaultMoreSidebarTab/Caption: デフォルトのサイドバー 詳しく タブ
Settings/DefaultMoreSidebarTab/Hint: デフォルトで表示されるサイドバー 詳しく タブを指定します
+1 -1
View File
@@ -10,7 +10,7 @@ config: `$tw.config` に格納されるデータ。
filteroperator: 個々のフィルタ操作用メソッドモジュール。
global: `$tw` に格納されるグローバルデータ。
info: [[$:/temp/info-plugin]] 疑似プラグインを介してシステム情報を公開します。
isfilteroperator: フィルタ ''is'' メソッドのオペランドモジュール
isfilteroperator: ''is''フィルタオペレータのパラメータ
library: JavaScript汎用モジュール用の汎用モジュールタイプ。
macro: JavaScript マクロの定義モジュール。
parser: 各種 ContentType のパーサモジュール。
+4
View File
@@ -0,0 +1,4 @@
title: $:/language/Draft/
Attribution: {{$:/status/UserName}}による'<<draft-title>>'のドラフト
Title: '<<draft-title>>'のドラフト
+4 -4
View File
@@ -1,6 +1,6 @@
title: $:/language/Exporters/
CsvFile: CSV ファイル
JsonFile: JSON ファイル
StaticRiver: 静的 HTML ファイルとして構成される一連の Tiddler
TidFile: ".tid" ファイル
CsvFile: CSVファイル
JsonFile: JSONファイル
StaticRiver: 静的HTML
TidFile: TIDテキストファイル
+4 -4
View File
@@ -8,16 +8,16 @@ caption: タブやボタンに表示されるテキスト
class: Tiddlerをレンダリングする際に適用されるCSSクラスです。モーダルにも使用されます
code-body: ''yes'' に設定すると、表示テンプレートは、コードとして Tiddler を表示します
color: Tiddler に使用される CSS カラーの値
component: [[アラート Tiddler|AlertMechanism]] の原因となったコンポーネントの名前
component: アラートTiddlerの原因となったコンポーネントの名前
core-version: プラグインの場合、互換性のあるTiddlyWikiのバージョンを示します
created: Tiddler が作成された日付
creator: Tiddler の作成者名
current-tiddler: [[履歴一覧|HistoryMechanism]] のトップにある Tiddler をキャッシュするために使用されます
current-tiddler: 履歴一覧のトップにあるTiddlerをキャッシュするために使用されます
dependents: プラグインが依存する他のプラグインのリスト
description: プラグインなどの説明文
draft.of: それがドラフト Tiddler であるときのタイトル
draft.title: ドラフト Tiddler が正式版になったときに使用される予定のタイトル
footer: ウィザードのフッタ部テキスト
footer: モーダルのフッタ部テキスト
hide-body: ''yes'' に設定すると表示テンプレートは、Tiddler の本文を非表示にします
icon: 紐付けられているアイコン Tiddler のタイトル
library: ''yes'' の場合、その Tiddler は JavaScript ライブラリとして保存する必要があります
@@ -35,7 +35,7 @@ released: TiddlyWiki のリリース日付
revision: サーバー上の Tiddler のリビジョン
source: その Tiddler のソース URL
stability: プラグインの開発状況: 非推奨、実験的、安定版、またはレガシー
subtitle: ウィザードのサブタイトル
subtitle: モーダルのサブタイトル
tags: その Tiddler に付けられたタグのリスト
text: Tiddler の本文
throttle.refresh: 存在する場合、この Tiddler の更新を抑制します
+7 -14
View File
@@ -1,25 +1,18 @@
title: GettingStarted
\define lingo-base() $:/language/ControlPanel/Basics/
~TiddlyWiki にようこそ。これは個人で使える Web ノートです
~TiddlyWikiと~TiddlyWikiコミュニティにようこそ
作業を開始する前に保存機能が正しく使えるかどうかをご確認ください。 - 詳細は https://tiddlywiki.com/ の説明をご覧ください。
それでは始めましょう:
* サイドバーにある「+」ボタンで新しい Tiddler を作成します。
* サイドバーにある「歯車」ボタンで コントロールパネル を開いて、この Wiki に対する設定ができます。
** 「基本」タブのデフォルト Tiddler を変更することで、Wiki を開くたびにこのメッセージが表示されないようにできます。
* 変更を保存するにはサイドバーの「ダウンロード」ボタンを押してください。
* 書式に関する詳細は WikiText を参照してください。
TiddlyWikiに重要な情報を書き込む前に、変更内容を確実に保存できることを確認することが不可欠です。詳細は https://tiddlywiki.com/#GettingStarted をご覧ください。
!! この ~TiddlyWiki を設定
<div class="tc-control-panel">
|<$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> |<<lingo DefaultTiddlers/TopHint>><br> <$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
|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>
より多くのオプションは [[control panel|$:/ControlPanel]] を参照してください。
より多くのオプションについては[[コントロールパネル|$:/ControlPanel]]を参照してください。
+1 -1
View File
@@ -1,7 +1,7 @@
title: $:/language/Help/deletetiddlers
description: Tiddlerのグループを削除
フィルターによって識別されたTiddlerのグループを削除します。
<<.from-version "5.1.20">> フィルターによって識別されたTiddlerのグループを削除します。
```
--deletetiddlers <filter>
+5 -2
View File
@@ -1,12 +1,15 @@
title: $:/language/Help/load
description: ファイルから Tiddler を読み込み
Tiddler を TiddlyWiki Ver.2 のファイル (`.html`), `.tiddler`, `.tid`, `.json` などから読み込みます
TiddlyWiki(`.html`)`.tiddler``.tid``.json`、またはその他のローカルファイルからTiddlerを読み込みます。入力ファイルに適用される処理は、ファイル拡張子によって決定されます。デシリアライザとエンコーディングを明示的に指定する必要がある場合は、代わりに`import`コマンドを使用してください
```
--load <filepath>
--load <filepath> [noerror]
--load <dirpath> [noerror]
```
デフォルトでは、loadコマンドはTiddlerが見つからない場合にエラーを発生します。オプションの"noerror"パラメータを指定することで、このエラーを抑制できます。
暗号化された TiddlyWiki ファイルから読み込むためには、最初に password コマンドでパスワードを指定する必要があります。
使用例:
+1
View File
@@ -7,3 +7,4 @@ description: 暗号化のパスワードの設定
--password <password>
```
''注意'': このコマンドはパスワード保護付きのTiddlyWikiの提供には使用しないでください。代わりに、[[Serverコマンド|ServerCommand]]のpasswordオプションを参照してください。
+19 -3
View File
@@ -1,8 +1,24 @@
title: $:/language/Help/rendertiddler
description: 個々の Tiddler を指定した ContentType で出力
description: 個々のTiddlerを指定したContentTypeで出力
個々の Tiddler を指定した ContentType で出力します。デフォルトは `text/html` で、指定されたファイル名で内容を保存します。
(注意: この`--rendertiddler`コマンドは、より柔軟な新しい`--render`コマンドに置き換えられたため、非推奨となりました。)
個々のTiddlerを指定したContentTypeで出力します。デフォルトは`text/html`で、指定されたファイル名で内容を保存します。
オプションとして、テンプレートTiddlerのタイトルを指定できます。その場合、テンプレートTiddlerは、レンダリング中のTiddler(最初のパラメータ値)を"currentTiddler"変数に設定した状態でレンダリングされます。
追加変数の名前と値を任意で指定することもできます。
```
--rendertiddler <title> <filename> [<type>]
--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]
```
デフォルトでは、ファイル名はeditionディレクトリの`output`サブディレクトリからの相対として解決されます。`--output`コマンドを使用すると、出力先を別のディレクトリに指定できます。
ファイル名へのパス中の存在しないディレクトリは自動的に作成されます。
例えば、次のコマンドは、コアテンプレート`$:/core/templates/exporters/JsonFile`を使用して、フィルター`[tag[done]]`に一致するすべてのTiddlerを`output.json`というJSONファイルに保存します。
```
--rendertiddler "$:/core/templates/exporters/JsonFile" output.json text/plain "" exportFilter "[tag[done]]"
```
+9 -3
View File
@@ -1,14 +1,20 @@
title: $:/language/Help/rendertiddlers
description: フィルタパターンを指定してマッチする Tiddler を指定した ContentTypeで出力
フィルタパターンを指定してマッチする Tiddler を指定した ContentType(デフォルトは`text/html`)と拡張子(デフォルトは`.html`)で出力します。
(注意: この`--rendertiddlers`コマンドは、より柔軟な新しい`--render`コマンドに置き換えられたため、非推奨となりました。)
フィルタパターンを指定してマッチするTiddlerを指定したContentType(デフォルトは`text/html`)と拡張子(デフォルトは`.html`)で出力します。
```
--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>]
--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] ["noclean"]
```
使用例:
```
--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain
--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain
```
デフォルトでは、パス名はeditionディレクトリの`output`サブディレクトリからの相対として解決されます。`--output`コマンドを使用すると、出力先を別のディレクトリに指定できます。
''noclean''フラグが指定されていない限り、対象ディレクトリ内のファイルはすべて削除されます。対象ディレクトリが存在しない場合は、再帰的に作成されます。
+7 -1
View File
@@ -1,8 +1,14 @@
title: $:/language/Help/savetiddler
description: raw テキストの Tiddler をファイルに保存
個別の Tiddler を raw テキストあるいはバイナリフォーマットにて、指定したファイル名に保存します。
(注意: この`--savetiddler`コマンドは、より柔軟な新しい`--save`コマンドに置き換えられたため、非推奨となりました。)
個別のTiddlerをrawテキストあるいはバイナリフォーマットにて、指定したファイル名に保存します。
```
--savetiddler <title> <filename>
```
デフォルトでは、ファイル名はeditionディレクトリの`output`サブディレクトリからの相対として解決されます。`--output`コマンドを使用すると、出力先を別のディレクトリに指定できます。
ファイル名へのパス中の存在しないディレクトリは自動的に作成されます。
+8 -6
View File
@@ -1,14 +1,16 @@
title: $:/language/Help/savetiddlers
description: raw Tiddler グループをファイルへ保存
description: raw Tiddlerグループをディレクトリへ保存
(注意: `--savetiddler` コマンドは非推奨で、新しい、より柔軟な `--save` コマンドが優先されます)
(注意: `--savetiddlers`コマンドは非推奨で、新しい、より柔軟な`--save`コマンドが推奨されます)
個々の Tiddler を生のテキストまたはバイナリ形式で指定されたファイル名に保存します。
個々のTiddlerを生のテキストまたはバイナリ形式で指定されたファイル名に保存します。
```
--savetiddler <title> <filename>
--savetiddlers <filter> <pathname> ["noclean"]
```
デフォルトでは、ファイル名はエディションディレクトリの `output` サブディレクトリからの相対パスで解決されます。 `--output` コマンドを使用すると、出力を別のディレクトリに向けることができます。
デフォルトでは、パス名はeditionディレクトリの`output`サブディレクトリからの相対パスで解決されます。`--output`コマンドを使用すると、出力を別のディレクトリに向けることができます。
ファイル名のパスに欠落しているディレクトリがあれば、自動的に作成されます。
指定されたファイルを保存する前に、出力ディレクトリ内の既存ファイルが削除されます。''noclean''フラグを指定することで、この削除機能を無効にできます。
パス名に欠落しているディレクトリがあれば、自動的に作成されます。
+24 -13
View File
@@ -1,25 +1,25 @@
title: $:/language/Help/server
description: TiddlyWikiHTTP サーバのインターフェースを提供
description: (非推奨: 'listen'コマンドを参照) TiddlyWikiHTTPサーバのインターフェースを提供
TiddlyWiki5 に組み込まれているサーバー機能は非常にシンプルなものです。TiddlyWeb との互換性はありますが、インターネット上で安定して公開するために必要となるいくつもの機能がサポートされていません
root 階層では指定された Tiddler のレンダリングを行います。root 階層以外では JSON エンコードされた個々の Tiddler や、一般的な HTTP 操作(`GET`, `PUT`, `DELETE`)をサポートします。
HTTP経由でWikiを提供するためのレガシーコマンド
```
--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host>
--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>
```
以下のパラメータがあります:
* ''port'' - 待ち受けるポート番号デフォルトは "8080"
* ''roottiddler'' - root 階層になる Tiddler(デフォルトは "$:/core/save/all"
* ''rendertype'' - root Tiddler がレンダリングされるときの ContentType(デフォルトは "text/plain"
* ''servetype'' - root Tiddler がリクエストされるときの ContentType(デフォルトは "text/html"
* ''port'' - 待ち受けるポート番号。数値以外の値は、システム環境変数として解釈され、ポート番号が抽出されます。(デフォルトは "8080")
* ''root-tiddler'' - root 階層になる Tiddler(デフォルトは "$:/core/save/all"
* ''root-render-type'' - root Tiddler がレンダリングされるときの ContentType(デフォルトは "text/plain"
* ''root-serve-type'' - root Tiddler がリクエストされるときの ContentType(デフォルトは "text/html"
* ''username'' - 編集した Tiddler を保存する際のデフォルトユーザ名
* ''password'' - ベーシック認証用のパスワード
* ''host'' - サーバーとなるホスト名(デフォルトは "127.0.0.1" つまり "localhost"
* ''password'' - オプションのベーシック認証用のパスワード
* ''host'' - オプションのサーバーとなるホスト名(デフォルトは "127.0.0.1" つまり "localhost"
* ''path-prefix'' - オプションのパスのプレフィックス
* ''debug-level'' - オプションのデバッグレベル。リクエストの詳細を表示するには"debug"に設定します(デフォルトは"none")
password パラメータが指定された場合ブラウザはユーザ名とパスワードを尋ねるようになります。なお、このパスワードはネットワーク上を平文で流れるため、この実装はインターネット上に公開するような一般的な使用には適していないことに注意してください。
password パラメータが指定された場合ブラウザはユーザ名とパスワードを尋ねるようになります。なお、パスワードはネットワーク上を平文で流れるため、この実装は信頼できるネットワークやHTTPS接続でのみ使用してください。
使用例:
@@ -27,5 +27,16 @@ password パラメータが指定された場合ブラウザはユーザ名と
--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd
```
同時に複数の TiddlyWiki サーバーを起動したい場合は、それぞれに別々のポート番号を割り当てる必要があります。
ホスト名またはパスのプレフィックスを設定し、パスワードを必須にしたくない場合は、ユーザ名とパスワードを空の文字列として指定できます。
```
--server 8080 $:/core/save/all text/plain text/html "" "" 192.168.0.245
```
このようなアドレスを使用すると、システムがローカルネットワークに公開されます。インスタンスをローカルネットワーク全体に公開する方法や、考えられるセキュリティ上の懸念事項については、TiddlyWiki.comのWebServer Tiddlerを参照してください。
同時に複数の TiddlyWiki サーバーを起動したい場合は、それぞれに別々のポート番号を割り当てる必要があります。ポート番号をNode.jsプロセスに渡すためには、環境変数を使用すると便利です。この例では、"MY_PORT_NUMBER"という環境変数を参照しています:
```
--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd
```
+2
View File
@@ -12,6 +12,8 @@ Listing/Preview/DiffFields: 差分 (項目)
Listing/Preview/Fields: 項目
Listing/Preview/Text: テキスト
Listing/Preview/TextRaw: テキスト (Raw)
Listing/ImportOptions/Caption: インポートオプション
Listing/ImportOptions/NoMatch: これらのファイルにはインポートオプションを適用しません。
Listing/Rename/CancelRename: キャンセル
Listing/Rename/ConfirmRename: Tiddler の名前を変更
Listing/Rename/OverwriteWarning: このタイトルの Tiddler はすでに存在しています。
+3 -2
View File
@@ -1,5 +1,6 @@
title: $:/language/
Alerts: アラート
AboveStory/ClassicPlugin/Warning: ~TiddlyWiki Classic用に設計されたプラグインを読み込もうとしています。 [[これらのプラグインは TiddlyWiki バージョン 5.xx では動作しません|these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]のでご注意ください。検出された~TiddlyWiki Classic プラグイン:
BinaryWarning/Prompt: この Tiddler にはバイナリデータが含まれています
ClassicWarning/Hint: この Tiddler はクラシックスタイルの TiddlyWiki フォーマットで書かれています。このフォーマットは TiddlyWiki5 との完全な互換性はありません。詳しくは https://tiddlywiki.com/static/Upgrading.html を参照してください。
@@ -32,7 +33,7 @@ Error/Filter: フィルタエラー
Error/FilterRunPrefix: フィルタエラー: フィルタランのプレフィックスが不明です
Error/FilterSyntax: フィルタエラー: フィルタ式のシンタックスが間違っています
Error/FormatFilterOperator: フィルタエラー: 'format'フィルタオペレータのサフィックスが不明です
Error/IsFilterOperator: フィルタエラー: 'is'フィルタオペレータのオペランドが不明です
Error/IsFilterOperator: フィルタエラー: 'is'フィルタオペレータのパラメータが不明です
Error/LoadingPluginLibrary: プラグインライブラリの読み込みエラー
Error/NetworkErrorAlert: `<h2>''ネットワークエラー''</h2>サーバーへの接続が失われたようです。ネットワーク接続に問題がある可能性があります。続行する前に、ネットワーク接続を回復してください。<br><br>''保存されていない変更は、接続が回復すると自動的に同期されます。''`
Error/PutEditConflict: サーバー上でファイルが変更されました
@@ -77,7 +78,7 @@ No: いいえ
OfficialPluginLibrary: 公式 ~TiddlyWiki プラグインライブラリ
OfficialPluginLibrary/Hint: tiddlywiki.comにある公式~TiddlyWikiプラグインライブラリ。プラグイン、テーマ、言語パックはコアチームによってメンテナンスされています。
PageTemplate/Description: 標準 ~TiddlyWiki レイアウト
PageTemplate/Name: 標準 ~PageTemplate
PageTemplate/Name: 標準レイアウト
PluginReloadWarning: ~JavaScript プラグインの変更を有効にするため、 {{$:/core/ui/Buttons/save-wiki}} 保存して {{$:/core/ui/Buttons/refresh}} 再読み込みしてください
RecentChanges/DateFormat: YYYY-0MM-0DD
Shortcuts/Input/Accept/Hint: 選択項目を許可します
+1 -1
View File
@@ -1,4 +1,4 @@
title: $:/config/NewJournal/
Tags: 日誌
Text:
Title: YYYY年MM月DD日(ddd)
+3
View File
@@ -0,0 +1,3 @@
title: $:/config/NewJournal/Tags
日誌
+1 -1
View File
@@ -1,3 +1,3 @@
title: $:/SiteTitle
私の ~TiddlyWiki
私のTiddlyWiki
+6 -1
View File
@@ -9,12 +9,17 @@ Advanced/ShadowInfo/NotShadow/Hint: この Tiddler <$link to=<<infoTiddler>>><$t
Advanced/ShadowInfo/OverriddenShadow/Hint: 通常の Tiddler に上書きされています
Advanced/ShadowInfo/Shadow/Hint: この Tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> は隠し Tiddler です
Advanced/ShadowInfo/Shadow/Source: プラグイン <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link> で定義されています
Advanced/CascadeInfo/Heading: カスケード詳細
Advanced/CascadeInfo/Hint: カスケードフィルタを使用するビューテンプレートセグメント(<<tag "$:/tags/ViewTemplate">>)と、現在のTiddlerに対するそれらの結果として得られるテンプレートです。
Advanced/CascadeInfo/Detail/View: ビュー
Advanced/CascadeInfo/Detail/ActiveCascadeFilter: アクティブなカスケードフィルタ
Advanced/CascadeInfo/Detail/Template: テンプレート
Fields/Caption: 項目
List/Caption: 一覧
List/Empty: この Tiddler に一覧はありません
Listed/Caption: 被リスト
Listed/Empty: この Tiddler を参照するリストはありません
References/Caption: 参照
References/Caption: 被リンク
References/Empty: 他の Tiddler から参照されていません
Tagging/Caption: この名でタグ付
Tagging/Empty: この名前でタグ付けされた Tiddler はありません
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/application/javascript
description: JavaScript コード
name: application/javascript
group: Developer
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/application/json
description: JSON データ
name: application/json
group: Developer
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/application/x-tiddler-dictionary
description: データ辞書
name: application/x-tiddler-dictionary
group: Developer
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/javascript
description: JavaScript コード
name: application/javascript
group: Developer
group-sort: 2
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/json
description: JSON データ
name: application/json
group: Developer
group-sort: 2
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/x-tiddler-dictionary
description: データ辞書
name: application/x-tiddler-dictionary
group: Developer
group-sort: 2
-4
View File
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/image/gif
description: GIF 画像
name: image/gif
group: Image
-4
View File
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/image/jpeg
description: JPEG 画像
name: image/jpeg
group: Image
-4
View File
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/image/png
description: PNG 画像
name: image/png
group: Image
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/image/svg+xml
description: SVG 画像
name: image/svg+xml
group: Image
+1
View File
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/gif
description: GIF 画像
name: image/gif
group: Image
group-sort: 1
+1
View File
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/jpeg
description: JPEG 画像
name: image/jpeg
group: Image
group-sort: 1
+1
View File
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/png
description: PNG 画像
name: image/png
group: Image
group-sort: 1
+1
View File
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/svg+xml
description: SVG 画像
name: image/svg+xml
group: Image
group-sort: 1
-4
View File
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/text/css
description: CSS スタイルシート
name: text/css
group: Image
-4
View File
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/text/html
description: HTML
name: text/html
group: Text
-4
View File
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/text/plain
description: プレーンテキスト
name: text/plain
group: Text
@@ -1,4 +0,0 @@
title: $:/language/Docs/Types/text/vnd.tiddlywiki
description: TiddlyWiki 5 形式
name: text/vnd.tiddlywiki
group: Text
+3 -2
View File
@@ -1,4 +1,5 @@
title: $:/language/Docs/Types/text/css
description: CSS スタイルシート
description: 静的スタイルシート
name: text/css
group: Image
group: Developer
group-sort: 2
+2 -1
View File
@@ -1,4 +1,5 @@
title: $:/language/Docs/Types/text/html
description: HTML
description: HTMLマークアップ
name: text/html
group: Text
group-sort: 0
+1
View File
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/plain
description: プレーンテキスト
name: text/plain
group: Text
group-sort: 0
@@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/vnd.tiddlywiki-multiple
description: 複合Tiddler
name: text/vnd.tiddlywiki-multiple
group: Developer
group-sort: 2
@@ -1,4 +1,5 @@
title: $:/language/Docs/Types/text/vnd.tiddlywiki
description: TiddlyWiki 5 形式
description: TiddlyWiki 5
name: text/vnd.tiddlywiki
group: Text
group-sort: 0