1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-27 21:31:25 +00:00

Compare commits

...

32 Commits

Author SHA1 Message Date
Jermolene
083cb848f2 Version update 2013-11-10 23:15:19 +00:00
Jermolene
254da0b170 Clean up the tools tab 2013-11-10 23:14:23 +00:00
Jermolene
8b0b9eafb8 Simplify the page controls by dropping the drop shadow
Makes the icons less blurry in Retina™ displays
2013-11-10 23:04:41 +00:00
Jermolene
04e2f18ff1 Remove tooltip, classes and styles from transclusion syntax
Now that transclusion doesn't generate any intrinsic elements we don't
have an element to attach the tooltip, classes and styles to.
2013-11-10 22:46:37 +00:00
Jermolene
a4783a2c19 Add a demo control panel page for the Starlight theme
If you open the control panel and then use the tools sidebar to switch
themes to and from Starlight, you'll see this tab dynamically appear
and disappear
2013-11-10 22:45:53 +00:00
Jermolene
8fb6f26729 Make sure we don't try to wikify the names of modules in the module listing 2013-11-10 22:45:11 +00:00
Jermolene
0e7ffa677a Narrow the gap between tabs 2013-11-10 21:53:56 +00:00
Jermolene
a668f09522 More refinements to the control panel
Including adding a TiddlyWeb-specific control panel tab
2013-11-10 21:53:39 +00:00
Jermolene
2598e22422 Spruce up the control panel
Structure things with extensible tabs.
2013-11-10 21:40:03 +00:00
Jermolene
dc6a9c6348 Release note for alpha.14 2013-11-10 19:24:34 +00:00
Jermolene
b1667259f0 Fix default password
The password widget was defaulting to the password "null".
2013-11-10 19:22:10 +00:00
Jermolene
c77b451863 Fixed bug when using checkbox widget to apply a tag to a tiddler that is untagged 2013-11-10 19:21:37 +00:00
Jermolene
9e48460940 Docs update 2013-11-09 19:29:57 +00:00
Jermolene
3972e9150e Version update 2013-11-09 19:27:17 +00:00
Jermolene
0c8ba71edd Use the built-in tabs macro for the tiddler info panel and the sidebar tabs
Now you can insert your own tabs, too - see the release note
2013-11-09 19:21:37 +00:00
Jermolene
a7bb331412 Extend view widget so that it falls back to its content if the field/property is empty or missing 2013-11-09 17:30:06 +00:00
Jermolene
6f1c9d88cc Improve the Widget.prototype.removeChildDomNodes() method so that most subclasses won't need to override it 2013-11-09 16:55:14 +00:00
Jermolene
e2d7c7aea5 Docs updates 2013-11-09 16:19:43 +00:00
Jermolene
dc0645725e More accurate text in ThemeTweaks 2013-11-09 16:19:38 +00:00
Jermolene
06e0bdbfbb Improve readability of CodeMirror editor 2013-11-09 15:56:17 +00:00
Jermolene
14db418519 Docs updates 2013-11-09 15:55:59 +00:00
Jermolene
d5e1a9d7d0 Docs updates 2013-11-09 14:48:17 +00:00
Jermolene
ccb7fac25e Fix further typo in edit-text widget 2013-11-09 14:17:08 +00:00
Jermolene
bbe9a9c191 Fixed typos in edit-text widget
Thanks @grayeul
2013-11-09 13:15:54 +00:00
Jermolene
4ee67986a5 Docs update 2013-11-09 12:52:09 +00:00
Jermolene
0a657acbd8 Make the modifier field in the subtitle be a link 2013-11-09 12:51:52 +00:00
Jermolene
d41feb63e3 Rejiggle the release documentation 2013-11-09 11:55:14 +00:00
Jermolene
b745e304a2 Fix problem with edit-text widget and indexed properties
Thanks to @grayeul for the pointer:

https://github.com/Jermolene/TiddlyWiki5/commit/78bc89cbdbcc26e373001f2d
473436489d8d4365#commitcomment-4554613
2013-11-09 10:55:18 +00:00
Jermolene
2a7f577366 Script for bumping the version number 2013-11-09 10:54:25 +00:00
Jermolene
73d301e63f Update the deploy script to publish to NPM
Which means that I'll only be deploying when there's a version bump.
Which means that I'll be deploying new versions multiple times a day
sometimes.
2013-11-09 10:54:10 +00:00
Jermolene
fbfdd80f9b Fix @giffmex's themes
They just needed the `tw-body` class added to the body element.
2013-11-09 10:53:16 +00:00
Jermolene
2d0ff5f8a2 Docs updates 2013-11-09 10:52:52 +00:00
89 changed files with 403 additions and 477 deletions

View File

