1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-06-25 23:03:15 +00:00
This commit is contained in:
Bram Chen 2016-11-29 17:44:22 +08:00
commit b29c9cf829
52 changed files with 661 additions and 135 deletions

9
core/images/list.tid Normal file
View File

@ -0,0 +1,9 @@
title: $:/core/images/list
tags: $:/tags/Image
<svg class="tc-image-list tc-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
<g fill-rule="evenodd">
<path d="M0.719999312,185.568543 C2.21955287,181.862817 3.0452019,177.812144 3.0452019,173.568542 C3.0452019,155.891545 -11.2816707,141.568542 -28.9547636,141.568542 L-60.9548326,141.568542 C-78.6344937,141.568542 -92.9547981,155.895431 -92.9547981,173.568542 C-92.9547981,191.24554 -78.6279255,205.568542 -60.9548326,205.568542 L-28.9547636,205.568542 C-27.593228,205.568542 -26.2516158,205.483573 -24.9349335,205.31865 C-31.5207556,201.78951 -36.8809788,196.272192 -40.2126959,189.568542 L-60.9493786,189.568542 C-69.7889277,189.568542 -76.9547981,182.407041 -76.9547981,173.568542 C-76.9547981,164.731986 -69.7994766,157.568542 -60.9493786,157.568542 L-28.9602176,157.568542 C-20.1206685,157.568542 -12.9547981,164.730044 -12.9547981,173.568542 C-12.9547981,176.946528 -14.0004297,180.080016 -15.7866505,182.6623 C-13.6856165,184.473592 -10.949961,185.568542 -7.9585771,185.568542 L0.720002586,185.568542 Z" transform="translate(-44.954798, 173.568542) rotate(-225.000000) translate(44.954798, -173.568542) "></path>
<path d="M87.7480315,128 L23.9992458,128 C19.5813843,128 16,124.409247 16,119.993027 L16,8.00697327 C16,3.58484404 19.5881049,0 23.9992458,0 L104.000754,0 C108.418616,0 112,3.59075293 112,8.00697327 L112,104 L91.2492027,104 C90.2848199,104 89.410573,104.391703 88.7768998,105.025201 C88.1373658,105.661376 87.7480315,106.53563 87.7480315,107.501171 L87.7480315,128 Z M95.7480315,127.879386 L111.627417,112 L95.7480315,112 L95.7480315,127.879386 Z M40,15.5089165 C40,13.5709954 41.5636015,12 43.4998101,12 L98.5001899,12 C100.433082,12 102,13.5614718 102,15.5089165 L102,16.4910835 C102,18.4290046 100.436399,20 98.5001899,20 L43.4998101,20 C41.5669183,20 40,18.4385282 40,16.4910835 L40,15.5089165 Z M32,22 C35.3137085,22 38,19.3137085 38,16 C38,12.6862915 35.3137085,10 32,10 C28.6862915,10 26,12.6862915 26,16 C26,19.3137085 28.6862915,22 32,22 Z M40,31.5089165 C40,29.5709954 41.5636015,28 43.4998101,28 L98.5001899,28 C100.433082,28 102,29.5614718 102,31.5089165 L102,32.4910835 C102,34.4290046 100.436399,36 98.5001899,36 L43.4998101,36 C41.5669183,36 40,34.4385282 40,32.4910835 L40,31.5089165 Z M40,47.5089165 C40,45.5709954 41.5636015,44 43.4998101,44 L98.5001899,44 C100.433082,44 102,45.5614718 102,47.5089165 L102,48.4910835 C102,50.4290046 100.436399,52 98.5001899,52 L43.4998101,52 C41.5669183,52 40,50.4385282 40,48.4910835 L40,47.5089165 Z M40,63.5089165 C40,61.5709954 41.5636015,60 43.4998101,60 L98.5001899,60 C100.433082,60 102,61.5614718 102,63.5089165 L102,64.4910835 C102,66.4290046 100.436399,68 98.5001899,68 L43.4998101,68 C41.5669183,68 40,66.4385282 40,64.4910835 L40,63.5089165 Z M40,79.5089165 C40,77.5709954 41.5636015,76 43.4998101,76 L98.5001899,76 C100.433082,76 102,77.5614718 102,79.5089165 L102,80.4910835 C102,82.4290046 100.436399,84 98.5001899,84 L43.4998101,84 C41.5669183,84 40,82.4385282 40,80.4910835 L40,79.5089165 Z M40,95.5089165 C40,93.5709954 41.5636015,92 43.4998101,92 L98.5001899,92 C100.433082,92 102,93.5614718 102,95.5089165 L102,96.4910835 C102,98.4290046 100.436399,100 98.5001899,100 L43.4998101,100 C41.5669183,100 40,98.4385282 40,96.4910835 L40,95.5089165 Z M40,111.508916 C40,109.570995 41.5680474,108 43.4972017,108 L76.5027983,108 C78.4342495,108 80,109.561472 80,111.508916 L80,112.491084 C80,114.429005 78.4319526,116 76.5027983,116 L43.4972017,116 C41.5657505,116 40,114.438528 40,112.491084 L40,111.508916 Z M32,38 C35.3137085,38 38,35.3137085 38,32 C38,28.6862915 35.3137085,26 32,26 C28.6862915,26 26,28.6862915 26,32 C26,35.3137085 28.6862915,38 32,38 Z M32,54 C35.3137085,54 38,51.3137085 38,48 C38,44.6862915 35.3137085,42 32,42 C28.6862915,42 26,44.6862915 26,48 C26,51.3137085 28.6862915,54 32,54 Z M32,70 C35.3137085,70 38,67.3137085 38,64 C38,60.6862915 35.3137085,58 32,58 C28.6862915,58 26,60.6862915 26,64 C26,67.3137085 28.6862915,70 32,70 Z M32,86 C35.3137085,86 38,83.3137085 38,80 C38,76.6862915 35.3137085,74 32,74 C28.6862915,74 26,76.6862915 26,80 C26,83.3137085 28.6862915,86 32,86 Z M32,102 C35.3137085,102 38,99.3137085 38,96 C38,92.6862915 35.3137085,90 32,90 C28.6862915,90 26,92.6862915 26,96 C26,99.3137085 28.6862915,102 32,102 Z M32,118 C35.3137085,118 38,115.313708 38,112 C38,108.686292 35.3137085,106 32,106 C28.6862915,106 26,108.686292 26,112 C26,115.313708 28.6862915,118 32,118 Z"></path>
</g>
</svg>

