Welcome to TiddlyWiki created by Jeremy Ruston; Copyright © 2004-2007 Jeremy Ruston, Copyright © 2007-2011 UnaMesa Association
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected {color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0 14em;}
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}
.fieldsetFix {border:0; padding:0; margin:1px 0px;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser
Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])
<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]
----
Also see [[AdvancedOptions]]
[[IncludePlugin Documentation]]
When you specify a link to a tiddler a tiddler with that title is searched at the following locations:
* In the "normal" tiddlers of the main TiddlyWiki
* In the "shadow" tiddlers of the main TiddlyWiki
* In the "normal" tiddlers of all included TiddlyWikis, in the order of the include macros.<<br>>//(You may use [[The "includeState" Macro]] to check the order)//
The first tiddler found this way is used.
''Note:'' If two tiddlers in two TiddlyWikis have the same name, the one from the first TiddlyWiki is used, i.e. the other is "hidden". The script "[[List all hidden tiddlers of included TiddlyWikis]]" can be used to detect hidden tiddlers.
!Step 1: Get the Plugin
Import the IncludePlugin (from http://tiddlywiki.abego-software.de), e.g. using the ImportTiddlers, and make sure the "systemConfig" tag is defined.
!Step 2: Include ~TiddlyWikis
To include TiddlyWikis add an „include“ macro into the tiddler „IncludeList“:
{{{
<<include "shared/TiddlyWikiHelp.html">>
<<include "journals/2007-01.html">>
}}}
For details see [[The "include" Macro]].
''Notes''
* You need to reload your TiddlyWiki after you added or changed any "include" macro in the "IncludeList" tiddler.
!Step 3: Access included Tiddlers
To access an included tiddler you just need to create a link to that tiddler (with the tiddler's title). If you click that link the included tiddler will be displayed. To "find" an included tiddler, just search for it with the standard search feature.
You only can edit included tiddlers in their "original" TiddlyWiki. Hence included Tiddlers are readonly in a "main" TiddlyWiki.
See also [[How Tiddlers are found]].
!Using the "include" macro without the "IncludeList" Tiddler
The {{{<<include ...>>}}} macro is typically used in the "IncludeList" (as described above). The TiddlyWikis listed in the "IncludeList" are included at TiddlyWiki startup.
But you may put the {{{<<include ...>>}}} macro in any tiddler. The include process starts when the tiddler containing the {{{<<include ...>>}}} macro is displayed (or after delayDuration milliseconds). This way you may include TiddlyWikis/Tiddlers "on demand", i.e. the TiddlyWiki is only loaded when a certain tiddler is displayed.
When using the include macro in a tiddler different than the "IncludeList" you may want to use the "hide: true" parameter to avoid the include macro is displayed to the user.
!About the ~IncludePlugin
Include other ~TiddlyWikis in your (main) TiddlyWiki, link to included tiddlers, view them in your (main) TiddlyWiki, without opening another TiddlyWiki. Even „search“ looks for included tiddlers.
A great way to share tiddlers, to speed up "save changes" and to keep your ~TiddlyWikis small.
!Smaller ~TiddlyWikis
Other than „imported“ tiddlers, included tiddlers are not copied into your main ~TiddlyWiki. This keeps your individual ~TiddlyWikis small.
Since your TiddlyWikis will become smaller (if you reorganize your TiddlyWikis using the IncludePlugin) also "save changes" becomes faster. You may even consider switching on "AutoSave" or "SaveBackups" again.
See also: [[Including even smaller TiddlyWiki Files]]
!Sharing ~TiddlyWikis
You may include one ~TiddlyWiki in several other ~TiddlyWikis. Changes you make to this shared ~TiddlyWiki are automatically reflected the next time you open the other ~TiddlyWikis, without any extra „import“ step or so.
''Examples''
* you may want to have a single „~TiddlyWikiHelp“ ~TiddlyWiki that you include in all your ~TiddlyWikis. So you can quickly find help information without looking into other files, and without blowing up your ~TiddlyWikis.
* You "archive" your old journal tiddlers into an extra TiddlyWiki (e.g. one per month) and just include the archived journals in you "current month diary/blog". This way you still have access to the old information (e.g. to reference historic information) but you avoid your diary/blog will get to large.
* ...
See also:
* [[How to use the IncludePlugin]]
* [[How Tiddlers are found]]
* [[IncludePlugin Options]]
* [[The "include" Macro]]
* [[The "includeState" Macro]]
* [[Programming with the IncludePlugin]]
* [[Troubleshooting the IncludePlugin]]
Using the AdvancedOptions page you have an easy way to configure the IncludePlugin options.
You will find a section like this:
{{optionsBlock{
<<option chkUseInclude>> Include ~TiddlyWikis (IncludeList | IncludeState | [[help|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]])
^^(Reload this ~TiddlyWiki to make changes become effective)^^
}}}
* By default the IncludePlugin is enabled. If you uncheck the checkbox external TiddlyWikis are not included.
* The IncludeList is the preferred place for your {{{<<include ...>>}}} lines.
* The IncludeState page gives you can an overview what TiddlyWikis are included etc.
* The help directs you to the online documentation of the Include Plugin.
''Note for the advanced user:''
The IncludePlugin expects the file to be included to be in the "TiddlyWiki format", so including every valid TiddlyWiki file is fine.
In addition you may "strip down" your TiddlyWiki file significantly, e.g. by removing the JavaScript code etc., and the IncludePlugin will still be able to include it. This "minimal" file format is called the "TiddlyWiki Pure Store Format".
See http://www.abego-software.de/references/TiddlyWikiPureStoreFormat.html for more details.
When using the IncludePlugin the ForEachTiddlerMacro loops over all tiddlers, the ones from the "master" TiddlyWiki and all included TiddlyWiki.
If you want to restrict the result to tiddlers of a certain included TiddlyWiki you may refer to the tiddler variable "includedURL" that holds the URL of the TiddlyWiki this tiddler was included from. For the "master" TiddlyWiki the "includeURL" is empty.
''Example''
Assume you have included "http://www.tiddlywiki.com/index.html". You want to list the tiddlers of that TiddlyWiki that have changed after July 1st, 2007. The result should be sorted by the modified date, with the last changes listed first.
This is the ForEachTiddlerMacro call you may use for this purpose:
{{{
<<forEachTiddler
where
'tiddler.modified > new Date("July 1, 2007") && tiddler.includeURL == "http://www.tiddlywiki.com/index.html"'
sortBy
' tiddler.modified'
descending
write
'"* "+tiddler.modified.formatString("YYYY-0MM-0DD")+" [[" +tiddler.title+"]]\n"'
>>
}}}
See also:
* [[List Tiddlers of the "Master" TiddlyWiki (when using the IncludePlugin)]]
* [[Programming with the IncludePlugin]])
When using the IncludePlugin the ForEachTiddlerMacro loops over all tiddlers, the ones from the "master" TiddlyWiki and all included TiddlyWiki.
If you want to restrict the result to tiddlers of the "master" TiddlyWiki you may refer to the tiddler variable "includedURL" that holds the URL of the TiddlyWiki this tiddler was included from. For the "master" TiddlyWiki the "includeURL" is empty.
''Example''
You want to list the tiddlers of the "master" TiddlyWiki that have changed after July 1st, 2007. The result should be sorted by the modified date, with the last changes listed first.
This is the ForEachTiddlerMacro call you may use for this purpose:
{{{
<<forEachTiddler
where
'tiddler.modified > new Date("July 1, 2007") && ! tiddler.includeURL'
sortBy
' tiddler.modified'
descending
write
'"* "+tiddler.modified.formatString("YYYY-0MM-0DD")+" [[" +tiddler.title+"]]\n"'
>>
}}}
See also:
* [[List Tiddlers of an included TiddlyWiki (using the ForEachTiddlerMacro)]]
* [[Programming with the IncludePlugin]]
If a tiddler name is used in more than one TiddlyWiki (e.g. in the main TiddlyWiki and some included TiddlyWiki) only one of these tiddlers is visible, the others are hidden. For details see [[How Tiddlers are found]].
The following script reports all "hidden" tiddlers, also reporting the TiddlyWiki containing them.
{{{
<script>
// List all hidden tiddlers of included TiddlyWikis
// see http://tiddlywiki.abego-software.de/#[[How%20Tiddlers%20are%20found]]
// By default hidden tiddlers with names of shadow tiddlers in the main TiddlyWiki
// are not reported. Set the following variable to false if these should also be reported.
var ignoreShadowTiddlers = true;
// returns the url (if defined) or the text "main ~TiddlyWiki"
var twLabel = function(url) {
return url ? url : "main ~TiddlyWiki";
}
var hiddenTiddlers = [];
var incls = abego.TiddlyWikiIncluder.getIncludes();
var n = incls.length;
for (var i = 0; i < n; i++) {
var url = incls[i]
var twStore = abego.TiddlyWikiIncluder.getStore(url);
if (twStore == null) {
displayMessage("not found "+url);
continue;
}
twStore.forEachTiddler(function(title,tiddler) {
var foundTiddler = store.getTiddler(tiddler.title);
if (foundTiddler == null) {
// no tiddler with this title found (using getTiddler),
// so this must be a shadow tiddler in the main TiddlyWiki.
if (!ignoreShadowTiddlers) {
hiddenTiddlers.push("[["+title+"]] in "+url+" (using shadow tiddler from "+twLabel(null)+")");
}
} else if (tiddler != foundTiddler) {
if (!ignoreShadowTiddlers || config.shadowTiddlers[[title]] == undefined) {
hiddenTiddlers.push("[["+title+"]] in "+url+" (using tiddler from "+twLabel(foundTiddler.includeURL)+")");
}
}
});
}
return hiddenTiddlers.length
? "!Hidden Tiddlers\n# "+hiddenTiddlers.join("\n# ")+"]]\n"
: "No tiddlers are hidden.";
</script>
}}}
<script>
// List all hidden tiddlers of included TiddlyWikis
// see http://tiddlywiki.abego-software.de/#[[How%20Tiddlers%20are%20found]]
// By default hidden tiddlers with names of shadow tiddlers in the main TiddlyWiki
// are not reported. Set the following variable to false if these should also be reported.
var ignoreShadowTiddlers = true;
// returns the url (if defined) or the text "main ~TiddlyWiki"
var twLabel = function(url) {
return url ? url : "main ~TiddlyWiki";
}
var hiddenTiddlers = [];
var incls = abego.TiddlyWikiIncluder.getIncludes();
var n = incls.length;
for (var i = 0; i < n; i++) {
var url = incls[i]
var twStore = abego.TiddlyWikiIncluder.getStore(url);
if (twStore == null) {
displayMessage("not found "+url);
continue;
}
twStore.forEachTiddler(function(title,tiddler) {
var foundTiddler = store.getTiddler(tiddler.title);
if (foundTiddler == null) {
// no tiddler with this title found (using getTiddler),
// so this must be a shadow tiddler in the main TiddlyWiki.
if (!ignoreShadowTiddlers) {
hiddenTiddlers.push("[["+title+"]] in "+url+" (using shadow tiddler from "+twLabel(null)+")");
}
} else if (tiddler != foundTiddler) {
if (!ignoreShadowTiddlers || config.shadowTiddlers[[title]] == undefined) {
hiddenTiddlers.push("[["+title+"]] in "+url+" (using tiddler from "+twLabel(foundTiddler.includeURL)+")");
}
}
});
}
return hiddenTiddlers.length
? "!Hidden Tiddlers\n# "+hiddenTiddlers.join("\n# ")+"]]\n"
: "No tiddlers are hidden.";
</script>
[[Home|IncludePlugin Documentation]]
----
^^© 2005-2011<<br>>[[abego Software|http://www.abego-software.de]]^^
Every TiddlyWiki included using the IncludePlugin is loaded into memory and can be accessed through a "TiddlyWiki" object. This is a "TiddlyWiki" object just as the object stored in the global "store" object, used to access the TiddlyWiki you are running.
To get the TiddlyWiki ("store") object of an included TiddlyWiki you may use:
{{{
var includedStore = abego.TiddlyWikiIncluder.getStore(tiddyWikiURL)
}}}
With the returned TiddlyWiki object you can do the same things you would do with the "store" object. E.g. you may iterate through the Tiddlers of the store etc.
''Example: List tiddlers from included TiddlyWiki changed after a given date''
Assume you have included "http://www.tiddlywiki.com/index.html" and want to list the tiddlers of that TiddlyWiki that have changed after July 1st, 2007.
You may then use this script:
{{{
<script>
var twStore = abego.TiddlyWikiIncluder.getStore("http://www.tiddlywiki.com/index.html");
var list = [];
twStore.forEachTiddler(function(title,tiddler) {
if (tiddler.modified > new Date("July 1, 2007"))
list.push(title);
});
return "* [["+list.join("]]\n* [[")+"]]\n";
</script>
}}}
//(To use the {{{<script>}}} tag you must install the InlineJavascriptPlugin (http://www.TiddlyTools.com/#InlineJavascriptPlugin))//
(See also [[List Tiddlers of an included TiddlyWiki (using the ForEachTiddlerMacro)]])
''Example: List all hidden Tiddlers of included TiddlyWikis''
For a more extended example see: [[List all hidden tiddlers of included TiddlyWikis]]
/*{{{*/
.tiddlyLinkNonExisting {
font-style: normal;
color: #000000;
}
/*}}}*/
Include the tiddlers of an external TiddlyWiki into the current TiddlyWiki.
''Syntax''
|>|{{{<<}}}''include'' [''url:''] //tiddlyWikiPath// [''delay:'' //delayDuration//] [''hide:'' //hideFlag//]{{{>>}}}|
|//tiddlyWikiPath//|The path to the TiddlyWiki to include.<<br>>This may be a relative path, an absolute local file path, or a "file:", "http:" or "https:" URL)|
|//delayDuration//|Integer. Defines the number of milliseconds (thousands of a second) to wait before actually including the TiddlyWiki. By default a TiddlyWiki is included immediately when the TiddlyWiki starts.|
|//hideFlag//|When "{{{true}}}" the "include" macro is not displayed in the tiddler.|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|
''Examples''
{{{
<<include "http://tiddlywiki.abego-software.de/index.html">>
<<include "C:\TiddlyWiki\shared\TiddlyWikiHelp.html">>
<<include "file://C:/Private/journals/2006-12.html" delay: 8000 >>
<<include "test/sample33.html">>
}}}
''Notes''
* For security reasons it may not be possible to include some TiddlyWikis. Especially you cannot access a TiddlyWiki on a different website when running your TiddlyWiki on your webserver (the so-called "Cross-Site Scripting" issue). Nevertheless you can access TiddlyWikis on various websites if you are running your TiddlyWiki locally. And you may refer to other Wikis on your own site.
* The macro may be placed in any tiddler, but it is recommended to put them into the "IncludeList" tiddler. The includes listed in the "IncludeList" are processed at TiddlyWiki startup. An include defined in a different tiddler are processed the first time the tiddler is displayed. The order the include macros are processed is used when [[looking for a tiddler|How Tiddlers are found]].
Displays the list of "included" TiddlyWikis, together with their "load state". I.e. you can see if the TiddlyWiki is already loaded (include), if there was an error (e.g. the TiddlyWiki to include was not found) etc.
''Syntax:''
|>|{{{<<}}}''includeState''{{{>>}}}|
The TiddlyWikis are listed in the order they are checked for tiddlers (see [[How Tiddlers are found]])
The (shadow) tiddler "IncludeState" contains this macro, i.e. you can view that tiddler to see the current include state.
See also: [[The "include" Macro]].
If you have problems running the IncludePlugin you may try this:
* Have a look at the PluginManager if the IncludePlugin is installed correctly.
* If the IncludePlugin is installed correctly go to the AdvancedOptions and look for the checkbox "Include TiddlyWikis". This must be checked.
* If "Include TiddlyWikis" is checked click on the IncludeState link next to the checkbox. This reports problems related to every included TiddlyWiki.
* Be aware only TiddlyWikis listed in the IncludeList of the "main" TiddlyWiki are included. Any IncludeList of included TiddlyWikis is ignored (i.e. the IncludePlugin does not work "recursively".)
* Running IncludePlugin in the Opera or Chrome browser is not officially supported, but people report it also works fine with these browsers. However you may need to "allow file access" through browser specific options, e.g. {{{opera:config#UserPrefs|AllowFileXMLHttpRequest}}} for Opera, and {{{--allow-file-access-from-files}}} for Chrome. For details see: http://groups.google.com/group/tiddlywiki/browse_thread/thread/392be3c984a1fb33
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->