@@ -7,10 +7,7 @@ Wiki text rule for block-level transclusion. For example:
```
{{MyTiddler}}
{{MyTiddler|tooltip}}
{{MyTiddler||TemplateTitle}}
{{MyTiddler|tooltip||TemplateTitle}}
{{MyTiddler}width:40;height:50;}.class.class
```
\*/
@@ -26,7 +23,7 @@ exports.types = {block: true};
exports.init = function(parser) {
this.parser = parser;
// Regexp to match
this.matchRegExp = /\{\{([^\{\}\|]+)(?:\|([^\|\{\}]+))?(?:\|\|([^\|\{\}]+))?\}([^\}]*)\}(?:\.(\S+))?(?:\r?\n|$)/mg;
this.matchRegExp = /\{\{([^\{\}\|]+)(?:\|\|([^\|\{\}]+))?\}\}(?:\r?\n|$)/mg;
};
exports.parse = function() {
@@ -38,10 +35,7 @@ exports.parse = function() {
targetTitle = tr.title,
targetField = tr.field,
targetIndex = tr.index,
tooltip = this.match[2],
template = $tw.utils.trim(this.match[3]),
style = this.match[4],
classes = this.match[5];
template = $tw.utils.trim(this.match[2]);
// Prepare the transclude widget
var transcludeNode = {
type: "element",
@@ -66,15 +60,6 @@ exports.parse = function() {
if(targetIndex) {
transcludeNode.attributes.index = {type: "string", value: targetIndex};
}
if(tooltip) {
transcludeNode.attributes.tooltip = {type: "string", value: tooltip};
}
if(style) {
transcludeNode.attributes.style = {type: "string", value: style};
}
if(classes) {
transcludeNode.attributes["class"] = {type: "string", value: classes.split(".").join(" ")};
}
return [tiddlerNode];
};

View File

@@ -7,10 +7,7 @@ Wiki text rule for inline-level transclusion. For example:
```
{{MyTiddler}}
{{MyTiddler|tooltip}}
{{MyTiddler||TemplateTitle}}
{{MyTiddler|tooltip||TemplateTitle}}
{{MyTiddler}width:40;height:50;}.class.class
```
\*/
@@ -26,7 +23,7 @@ exports.types = {inline: true};
exports.init = function(parser) {
this.parser = parser;
// Regexp to match
this.matchRegExp = /\{\{([^\{\}\|]+)(?:\|([^\|\{\}]+))?(?:\|\|([^\|\{\}]+))?\}([^\}]*)\}(?:\.(\S+))?/mg;
this.matchRegExp = /\{\{([^\{\}\|]+)(?:\|\|([^\|\{\}]+))?\}\}/mg;
};
exports.parse = function() {
@@ -38,10 +35,7 @@ exports.parse = function() {
targetTitle = tr.title,
targetField = tr.field,
targetIndex = tr.index,
tooltip = this.match[2],
template = $tw.utils.trim(this.match[3]),
style = this.match[4],
classes = this.match[5];
template = $tw.utils.trim(this.match[2]);
// Prepare the transclude widget
var transcludeNode = {
type: "element",
@@ -64,15 +58,6 @@ exports.parse = function() {
if(targetIndex) {
transcludeNode.attributes.index = {type: "string", value: targetIndex};
}
if(tooltip) {
transcludeNode.attributes.tooltip = {type: "string", value: tooltip};
}
if(style) {
transcludeNode.attributes.style = {type: "string", value: style};
}
if(classes) {
transcludeNode.attributes["class"] = {type: "string", value: classes.split(".").join(" ")};
}
return [tiddlerNode];
};

View File

@@ -63,16 +63,6 @@ BrowseWidget.prototype.refresh = function(changedTiddlers) {
return false;
};
/*
Remove any DOM nodes created by this widget or its children
*/
BrowseWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.browse = BrowseWidget;
})();

View File

@@ -136,16 +136,6 @@ ButtonWidget.prototype.refresh = function(changedTiddlers) {
return this.refreshChildren(changedTiddlers);
};
/*
Remove any DOM nodes created by this widget or its children
*/
ButtonWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.button = ButtonWidget;
})();

View File

@@ -62,7 +62,7 @@ CheckboxWidget.prototype.handleChangeEvent = function(event) {
var checked = this.inputDomNode.checked,
tiddler = this.wiki.getTiddler(this.checkboxTitle);
if(tiddler && tiddler.hasTag(this.checkboxTag) !== checked) {
var newTags = tiddler.fields.tags.slice(0),
var newTags = (tiddler.fields.tags || []).slice(0),
pos = newTags.indexOf(this.checkboxTag);
if(pos !== -1) {
newTags.splice(pos,1);
@@ -103,16 +103,6 @@ CheckboxWidget.prototype.refresh = function(changedTiddlers) {
}
};
/*
Remove any DOM nodes created by this widget or its children
*/
CheckboxWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.checkbox = CheckboxWidget;
})();

View File

@@ -66,16 +66,6 @@ CountWidget.prototype.refresh = function(changedTiddlers) {
};
/*
Remove any DOM nodes created by this widget
*/
CountWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.count = CountWidget;
})();

View File

@@ -175,16 +175,6 @@ DropZoneWidget.prototype.refresh = function(changedTiddlers) {
return this.refreshChildren(changedTiddlers);
};
/*
Remove any DOM nodes created by this widget or its children
*/
DropZoneWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.dropzone = DropZoneWidget;
})();

View File

@@ -94,16 +94,6 @@ EditBitmapWidget.prototype.refresh = function(changedTiddlers) {
return false;
};
/*
Remove any DOM nodes created by this widget or its children
*/
EditBitmapWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
EditBitmapWidget.prototype.loadCanvas = function() {
var tiddler = this.wiki.getTiddler(this.editTitle),
currImage = new Image();

View File

@@ -73,12 +73,21 @@ Get the tiddler being edited and current value
*/
EditTextWidget.prototype.getEditInfo = function() {
// Get the edit value
var tiddler = this.wiki.getTiddler(this.editTitle),
value;
var self = this,
value,
update;
if(this.editIndex) {
value = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);
update = function(value) {
var data = self.wiki.getTiddlerData(self.editTitle,{});
if(data[self.editIndex] !== value) {
data[self.editIndex] = value;
self.wiki.setTiddlerData(self.editTitle,data);
}
};
} else {
// Get the current tiddler and the field name
var tiddler = this.wiki.getTiddler(this.editTitle);
if(tiddler) {
// If we've got a tiddler, the value to display is the field string value
value = tiddler.getFieldString(this.editField);
@@ -99,8 +108,16 @@ EditTextWidget.prototype.getEditInfo = function() {
value = this.editDefault;
}
}
update = function(value) {
var tiddler = self.wiki.getTiddler(self.editTitle),
updateFields = {
title: self.editTitle
};
updateFields[self.editField] = value;
self.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));
};
}
return {tiddler: tiddler, value: value};
return {value: value, update: update};
};
/*
@@ -224,36 +241,12 @@ EditTextWidget.prototype.handleFocusEvent = function(event) {
};
EditTextWidget.prototype.saveChanges = function(text) {
if(this.editField) {
var tiddler = this.wiki.getTiddler(this.editTitle);
if(!tiddler) {
tiddler = new $tw.Tiddler({title: this.editTitle});
}
var oldValue = tiddler.getFieldString(this.editField);
if(text !== oldValue) {
var update = {};
update[this.editField] = text;
this.wiki.addTiddler(new $tw.Tiddler(tiddler,update));
}
} else {
var data = this.wiki.getTiddlerData(this.editTitle,{});
if(data[this.editIndex] !== text) {
data[this.editIndex] = text;
this.wiki.setTiddlerData(this.editTitle,data);
}
var editInfo = this.getEditInfo();
if(text !== editInfo.value) {
editInfo.update(text);
}
};
/*
Remove any DOM nodes created by this widget or its children
*/
EditTextWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports["edit-text"] = EditTextWidget;
})();

View File

@@ -70,16 +70,6 @@ ElementWidget.prototype.refresh = function(changedTiddlers) {
return this.refreshChildren(changedTiddlers) || hasChangedAttributes;
};
/*
Remove any DOM nodes created by this widget or its children
*/
ElementWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.element = ElementWidget;
})();

View File

@@ -70,16 +70,6 @@ EncryptWidget.prototype.refresh = function(changedTiddlers) {
}
};
/*
Remove any DOM nodes created by this widget
*/
EncryptWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.encrypt = EncryptWidget;
})();

View File

@@ -47,16 +47,6 @@ EntityWidget.prototype.refresh = function(changedTiddlers) {
return false;
};
/*
Remove any DOM nodes created by this widget
*/
EntityWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.entity = EntityWidget;
})();

View File

@@ -98,16 +98,6 @@ FieldsWidget.prototype.refresh = function(changedTiddlers) {
}
};
/*
Remove any DOM nodes created by this widget
*/
FieldsWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.fields = FieldsWidget;
})();

View File

@@ -169,16 +169,6 @@ LinkWidget.prototype.refresh = function(changedTiddlers) {
return this.refreshChildren(changedTiddlers);
};
/*
Remove any DOM nodes created by this widget or its children
*/
LinkWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.link = LinkWidget;
})();

View File