View File

@ -54,6 +54,8 @@ Home/Caption: home
Home/Hint: Open the default tiddlers Home/Hint: Open the default tiddlers
Language/Caption: language Language/Caption: language
Language/Hint: Choose the user interface language Language/Hint: Choose the user interface language
Manager/Caption: tiddler manager
Manager/Hint: Open tiddler manager
More/Caption: more More/Caption: more
More/Hint: More actions More/Hint: More actions
NewHere/Caption: new here NewHere/Caption: new here

View File

@ -43,6 +43,33 @@ OfficialPluginLibrary/Hint: The official ~TiddlyWiki plugin library at tiddlywik
PluginReloadWarning: Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect PluginReloadWarning: Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect
RecentChanges/DateFormat: DDth MMM YYYY RecentChanges/DateFormat: DDth MMM YYYY
SystemTiddler/Tooltip: This is a system tiddler SystemTiddler/Tooltip: This is a system tiddler
SystemTiddlers/Include/Prompt: Include system tiddlers
Manager/Item/Fields: Fields
Manager/Item/RawText: Raw text
Manager/Item/WikifiedText: Wikified text
Manager/Item/Colour: Colour
Manager/Item/Tags: Tags
Manager/Item/Icon: Icon
Manager/Item/Icon/None: (none)
Manager/Item/Tools: Tools
Manager/Controls/Show/Prompt: Show:
Manager/Controls/Show/Option/Tiddlers: tiddlers
Manager/Controls/Show/Option/Tags: tags
Manager/Controls/Search/Prompt: Search:
Manager/Controls/Search/Placeholder: Search
Manager/Controls/Sort/Prompt: Sort by:
Manager/Controls/Order/Prompt: Reverse order
Manager/Controls/FilterByTag/Prompt: Filter by tag:
Manager/Controls/FilterByTag/None: (none)
TagManager/Colour/Heading: Colour TagManager/Colour/Heading: Colour
TagManager/Count/Heading: Count TagManager/Count/Heading: Count
TagManager/Icon/Heading: Icon TagManager/Icon/Heading: Icon

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/javascript
description: JavaScript code description: JavaScript code
name: application/javascript name: application/javascript
group: Developer group: Developer
group-sort: 2

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/json
description: JSON data description: JSON data
name: application/json name: application/json
group: Developer group: Developer
group-sort: 2

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/x-tiddler-dictionary
description: Data dictionary description: Data dictionary
name: application/x-tiddler-dictionary name: application/x-tiddler-dictionary
group: Developer group: Developer
group-sort: 2

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/gif
description: GIF image description: GIF image
name: image/gif name: image/gif
group: Image group: Image
group-sort: 1

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/jpeg
description: JPEG image description: JPEG image
name: image/jpeg name: image/jpeg
group: Image group: Image
group-sort: 1

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/png
description: PNG image description: PNG image
name: image/png name: image/png
group: Image group: Image
group-sort: 1

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/svg+xml
description: Structured Vector Graphics image description: Structured Vector Graphics image
name: image/svg+xml name: image/svg+xml
group: Image group: Image
group-sort: 1

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/x-icon
description: ICO format icon file description: ICO format icon file
name: image/x-icon name: image/x-icon
group: Image group: Image
group-sort: 1

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/css
description: Static stylesheet description: Static stylesheet
name: text/css name: text/css
group: Developer group: Developer
group-sort: 2

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/html
description: HTML markup description: HTML markup
name: text/html name: text/html
group: Text group: Text
group-sort: 0

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/plain
description: Plain text description: Plain text
name: text/plain name: text/plain
group: Text group: Text
group-sort: 0

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/vnd.tiddlywiki
description: TiddlyWiki 5 description: TiddlyWiki 5
name: text/vnd.tiddlywiki name: text/vnd.tiddlywiki
group: Text group: Text
group-sort: 0

View File

@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/x-tiddlywiki
description: TiddlyWiki Classic description: TiddlyWiki Classic
name: text/x-tiddlywiki name: text/x-tiddlywiki
group: Text group: Text
group-sort: 0

View File

@ -0,0 +1,22 @@
/*\
title: $:/core/modules/filters/all/tags.js
type: application/javascript
module-type: allfilteroperator
Filter function for [all[tags]]
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.tags = function(source,prefix,options) {
return Object.keys(options.wiki.getTagMap());
};
})();

View File

@ -28,11 +28,20 @@ Export our filter function
exports.is = function(source,operator,options) { exports.is = function(source,operator,options) {
// Dispatch to the correct isfilteroperator // Dispatch to the correct isfilteroperator
var isFilterOperators = getIsFilterOperators(); var isFilterOperators = getIsFilterOperators();
var isFilterOperator = isFilterOperators[operator.operand]; if(operator.operand) {
if(isFilterOperator) { var isFilterOperator = isFilterOperators[operator.operand];
return isFilterOperator(source,operator.prefix,options); if(isFilterOperator) {
return isFilterOperator(source,operator.prefix,options);
} else {
return [$tw.language.getString("Error/IsFilterOperator")];
}
} else { } else {
return [$tw.language.getString("Error/IsFilterOperator")]; // Return all tiddlers if the operand is missing
var results = [];
source(function(tiddler,title) {
results.push(title);
});
return results;
} }
}; };

View File

@ -12,6 +12,23 @@ Filter operators for manipulating the current selection list
/*global $tw: false */ /*global $tw: false */
"use strict"; "use strict";
/*
Order a list
*/
exports.order = function(source,operator,options) {
var results = [];
if(operator.operand.toLowerCase() === "reverse") {
source(function(tiddler,title) {
results.unshift(title);
});
} else {
source(function(tiddler,title) {
results.push(title);
});
}
return results;
};
/* /*
Reverse list Reverse list
*/ */