@@ -34,7 +34,7 @@ PasswordWidget.prototype.render = function(parent,nextSibling) {
// Execute our logic
this.execute();
// Get the current password
var password = $tw.browser ? $tw.utils.getPassword(this.passwordName) : "";
var password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || "" : "";
// Create our element
var domNode = this.document.createElement("input");
domNode.setAttribute("type","password");
@@ -77,16 +77,6 @@ PasswordWidget.prototype.refresh = function(changedTiddlers) {
}
};
/*
Remove any DOM nodes created by this widget or its children
*/
PasswordWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.password = PasswordWidget;
})();

View File

@@ -190,16 +190,6 @@ RevealWidget.prototype.updateState = function() {
}
};
/*
Remove any DOM nodes created by this widget or its children
*/
RevealWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.reveal = RevealWidget;
})();

View File

@@ -48,16 +48,6 @@ TextNodeWidget.prototype.refresh = function(changedTiddlers) {
return false;
};
/*
Remove any DOM nodes created by this widget
*/
TextNodeWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.text = TextNodeWidget;
})();

View File

@@ -30,9 +30,14 @@ ViewWidget.prototype.render = function(parent,nextSibling) {
this.parentDomNode = parent;
this.computeAttributes();
this.execute();
var textNode = this.document.createTextNode(this.text);
parent.insertBefore(textNode,nextSibling);
this.domNodes.push(textNode);
if(this.text) {
var textNode = this.document.createTextNode(this.text);
parent.insertBefore(textNode,nextSibling);
this.domNodes.push(textNode);
} else {
this.makeChildWidgets();
this.renderChildren(parent,nextSibling);
}
};
/*
@@ -170,16 +175,6 @@ ViewWidget.prototype.refresh = function(changedTiddlers) {
}
};
/*
Remove any DOM nodes created by this widget
*/
ViewWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.view = ViewWidget;
})();

View File

@@ -450,9 +450,18 @@ Widget.prototype.findFirstDomNode = function() {
Remove any DOM nodes created by this widget or its children
*/
Widget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.children,function(childWidget) {
childWidget.removeChildDomNodes();
});
// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case
if(this.domNodes.length > 0) {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
} else {
// Otherwise, ask the child widgets to delete their DOM nodes
$tw.utils.each(this.children,function(childWidget) {
childWidget.removeChildDomNodes();
});
}
};
exports.widget = Widget;

3
core/ui/ControlPanel.tid Normal file
View File

@@ -0,0 +1,3 @@
title: $:/ControlPanel
<div class="tw-control-panel"><<tabs "[is[shadow]!has[draft.of]tag[$:/tags/ControlPanel]] [!is[shadow]!has[draft.of]tag[$:/tags/ControlPanel]]" "$:/core/ui/ControlPanel/Basics">></div>

View File

@@ -0,0 +1,11 @@
title: $:/core/ui/ControlPanel/Appearance
tags: $:/tags/ControlPanel
caption: Appearance
! Theme
{{$:/snippets/themeswitcher}}
! Story View
{{$:/snippets/viewswitcher}}

View File

@@ -0,0 +1,23 @@
title: $:/core/ui/ControlPanel/Basics
tags: $:/tags/ControlPanel
caption: Basics
! Settings
|[[Title of this TiddlyWiki|SiteTitle]] |<$edit-text tiddler="SiteTitle" default="" tag="input"/> |
|[[Subtitle|SiteSubtitle]] |<$edit-text tiddler="SiteSubtitle" default="" tag="input"/> |
|[[Username for signing edits|$:/status/UserName]] |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> |
|[[Animation duration|$:/config/AnimationDuration]] |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> |
|[[DefaultTiddlers|$:/DefaultTiddlers]] |Choose which tiddlers are displayed at startup:<br> <$edit-text tag="textarea" tiddler="$:/DefaultTiddlers"/> |
! Info
!! Your Stuff
* Number of tiddlers: <$count filter="[!is[system]]"/>
!! TiddlyWiki's Stuff
* Number of system tiddlers: <$count filter="[is[system]]"/>
* Number of shadow tiddlers: <$count filter="[is[shadow]]"/>
** Number of over-ridden shadow tiddlers: <$count filter="[!is[system]is[shadow]]"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/ControlPanel/Encryption
tags: $:/tags/ControlPanel
caption: Encryption
{{$:/snippets/encryptionstatus}}

View File

@@ -1,6 +1,6 @@
title: $:/ConfigInfo
This tiddler displays the internal configuration of this wiki, which can be useful for troubleshooting, or just to help understand how TiddlyWiki5 works.
title: $:/core/ui/ControlPanel/Internals
tags: $:/tags/ControlPanel
caption: Internals
! Tiddler fields

View File

@@ -0,0 +1,7 @@
title: $:/core/ui/ControlPanel/Plugins
tags: $:/tags/ControlPanel
caption: Plugins
<table><tbody><tr><th>Title</th><th>Description</th></tr><$list filter="[!has[draft.of]has[plugin-type]sort[title]]"><tr><td><$link to={{!!title}}><$view field="title"/></$link></td><td><$view field="description"/></td></tr></$list>
</tbody>
</table>

View File

@@ -0,0 +1,9 @@
title: $:/core/ui/ControlPanel/Tools
tags: $:/tags/ControlPanel
caption: Tools
! Import
<$browse/>
Browse for files on your computer to import their contents (the individual tiddlers within TiddlyWiki HTML files are imported separately). You can also drag and drop files directly to the browser window.

View File

@@ -1,64 +0,0 @@
title: $:/core/ui/MoreSideBar
<div class="tw-tab-set tw-more-sidebar"><div class="tw-tab-buttons">
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="allTab" selectedClass="tw-tab-selected">All</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="recentTab" selectedClass="tw-tab-selected">Recent</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="tagsTab" selectedClass="tw-tab-selected">Tags</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="missingTab" selectedClass="tw-tab-selected">Missing</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="draftsTab" selectedClass="tw-tab-selected">Drafts</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="orphanTab" selectedClass="tw-tab-selected">Orphans</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="typeTab" selectedClass="tw-tab-selected">Types</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="systemTab" selectedClass="tw-tab-selected">System</$button>
<$button type="set" set=<<qualify "$:/state/moreSideBarTabSet">> setTo="shadowsTab" selectedClass="tw-tab-selected">Shadows</$button>
</div><div class="tw-tab-content">
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="allTab">
<$list filter="[!is[system]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="recentTab">
{{$:/snippets/recentchanges}}
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="tagsTab">
<$list filter="[tags[]sort[title]]" itemClass="tw-menu-list-item">
<$transclude tiddler="$:/core/ui/TagTemplate"/> <small class="tw-menu-list-count"><$count filter="[is[current]tagging[]]"/></small>
</$list>
----
{{$:/core/ui/UntaggedTemplate}} <small class="tw-menu-list-count"><$count filter="[untagged[]!is[system]] -[tags[]]"/></small>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="missingTab">
<$list filter="[is[missing]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/MissingTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="draftsTab">
<$list filter="[has[draft.of]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="orphanTab">
<$list filter="[is[orphan]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="typeTab">
<$list filter="[!is[system]has[type]each[type]sort[type]]">
<div class="tw-menu-list-item">
<$view field="type"/>
<$list filter="[type{!!type}!is[system]sort[title]]">
<div class="tw-menu-list-subitem">
<$link to={{!!title}}><$view field="title"/></$link>
</div>
</$list>
</div>
</$list>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="systemTab">
<$list filter="[is[system]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/moreSideBarTabSet">> text="shadowsTab">
<$list filter="[is[shadow]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
</div></div>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/MoreSideBar/All
tags: $:/tags/MoreSideBar
caption: All
<$list filter="[!is[system]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/MoreSideBar/Drafts
tags: $:/tags/MoreSideBar
caption: Drafts
<$list filter="[has[draft.of]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/MoreSideBar/Missing
tags: $:/tags/MoreSideBar
caption: Missing
<$list filter="[is[missing]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/MissingTemplate"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/MoreSideBar/Orphans
tags: $:/tags/MoreSideBar
caption: Orphans
<$list filter="[is[orphan]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/MoreSideBar/Recent
tags: $:/tags/MoreSideBar
caption: Recent
{{$:/snippets/recentchanges}}

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/MoreSideBar/Shadows
tags: $:/tags/MoreSideBar
caption: Shadows
<$list filter="[is[shadow]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/MoreSideBar/System
tags: $:/tags/MoreSideBar
caption: System
<$list filter="[is[system]sort[title]]" itemClass="tw-menu-list-item" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -0,0 +1,9 @@
title: $:/core/ui/MoreSideBar/Tags
tags: $:/tags/MoreSideBar
caption: Tags
<$list filter="[tags[]sort[title]]" itemClass="tw-menu-list-item">
<$transclude tiddler="$:/core/ui/TagTemplate"/> <small class="tw-menu-list-count"><$count filter="[is[current]tagging[]]"/></small>
</$list>
----
{{$:/core/ui/UntaggedTemplate}} <small class="tw-menu-list-count"><$count filter="[untagged[]!is[system]] -[tags[]]"/></small>

View File

@@ -0,0 +1,14 @@
title: $:/core/ui/MoreSideBar/Types
tags: $:/tags/MoreSideBar
caption: Types
<$list filter="[!is[system]has[type]each[type]sort[type]]">
<div class="tw-menu-list-item">
<$view field="type"/>
<$list filter="[type{!!type}!is[system]sort[title]]">
<div class="tw-menu-list-subitem">
<$link to={{!!title}}><$view field="title"/></$link>
</div>
</$list>
</div>
</$list>

View File

@@ -1,7 +1,7 @@
title: $:/core/ui/PageMacros
\define tabs(tabsList,default,state:"$:/currentTab")
<div class="tw-tab-buttons"><$list filter="$tabsList$" variable="currentTab"><$button set=<<qualify "$state$">> setTo=<<currentTab>> default="$default$" selectedClass="tw-tab-selected"><$macrocall $name="currentTab" $type="text/plain" $output="text/plain"/> </$button>
<div class="tw-tab-buttons"><$list filter="$tabsList$" variable="currentTab"><$button set=<<qualify "$state$">> setTo=<<currentTab>> default="$default$" selectedClass="tw-tab-selected"><$view tiddler=<<currentTab>> field="caption"><$macrocall $name="currentTab" $type="text/plain" $output="text/plain"/></$view> </$button>
</$list>
</div>
<div class="tw-tab-divider">

View File

@@ -24,28 +24,7 @@ title: $:/core/ui/SideBar
<$reveal state="$:/temp/search" type="match" text="">
<div class="tw-tab-set">
<div class="tw-tab-buttons"><$button type="set" set=<<qualify "$:/state/sideBarTabSet">> setTo="openTab" selectedClass="tw-tab-selected">Open</$button><$button type="set" set=<<qualify "$:/state/sideBarTabSet">> setTo="recentTab" selectedClass="tw-tab-selected">Recent</$button><$button type="set" set=<<qualify "$:/state/sideBarTabSet">> setTo="toolsTab" selectedClass="tw-tab-selected">Tools</$button><$button type="set" set=<<qualify "$:/state/sideBarTabSet">> setTo="moreTab" selectedClass="tw-tab-selected">More</$button></div>
<div class="tw-tab-divider tw-sidebar-tab-divider">
</div>
<div class="tw-tab-content">
<$reveal type="match" state=<<qualify "$:/state/sideBarTabSet">> text="openTab">
<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop" itemClass="tw-menu-list-item tw-open-tiddler-list">
<$button message="tw-close-tiddler" class="btn-invisible btn-mini">&times;</$button> <$link to={{!!title}}><$view field="title"/></$link>
</$list>
<$button message="tw-close-all-tiddlers" class="btn-invisible btn-mini">close all</$button>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/sideBarTabSet">> text="recentTab">
{{$:/snippets/recentchanges}}
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/sideBarTabSet">> text="toolsTab">
{{$:/core/ui/ToolsPanel}}
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/sideBarTabSet">> text="moreTab">
{{$:/core/ui/MoreSideBar}}
</$reveal>
</div>
</div>
<<tabs "[is[shadow]!has[draft.of]tag[$:/tags/SideBar]] [!is[shadow]!has[draft.of]tag[$:/tags/SideBar]]" "$:/core/ui/SideBar/Open" "$:/sidebartab">>
</$reveal>
</div>

7
core/ui/SideBar/More.tid Normal file
View File

@@ -0,0 +1,7 @@
title: $:/core/ui/SideBar/More
tags: $:/tags/SideBar
caption: More
<div class="tw-more-sidebar">
<<tabs "[is[shadow]!has[draft.of]tag[$:/tags/MoreSideBar]] [!is[shadow]!has[draft.of]tag[$:/tags/MoreSideBar]]" "$:/core/ui/MoreSideBar/Open" "$:/moresidebartab">>
</div>

8
core/ui/SideBar/Open.tid Normal file
View File

@@ -0,0 +1,8 @@
title: $:/core/ui/SideBar/Open
tags: $:/tags/SideBar
caption: Open
<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop" itemClass="tw-menu-list-item tw-open-tiddler-list">
<$button message="tw-close-tiddler" class="btn-invisible btn-mini">&times;</$button> <$link to={{!!title}}><$view field="title"/></$link>
</$list>
<$button message="tw-close-all-tiddlers" class="btn-invisible btn-mini">close all</$button>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/SideBar/Recent
tags: $:/tags/SideBar
caption: Recent
{{$:/snippets/recentchanges}}

View File

@@ -1,8 +1,6 @@
title: $:/core/ui/ToolsPanel
[[Wiki Info|$:/WikiInfo]]
---
title: $:/core/ui/SideBar/Tools
tags: $:/tags/SideBar
caption: Tools
{{$:/snippets/viewswitcher}}

View File