View File

@ -17,19 +17,30 @@ Export our filter function
*/ */
exports.tag = function(source,operator,options) { exports.tag = function(source,operator,options) {
var results = []; var results = [];
if(operator.prefix === "!") { if((operator.suffix || "").toLowerCase() === "strict" && !operator.operand) {
// New semantics:
// Always return copy of input if operator.operand is missing
source(function(tiddler,title) { source(function(tiddler,title) {
if(tiddler && !tiddler.hasTag(operator.operand)) { results.push(title);
results.push(title);
}
}); });
} else { } else {
source(function(tiddler,title) { // Old semantics:
if(tiddler && tiddler.hasTag(operator.operand)) { if(operator.prefix === "!") {
results.push(title); // Returns a copy of the input if operator.operand is missing
} source(function(tiddler,title) {
}); if(tiddler && !tiddler.hasTag(operator.operand)) {
results = options.wiki.sortByList(results,operator.operand); results.push(title);
}
});
} else {
// Returns empty results if operator.operand is missing
source(function(tiddler,title) {
if(tiddler && tiddler.hasTag(operator.operand)) {
results.push(title);
}
});
results = options.wiki.sortByList(results,operator.operand);
}
} }
return results; return results;
}; };

View File

@ -358,8 +358,7 @@ exports.getWeek = function(date) {
d = 7; // JavaScript Sun=0, ISO Sun=7 d = 7; // JavaScript Sun=0, ISO Sun=7
} }
dt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo dt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo
var x = new Date(dt.getFullYear(),0,1); var n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1) + 3600000) / 86400000);
var n = Math.floor((dt.getTime() - x.getTime()) / 86400000);
return Math.floor(n / 7) + 1; return Math.floor(n / 7) + 1;
}; };

View File

@ -65,7 +65,12 @@ CheckboxWidget.prototype.getValue = function() {
} }
} }
if(this.checkboxField) { if(this.checkboxField) {
var value = tiddler.fields[this.checkboxField] || this.checkboxDefault || ""; var value;
if($tw.utils.hop(tiddler.fields,this.checkboxField)) {
value = tiddler.fields[this.checkboxField] || "";
} else {
value = this.checkboxDefault || "";
}
if(value === this.checkboxChecked) { if(value === this.checkboxChecked) {
return true; return true;
} }

View File

@ -2,11 +2,13 @@ title: $:/core/ui/EditTemplate/tags
tags: $:/tags/EditTemplate tags: $:/tags/EditTemplate
\define lingo-base() $:/language/EditTemplate/ \define lingo-base() $:/language/EditTemplate/
\define tag-styles() \define tag-styles()
background-color:$(backgroundColor)$; background-color:$(backgroundColor)$;
fill:$(foregroundColor)$; fill:$(foregroundColor)$;
color:$(foregroundColor)$; color:$(foregroundColor)$;
\end \end
\define tag-body-inner(colour,fallbackTarget,colourA,colourB) \define tag-body-inner(colour,fallbackTarget,colourA,colourB)
<$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$"""> <$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$""">
<span style=<<tag-styles>> class="tc-tag-label"> <span style=<<tag-styles>> class="tc-tag-label">
@ -15,39 +17,24 @@ color:$(foregroundColor)$;
</span> </span>
</$vars> </$vars>
\end \end
\define tag-body(colour,palette) \define tag-body(colour,palette)
<$macrocall $name="tag-body-inner" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/> <$macrocall $name="tag-body-inner" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>
\end \end
\define tag-picker-actions()
<$action-listops
$tiddler=<<currentTiddler>>
$field="tags"
$subfilter="[<tag>] [all[current]tags[]]"
/>
\end
<div class="tc-edit-tags"> <div class="tc-edit-tags">
<$fieldmangler> <$fieldmangler>
<$list filter="[all[current]tags[]sort[title]]" storyview="pop"> <$list filter="[all[current]tags[]sort[title]]" storyview="pop">
<$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}}/> <$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}}/>
</$list> </$list>
<div class="tc-edit-add-tag">
<span class="tc-add-tag-name">
<$edit-text tiddler="$:/temp/NewTagName" tag="input" default="" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-edit-texteditor tc-popup-handle"/>
</span> <$button popup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class="tc-add-tag-button">
<$button message="tm-add-tag" param={{$:/temp/NewTagName}} set="$:/temp/NewTagName" setTo="" class="">
<<lingo Tags/Add/Button>>
</$button>
</span>
</div>
<div class="tc-block-dropdown-wrapper">
<$reveal state=<<qualify "$:/state/popup/tags-auto-complete">> type="nomatch" text="" default="">
<div class="tc-block-dropdown">
<$linkcatcher set="$:/temp/NewTagName" setTo="" message="tm-add-tag">
<$list filter="[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]">
{{||$:/core/ui/Components/tag-link}}
</$list>
<hr>
<$list filter="[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]">
{{||$:/core/ui/Components/tag-link}}
</$list>
</$linkcatcher>
</div>
</$reveal>
</div>
</$fieldmangler> </$fieldmangler>
</div> <$macrocall $name="tag-picker" actions=<<tag-picker-actions>>/>
</div>

View File

@ -10,7 +10,7 @@ tags: $:/tags/EditTemplate
<$reveal state=<<qualify "$:/state/popup/type-dropdown">> type="nomatch" text="" default=""> <$reveal state=<<qualify "$:/state/popup/type-dropdown">> type="nomatch" text="" default="">
<div class="tc-block-dropdown tc-edit-type-dropdown"> <div class="tc-block-dropdown tc-edit-type-dropdown">
<$linkcatcher to="!!type"> <$linkcatcher to="!!type">
<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group]]'> <$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>
<div class="tc-dropdown-item"> <div class="tc-dropdown-item">
<$text text={{!!group}}/> <$text text={{!!group}}/>
</div> </div>

92
core/ui/Manager.tid Normal file
View File

@ -0,0 +1,92 @@
title: $:/Manager
icon: $:/core/images/list
color: #bbb
\define lingo-base() $:/language/Manager/
\define list-item-content-item()
<div class="tc-manager-list-item-content-item">
<$vars state-title="""$:/state/popup/manager/item/$(listItem)$""">
<$reveal state=<<state-title>> type="match" text="show" default="show" tag="div">
<$button set=<<state-title>> setTo="hide" class="tc-btn-invisible tc-manager-list-item-content-item-heading">
{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field="caption"/>
</$button>
</$reveal>
<$reveal state=<<state-title>> type="nomatch" text="show" default="show" tag="div">
<$button set=<<state-title>> setTo="show" class="tc-btn-invisible tc-manager-list-item-content-item-heading">
{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field="caption"/>
</$button>
</$reveal>
<$reveal state=<<state-title>> type="match" text="show" default="show" tag="div" class="tc-manager-list-item-content-item-body">
<$transclude tiddler=<<listItem>>/>
</$reveal>
</$vars>
</div>
\end
<div class="tc-manager-wrapper">
<div class="tc-manager-controls">
<div class="tc-manager-control">
<<lingo Controls/Show/Prompt>> <$select tiddler="$:/config/Manager/Show" default="tiddlers">
<option value="tiddlers"><<lingo Controls/Show/Option/Tiddlers>></option>
<option value="tags"><<lingo Controls/Show/Option/Tags>></option>
</$select>
</div>
<div class="tc-manager-control">
<<lingo Controls/Search/Prompt>> <$edit-text tiddler="$:/config/Manager/Filter" tag="input" default="" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>
</div>
<div class="tc-manager-control">
<<lingo Controls/FilterByTag/Prompt>> <$select tiddler="$:/config/Manager/Tag" default="">
<option value=""><<lingo Controls/FilterByTag/None>></option>
<$list filter="[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]" variable="tag">
<option value=<<tag>>><$text text=<<tag>>/></option>
</$list>
</$select>
</div>
<div class="tc-manager-control">
<<lingo Controls/Sort/Prompt>> <$select tiddler="$:/config/Manager/Sort" default="title">
<optgroup label="Common">
<$list filter="title modified modifier created creator created" variable="field">
<option value=<<field>>><$text text=<<field>>/></option>
</$list>
</optgroup>
<optgroup label="All">
<$list filter="[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created" variable="field">
<option value=<<field>>><$text text=<<field>>/></option>
</$list>
</optgroup>
</$select>
<$checkbox tiddler="$:/config/Manager/Order" field="text" checked="reverse" unchecked="forward" default="forward">
<<lingo Controls/Order/Prompt>>
</$checkbox>
</div>
<div class="tc-manager-control">
<$checkbox tiddler="$:/config/Manager/System" field="text" checked="" unchecked="system" default="system">
{{$:/language/SystemTiddlers/Include/Prompt}}
</$checkbox>
</div>
</div>
<div class="tc-manager-list">
<$list filter="[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]">
<$vars transclusion=<<currentTiddler>>>
<div style="tc-manager-list-item">
<$button popup=<<qualify "$:/state/manager/popup">> class="tc-btn-invisible tc-manager-list-item-heading" selectedClass="tc-manager-list-item-heading-selected">
<$text text=<<currentTiddler>>/>
</$button>
<$reveal state=<<qualify "$:/state/manager/popup">> type="nomatch" text="" default="" tag="div" class="tc-manager-list-item-content tc-popup-handle">
<div class="tc-manager-list-item-content-tiddler">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]" variable="listItem">
<<list-item-content-item>>
</$list>
</div>
<div class="tc-manager-list-item-content-sidebar">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]" variable="listItem">
<<list-item-content-item>>
</$list>
</div>
</$reveal>
</div>
</$vars>
</$list>
</div>
</div>

View File

@ -0,0 +1,9 @@
title: $:/Manager/ItemMain/Fields
tags: $:/tags/Manager/ItemMain
caption: {{$:/language/Manager/Item/Fields}}
<table>
<tbody>
<$list filter="[all[current]fields[]sort[title]] -text" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/>
</tbody>
</table>

View File

@ -0,0 +1,5 @@
title: $:/Manager/ItemMain/RawText
tags: $:/tags/Manager/ItemMain
caption: {{$:/language/Manager/Item/RawText}}
<pre><code><$view/></code></pre>

View File

@ -0,0 +1,5 @@
title: $:/Manager/ItemMain/WikifiedText
tags: $:/tags/Manager/ItemMain
caption: {{$:/language/Manager/Item/WikifiedText}}
<$transclude mode="block"/>

View File

@ -0,0 +1,15 @@
title: $:/Manager/ItemSidebar/Colour
tags: $:/tags/Manager/ItemSidebar
caption: {{$:/language/Manager/Item/Colour}}
\define swatch-styles()
height: 1em;
background-color: $(colour)$
\end
<$vars colour={{!!color}}>
<p style=<<swatch-styles>>/>
</$vars>
<p>
<$edit-text field="color" tag="input" type="color"/> / <$edit-text field="color" tag="input" type="text" size="9"/>
</p>

View File