@@ -1,24 +1,3 @@
title: $:/core/ui/TiddlerInfo
<div class="tw-tab-set"><div class="tw-tab-buttons"><$button type="set" set=<<qualify "$:/state/tiddlerDropDownTabSet">> setTo="refTab" selectedClass="tw-tab-selected">References</$button><$button type="set" set=<<qualify "$:/state/tiddlerDropDownTabSet">> setTo="taggingTab" selectedClass="tw-tab-selected">Tagging</$button><$button type="set" set=<<qualify "$:/state/tiddlerDropDownTabSet">> setTo="listTab" selectedClass="tw-tab-selected">List</$button><$button type="set" set=<<qualify "$:/state/tiddlerDropDownTabSet">> setTo="listedTab" selectedClass="tw-tab-selected">Listed</$button><$button type="set" set=<<qualify "$:/state/tiddlerDropDownTabSet">> setTo="fieldsTab" selectedClass="tw-tab-selected">Fields</$button></div>
<div class="tw-tab-divider">
</div>
<div class="tw-tab-content">
<$reveal type="match" state=<<qualify "$:/state/tiddlerDropDownTabSet">> text="refTab" default="refTab">
<$list filter="[is[current]backlinks[]sort[title]]" emptyMessage="No tiddlers link to this one" template="$:/core/ui/ListItemTemplate">
</$list>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/tiddlerDropDownTabSet">> text="taggingTab">
<$list filter="[is[current]tagging[]]" itemClass="tw-menu-list-item" emptyMessage="No tiddlers are tagged with this one" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/tiddlerDropDownTabSet">> text="listTab">
<$list filter="[list{!!title}]" itemClass="tw-menu-list-item" emptyMessage="This tiddler does not have a list" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/tiddlerDropDownTabSet">> text="listedTab">
<$list filter="[is[current]listed[]!is[system]]" itemClass="tw-menu-list-item" emptyMessage="This tiddler is not listed by any others" template="$:/core/ui/ListItemTemplate"/>
</$reveal>
<$reveal type="match" state=<<qualify "$:/state/tiddlerDropDownTabSet">> text="fieldsTab">
<$transclude tiddler="$:/core/ui/TiddlerFields"/>
</$reveal>
</div>
</div>
<<tabs "[is[shadow]!has[draft.of]tag[$:/tags/TiddlerInfo]] [!is[shadow]!has[draft.of]tag[$:/tags/TiddlerInfo]]" "$:/core/ui/TiddlerInfo/References">>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/TiddlerInfo/Fields
tags: $:/tags/TiddlerInfo
caption: Fields
<$transclude tiddler="$:/core/ui/TiddlerFields"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/TiddlerInfo/List
tags: $:/tags/TiddlerInfo
caption: List
<$list filter="[list{!!title}]" itemClass="tw-menu-list-item" emptyMessage="This tiddler does not have a list" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/TiddlerInfo/Listed
tags: $:/tags/TiddlerInfo
caption: Listed
<$list filter="[is[current]listed[]!is[system]]" itemClass="tw-menu-list-item" emptyMessage="This tiddler is not listed by any others" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -0,0 +1,6 @@
title: $:/core/ui/TiddlerInfo/References
tags: $:/tags/TiddlerInfo
caption: References
<$list filter="[is[current]backlinks[]sort[title]]" emptyMessage="No tiddlers link to this one" template="$:/core/ui/ListItemTemplate">
</$list>

View File

@@ -0,0 +1,5 @@
title: $:/core/ui/TiddlerInfo/Tagging
tags: $:/tags/TiddlerInfo
caption: Tagging
<$list filter="[is[current]tagging[]]" itemClass="tw-menu-list-item" emptyMessage="No tiddlers are tagged with this one" template="$:/core/ui/ListItemTemplate"/>

View File

@@ -1,4 +1,4 @@
title: $:/core/ui/ViewTemplate/subtitle
tags: $:/tags/ViewTemplate
<div class="tw-subtitle"><$view field="modifier" format="link"/> <$view field="modified" format="relativedate"/></div>
<div class="tw-subtitle"><$link to={{!!modifier}}><$view field="modifier"/></$link> <$view field="modified" format="relativedate"/></div>

View File

@@ -1,28 +0,0 @@
title: $:/ControlPanel
''Initial setup''
| ![[Title of this TiddlyWiki|SiteTitle]]|<$edit-text tiddler="SiteTitle" default="" tag="input"/> |
| ![[Subtitle|SiteSubtitle]]|<$edit-text tiddler="SiteSubtitle" default="" tag="input"/> |
| ![[Username for signing edits|$:/status/UserName]]|<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> |
| ![[Animation duration|$:/config/AnimationDuration]]|<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> |
Edit [[DefaultTiddlers|$:/DefaultTiddlers]] to choose which tiddlers are displayed at startup
{{$:/snippets/encryptionstatus}}
''Add plugins and tiddlers to your ~TiddlyWiki''
:Browse for files on your computer to import their contents (the individual tiddlers within TiddlyWiki HTML files are imported separately). <$browse/>
''Visual appearance''
*{{$:/snippets/viewswitcher}}
*{{$:/snippets/themeswitcher}}
*Edit [[ThemeTweaks|$:/ControlPanel/ThemeTweaks]] to change the appearance of your ~TiddlyWiki
''Additional information about this ~TiddlyWiki''
*~TiddlyWiki5 version <<version>>
*[[Wiki Info|$:/WikiInfo]]
*[[Internal configuration information|$:/ConfigInfo]]

View File

@@ -1,6 +0,0 @@
title: $:/WikiInfo
* Tiddlers: <$count filter="[!is[system]]"/>
* System tiddlers: <$count filter="[is[system]]"/>
* Shadow tiddlers: <$count filter="[is[shadow]]"/>
** Over-ridden shadow tiddlers: <$count filter="[!is[system]is[shadow]]"/>

View File

@@ -4,7 +4,7 @@ title: $:/snippets/modules
{{$:/docs/moduletypes/$type$}}
\end
<$list filter="[moduletypes[]]">
!! <<listItem>>
!! <$macrocall $name="listItem" $type="text/plain" $output="text/plain"/>
<$macrocall $name="describeModuleType" type=<<listItem>>/>
<ul><$list filter="[is[current]modules[]]"><li><$link><<currentTiddler>></$link>
</li>

View File

@@ -1,3 +1,3 @@
title: $:/state/moreSideBarTabSet-{$:/core/ui/MoreSideBar|$:/core/ui/MoreSideBar||}{$:/core/ui/SideBar|$:/core/ui/SideBar||}{$:/core/ui/PageTemplate|$:/core/ui/PageTemplate||}
title: $:/moresidebartab-{$:/core/ui/SideBar|$:/core/ui/SideBar/More||}{$:/core/ui/SideBar|$:/core/ui/SideBar||}{$:/core/ui/PageTemplate|$:/core/ui/PageTemplate||}
tagsTab
$:/core/ui/MoreSideBar/Tags

View File

@@ -1,3 +1,3 @@
title: $:/state/sideBarTabSet-{$:/core/ui/SideBar|$:/core/ui/SideBar||}{$:/core/ui/PageTemplate|$:/core/ui/PageTemplate||}
openTab
$:/core/ui/SideBar/Open