@ -0,0 +1,23 @@
title: $:/Manager/ItemSidebar/Icon
tags: $:/tags/Manager/ItemSidebar
caption: {{$:/language/Manager/Item/Icon}}
<p>
<div class="tc-manager-icon-editor">
<$button popup=<<qualify "$:/state/popup/image-picker">> class="tc-btn-invisible">
<$transclude tiddler={{!!icon}}>
{{$:/language/Manager/Item/Icon/None}}
</$transclude>
</$button>
<div class="tc-block-dropdown-wrapper" style="position: static;">
<$reveal state=<<qualify "$:/state/popup/image-picker">> type="nomatch" text="" default="" tag="div" class="tc-popup">
<div class="tc-block-dropdown tc-popup-keep" style="width: 80%; left: 10%; right: 10%; padding: 0.5em;">
<$macrocall $name="image-picker-include-tagged-images" actions="""
<$action-setfield $field="icon" $value=<<imageTitle>>/>
<$action-deletetiddler $tiddler=<<qualify "$:/state/popup/image-picker">>/>
"""/>
</div>
</$reveal>
</div>
</div>
</p>

View File

@ -0,0 +1,32 @@
title: $:/Manager/ItemSidebar/Tags
tags: $:/tags/Manager/ItemSidebar
caption: {{$:/language/Manager/Item/Tags}}
\define tag-checkbox-actions()
<$action-listops
$tiddler="$:/config/Manager/RecentTags"
$subfilter="[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]"
/>
\end
\define tag-picker-actions()
<<tag-checkbox-actions>>
<$action-listops
$tiddler=<<currentTiddler>>
$field="tags"
$subfilter="[<tag>] [all[current]tags[]]"
/>
\end
<p>
<$list filter="[is[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] " variable="tag">
<div>
<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>
<$macrocall $name="tag-pill" tag=<<tag>>/>
</$checkbox>
</div>
</$list>
</p>
<p>
<$macrocall $name="tag-picker" actions=<<tag-picker-actions>>/>
</p>

View File

@ -0,0 +1,10 @@
title: $:/Manager/ItemSidebar/Tools
tags: $:/tags/Manager/ItemSidebar
caption: {{$:/language/Manager/Item/Tools}}
<p>
<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>
</p>
<p>
<$button message="tm-edit-tiddler" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>
</p>

View File

@ -0,0 +1,19 @@
title: $:/core/ui/Buttons/manager
tags: $:/tags/PageControls
caption: {{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}
description: {{$:/language/Buttons/Manager/Hint}}
\define manager-button(class)
<$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/core/images/list}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>
</$list>
</$button>
\end
<$list filter="[list[$:/StoryList]] +[field:title[$:/Manager]]" emptyMessage=<<manager-button>>>
<<manager-button "tc-selected">>
</$list>

View File

@ -1,6 +1,7 @@
title: $:/TagManager title: $:/TagManager
icon: $:/core/images/tag-button icon: $:/core/images/tag-button
color: #bbb color: #bbb
caption: {{$:/language/TagManager/Caption}}
\define lingo-base() $:/language/TagManager/ \define lingo-base() $:/language/TagManager/
\define iconEditorTab(type) \define iconEditorTab(type)
@ -51,7 +52,7 @@ $title$$(currentTiddler)$
<$list filter="[tags[]!is[system]sort[title]]"> <$list filter="[tags[]!is[system]sort[title]]">
<tr> <tr>
<td><$edit-text field="color" tag="input" type="color"/></td> <td><$edit-text field="color" tag="input" type="color"/></td>
<td><$transclude tiddler="$:/core/ui/TagTemplate"/></td> <td><$macrocall $name="tag" tag=<<currentTiddler>>/></td>
<td><$count filter="[all[current]tagging[]]"/></td> <td><$count filter="[all[current]tagging[]]"/></td>
<td> <td>
<$macrocall $name="iconEditor" title={{!!title}}/> <$macrocall $name="iconEditor" title={{!!title}}/>

View File

@ -1,30 +1,3 @@
title: $:/core/ui/TagTemplate title: $:/core/ui/TagTemplate
\define tag-styles() <$macrocall $name="tag" tag=<<currentTiddler>>/>
background-color:$(backgroundColor)$;
fill:$(foregroundColor)$;
color:$(foregroundColor)$;
\end
\define tag-body-inner(colour,fallbackTarget,colourA,colourB)
<$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$""">
<$button popup=<<qualify "$:/state/popup/tag">> class="tc-btn-invisible tc-tag-label" style=<<tag-styles>>>
<$transclude tiddler={{!!icon}}/> <$view field="title" format="text" />
</$button>
<$reveal state=<<qualify "$:/state/popup/tag">> type="popup" position="below" animate="yes" class="tc-drop-down"><$transclude tiddler="$:/core/ui/ListItemTemplate"/>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]" variable="listItem">
<$transclude tiddler=<<listItem>>/>
</$list>
<hr>
<$list filter="[all[current]tagging[]]" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
</$vars>
\end
\define tag-body(colour,palette)
<span class="tc-tag-list-item">
<$macrocall $name="tag-body-inner" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>
</span>
\end
<$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}}/>

View File

@ -0,0 +1,8 @@
title: $:/config/Manager/
Show: tiddlers
Filter:
Order: forward
Sort: title
System: system
Tag:

View File

@ -0,0 +1,3 @@
title: $:/state/popup/manager/item/$:/Manager/
ItemMain/RawText: hide

View File

@ -11,6 +11,7 @@ core/ui/Buttons/refresh: hide
core/ui/Buttons/import: hide core/ui/Buttons/import: hide
core/ui/Buttons/language: hide core/ui/Buttons/language: hide
core/ui/Buttons/tag-manager: hide core/ui/Buttons/tag-manager: hide
core/ui/Buttons/manager: hide
core/ui/Buttons/more-page-actions: hide core/ui/Buttons/more-page-actions: hide
core/ui/Buttons/new-journal: hide core/ui/Buttons/new-journal: hide
core/ui/Buttons/new-image: hide core/ui/Buttons/new-image: hide

View File

@ -1,26 +1,35 @@
title: $:/core/macros/image-picker title: $:/core/macros/image-picker
tags: $:/tags/Macro tags: $:/tags/Macro
\define image-picker-inner(actions) \define image-picker-thumbnail(actions)
<$button tag="a" tooltip="""$(imageTitle)$"""> <$button tag="a" tooltip="""$(imageTitle)$""">
$actions$ $actions$
<$transclude tiddler=<<imageTitle>>/> <$transclude tiddler=<<imageTitle>>/>
</$button> </$button>
\end \end
\define image-picker(actions,subfilter:"") \define image-picker-list(filter,actions)
<div class="tc-image-chooser"> <$list filter="""$filter$""" variable="imageTitle">
<$macrocall $name="image-picker-thumbnail" actions="""$actions$"""/>
<$list filter="[all[shadows+tiddlers]is[image]$subfilter$!has[draft.of]] -[type[application/pdf]] +[sort[title]]" variable="imageTitle">
<$macrocall $name="image-picker-inner" actions="""$actions$"""/>
</$list> </$list>
</div>
\end \end
\define image-picker(actions,filter:"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]")
<div class="tc-image-chooser">
<$vars state-system=<<qualify "$:/state/image-picker/system">>>
<$checkbox tiddler=<<state-system>> field="text" checked="show" unchecked="hide" default="hide">
{{$:/language/SystemTiddlers/Include/Prompt}}
</$checkbox>
<$reveal state=<<state-system>> type="match" text="hide" default="hide" tag="div">
<$macrocall $name="image-picker-list" filter="""$filter$ +[!is[system]]""" actions="""$actions$"""/>
</$reveal>
<$reveal state=<<state-system>> type="nomatch" text="hide" default="hide" tag="div">
<$macrocall $name="image-picker-list" filter="""$filter$""" actions="""$actions$"""/>
</$reveal>
</$vars>
</div>
\end
\define image-picker-include-tagged-images(actions)
<$macrocall $name="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions="""$actions$"""/>
\end

View File

@ -0,0 +1,41 @@
title: $:/core/macros/tag-picker
tags: $:/tags/Macro
\define tag-button()
<$button class="tc-btn-invisible" tag="a">
$(actions)$
<$action-deletetiddler $tiddler="$:/temp/NewTagName"/>
<$macrocall $name="tag-pill" tag=<<tag>>/>
</$button>
\end
\define tag-picker(actions)
<$set name="actions" value="""$actions$""">
<div class="tc-edit-add-tag">
<span class="tc-add-tag-name">
<$edit-text tiddler="$:/temp/NewTagName" tag="input" default="" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-edit-texteditor tc-popup-handle"/>
</span> <$button popup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class="tc-add-tag-button">
<$set name="tag" value={{$:/temp/NewTagName}}>
<$button set="$:/temp/NewTagName" setTo="" class="">
$actions$
<$action-deletetiddler $tiddler="$:/temp/NewTagName"/>
{{$:/language/EditTemplate/Tags/Add/Button}}
</$button>
</$set>
</span>
</div>
<div class="tc-block-dropdown-wrapper">
<$reveal state=<<qualify "$:/state/popup/tags-auto-complete">> type="nomatch" text="" default="">
<div class="tc-block-dropdown">
<$list filter="[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]" variable="tag">
<<tag-button>>
</$list>
<hr>
<$list filter="[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]" variable="tag">
<<tag-button>>
</$list>
</div>
</$reveal>
</div>
</$set>
\end

View File

@ -1,6 +1,44 @@
title: $:/core/macros/tag title: $:/core/macros/tag
tags: $:/tags/Macro tags: $:/tags/Macro
\define tag(tag) \define tag-pill-styles()
{{$tag$||$:/core/ui/TagTemplate}} background-color:$(backgroundColor)$;
fill:$(foregroundColor)$;
color:$(foregroundColor)$;
\end
\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)
<$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$""">
<$element-tag$ $element-attributes$ class="tc-tag-label tc-btn-invisible" style=<<tag-pill-styles>>>
$actions$<$transclude tiddler="""$icon$"""/> <$view tiddler="""$tag$""" field="title" format="text" />
</$element-tag$>
</$vars>
\end
\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)
<$macrocall $name="tag-pill-inner" tag="""$tag$""" icon="""$icon$""" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/>
\end
\define tag-pill(tag,element-tag:"span",element-attributes:"",actions:"")
<span class="tc-tag-list-item">
<$macrocall $name="tag-pill-body" tag="""$tag$""" icon={{$tag$!!icon}} colour={{$tag$!!color}} palette={{$:/palette}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/>
</span>
\end
\define tag(tag)
<span class="tc-tag-list-item">
<$set name="transclusion" value="""$tag$""">
<$macrocall $name="tag-pill-body" tag="""$tag$""" icon={{$tag$!!icon}} colour={{$tag$!!color}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""popup=<<qualify "$:/state/popup/tag">>"""/>
<$reveal state=<<qualify "$:/state/popup/tag">> type="popup" position="below" animate="yes" class="tc-drop-down">
<$tiddler tiddler="""$tag$""">
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]" variable="listItem">
<$transclude tiddler=<<listItem>>/>
</$list>
<hr>
<$list filter="[all[current]tagging[]]" template="$:/core/ui/ListItemTemplate"/>
</$tiddler>
</$reveal>
</$set>
</span>
\end \end

View File

@ -0,0 +1,2 @@
title: $:/tags/Manager/ItemMain
list: $:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields

View File

@ -0,0 +1,2 @@
title: $:/tags/Manager/ItemSidebar
list: $:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools

View File

@ -1,2 +1,2 @@
title: $:/tags/PageControls title: $:/tags/PageControls
list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]] list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]

View File

@ -27,38 +27,11 @@ describe("Utility tests", function() {
it("should handle formatting a date string", function() { it("should handle formatting a date string", function() {
var fds = $tw.utils.formatDateString, var fds = $tw.utils.formatDateString,
// nov is month: 10!
d = new Date(2014,10,9,17,41,28,542); d = new Date(2014,10,9,17,41,28,542);
expect(fds(d,"DDD DD MMM YYYY")).toBe("Sunday 9 November 2014"); expect(fds(d,"DDD DD MMM YYYY")).toBe("Sunday 9 November 2014");
expect(fds(d,"ddd hh mm ssss")).toBe("Sun 17 41 2828"); expect(fds(d,"ddd hh mm ssss")).toBe("Sun 17 41 2828");
expect(fds(d,"MM0DD")).toBe("1109"); expect(fds(d,"MM0DD")).toBe("1109");
expect(fds(d,"MM0\\D\\D")).toBe("110DD"); expect(fds(d,"MM0\\D\\D")).toBe("110DD");
// test some edge cases found at: https://en.wikipedia.org/wiki/ISO_week_date
// 2016-11-13 is Week 45 and it's a Sunday (month nr: 10)
d = new Date(2016,10,12,23,59,59);
expect(fds(d,"WW")).toBe("45");
d = new Date(2016,10,13,23,59,59,999);
expect(fds(d,"WW")).toBe("45");
d = new Date(2016,10,13,23,59,60); // see 60 seconds. so it's week 46
expect(fds(d,"WW")).toBe("46");
// 2006 Dez. 31 is end of week 52 (month nr: 11)
d = new Date(2006,11,31,23,59,59);
expect(fds(d,"WW")).toBe("52");
d = new Date(2006,11,31,23,59,60);
expect(fds(d,"WW")).toBe("1");
// 2010 Jan 03 is in week 53 (month nr: 0)
d = new Date(2010,0,3,23,59,59);
expect(fds(d,"WW")).toBe("53");
d = new Date(2010,0,3,23,59,60);
expect(fds(d,"WW")).toBe("1");
// 2014 12 29 is in week 1 of 2015 (month nr. 11)
d = new Date(2014,11,29,23,59,59);
expect(fds(d,"WW")).toBe("1");
expect(fds(d,"wYYYY")).toBe("2015");
}); });
it("should parse text references", function() { it("should parse text references", function() {

View File

@ -1,13 +1,13 @@
caption: all
created: 20140410103123179 created: 20140410103123179
modified: 20150220160957000 modified: 20161128185445034
op-input: ignored, unless the parameter is empty
op-output: the titles that belong to all the specified categories
op-parameter: zero or more categories
op-purpose: find all titles of a fundamental category
tags: [[Filter Operators]] [[Common Operators]] [[Selection Constructors]] tags: [[Filter Operators]] [[Common Operators]] [[Selection Constructors]]
title: all Operator title: all Operator
type: text/vnd.tiddlywiki type: text/vnd.tiddlywiki
caption: all
op-purpose: find all titles of a fundamental category
op-input: ignored, unless the parameter is empty
op-parameter: zero or more categories
op-output: the titles that belong to all the specified categories
The parameter specifies zero or more fundamental categories using the following syntax: The parameter specifies zero or more fundamental categories using the following syntax:
@ -21,6 +21,7 @@ The parameter specifies zero or more fundamental categories using the following
|^`orphans` |all tiddlers to which there are <<.em no>> hard links |^by title | |^`orphans` |all tiddlers to which there are <<.em no>> hard links |^by title |
|^`shadows` |all the [[shadow tiddlers|ShadowTiddlers]] that exist, including any that have been overridden with non-shadow tiddlers |^no | |^`shadows` |all the [[shadow tiddlers|ShadowTiddlers]] that exist, including any that have been overridden with non-shadow tiddlers |^no |
|^`tiddlers` |all the non-shadow tiddlers that exist |no | |^`tiddlers` |all the non-shadow tiddlers that exist |no |
|^`tags` |all the tags in use on non-shadow tiddlers |no |
If the parameter specifies more than one category, they are processed from left to right. The overall output is initially empty, and each category's output is [[dominantly appended|Dominant Append]] to it in turn. Unrecognised categories contribute nothing to the output. If the parameter specifies more than one category, they are processed from left to right. The overall output is initially empty, and each category's output is [[dominantly appended|Dominant Append]] to it in turn. Unrecognised categories contribute nothing to the output.

View File

@ -1,5 +1,5 @@
created: 20140410103123179 created: 20140410103123179
modified: 20150220161001000 modified: 20161127142329969
tags: [[Filter Operators]] [[Common Operators]] [[Negatable Operators]] tags: [[Filter Operators]] [[Common Operators]] [[Negatable Operators]]
title: is Operator title: is Operator
type: text/vnd.tiddlywiki type: text/vnd.tiddlywiki
@ -23,7 +23,7 @@ The parameter <<.place C>> is one of the following fundamental categories:
|^`tag` |is in use as a tag | |^`tag` |is in use as a tag |
|^`tiddler` |exists as a non-shadow tiddler | |^`tiddler` |exists as a non-shadow tiddler |
If <<.place C>> is anything else, the output is an error message. If <<.place C>> is anything else an error message is returned. <<.from-version "5.1.14"> if <<.place C>> is blank, the output is passed through unchanged (in earlier versions an error message was returned).
`!is[tiddler]` is a synonym for `is[missing]`, and vice versa. `!is[tiddler]` is a synonym for `is[missing]`, and vice versa.

View File

@ -0,0 +1,15 @@
caption: order
created: 20161128185907280
modified: 20161128191251557
op-input: a [[selection of titles|Title Selection]]
op-output: the input, with the order reversed if <<.field F>> is the special value `reverse`
op-parameter: Either the string `reverse` or another value
op-parameter-name: F
op-purpose: selectively reverse the input list
tags: [[Filter Operators]] [[Common Operators]] [[Field Operators]] [[Order Operators]]
title: order Operator
type: text/vnd.tiddlywiki
Either reverses or preserves the order of the input list according to whether the parameter is the special value `reverse`.
<<.operator-examples "order">>

View File

@ -1,18 +1,23 @@
caption: tag
created: 20140410103123179 created: 20140410103123179
modified: 20150203191853000 modified: 20161126122900712
op-input: a [[selection of titles|Title Selection]]
op-neg-output: those input tiddlers that do <<.em not>> have tag <<.place T>>
op-output: those input tiddlers that have tag <<.place T>>
op-parameter: the title of a [[tag|Tagging]]
op-parameter-name: T
op-purpose: filter the input by tag
op-suffix: <<.from-version "5.1.14">> optional `strict` flag
op-suffix-name: S
tags: [[Filter Operators]] [[Common Operators]] [[Tag Operators]] [[Negatable Operators]] tags: [[Filter Operators]] [[Common Operators]] [[Tag Operators]] [[Negatable Operators]]
title: tag Operator title: tag Operator
type: text/vnd.tiddlywiki type: text/vnd.tiddlywiki
caption: tag
op-purpose: filter the input by tag
op-input: a [[selection of titles|Title Selection]]
op-parameter: the title of a [[tag|Tagging]]
op-parameter-name: T
op-output: those input tiddlers that have tag <<.place T>>
op-neg-output: those input tiddlers that do <<.em not>> have tag <<.place T>>
The output is [[sorted|Order of Tagged Tiddlers]] using the tag's <<.field list>> field and the tiddlers' <<.field list-before>> and <<.field list-after>> fields. The output is [[sorted|Order of Tagged Tiddlers]] using the tag's <<.field list>> field and the tiddlers' <<.field list-before>> and <<.field list-after>> fields.
If <<.place T>> is empty, the output of `tag` is empty, and the output of `!tag` is a copy of the input. The behaviour when <<.place T>> is empty depends on the settings of the <<.place S>> optional suffix:
* if <<.place T>> is missing and <<.place S>> is either missing or set to "loose", then the output of `tag` is empty, and the output of `!tag` is a copy of the input.
* <<.from-version "5.1.14">> if <<.place T>> is missing and <<.place S>> is set to "strict", then the output of both `tag` and `!tag` is a copy of the input
<<.operator-examples "tag">> <<.operator-examples "tag">>

View File

@ -0,0 +1,15 @@
caption: tag-picker
created: 20161128191316701
modified: 20161128191435641
tags: Macros [[Core Macros]]
title: tag-picker Macro
type: text/vnd.tiddlywiki
The <<.def tag-picker>> [[macro|Macros]] generates a combination of a text box and a button that allows a tag to be selected and added.
!! Parameters
;actions
: Action widgets to be triggered when the pill is clicked. Within the text, the variable ''tag'' contains the title of the selected tag.
<<.macro-examples "tag-picker">>

View File

@ -0,0 +1,21 @@
caption: tag-pill
created: 20161128190930538
modified: 20161128191220364
tags: Macros [[Core Macros]]
title: tag-pill Macro
type: text/vnd.tiddlywiki
The <<.def tag-pill>> [[macro|Macros]] generates a static tag pill showing a specified tag, but without the dropdown action provided by the [[tag Macro]].
!! Parameters
;tag
: The title of the tag
;element-tag
: The element name to be used for the pill (defaults to "span")
;element-attributes
: Additional attributes for the pill element
;actions
: Action widgets to be triggered when the pill is clicked. Within the text, the macro parameter ''tag'' contains the title of the selected tag.
<<.macro-examples "tag-pill">>

View File

@ -1725,6 +1725,113 @@ html body.tc-body.tc-single-tiddler-window {
border: none; border: none;
} }
/*
** Manager
*/
.tc-manager-wrapper {
}
.tc-manager-controls {
}
.tc-manager-control {
margin: 0.5em 0;
}
.tc-manager-list {
width: 100%;
border-top: 1px solid <<colour muted-foreground>>;
border-left: 1px solid <<colour muted-foreground>>;
border-right: 1px solid <<colour muted-foreground>>;
}
.tc-manager-list-item {
}
.tc-manager-list-item-heading {
display: block;
width: 100%;
text-align: left;
border-bottom: 1px solid <<colour muted-foreground>>;
padding: 3px;
}
.tc-manager-list-item-heading-selected {
font-weight: bold;
color: <<colour background>>;
fill: <<colour background>>;
background-color: <<colour foreground>>;
}
.tc-manager-list-item-heading:hover {
background: <<colour primary>>;
color: <<colour background>>;
}
.tc-manager-list-item-content {
display: flex;
}
.tc-manager-list-item-content-sidebar {
flex: 1 0;
background: <<colour tiddler-editor-background>>;
border-right: 0.5em solid <<colour muted-foreground>>;
border-bottom: 0.5em solid <<colour muted-foreground>>;
white-space: nowrap;
}
.tc-manager-list-item-content-item-heading {
display: block;
width: 100%;
text-align: left;
background: <<colour muted-foreground>>;
text-transform: uppercase;
font-size: 0.6em;
font-weight: bold;
padding: 0.5em 0 0.5em 0;
}
.tc-manager-list-item-content-item-body {
padding: 0 0.5em 0 0.5em;
}
.tc-manager-list-item-content-item-body > pre {
margin: 0.5em 0 0.5em 0;
border: none;
background: inherit;
}
.tc-manager-list-item-content-tiddler {
flex: 3 1;
border-left: 0.5em solid <<colour muted-foreground>>;
border-right: 0.5em solid <<colour muted-foreground>>;
border-bottom: 0.5em solid <<colour muted-foreground>>;
}
.tc-manager-list-item-content-item-body > table {
border: none;
padding: 0;
margin: 0;
}
.tc-manager-list-item-content-item-body > table td {
border: none;
}
.tc-manager-icon-editor > button {
width: 100%;
}
.tc-manager-icon-editor > button > svg,
.tc-manager-icon-editor > button > button {
width: 100%;
height: auto;
}
/* /*
** Alerts ** Alerts
*/ */