View File

@@ -0,0 +1,2 @@
title: $:/tags/ControlPanel
list: $:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Encryption $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals

View File

@@ -0,0 +1,3 @@
title: $:/tags/MoreSideBar
list: [[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]]

View File

@@ -0,0 +1,3 @@
title: $:/tags/SideBar
list: [[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]

View File

@@ -0,0 +1,3 @@
title: $:/tags/TiddlerInfo
list: [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]

View File

@@ -3,15 +3,6 @@ title: $:/snippets/themeswitcher
Current theme: {{$:/theme}}
<$linkcatcher to="$:/theme">
<$list filter="[plugin-type[theme]sort[title]]">
<$reveal state="$:/theme" type="match" text={{!!title}}>&bull;</$reveal><$reveal state="$:/theme" type="nomatch" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}>
<$view field="name" format="text"/>
</$link>
<$list filter="[plugin-type[theme]sort[title]]"><div><$reveal state="$:/theme" type="match" text={{!!title}}>&bull;</$reveal><$reveal state="$:/theme" type="nomatch" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}><$view field="name" format="text"/></$link></div>
</$list>
</$linkcatcher>

View File

@@ -2,12 +2,7 @@ title: $:/snippets/viewswitcher
Current view: {{$:/view}}
<$linkcatcher to="$:/view">
<$list filter="classic zoomin pop">
<$reveal state="$:/view" type="match" text={{!!title}}>&bull;</$reveal><$reveal state="$:/view" type="nomatch" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}><$view field="title"/></$link>
<$linkcatcher to="$:/view"><$list filter="classic zoomin pop"><div><$reveal state="$:/view" type="match" text={{!!title}}>&bull;</$reveal><$reveal state="$:/view" type="nomatch" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}><$view field="title"/></$link>
</div>
</$list>
</$linkcatcher>

View File

@@ -1,12 +1,11 @@
#!/bin/bash
# Publish to NPM
npm publish || exit 1
# Deploy latest build to github
# This deployment script needs several improvements:
# 1) deploying to NPM
# 2) deploying to TiddlySpace
pushd ../jermolene.github.com
git add --all || exit 1

View File

@@ -0,0 +1,3 @@
title: ClientServer Edition
This is the client server edition of TiddlyWiki5.

View File

@@ -1,19 +1,21 @@
created: 201309091516000
creator: JeremyRuston
modified: 201311081421009
modified: 201311091538002
modifier: JeremyRuston
tags: community
title: Community
type: text/vnd.tiddlywiki
! Blog posts and articles about TiddlyWiki5:
! Blog posts and articles about TiddlyWiki5
* A gamers guide to using TiddlyWiki5: "[[Shining Ark 7 Using TiddlyWiki|http://helugame.wordpress.com/2013/09/07/shining-ark-7-using-tiddlywiki/]]"
! Hints and tips for TiddlyWiki5:
! Hints and tips for TiddlyWiki5
* [[TW5 Mall|http://www.giffmex.org/tw5mall.htm]] - DaveGifford's growing catalogue of hints and tips
* A [[guide to creating a fixed top menu|https://dl.dropboxusercontent.com/u/2638511/TW5_Test.htm]] from TonGerner
! Examples of TiddlyWiki5 being used in the wild:
! Examples of TiddlyWiki5 being used in the wild
|!Site |!Description |
|http://freedombits.org |A manifesto for the preservation of free speech through the exchange of randomized data |

View File

@@ -18,8 +18,6 @@ This is the developer documentation hub for TiddlyWiki.
! Internal Objects and Mechanisms
{{mechanism}}
<$list filter="[tag[mechanism]sort[title]]" type="ul"/>
! Module types
@@ -29,8 +27,6 @@ See SyncAdaptorModules.
!! DeserializerModules
Deserializers are modules that read tiddlers from different text formats:
{{deserializers}}
Deserializers are modules that load tiddlers from different text formats:
<$list filter="[tag[deserializers]sort[title]]" type="ul"/>

View File

@@ -1,11 +1,12 @@
created: 201308221728
created: 201308221728000
creator: JeremyRuston
modified: 201310281322
modified: 201311091532005
modifier: JeremyRuston
tags: introduction
title: Features
type: text/vnd.tiddlywiki
* The ability to save changes on almost any desktop HTML5 compatible-browser
* The ability to save changes on almost any desktop HTML5 compatible-browser, with custom apps to enable saving on [[iPad/iPhone|How to use TiddlyWiki5 as a standalone HTML file with TWEdit]] and [[Android|How to use TiddlyWiki5 as a standalone HTML file with AndTidWiki]], and a cross-platform [[Firefox extension|How to use TiddlyWiki5 as a standalone HTML file with TiddlyFox]] that even runs on Android
* [[Bitmap images|Motovun Jack.jpg]] and [[SVG images|UsingSVG]] are first-class citizens alongside text
* Concise and expressive WikiText that generates semantic HTML
* Integrated [[AES encryption|How to use TiddlyWiki5 as a standalone HTML file with encryption]]
@@ -16,8 +17,8 @@ title: Features
* TiddlyWiki is [[surprisingly scalable|Scalability]] to many thousands of tiddlers and megabytes of content
* Try out the <$button message="tw-full-screen">full screen support</$button>
* Explore the [[D3.js visualisation plugin|http://five.tiddlywiki.com/d3demo.html]]
* Try out the [[CodeMirror plugin|http://five.tiddlywiki.com/codemirrordemo.html]]
* Try out the [[Markdown plugin|http://five.tiddlywiki.com/markdowndemo.html]]
* [[CodeMirror support via a plugin|http://five.tiddlywiki.com/codemirrordemo.html]]
* [[Markdown support via a plugin|http://five.tiddlywiki.com/markdowndemo.html]]
* Many internal improvements:
** TiddlyWiki can now be run under [[node.js]] as well as in the browser, allowing it to be used as a personal web server
** An elegant [[microkernel architecture|PluginMechanism]], that allows infinite customisation by replacing and augmenting the core modules

View File

@@ -1,6 +1,6 @@
created: 201308221702
created: 201308221702000
creator: JeremyRuston
modified: 201308252014
modified: 201311091512009
modifier: JeremyRuston
tags: introduction
title: HelloThere
@@ -8,7 +8,7 @@ type: text/vnd.tiddlywiki
Welcome to TiddlyWiki5, a reboot of TiddlyWiki, the non-linear personal web notebook first released in 2004. It is a complete interactive wiki in JavaScript that can be run from a single HTML file in the browser or as a powerful [[node.js application|node.js]].
TiddlyWiki5 is currently in alpha, meaning it is working but incomplete. It is a great time to get involved and support its [[future development|RoadMap]]:
This is TiddlyWiki5 version //<<version>>//. It is drawing to the end of the alpha phase, meaning it is almost ready for everyday use. It is a great time to get involved and support its [[future development|RoadMap]]:
* Explore its features online at http://five.tiddlywiki.com/
* Join the discussions on [[the TiddlyWikiDev Google Group|http://groups.google.com/group/TiddlyWikiDev]]

View File

@@ -17,8 +17,10 @@ This release is the culmination of a large scale refactoring of the widget mecha
** `<$version>` - use the `<<version>>` built-in macro instead
* The following widgets have had significant changes:
** EditWidget
** ListWidget
** ViewWidget - `<$view format="link"/>` is no longer available; use an explicit `<$link>` widget instead
** ListWidget - the list widget itself no longer generates HTML nodes, so you'll often need to wrap the template in a `<div>` or a `<span>` to be able to style the content
** ViewWidget - has several changes:
*** `<$view format="link"/>` is no longer available; use an explicit `<$link>` widget instead
*** `<$view format="link"/>` is no longer available; use the TranscludeWidget instead
* The following new widgets have been added:
** BrowseWidget
** DropzoneWidget
@@ -26,3 +28,5 @@ This release is the culmination of a large scale refactoring of the widget mecha
** SetVariableWidget
* Widget attribute names have been made more consistent. In particular, `tiddler` is used to reference a tiddler by title, not `title`
* It is no longer possible to import the macro definitions within another tiddler by transcluding that tiddler
* The `body` element now has the class `tw-body`, which will need to be specified in any overrides
** This was done due to the new support for HTML foreign objects, which makes it possible to have multiple `<body>` elements in a document

View File

@@ -1,8 +1,11 @@
created: 201311081754007
created: 201311081854007
creator: JeremyRuston
modified: 201311081754007
modified: 201311081854007
modifier: JeremyRuston
title: Release 5.0.0-alpha.12
tags: releasenote
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.0-alpha.11...v5.0.0-alpha.12]]//
This minor release just contains fixes for the syncer and related adaptor modules for the TiddlyWeb edition and for TiddlyWiki5's integrated server.

View File

@@ -0,0 +1,25 @@
created: 201311091122007
creator: JeremyRuston
modified: 201311091122007
modifier: JeremyRuston
title: Release 5.0.0-alpha.13
tags: releasenote
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.0-alpha.12...v5.0.0-alpha.13]]//
This release has several bug fixes:
* Fixes to DaveGifford's themes ''blanca'', ''blue'' and ''rocker''
* Fix an issue with the `<$edit-text>` widget
* Documentation updates
* Improved deployment scripts
* Made the modifier field in the subtitle be a link
* Styling improvements for the CodeMirror plugin
* Improved the ViewWidget so that it falls back to displaying its content if the field/property is missing or empty
* Extend use of the built-in `<<tabs>>` macro to the tiddler info panel, the control panel and the sidebar
** This means that you can add new tabs by creating tiddlers with these tags, and optionally a `caption` field for the text of the tab:
*** [[$:/tags/TiddlerInfo]] for tiddler info panel tabs
*** [[$:/tags/ControlPanel]] for control panel tabs
*** [[$:/tags/SideBar]] for sidebar tabs
*** [[$:/tags/MoreSideBar]] for tabs in the "more" sidebar
*** Change the order of tabs by adjusting the `list` field of the corresponding tag tiddler

View File

@@ -0,0 +1,14 @@
created: 201311101922007
creator: JeremyRuston
modified: 201311101922007
modifier: JeremyRuston
title: Release 5.0.0-alpha.14
tags: releasenote
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.0-alpha.13...v5.0.0-alpha.14]]//
This release has several bug fixes:
* Improved the layout of the [[control panel|$:/ControlPanel]]
* Fixed problem with using the CheckboxWidget to apply tags to tiddlers that don't have any existing tags
* Fixed problem with default password for the PasswordWidget being the string "null"

View File

@@ -0,0 +1,16 @@
created: 201311091054007
creator: JeremyRuston
modified: 201311091054007
modifier: JeremyRuston
title: ReleaseHistory
Here are the details of recent releases of TiddlyWiki5.
<$list filter="[tag[releasenote]!sort[created]]">
<div>
<h1><$link to={{!!title}}><$view field="title"/></$link></h1>
<div>
<$transclude/>
</div>
</div>
</$list>

View File

@@ -1,11 +1,12 @@
created: 201308230917
created: 201308230917000
creator: JeremyRuston
modified: 201308231750
modified: 201311091500004
modifier: JeremyRuston
tags: community
title: TiddlyWiki Hangouts
type: text/vnd.tiddlywiki
The TiddlyWiki community holds regular Google Hangouts. They are announced in the [[TiddlyWiki Google group|https://groups.google.com/d/forum/tiddlywiki]] and on the [[TiddlyWiki Twitter account|https://twitter.com/TiddlyWiki]].
The TiddlyWiki community holds regular Google Hangouts, usually every Tuesday from 4pm to 6pm (UK time). They are announced in the [[TiddlyWiki Google group|https://groups.google.com/d/forum/tiddlywiki]] and on the [[TiddlyWiki Twitter account|https://twitter.com/TiddlyWiki]].
Past Hangouts are archived in this YouTube playlist:

View File

@@ -86,19 +86,13 @@ This will be monospaced
You can incorporate the content of one tiddler within another using the transclusion notation:
* `{{MyTiddler}}` transcludes a single tiddler
* `{{MyTiddler|tooltip}}` adds a tooltip
* `{{MyTiddler||TemplateTitle}}` displays the tiddler through a specified [[TiddlerTemplate|TiddlerTemplates]]
* `{{MyTiddler|tooltip||TemplateTitle}}` specifies both a tooltip and a template for the transcluded content
* `{{MyTiddler}width:40;height:50;}.firstClass.secondClass` transcludes a single tiddler, adding the specified styles and classes to the transcluded content
A similar syntax can be used to transclude a list of tiddlers matching a specified [[TiddlerFilter|TiddlerFilters]]:
```
{{{ [tag[mechanism]] }}}
{{{ [tag[mechanism]] |tooltip}}}
{{{ [tag[mechanism]] ||TemplateTitle}}}
{{{ [tag[mechanism]] |tooltip||TemplateTitle}}}
{{{ [tag[mechanism]] }}width:40;height:50;}.class.class
```
! Images
@@ -244,8 +238,6 @@ Here an attribute is specified as a macro invocation:
<a href=<<MyMacro "Brian">>>link</a>
```
* As a macro invocation
! Widgets
Widgets provide rich functionality within WikiText. For example, the `<$video>` widget can be used to embed videos from YouTube, Vimeo or the Internet Archive:

View File

@@ -1,15 +1,16 @@
created: 201308232038
created: 201308232038000
creator: JeremyRuston
modified: 201311011116
modified: 201311091553002
modifier: JeremyRuston
tags: planning
title: RoadMap
type: text/vnd.tiddlywiki
TiddlyWiki5 is under rapid development at the moment, moving through a series of stages from alpha, via beta into a stable release.
! Alpha Release
The most significant piece of work required before TiddlyWiki5 can move out of alpha into beta is to upgrade the release process so that end users can more easily keep track of the new features. See the [[Plan for moving from Alpha to Beta]] for details of the work that is required.
The last remaining improvement before TiddlyWiki5 moves to beta is an easier upgrade mechanism.
! Beta Release

View File

@@ -2,8 +2,7 @@ title: $:/DefaultTiddlers
HelloThere
Features
[[Release 5.0.0-alpha.12]]
[[Release 5.0.0-alpha.11]]
ReleaseHistory
Community
[[TiddlyWiki5 Editions]]
RoadMap

View File

@@ -11,7 +11,7 @@ The view widget displays the contents of a tiddler field in a specified format.
! Content and Attributes
The content of the `<$view>` widget is ignored.
The content of the `<$view>` widget is displayed if the field or property is missing or empty.
|!Attribute |!Description |
|tiddler |The title of the tiddler (defaults to the [[WidgetVariable: currentTiddler]]) |

View File

@@ -1,7 +1,7 @@
{
"name": "tiddlywiki",
"preferGlobal": "true",
"version": "5.0.0-alpha.12",
"version": "5.0.0-alpha.14",
"author": "Jeremy Ruston <jeremy@jermolene.com>",
"description": "a non-linear personal web notebook",
"contributors": [

View File

@@ -6,6 +6,8 @@ tags: [[$:/tags/stylesheet]]
.CodeMirror {
height: auto;
border: 1px solid #ddd;
line-height: 1.5;
font-family: "Monaco", monospace;
}
.CodeMirror-scroll {

View File

@@ -199,16 +199,6 @@ BarWidget.prototype.refresh = function(changedTiddlers) {
return false;
};
/*
Remove any DOM nodes created by this widget or its children
*/
BarWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.d3bar = BarWidget;
})();

View File

@@ -128,16 +128,6 @@ CloudWidget.prototype.refresh = function(changedTiddlers) {
return false;
};
/*
Remove any DOM nodes created by this widget or its children
*/
CloudWidget.prototype.removeChildDomNodes = function() {
$tw.utils.each(this.domNodes,function(domNode) {
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
};
exports.d3cloud = CloudWidget;
})();

View File

@@ -1,6 +1,6 @@
title: $:/core/ui/ServerControlPanel
----
title: $:/plugins/tiddlywiki/tiddlyweb/ServerControlPanel
caption: Server
tags: $:/tags/ControlPanel
<$reveal state="$:/status/IsLoggedIn" type="nomatch" text="yes">
Log in to ~TiddlyWeb: <$button message="tw-login" class="btn btn-info">Login</$button>

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
title: $:/themes/giffmex/blanca/styles
tags: [[$:/tags/stylesheet]]
html body {
html body.tw-body {
font-size:14px;
line-height:20px;
background-color:#ffffff;

View File

@@ -1,7 +1,7 @@
title: $:/themes/giffmex/blue/styles
tags: [[$:/tags/stylesheet]]
html body {
html body.tw-body {
font-size:14px;
line-height:20px;
background-color:#ddddff;

View File

@@ -1,7 +1,7 @@
title: $:/themes/giffmex/rocker/styles
tags: [[$:/tags/stylesheet]]
html body { font-size:14px;line-height:20px; background-color:#000000;}
html body.tw-body { font-size:14px;line-height:20px; background-color:#000000;}
html .tw-page-controls {background-color:#000000; padding:8px;}
html .title {color: #cc0000;}

View File

@@ -1,8 +1,10 @@
title: $:/ControlPanel/ThemeTweaks
title: $:/themes/tiddlywiki/snowwhite/themetweaks
tags: $:/tags/ControlPanel
caption: Theme Tweaks
You can tweak certain aspects of the ''Snow White'' theme.
//Currently, you need to ''save and restart'' TiddlyWiki before these changes take effect. Also take care to preserve any backticks (&#96;) in the settings//
//Currently, you need to toggle to a different theme and back (or save and restart) TiddlyWiki before these changes take effect. Also take care to preserve any backticks (&#96;) in the settings//
! Colours

View File

@@ -331,17 +331,15 @@ a.tw-tiddlylink-external {
}
.tw-page-controls svg {
height: 1.5em;
height: 1.75em;
min-width: 1px;
padding-right: 0.5em;
fill: #fff;
<<filter "drop-shadow(1px 1px 2px rgba(0,0,0,0.15))">>
<<transition "fill 150ms ease-in-out">>
}
.tw-page-controls svg:hover {
fill: #000;
<<filter "drop-shadow(1px 1px 2px rgba(255,255,255,0.9))">>
}
.tw-menu-list-item {
@@ -840,8 +838,8 @@ canvas.tw-edit-bitmapeditor {
.tw-tab-buttons button {
color: #666;
margin-left: 4px;
margin-right: 4px;
margin-left: 2px;
margin-right: 2px;
font-weight: 300;
border: none;
background: inherit;
@@ -875,18 +873,18 @@ canvas.tw-edit-bitmapeditor {
border-bottom: 1px solid #ececec;
}
.tw-sidebar-tab-divider.tw-tab-divider {
.tw-sidebar-lists .tw-tab-divider {
border-top: none;
height: 1px;
<<background-linear-gradient "left, rgb(216,216,216) 0%, rgb(236,236,236) 250px">>
}
.tw-more-sidebar.tw-tab-set {
.tw-more-sidebar {
white-space: nowrap;
}
@media (min-width: 770px) {
.tw-more-sidebar.tw-tab-set {
.tw-more-sidebar {
margin-left: -14px;
}
}
@@ -899,6 +897,16 @@ canvas.tw-edit-bitmapeditor {
padding-left: 0;
}
.tw-more-sidebar .tw-tab-buttons button {
display: block;
width: 100%;
text-align: right;
}
.tw-sidebar-lists .tw-more-sidebar .tw-tab-divider {
display: none;
}
.tw-more-sidebar .tw-tab-content {
display: inline-block;
vertical-align: top;
@@ -917,7 +925,7 @@ canvas.tw-edit-bitmapeditor {
.tw-more-sidebar .tw-tab-buttons button.tw-tab-selected {
background-color: #fff;
<<background-linear-gradient "left, rgb(236,236,236) 0%, rgb(255,255,255) 100%">>
<<background-linear-gradient "left, rgb(236,236,236) 0%, rgb(248,248,248) 100%">>
border: none;
}
@@ -946,3 +954,15 @@ canvas.tw-edit-bitmapeditor {
width: 1em;
height: 1em;
}
/*
** Control panel
*/
.tw-control-panel td {
padding: 4px;
}
.tw-control-panel table, .tw-control-panel table input, .tw-control-panel table textarea {
width: 100%;
}

View File

@@ -0,0 +1,5 @@
title: $:/themes/tiddlywiki/starlight/themetweaks
tags: $:/tags/ControlPanel
caption: Star Tweaks
Demo of a control panel tab dynamically loaded with a theme.

17
verbump.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
# Bump to a new version number
if [ -z "$1" ]
then
echo "Missing version (eg '5.0.0-alpha.99')"
exit 1
fi
# Set the new version number (will also commit and tag the release)
npm version $1 -m "Version update" || exit 1
# Make sure our tags are pushed to the origin server
git push origin --tags || exit 1