<!--{{{-->
<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]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.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]];}

#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 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.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:0em 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 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 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 0em;}
.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 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 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 0em 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0em 1em;}

.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:0em 0.25em; padding:0em 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:0px 3px 0px 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 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.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 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 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 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<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]]
<<importTiddlers>>
Questo software usa ~JavaScript per la gestione interattiva e dinamica di elementi HTML, con l'ausilio di stili CSS, in modalità che ''non possono essere fornite in forme alternative''. Si prega perciò di tenere presente che i contenuti di queste pagine ''non possono essere visualizzati quando gli script sono disabilitati oppure non supportati'' dal browser che si sta utilizzando, indipendentemente da ogni altra considerazione. 

Quanto sopra non significa necessariamente che persone disabili non siano in grado di  fruire di questi contenuti, //se la gestione degli script è supportata dal browser utilizzato ed è abilitata.//  Per ulteriori informazioni sul grado di accessibilità di ~TiddlyWiki è possibile consultare questa pagina: [[web2access.org|http://www.web2access.org.uk/product/63/]]. 

/%
Background: #fff
Foreground: #000
PrimaryPale: #9cf
PrimaryLight: #09f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
%/
<script>
/*
  codice estratto da http://devpad.tiddlyspot.com/#PaletteViewMacro
  dato che userò solo questa paletta, non mi serve la macro
*/
function isColor(s) {
	var colors = ["Black", "Green", "Silver", "Lime", "Gray", "Olive", "White", "Yellow",
		"Maroon", "Navy", "Red", "Blue", "Purple", "Teal", "Fuchsia", "Aqua", "Orange"];
	var match = s.match(/^#[0-9A-F]{3}$|^#[0-9A-F]{6}$|^RGB\([\d,\s]{5,}\)$/i);
	if (match) return true;
	if (colors.contains(s)) return true;
	return false;
};

	var title = tiddler.title;
	var colors = store.calcAllSlices(title);
	var labels = [];

	for(var c in colors) {
		if ( isColor(colors[c]) ) {
			labels.push(c);
		}
	}
	if (labels.length > 0) {
		var output = "|!Sample|!Value|!Name|h\n";
		for(var i = 0; i < labels.length; i++) {
			output += "|padding:0 4em;background-color:" + colors[labels[i]] + ";&nbsp;|"
				+ "{{{" + colors[labels[i]] + "}}}|"
				+ "[[" + labels[i] + "|" + title + "]]|\n";
		}
		wikify(output, place);
	}
</script>
----
{{center{
~TiddlyWiki versione <<version>>   <<toggleSideBar "" "Apri/Chiudi la barra laterale" hide>> © 2007 [[UnaMesa|http://www.unamesa.org/]]  -  Aggiornato il: <script>wikify((new Date(document.lastModified)).formatString("0DD-0MM-YYYY 0hh:0mm"), place);
</script>
}}}
{{tagged{//I was trying to say to people, 
"of course, it’ll never be able to save; 
it’s impossible for a HTML file to save 
changes onto your local harddrive, 
don’t be ridiculous".//
                            {{right{//Jeremy Ruston//}}} }}}Il punto di domanda che non a caso appare sul titolo di questa pagina, vuole sottolineare il fatto che me lo sto ancora chiedendo anch'io. E forse se lo sta ancora chiedendo anche il suo autore, [[Jeremy Ruston|http://www.osmosoft.com]]. 

~TiddlyWiki è un programma che permette di raccogliere e organizzare in un singolo file una serie di appunti in modo veloce ed efficiente. Il programma non richiede alcuna installazione e per funzionare necessita solamente di un semplice browser (~FireFox, Internet Explorer, Safari, Opera, ecc.). Essendo un singolo file che può essere  tenuto su una chiavetta di memoria, spedito via e-mail o trasferito su un server web per la consultazione in rete, risulta un modo relativamente //semplice//, //immediato// ed estremamente //trasportabile// per raccogliere e gestire contenuti di vario genere. 

Per chi sa chiaramente che cos'è un Wiki, ~TiddlyWiki è un singolo file HTML strutturato in modo tale da comprendere e gestire i contenuti, le funzioni (modifica, registrazione, classificazione e ricerca) e gli stili di formattazione di un Wiki. ~TiddlyWiki si differenzia da un Wiki in quanto il suo funzionamento non dipende da un server e da un database, ed è rivolto ad un utilizzo più personale che collaborativo. Inoltre, per queste sue caratteristiche molto singolari, si presta ad applicazioni pratiche ancora da esplorare. 

Per quanto riguarda i contenuti, ~TiddlyWiki permette di inserire testi in HTML, puro testo, oppure per mezzo della marcatura Wiki. L'aspetto dei contenuti può essere totalmente modificato e personalizzato per mezzo di stili di formattazione (CSS) già predisposti che possono essere modificati o personalizzati in maniera relativamente semplice. 

Da un punto di vista funzionale, ~TiddlyWiki può essere potenziato aggiungendo estensioni (plugin), molte delle quali si possono trovare già predisposte, oppure scrivendo codice in ~JavaScript. Su questi temi mi soffermerò ampiamente nelle pagine successive. Sotto questo aspetto, ~TiddlyWiki incorpora una ''libreria ~JavaScript'' che gestisce e organizza informazioni memorizzate in formato HTML. Si tratta di una struttura di base che per mezzo di una serie di personalizzazioni talvolta complesse potrebbe fornire un ambiente di sviluppo per la realizzazione di applicazioni complete. 
!!!Il rovescio della medaglia
Tutto questo può sembrare molto bello, ma è opportuno tenere in considerazione alcuni aspetti critici: 
{{list10{
*Semplicità e immediatezza dipendono da molti fattori, dall'uso che se ne vuol fare e dalle capacità di chi lo utilizza. Spesso la personalizzazione richiede conoscenze degli Standard Web che pochi possiedono.   
*Non tutti i browser sono in grado supportare le funzioni di registrazione in locale dei contenuti, ed alcuni richiedono particolari accorgimenti. Può capitare che alcune personalizzazioni, o estensioni, siano supportate da un solo browser (di solito ~FireFox). 
*La gestione dei contenuti su un server Web dipende dal tipo di server utilizzato per l'hosting. Le modalità per registrare i contenuti in linea dipendono dal tipo di servizi di cui il server dispone. Alcuni server che iniettano contenuti pubblicitari o una barra di controllo sulla pagina web potrebbero creare problemi alla struttura della pagina. ''~TiddlyWiki non è un CMS'' (Content Management System) nel senso stretto del termine. Se lo si vuole utilizzare in rete, è bene tenere sempre in considerazione delle sue intrinseche limitazioni in fatto di accessibilità dei contenuti, attività di ottimizzazione per i motori di ricerca e di compatibilità con gli Standard Web. 
*Alcuni sviluppatori hanno realizzato delle varianti specializzate per usi specifici, ma la maggior parte di queste sono disponibili solo in lingua inglese. 
*Il paradigma //tutto in un singolo file HTML// non si applica ai contenuti non testuali, quali immagini, e altri contenuti multimediali. Molti sono gli accorgimenti per risolvere questo problema, ma come capita spesso, la cura potrebbe risultare peggiore del male. 
*''~TiddlyWiki non è un database'', anche se ci assomiglia molto. Le dimensioni dei contenuti incidono direttamente sulle dimensioni del file e sui tempi di caricamento, sia in locale che in rete. Se la mole e la complessità strutturale dei dati da gestire supera certi limiti è opportuno utilizzare strumenti più adatti allo scopo.
}}}
[[Introduzione]]
<!--{{{-->
<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>
<!--}}}-->
L'inserimento di immagini in ~TiddlyWiki è un piccolo problema, che si rivela spesso piuttosto serio. 

La marcatura wiki per inserire un'immagine è:
{{{[img[http://www.xxx.org/images/nome.jpg]]}}} 
oppure con un indirizzamento locale: 
{{{[>img[Questa è la mia immagine|icona_80x80.jpg]]}}}
[img[Questa è la mia immagine|icona_80x80.jpg]]

Molto importante fornire sempre il testo alternativo per l'immagine. Notare ora la piccola differenza che fa la differenza (> allinea l'immagine a destra):
{{{[>img[Questa immagine è a destra?|icona_80x80.jpg]]}}} 
[>img[Questa immagine è a destra?|icona_80x80.jpg]] 



Se questa sintassi può apparire un po' astrusa, possiamo posizionare l'immagine con un frammento HTML:  
{{{
<html>
<img src="icona_80x80.jpg" 
width="40" height="40" alt="Sempre la stessa immagine" />
</html>
}}}
<html>
<img src="icona_80x80.jpg" 
width="40" height="40" alt="Sempre la stessa immagine" />
</html>
con alcuni ritocchi sullo stile:
{{{
<html>
<img src="icona_80x80.jpg" 
style="width: 160px; height: 40px;" alt="Sempre la stessa immagine" />
</html>
}}}
<html><img src="icona_80x80.jpg" style="width: 160px; height: 40px;" alt="Sempre la stessa immagine" /></html>

oppure con un'azione radicale (Possiamo agire globalmente sul selettore img oppure definire una classe specifica):
{{{
<html>
  <style>
    .imgright { float: right; margin-left:3em; margin-right:1em }
  </style>
<img src="icona_80x80.jpg" alt="Sempre la stessa immagine" />
</html>
}}}
<html>
  <style>
    .imgright { float: right; margin-left:3em; margin-right:1em }
  </style>
<img class="imgright" src="icona_80x80.jpg" 
alt="Sempre la stessa immagine" />
</html>
Possiamo in alternativa agire sullo sfondo di un elemento per controllare l'inserimento e il posizionamento dell'immagine: 
{{{
<html>
<style>
.test { height: 80px;
	background-image: url('boschina.jpg'); 
        background-repeat: no-repeat; 
        background-color:#fff; 
        color:#edb; 
        border-bottom:0px; }
</style>
<div class="test"></div>
</html>
}}}
<html>
<style>
.test { height: 80px;
	background-image: url('boschina.jpg'); 
        background-repeat: no-repeat; 
        background-color:#fff; 
        color:#edb; 
        border-bottom:0px; }
</style>
<div class="test"></div>
</html>

!Problema dei collegamenti locali/esterni
Se il file principale viene pubblicato su un sito su cui si possono predisporre anche delle cartelle locali contenenti i file delle immagini, non ci sono problemi nella visualizzazione delle pagine in linea o in locale.
Se invece, come nel caso di tiddlyspot, le immagini devono essere recuperate da un altro sito, non è possibile vedere le immagini se il file viene usato in locale. Per risolvere questo problema, tiddlytool dispone di una plugin che permette di configurare dei collegamenti bivalenti. 
Forse potrebbe bastaere una semplice macro che se il file non è in locale aggiunge un prefisso "http://...." al pecorso locale. 
Anche se c'è una possibilità di includere le immagini nel file in formato base-64, è opportuno evitarlo per una serie di problemi collaterali.
 
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

window.removeElementWhen = function(test,place) {
	window.hideWhenLastTest = test;
	if (test) {
		removeChildren(place);
		place.parentNode.removeChild(place);
	}
};


merge(config.macros,{

	hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( eval(paramString), place);
	}},

	showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !eval(paramString), place);
	}},

	hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAny(params), place);
	}},

	showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAny(params), place);
	}},

	hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
	}},

	showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
	}},

	hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title == params[0], place);
	}},

	showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title != params[0], place);
	}},

	'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !window.hideWhenLastTest, place);
	}}

});

//}}}

/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2009.04.11 [1.9.5] pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?(?: key=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",

	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var src=lookaheadMatch[1];
			var label=lookaheadMatch[2];
			var tip=lookaheadMatch[3];
			var key=lookaheadMatch[4];
			var show=lookaheadMatch[5];
			var code=lookaheadMatch[6];
			if (src) { // external script library
				var script = document.createElement("script"); script.src = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // inline code
				if (show) // display source in tiddler
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // create 'onclick' command link
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
					var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
					link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
					link.tiddler=w.tiddler;
					link.onclick=function(){
						this.bufferedHTML="";
						try{ var r=eval(this.code);
							if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
								var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
							if(this.bufferedHTML.length)
								s.innerHTML=this.bufferedHTML;
							if((typeof(r)==="string")&&r.length) {
								wikify(r,s,null,this.tiddler);
								return false;
							} else return r!==undefined?r:false;
						} catch(e){alert(e.description||e.toString());return false;}
					};
					link.setAttribute("title",tip||"");
					var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
					URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
					URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
					link.setAttribute("href",URIcode);
					link.style.cursor="pointer";
					if (key) link.accessKey=key.substr(0,1); // single character only
				}
				else { // run script immediately
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
					try	 { var out=eval(c); }
					catch(e) { out=e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}

// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
	if(limit > 0) text = text.substr(0,limit);
	var wikifier = new Wikifier(text,formatter,null,tiddler);
	return wikifier.wikifyPlain();
}
//}}}

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
Questo spazio contiene informazioni tecniche in lingua italiana su [[TiddlyWiki|http://www.tiddlywiki.com/]] un web notebook personale. 

Per una guida introduttiva in italiano, potete consultare la [[Guida a TiddlyWiki|http://tiddlywikiitalia.altervista.org/MiniGuidaTiddlyWiki.html]] realizzata da [[Pollio Maurizio|http://pollio.maurizio.googlepages.com]], da dove si possono scaricare anche alcune versioni personalizzate in lingua italiana per usi specifici. 

{{tagged{//The contents of this site are directed 
to people speaking italian language, anyway 
you could find, sometimes, sections 
specifically directed to international people, 
in english language. //
}}}Ad ogni modo, visto che siete qui, potete anche leggervi prima la mia pagina [[Cos'è TiddlyWiki?]] che contiene alcune mie considerazioni personali su questo strano oggetto. 

In questo ~TyddlySito ho raccolto alcune annotazioni relative alle possibilità di personalizzazione ed estensione, sulla struttura interna del programma, sulla programmazione ed utilizzo di macro e plugins in generale. 

Non si tratta di una lettura adatta a chi vuole limitarsi al semplice uso di ~TiddlyWiki, per questo basta consultare gli indirizzi che ho indicato all'inizio di questa pagina. Per affrontare questi argomenti è necessario avere buona dimestichezza con il funzionamento dei cosiddetti //Web Standards//, ovvero del linguaggio HTML, dei fogli di stile CSS, del linguaggio ~JavaScript e le interazioni con il DOM (Document Object Model), come anche l'uso di Espressioni Regolari, dei linguaggi XML, SVG e altre diavolerie di questo genere, oltre ad una buona conoscenza della lingua inglese, con cui è scritta gran parte della documentazione di riferimento. 

Tutto questo potrebbe essere più che sufficiente per scoraggiare un utilizzatore medio, a cui non interessano troppi dettagli tecnici. Spero tuttavia che qualcuno, spinto da curiosità e spirito di esplorazione, trovi le motivazioni per proseguire la lettura delle pagine successive. A questi auguro una buona lettura e chiedo eventualmente di inviarmi qualche [[commento|mailto:tiziano.detogni@gmail.com]] sul lavoro svolto. 
;Note: 
* Attualmente il sito è in allestimento, sto sperimentando le varie personalizzazioni per la consultazione in rete e le funzionalità fornite dal server di [[altervista|http://it.altervista.org/]] che mi sta ospitando... 
*Si prega di leggere con attenzione la seguente avvertenza in materia di [[Accessibilità]] e questa [[Nota]] per quanto riguarda la possibilità di scaricare queste pagine su un supporto locale. 
[[Introduzione]]
[[Cos'è TiddlyWiki?]]
[[Personalizzazione]]
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;
{{footer{~TiddlyWiki versione   <<version>>
<<toggleSideBar "" "Apri/Chiudi la barra laterale" hide>> © 2007 [[UnaMesa|http://www.unamesa.org/]]
Aggiornato il: <script>wikify((new Date(document.lastModified)).formatString("0DD-0MM-YYYY 0hh:0mm"), place);
</script>
}}}<script> /*   force some Options defaults  */
config.options.chkAnimate = false;
config.options.chkSaveBackups = false;
config.options.chkAutoSave = false;
</script>
<!--{{{-->
<!-- Start of StatCounter Code -->
<script type="text/javascript">
var sc_project=6105016; 
var sc_invisible=1; 
var sc_security="4041b5cf"; 
</script>

<script type="text/javascript"
src="http://www.statcounter.com/counter/counter.js"></script>
<!-- End of StatCounter Code -->
<!--}}}-->
<noscript>
<div style="float:left; width:20%;"><br/></div>
<div style="float:left; width:60%; text-align:left; font-size:small; background-color:#ffffcc; color:#000; "><p>
<p>Questo software utilizza JavaScript per gestire interattivamente e dinamicamente elementi HTML, con l'ausilio di stili CSS, in modalità che non possono essere fornite in forme alternative. I contenuti di queste pagine <b>non possono essere visualizzati quando gli script sono disabilitati oppure non supportati</b> dal browser che si sta utilizzando. </p>
</div>
<div style="float:left;width:20%;"><br/></div>
<div style="clear:both;"></div>
</noscript>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<!--}}}-->
~TiddlyWiki è composto da un singolo file HTML, e di solito è possibile scaricarlo su un supporto locale per essere usato in situazioni in cui non sia disponibile una connessione Internet. 

Anche se questo sito può essere scaricato e utilizzato in locale, i collegamenti esterni alle immagini andranno persi e non potranno più essere visualizzati.  


<!--{{{-->
<div class='header'>   <!-- * -->
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<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 id='contentFooter' refresh='content' tiddler='ContentFooter'></div>

<!--}}}-->
Questo frammento elenca le personalizzazioni apportate a questo ~TiddlyWiki per essere visualizzato in rete: 
*Nel frammento StyleSheet sono definite alcune varianti agli stili contenuti nel frammento predefinito StyleSheetLayout (è buona norma non modificare direttamente quest'utimo frammento). 
** Modifiche alla barra di intestazione e al corpo del carattere 
** Riduzione della dimensione del carattere per il testo non formattato 
**  Modifiche al sottotitolo nella visualizzazione dei frammenti 
**  Personalizzazione menu principale e aspetto dei pulsanti se inseriti in quest'area 
*Nuovi stili si trovano invece nel frammento [[Stili personali]].   
*Modifiche al frammento ViewTemplate per disattivare la barra dei comandi del frammento e dei riquadri tagged e tagging se in linea (richiede il plugin HideWhenPlugin). 
*Importazione del plugin ToggleSideBarMacro per nascondere la barra laterale dei comandi;
*Modifiche a MainMenu per visualizzare la versione, l'ultima data di modifica e il comando per aprire la barra laterale (penso che più avanti non sia necessario). 
*Importazione plugin SinglePageModePlugin per visualizzare un frammento per volta. Apportando un piccola modifica che elimina un fastidioso sfarfallio.  
*Gestione di un fondo pagina per mezzo del frammento ContentFooter e una modifica nel frammento PageTemplate. 
*Gestione favicon per i browser che le supportano, inserita nel frammento MarkupPreHead.
<script show>
        /* crea un elenco dei plugin installati */
	var out=["!!!Plugin installati: \n{{tabContents{\n"];
	var tids=store.getTaggedTiddlers("systemConfig");
	for (var i=0; i<tids.length; i++) {
		var t=tids[i].title;
                var t1="[["+t+"]] versione: "+store.getTiddlerSlice(t,"Version");
		var d=store.getTiddlerSlice(t,"Description");
               d="<nowiki>"+d+"</nowiki>"
		out.push(";%0\n:%1\n".format([t1,d]));
	};
	out.push("}}}\n");
	return out.join("");
</script>
/***
|''Name:''| PostTiddlerMacro |
|''Description:''| Adjust images links after tiddler display |
|''Type''| macro |
|''Version:''| 0.0.2 |
|''Date:''| apr 21, 2012 |
|''Source:''|http://tiziano.tiddlyspot.com|
|''Author:''| Tiziano |
|''License:''| xxx |
|''~CoreVersion:''| 2.5.0 |
!!!Usage:
<<<
Prova ad eseguire uno script dopo l'apertura di un frammento. 
Aggiusta il percorso delle immagini indicate negli attributi img. 

Aggiusta il percorso delle immagini indicate in classi particolari.  

Prova a modificare l'immagine nell'intestazione o sullo sfondo in determinate condizioni (un campo personalizzato che indica il nome dell'immagine, oppure una tabella predisposta?)

Il controllo per un cambio di immagine deve essere eseguito su tutti i frammenti, se l'immagine richiesta è già visualizzata, termina. Se manca il campo personalizzato, attiva un'immagine di default. 
<<<
!!!Configuration:
<<<
Da inserire in viewtemplate
{{{
....
<div class='tagClear' macro='postTiddler'></div>
}}}
<<<
!!!Revisions
<<<
* v0.0.2 (2007-04-12)
** xxx xxx
* v0.0.1 (2007-03-28)
** First attempts
*** zzz zzz
*** "kkk kkk"
<<<
!Code
***/
//{{{
/*
  opzioni: remote path to images
*/
       if (config.options.txtRemoteImgPath==undefined)
          config.options.txtRemoteImgPath="./immagini/";
       if (config.options.txtLocalImgPath==undefined) 
          config.options.txtLocalImgPath="./immagini/";
//}}}

//{{{
/*
    Estrazione nome immagine di sfondo dallo stile background-image
    dell'elemento indicato in caso di problemi torna un valore di default 
*/
config.macros.postTiddler = {};
config.macros.postTiddler.background_image = function (place, xdefault) {
       var theFile=jQuery(place).css('background-image');
//displayMessage('theFile '+theFile);
       if ( (theFile.indexOf('invalid')!=-1) || (theFile=='none') ) 
          return xdefault;      // inizializza immagine
       else {
            theFile = theFile.substr(4);
            theFile = theFile.substr(0, theFile.length-1);
            var slashpos=theFile.lastIndexOf("/"); 
            if (slashpos==-1) slashpos=theFile.lastIndexOf("\\"); 
           return (slashpos==-1)?theFile:theFile.substr(slashpos+1);
         };
};
//}}}

//{{{
config.macros.postTiddler.handler = function (place, macroName, params, wikifier, paramString, tiddler) {
       // impostazione imgpathin base al protocollo
       var imgpath; 
       if (window.location.protocol != "file:")
		imgpath=config.options.txtRemoteImgPath;  //  remote url
	else
               imgpath=config.options.txtLocalImgPath;
       /*
            ricerca delle immagini nel frammento da visualizzare
       */
       var imgs=jQuery('img', story.findContainingTiddler(place));
       imgs.each( function() {
                 // displayMessage('each = '+jQuery(this).attr('src')) 
                   jQuery(this).attr('src',imgpath+jQuery(this).attr('src'));
            } );

//
// verifica sugli stili css
//
var theFile;
var theField;
var defaultBkg='sfondo.jpg';
var defaultHeader='tiziano00.jpg';
var externalLink='external.png';
/*
   controllo immagine sfondo
*/
      theFile = config.macros.postTiddler.background_image('body', defaultBkg);
       jQuery("body").css('background-image', 'url('+imgpath+theFile+')');
/*
   controllo immagine intestazione (header), 
   imposta l'immagine indicata nel campo personalizzato 'header' 
   oppure l'mmagine di default
*/
      theFile = config.macros.postTiddler.background_image('div.header', defaultHeader);
      theField = store.getValue(tiddler,'header');
      if (!theField) theField=defaultHeader;
      if (theFile!=theField) theFile=theField;
           jQuery("div.header").css('background-image','url('+imgpath+theFile+')');
/*
   controllo immagine collegamenti esterni (externallink)
*/
      jQuery("a.externalLink").css('background-image','url('+imgpath+externalLink+')' );
};
//}}}
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6.1 (see Revisions)|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.displayTiddler(), Story.prototype.displayTiddlers()|
|Options|##Configuration|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2009.02.24 [2.9.6.1] Modifica logica delle opzioni (open on top attivo anche in single page mode)
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release.  Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 6, date: new Date(2008,10,17)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
	config.options.chkSinglePageMode=eval(v);
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		config.lastURL = window.location.hash;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
} };
//}}}
//{{{
//if (config.options.chkSinglePageMode==undefined)
	config.options.chkSinglePageMode=true;
if (config.options.chkSinglePagePermalink==undefined)
	config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
	config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
	config.options.chkSinglePageKeepEditedTiddlers=true;
if (config.options.chkTopOfPageMode==undefined)
	config.options.chkTopOfPageMode=true;
if (config.options.chkBottomOfPageMode==undefined)
	config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
	config.options.chkSinglePageAutoScroll=true;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash) return; // no change in hash
	var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
	if (tids.length==1) // permalink (single tiddler in URL)
		story.displayTiddler(null,tids[0]);
	else { // restore permaview or default view
		config.lastURL = window.location.hash;
		if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
		story.closeAllTiddlers();
		story.displayTiddlers(null,tids);
	}
}


if (Story.prototype.SPM_coreDisplayTiddler==undefined)
	Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
	var opt=config.options;
	var single=opt.chkSinglePageMode && !startingUp;
	var top=opt.chkTopOfPageMode && !startingUp;
	var bottom=opt.chkBottomOfPageMode && !startingUp;

	if (top)
		arguments[0]=null;   // 2.9.6.1

	if (single) {
		story.forEachTiddler(function(tid,elem) {
			// skip current tiddler and, optionally, tiddlers that are folded.
			if (	tid==title
				|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
				return;
			// if a tiddler is being edited, ask before closing
			if (elem.getAttribute("dirty")=="true") {
				if (opt.chkSinglePageKeepEditedTiddlers) return;
				// if tiddler to be displayed is already shown, then leave active tiddler editor as is
				// (occurs when switching between view and edit modes)
				if (tiddlerElem) return;
				// otherwise, ask for permission
				var msg="'"+tid+"' is currently being edited.\n\n";
				msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
				if (!confirm(msg)) return; else story.saveTiddler(tid);
			}
			story.closeTiddler(tid);
		});
	}
//	else if (top)
//		arguments[0]=null;  2.9.6.1
	else if (bottom)
		arguments[0]="bottom";
	if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
	if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		if (!isTopTiddler && (single || top))
			tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
		else if (bottom)
			tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
		else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	} else
		this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=document.getElementById(story.idPrefix+title);
	if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
		// scroll to top of page or top of tiddler
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
		// if animating, defer scroll until after animation completes
		var delay=opt.chkAnimate?config.animDuration+10:0;
		setTimeout("window.scrollTo(0,"+yPos+")",delay); 
	}
}

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
	Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
	this.SPM_coreDisplayTiddlers.apply(this,arguments);
	opt.chkBottomOfPageMode=saveBPM;
	opt.chkTopOfPageMode=saveTPM;
	opt.chkSinglePageMode=saveSPM;
}
//}}}
di Tiziano
Pagina Casa
http://tizziano.altervista.org/
/***
In questo frammento ci sono tutte le dichiarazioni che riguardano gli stili relativi ai nuovi frammenti definiti dall'utente.  Prestare attenzione che non vi siano collegamenti ad altri frammenti, dato che il sistema li concatena automaticamente creando a volte dei problemi. Le modifiche a questo frammento non vengono aggiornate automaticamente. 
Per innescare un aggiornamento dopo una modifica premere qui:  <html><a href="javascript:refreshStyles('StyleSheet');">Aggiorna gli stili</a></html>
***/
/***
!!!Stili personali ( nuovi stili usati nei frammenti )
***/
/*{{{*/
.custompre {
	padding:0.5em; 
	margin-left:0.5em; 
	font-family: monospace; 
	font-size:0.9em; 
	line-height:1.4em; 
	text-align:justify; 
	background:#ffc;
}

.center
	{ display:block;text-align:center; }
.center table
	{ margin:auto !important; }
.right
	{ display:block;text-align:right; }
.floatleft
	{ float:left; }
.floatright
	{ float:right; }
.list10 li {
     padding-bottom: 10px;
}
/*}}}*/
/***
!!!font families 
***/
/*{{{*/
.cursive {
   font-family: cursive; 
}
.fantasy {
   font-family: fantasy; 
}
.monospace {
   font-family: monospace; 
}
.sans-serif {
   font-family: sans-serif; 
}
.serif {
   font-family: serif; 
}
/*}}}*/
/***
!!!font sizes 
***/
/*{{{*/
.big
	{ font-size:14pt;line-height:120% }
.medium
	{ font-size:12pt;line-height:120% }
.normal
	{ font-size:9pt;line-height:120% }
.small
	{ font-size:8pt;line-height:120% }
.fine
	{ font-size:7pt;line-height:120% }
.tiny
	{ font-size:6pt;line-height:120% }
.larger
	{ font-size:120%; }
.smaller
	{ font-size:80%; }
/*}}}*/
/***
!!!font styles 
***/
/*{{{*/
.bold
	{ font-weight:bold; }
.italic
	{ font-style:italic; }
.underline
	{ text-decoration:underline; }
/*}}}*/
/***
!!!Piedipagina
***/
/*{{{*/
#contentFooter {
 background: transparent;
 padding: 1em 10em;
 font-weight:normal;
 font-size:smaller;
}

#contentFooter a {
 color:#009;
} 
/*}}}*/
/***
In questo frammento ci sono tutte le dichiarazioni che riguardano variazioni agli stili predefiniti,  nel frammento ''Stili personali'' ci sono gli stili relativi ai nuovi frammenti definiti dall'utente.  Prestare attenzione che non vi siano collegamenti ad altri frammenti, dato che il sistema li concatena automaticamente creando a volte dei problemi. 
***/
/***
!!!Barra di intestazione
***/
/*{{{*/
body {
	font-size:.95em; font-family:arial,helvetica;
	margin-left:40px; 
	background: url(immagini/sfondo.jpg)
		repeat-y
		0px
		0px
		scroll;
}
.header {background: transparent no-repeat 0 0 scroll;}
.headerShadow {
	position:relative; 
	padding:40px 0em 1em 1em; 
	left:-1px; top:-1px; 
	color: [[ColorPalette::SecondaryDark]] 
}
.headerForeground {
	position:absolute; 
	padding:40px 0em 1em 1em; 
	left:0px; top:0px; 
	color:[[ColorPalette::SecondaryPale]]; 
}
.siteTitle {font-size:2em; }
.siteSubtitle { font-size:1em; }
/*}}}*/
/***
!!!Barra menu
***/
/*{{{*/
#mainMenu {
	margin-left: 40px;
	font-size: 0.9em;
	text-align: left;
	width: 14em;
}
#mainMenu .tiddlyLinkExisting { font-weight: bold;}
.button {border:0px}

#mainMenu .footer {
	font-size: x-small;
	font-style:italic;
	text-align: right;
	color:[[ColorPalette::PrimaryMid]];
}
/*}}}*/
/***
!!!Riduzione della dimensione del carattere per il testo non formattato
***/
/*{{{*/
.viewer pre {
	padding:0.5em; 
	margin-left:0.5em; 
	font-size:0.7em; 
	line-height:1.4em; 
	overflow:auto;
}
/*}}}*/
/***
!!!Modifiche al sottotitolo nella visualizzazione dei frammenti
***/
/*{{{*/
.subtitle {
	margin-top: -1.5em;
	margin-bottom: 0.5em;
	padding-bottom: 0.5em;
	border-bottom: 1px solid; 
	color:[[ColorPalette::SecondaryDark]];
	font-size: x-small;
	text-align: right; 
}
/*}}}*/
/***
!!!Collegamenti esterni
***/
/*{{{*/
.externalLink {
	color: [[ColorPalette::SecondaryDark]]; 
	text-decoration:underline; 
	background: url('external.png') 
		transparent 
		no-repeat 
		scroll right 
		center; 
	padding: 0 13px 0 0;
}
/*}}}*/
/***
!!!Nested ~StyleSheet ovvero ~StyleSheet transclusion
***/
/*{{{*/
[[Stili personali]]
/*}}}*/
Una guida per mettere usare e gestire un ~TiddlyWiki in rete. 
 
/***

|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.

!Demo
<<toggleSideBar "Toggle Sidebar">>

!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)

You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}

!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour. 
*20-07-06: version 0.11
*27-04-06: version 0.1: working.

!Code
***/
//{{{
config.macros.toggleSideBar={};

config.macros.toggleSideBar.settings={
         styleHide :  "#sidebar { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 1em;}\n"+"",
         styleShow : " ",
         arrow1: "«",
         arrow2: "»"
};

config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
          var tooltip= params[1]||'toggle sidebar';
          var mode = (params[2] && params[2]=="hide")? "hide":"show";
          var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
          var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;
          var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
          if (mode == "hide")
             { 
             (document.getElementById("sidebar")).setAttribute("toggle","hide");
              setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
             }
};

config.macros.toggleSideBar.onToggleSideBar = function(){
          var sidebar = document.getElementById("sidebar");
          var settings = config.macros.toggleSideBar.settings;
          if (sidebar.getAttribute("toggle")=='hide')
             {
              setStylesheet(settings.styleShow,"ToggleSideBarStyles");
              sidebar.setAttribute("toggle","show");
              this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
              }
          else
              {    
               setStylesheet(settings.styleHide,"ToggleSideBarStyles");
               sidebar.setAttribute("toggle","hide");
               this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
              }

     return false;
}

setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");

//}}}
|~ViewToolbar|closeTiddler closeOthers closeAll +editTiddler fields jump references > permalink publishTiddler|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler tiddler|
<!--{{{-->
<div macro="hideWhen readOnly"> 
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
</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 macro="hideWhen readOnly"> 
  <div class='tagged' macro='tags'>
     <div macro='tagging'></div>
  </div>
</div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear' macro='postTiddler'></div>
<!--}}}-->
{{{
http://tiziano.tiddlyspot.com#%5B%5BCos'%C3%A8%20TiddlyWiki%3F%5D%5D
http://tiziano.tiddlyspot.com#Introduzione
http://tiziano.tiddlyspot.com#Personalizzazione
}}}
/***
|''Name:''|ItalianTranslationPlugin|
|''Description:''|Translation of TiddlyWiki into Italian|
|''Authors:''|Mathew Warburton - (mat01web (at) gmail (dot) com + Pollio Maurizio (pollio.maurizio (at) gmail (dot) com)|
|''Source:''|http://pollio.maurizio.googlepages.com/MiniGuidaTiddlyWiki.html|
|''CodeRepository:''|http://pollio.maurizio.googlepages.com/it_2_4_1.js|
|''Version:''|2.4.1|
|''Date:''|Dec 11, 2008|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/deed.it]] |
|''~CoreVersion:''|2.4|
***/

{{{
// --
// -- Translateable strings
// --

// Strings in "double quotes" should be translated; strings in 'single quotes' should be left alone

config.locale = "it"; // W3C language tag

if (config.options.txtUserName == 'YourName') // do not translate this line, but do translate the next line
 merge(config.options,{txtUserName: "TuoNome"});

merge(config.tasks,{
	save: {text: "Salva", tooltip: "Salva le modifiche in questo TiddlyWiki", action: saveChanges},
	sync: {text: "Sincronizza", tooltip: "Sincronizza questo TiddlyWiki con altri file o server TiddlyWiki", content: '<<sync>>'},
	importTask: {text: "Importa", tooltip: "Importa frammenti e plugin da altri file o server TiddlyWiki", content: '<<importTiddlers>>'},
	tweak: {text: "Modifica", tooltip: "Modifica le opzioni di questo TiddlyWiki", content: '<<options>>'},
	upgrade: {text: "Aggiorna", tooltip: "Aggiorna il codice base di TiddlyWiki", content: '<<upgrade>>'},
  plugins: {text: "Plugin", tooltip: "Gestisce i plugin installati in questo TiddlyWiki", content: '<<plugins>>'}
});

// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
	txtUserName: "Digita un nome utente per firmare le tue modifiche",
	chkRegExpSearch: "Abilita nella ricerca l'uso delle espressioni regolari",
	chkCaseSensitiveSearch: "Abilita la ricerca sensibile alle maiuscole e minuscole",
	chkIncrementalSearch: "Abilita la ricerca incrementale key-by-key",
	chkAnimate: "Abilita animazioni",
	chkSaveBackups: "Genera una copia di backup quando si salvano le modifiche",
	chkAutoSave: "Abilita il salvataggio automatico delle modifiche",
	chkGenerateAnRssFeed: "Genera un feed RSS quando si salvano le modifiche",
	chkSaveEmptyTemplate: "Genera un modello vuoto quando si salvano le modifiche",
	chkOpenInNewWindow: "Apri i link esterni in una nuova finestra",
	chkToggleLinks: "Cliccando su un collegamento ad un frammento già aperto lo chiude",
	chkHttpReadOnly: "Non rendere editabile dal web",
	chkForceMinorUpdate: "Tratta le modifiche come minori non aggiornando il nome utente e la data quando modifichi i frammenti",
	chkConfirmDelete: "Chiedi conferma prima di eliminare il frammento",
	chkInsertTabs: "Usa il tasto tab per inserire caratteri di tabulazione invece di saltare al prossimo campo",
	txtBackupFolder: "Specifica il percorso della directory di backup",
	txtMaxEditRows: "Specifica il massimo numero di righe nelle finestre di modifica dei frammenti",
	txtFileSystemCharSet: "Set di caratteri di default per salvare le modifiche (solo Firefox/Mozilla)"});
	
merge(config.messages,{
	customConfigError: "Si sono verificati dei problemi nel caricare i plugin. Vedi PluginManager per i dettagli",
	pluginError: "Errore: %0",
	pluginDisabled: "Plugin non eseguito perchè disabilitato mediante l'etichetta 'systemConfigDisable' ",
	pluginForced: "Plugin eseguito perchè forzato mediante l'etichetta 'systemConfigForce' ",
	pluginVersionError: "Plugin non eseguito perchè richiede una versione più aggiornata di TiddlyWiki",
	nothingSelected: "Nessuna selezione. Devi selezionare prima uno o più elementi",
	savedSnapshotError: "Sembra che questo TiddlyWiki sia stato salvato scorrettamente. Per informazioni vai a http://www.tiddlywiki.com/#DownloadSoftware per ulteriori dettagli",
	subtitleUnknown: "(sconosciuto)",
	undefinedTiddlerToolTip: "Il frammento '%0' non esiste",
	shadowedTiddlerToolTip: "Il frammento '%0' non esiste, è un modello predefinito",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "Collegamento a %0",
	noTags: "Non ci sono frammenti del tipo",
	notFileUrlError: "Devi esportare questo TiddlyWiki in un file prima di poterlo salvare",
	cantSaveError: "Non si possono salvare le modifiche con questo browser. Possibili cause possono essere:\n- il tuo browser non supporta il salvataggio (Firefox, Internet Explorer, Safari e Opera, se opportunamente configurati, funzionano bene)\n- il path del tuo file TiddlyWiki contiene caratteri non consentiti\n- il file HTML di TiddlyWiki è stato spostato o rinominato",
	invalidFileError: "Il file originale '%0' non sembra di tipo TiddlyWiki",
	backupSaved: "Backup riuscito",
	backupFailed: "Salvataggio file di backup non riuscito",
	rssSaved: "RSS feed salvato come",
	rssFailed: "Salvataggio file RSS feed non riuscito",
	emptySaved: "Modello vuoto salvato",
	emptyFailed: "Salvataggio file modello vuoto non riuscito",
	mainSaved: "File TiddlyWiki primario salvato",
	mainFailed: "File TiddlyWiki principale non salvato. Le tue modifiche non sono state salvate",
	macroError: "Errore nella macro <<\%0>>",
	macroErrorDetails: "Errore in esecuzione della macro <<\%0>>:\n%1",
	missingMacro: "La macro non esiste",
	overwriteWarning: "Il frammento '%0' esiste già. OK per sostituirlo",
 unsavedChangesWarning: "ATTENZIONE! Non sono state ancora salvate le modifiche in TiddlyWiki\n\nOK per salvare\nANNULLA per annullarle",
 confirmExit: "--------------------------------\n\nCi sono delle modifiche non salvate in TiddlyWiki. Se continui perderai le modifiche\n\n--------------------------------",
 saveInstructions: "SaveChanges",
 unsupportedTWFormat: "Formato TiddlyWiki non supportato '%0'",
 tiddlerSaveError: "Errore nel salvataggio del frammento '%0'",
 tiddlerLoadError: "Errore nel caricamento del frammento '%0'",
 wrongSaveFormat: "Non è possibile salvare nel formato '%0'. Usa il formato standard per salvare",
 invalidFieldName: "Nome di campo invalido %0",
 fieldCannotBeChanged: "Campo '%0' non può essere modificato",
 loadingMissingTiddler: "Attempting to retrieve the tiddler '%0' from the '%1' server at:\n\n'%2' in the workspace '%3'",
 upgradeDone: "Aggiornamento alla versione %0 completato\n\nClicca 'OK' per ricaricare la versione aggiornata di TiddlyWiki"});
 
merge(config.messages.messageClose,{
	text: "Chiudi",
	tooltip: "Chiude l'area messaggi"});

config.messages.backstage = {
	open: {text: "Strumenti", tooltip: "Apre l'area strumenti per eseguire azioni di authoring e editing"},
	close: {text: "Chiudi", tooltip: "Chiude l'area strumenti"},
	prompt: "Strumenti: ",
	decal: {
		edit: {text: "Modifica", tooltip: "Modifica il frammento '%0'"}
	}
};

config.messages.listView = {
	tiddlerTooltip: "Clicca per visualizzare il contenuto (full text) di questo frammento",
	previewUnavailable: "(preview non disponibile)"
};

config.messages.dates.months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre","Dicembre"];
config.messages.dates.days = ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"];
config.messages.dates.shortMonths = ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"];
config.messages.dates.shortDays = ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"];
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["mo","do","zo","to","to","to","mo","vo","no","mo",
		"mo","mo","mo","mo","mo","mo","mo","mo","mo","mo",
		"mo","mo","mo","mo","mo","mo","mo","mo","mo","mo",
		"mo"];
config.messages.dates.am = "am";
config.messages.dates.pm = "pm";

merge(config.messages.tiddlerPopup,{
	});

merge(config.views.wikified.tag,{
	labelNoTags: "Nessuna categoria",
	labelTags: "Categorie: ",
	openTag: "Apri la categoria '%0'",
	tooltip: "Mostra frammenti del tipo '%0'",
	openAllText: "Apri tutti i tiddler di questa categoria",
	openAllTooltip: "Apri tutti",
	popupNone: "Non ci sono altri frammenti del tipo '%0'"});

merge(config.views.wikified,{
	defaultText: "Il frammento '%0' non esiste ancora. Doppio click per crearlo",
	defaultModifier: "(mancante)",
	shadowModifier: "(frammento nascosto incorporato)",
	dateFormat: "DD MMM YYYY", // use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
	createdPrompt: "creato"});

merge(config.views.editor,{
	tagPrompt: "Aggiungi le categorie separandole con uno spazio, [[se il titolo della categoria è più lungo di una parola mettilo tra due parentesi quadre]] o scegli tra quelle esistenti",
	defaultText: "Edita '%0'"});

merge(config.views.editor.tagChooser,{
	text: "Esistenti",
	tooltip: "Seleziona la categoria tra quelle già presenti",
	popupNone: "Non è definita nessuna categoria",
	tagTooltip: "Aggiungi la categoria '%0'"});

merge(config.messages,{
	sizeTemplates:
		[
		{unit: 1024*1024*1024, template: "%0\u00a0GB"},
		{unit: 1024*1024, template: "%0\u00a0MB"},
		{unit: 1024, template: "%0\u00a0KB"},
		{unit: 1, template: "%0\u00a0B"}
		]});

merge(config.macros.search,{
	label: "Trova",
	prompt: "Cerca in questo TiddlyWiki",
	accessKey: "F",
	successMsg: "%0 Trovati frammenti contenenti %1",
	failureMsg: "Nessun frammento contiene %0"});

merge(config.macros.tagging,{
	label: "Crea Categorie: ",
	labelNotTag: "Categoria:",
	tooltip: "Frammenti di tipo '%0'"});

merge(config.macros.timeline,{
	dateFormat: "DD MMM YYYY"});// use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D

merge(config.macros.allTags,{
	tooltip: "Mostra i frammenti del tipo '%0'",
	noTags: "Non ci sono frammenti categorizzati"});

config.macros.list.all.prompt = "Elenca tutti i frammenti in ordine alfabetico";
config.macros.list.missing.prompt = "Elenca i frammenti collegati tra loro ma non ancora definiti";
config.macros.list.orphans.prompt = "Elenca i frammenti non collegati";
config.macros.list.shadowed.prompt = "Elenca i frammenti nascosti contenenti le impostazioni del programma";
config.macros.list.touched.prompt = "Elenca i frammenti che sono stati modificati localmente";

merge(config.macros.closeAll,{
	label: "Chiudi tutti",
	prompt: "Chiude tutti i frammenti aperti (esclusi quelli in modifica)"});

merge(config.macros.permaview,{
	label: "Indirizzo di Pagina",
	prompt: "Indica sulla barra l'indirizzo della pagina e dei frammenti aperti"});

merge(config.macros.saveChanges,{
	label: "Salva modifiche",
	prompt: "Salva tutti i frammenti per creare un nuovo TiddlyWiki",
	accessKey: "S"});

merge(config.macros.newTiddler,{
	label: "Nuovo",
	prompt: "Crea un nuovo frammento",
	title: "Nuovo",
	accessKey: "N"});

merge(config.macros.newJournal,{
	label: "Oggi",
	prompt: "Crea un nuovo frammento con data e ora corrente",
	accessKey: "J"});

merge(config.macros.options,{
	wizardTitle: "Modifica le opzioni",
	step1Title: "Queste opzioni sono salvate nei cookies del tuo browser",
	step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Mostra le opzioni sconosciute</input>",
	unknownDescription: "//(sconosciuta)//",
	listViewTemplate: {
		columns: [
			{name: 'Option', field: 'option', title: "Opzione", type: 'String'},
			{name: 'Description', field: 'description', title: "Descrizione", type: 'WikiText'},
			{name: 'Name', field: 'name', title: "Nome", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
	});

merge(config.macros.plugins,{
	wizardTitle: "Gestione plugin",
	step1Title: "Plugin attualmente installati",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
  skippedText: "(Questo plugin non è stato eseguito perchè è stato caricato dopo l'avvio di TiddlyWiki)",
	noPluginText: "Non ci sono plugin installati",
	confirmDeleteText: "Sei sicuro di voler cancellare questo/i plugin?:\n\n%0",
	removeLabel: "Rimuovi l'etichetta systemConfig",
	removePrompt: "Rimuovi l'etichetta systemConfig",
	deleteLabel: "Cancella",
	deletePrompt: "Cancella definitivamente questi frammenti",
  listViewTemplate : {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Size", type: 'Size'},
      {name: 'Forced', field: 'forced', title: "Forced", tag: 'systemConfigForce', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "Disabled", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "Loaded", type: 'Boolean', trueText: "Yes", falseText: "No"},
			{name: 'Startup Time', field: 'startupTime', title: "Startup Time", type: 'String'},
      {name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Error", falseText: "OK"},
			{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
			],
		rowClasses: [
    {className: 'error', field: 'error'},
    {className: 'warning', field: 'warning'}
    ]}
 });

merge(config.macros.toolbar,{
	moreLabel: "Altro",
	morePrompt: "Mostra altri comandi"
	});
	
merge(config.macros.refreshDisplay,{
	label: "Rinnova",
	prompt: "Rinnova l'intero display di TiddlyWiki"
	});

merge(config.macros.importTiddlers,{
	readOnlyWarning: "Non puoi importare frammenti in un TiddlyWiki aperto in sola lettura. Prova ad aprirlo da file:// URL",
	wizardTitle: "Importa frammenti da altri file o server",
	step1Title: "Passo 1: Individua il server o il file TiddlyWiki",
	step1Html: "Specifica il tipo di server: <select name='selTypes'><option value=''>Scegli...</option></select><br>Digita l'URL o il percorso qui: <input type='text' size=50 name='txtPath'><br>...o esplora per un file: <input type='file' size=50 name='txtBrowse'><br><hr>...o seleziona un feed predefinito: <select name='selFeeds'><option value=''>Scegli...</option></select>",
	openLabel: "Apri",
	openPrompt: "Apri la connessione per questo file o server",
	openError: "Si sono verificati problemi nel prelevare il file TiddlyWiki",
	statusOpenHost: "Apro l'host",
	statusGetWorkspaceList: "Ottengo la lista dei workspace disponibili",
	step2Title: "Passo 2: Scegli il workspace",
	step2Html: "Digita il nome di un workspace: <input type='text' size=50 name='txtWorkspace'><br>...o seleziona un workspace: <select name='selWorkspace'><option value=''>Scegli...</option></select>",
	cancelLabel: "Cancella",
	cancelPrompt: "Cancella l'importazione",
	statusOpenWorkspace: "Apro il workspace",
	statusGetTiddlerList: "Ottengo la lista dei frammenti disponibili",
	errorGettingTiddlerList: "Errore nel prelevare la lista dei frammenti, clicca Cancel per provare ancora",
	step3Title: "Passo 3: Scegli il/i frammento/i da importare",
	step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Mantieni questi frammenti collegati a questo server in modo da poterli sincronizzare per successive modifiche</input><br><input type='checkbox' name='chkSave'>Salva i dettagli di questo server in un frammento 'systemServer' con il nome:</input> <input type='text' size=25 name='txtSaveTiddler'>",
	importLabel: "Importa",
	importPrompt: "Importa questi frammenti",
	confirmOverwriteText: "Sei sicuro di voler sovrascrivere questi frammenti:\n\n%0",
	step4Title: "Passo 4: Importato/i %0 frammento/i",
	step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
	doneLabel: "Fatto",
	donePrompt: "Chiudi questo wizard",
	statusDoingImport: "Importo i frammenti",
	statusDoneImport: "Tutti i frammenti importati",
	systemServerNamePattern: "%2 on %1",
	systemServerNamePatternNoWorkspace: "%1",
	confirmOverwriteSaveTiddler: "Il frammento '%0' già esiste. Clicca su 'OK' per sovrascriverlo o 'Cancel' per lasciarlo inalterato",
	serverSaveTemplate: "|''Type:''|%0|\n|''URL:''|%1|\n|''Workspace:''|%2|\n\nQuesto frammento è stato creato automaticamente per memorizzare i dettagli di questo server",
	serverSaveModifier: "(System)",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Frammento", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Dimensioni", type: 'Size'},
			{name: 'Tags', field: 'tags', title: "Categorie", type: 'Tags'}
			],
		rowClasses: [
			]}
	});

merge(config.macros.upgrade,{
	wizardTitle: "Aggiorna il codice base di TiddlyWiki",
	step1Title: "Aggiorna o ripara questo TiddlyWiki all'ultima versione",
	step1Html: "Stai per aggiornare all'ultima versione del codice base di TiddlyWiki (da <a href='%0' class='externalLink' target='_blank'>%1</a>). Il contenuto del tuo TiddlyWiki viene preservato nel processo di aggiornamento.<br><br>Tieni presente che l'aggiornamento del codice base può interferire con vecchi plugins. Se si verificano problemi con il file aggiornato, consulta <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
	errorCantUpgrade: "Impossibile aggiornare questo TiddlyWiki. E' possibile aggiornare solo TiddlyWiki memorizzati in locale",
	errorNotSaved: "Devi salvare le modifiche prima di realizzare l'aggiornamento",
	step2Title: "Conferma i dettagli dell'aggiornamento",
	step2Html_downgrade: "Stai per realizzare un downgrade di TiddlyWiki alla versione %0 dalla %1.<br><br>Non è consigliato il downgrade del codice base ad una vecchia versione",
	step2Html_restore: "Questo TiddlyWiki utilizza già l'ultima versione del codice base (%0).<br><br>Puoi comunque continuare l'aggiornamento per assicurarti che il codice base non sia stato corrotto o danneggiato",
	step2Html_upgrade: "Stai per aggiornare TiddlyWiki alla versione %0 dalla %1",
	upgradeLabel: "Aggiorna",
	upgradePrompt: "Preparazione del processo di aggiornamento",
	statusPreparingBackup: "Preparazione backup",
	statusSavingBackup: "Salvataggio del file di backup",
	errorSavingBackup: "Si è verificato un problema nel salvataggio del file di backup",
	statusLoadingCore: "Caricamento del codice base",
	errorLoadingCore: "Errore nel caricamento del codice base",
	errorCoreFormat: "Errore con il nuovo codice base",
	statusSavingCore: "Salvataggio del nuovo codice base",
	statusReloadingCore: "Ricarico il nuovo codice base",
	startLabel: "Inizia",
	startPrompt: "Inizia l'aggiornamento",
	cancelLabel: "Cancella",
	cancelPrompt: "Cancella l'aggiornamento",
	step3Title: "Aggiornamento cancellato",
	step3Html: "Hai cancellato il processo di aggiornamento"
	});

merge(config.macros.sync,{
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Frammento", type: 'Tiddler'},
			{name: 'Server Type', field: 'serverType', title: "Tipo server", type: 'String'},
			{name: 'Server Host', field: 'serverHost', title: "Host server", type: 'String'},
			{name: 'Server Workspace', field: 'serverWorkspace', title: "Server workspace", type: 'String'},
			{name: 'Status', field: 'status', title: "Stato sincronizzazione", type: 'String'},
			{name: 'Server URL', field: 'serverUrl', title: "Server URL", text: "Visualizza", type: 'Link'}
			],
		rowClasses: [
			],
		buttons: [
			{caption: "Sincronizza questi frammenti", name: 'sync'}
			]},
	wizardTitle: "Sincronizza con file o server esterni",
	step1Title: "Scegli il frammento da sincronizzare",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	syncLabel: "Sincronizza",
	syncPrompt: "Sincronizza questi frammenti",
	hasChanged: "Modificato in locale",
	hasNotChanged: "Non modificato in locale",
	syncStatusList: {
		none: {text: "...", color: "none"},
		changedServer: {text: "Modificato sul server", color: '#80ff80'},
		changedLocally: {text: "Modificato in locale", color: '#80ff80'},
		changedBoth: {text: "Modificato in locale e sul server", color: '#ff8080'},
		notFound: {text: "Non trovato sul server", color: '#ffff80'},
		putToServer: {text: "Modifiche salvate sul server", color: '#ff80ff'},
		gotFromServer: {text: "Recupero aggiornamenti dal server", color: '#80ffff'}
		}
	});

merge(config.commands.closeTiddler,{
	text: "Chiudi",
	tooltip: "Chiude questo frammento"});

merge(config.commands.closeOthers,{
	text: "Chiude altri",
	tooltip: "Chiude tutti gli altri frammenti"});

merge(config.commands.editTiddler,{
	text: "Modifica",
	tooltip: "Edita il frammento",
	readOnlyText: "Visualizza",
	readOnlyTooltip: "Visualizza il contenuto di questo frammento"});

merge(config.commands.saveTiddler,{
	text: "Salva",
	tooltip: "Salva le modifiche"});

merge(config.commands.cancelTiddler,{
	text: "Annulla",
	tooltip: "Annulla le modifiche",
	warning: "Sei sicuro di voler annullare le modifiche a '%0'?",
	readOnlyText: "Chiudi",
	readOnlyTooltip: "Visualizza il frammento nel modo usuale"});

merge(config.commands.deleteTiddler,{
	text: "Elimina",
	tooltip: "Elimina questo frammento",
	warning: "Sei sicuro di voler eliminare '%0'?"});

merge(config.commands.permalink,{
	text: "Indirizzo",
	tooltip: "Indica sulla barra l'indirizzo di questo frammento"});

merge(config.commands.references,{
	text: "Collegati",
	tooltip: "Elenca i frammenti che puntano qui",
	popupNone: "Nessun frammento punta qui"});

merge(config.commands.jump,{
	text: "Vai a",
	tooltip: "Vai ad un altro frammento aperto"});

merge(config.commands.syncing,{
	text: "Sincronizzazione",
	tooltip: "Controlla la sincronizzazione di questo frammento con un file o un server esterno",
	currentlySyncing: "<div>Attualmente sincronizzato attraverso <span class='popupHighlight'>'%0'</span> to:</"+"div><div>host: <span class='popupHighlight'>%1</span></"+"div><div>workspace: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
	notCurrentlySyncing: "Non sincronizzato",
	captionUnSync: "Ferma la sincronizzazione di questo frammento",
	chooseServer: "Sincronizza questo frammento con un altro server:",
	currServerMarker: "\u25cf ",
	notCurrServerMarker: "  "});

merge(config.commands.fields,{
	text: "Campi",
	tooltip: "Mostra i campi estesi di questo frammento",
	emptyText: "Non esistono campi estesi per questo frammento",
	listViewTemplate: {
		columns: [
			{name: 'Field', field: 'field', title: "Field", type: 'String'},
			{name: 'Value', field: 'value', title: "Value", type: 'String'}
			],
		rowClasses: [
			],
		buttons: [
			]}});
			
merge(config.shadowTiddlers,{
	DefaultTiddlers: "[[TranslatedGettingStarted]]",
	MainMenu: "[[TranslatedGettingStarted]]\n\n\n^^~TiddlyWiki versione <<version>>\n© 2007 [[UnaMesa|http://www.unamesa.org/]]^^",
	TranslatedGettingStarted: "Per iniziare ad usare questo documento vuoto, comincia ad editare i seguenti frammenti:\n* SiteTitle & SiteSubtitle: Il titolo ed il sottotitolo del sito (dopo il salvataggio saranno anche visibili nella barra del browser)\n* MainMenu: Il menu principale di ~TiddliWiki\n* DefaultTiddlers: Inserisci i frammenti che desideri compaiano all'apertura di questo ~TiddlyWiki\nInserisci anche un nome utente che ti permetterà di firmare le tue modifiche (usa un formato di parola Wiki es. ~MarioRossi): <<option txtUserName>>",
	SiteTitle: "Il mio ~TiddlyWiki",
	SiteSubtitle: "Un programma non lineare per scrivere web",
	SiteUrl: "http://www.tiddlywiki.com/",
	OptionsPanel: "Queste opzioni sono utilizzate per personalizzare il tuo ~TiddlyWiki e vengono salvate nel browser.\n\nDigita un nome utente per firmare le tue modifiche. Usa un formato di parola Wiki (es. ~MarioRossi)\n<<option txtUserName>>\n\n<<option chkSaveBackups>> Salva backups\n<<option chkAutoSave>> Salvataggio automatico\n<<option chkRegExpSearch>> Ricerca estesa\n<<option chkCaseSensitiveSearch>> Considera caratteri nella ricerca\n<<option chkAnimate>> Abilita animazioni\n\n----\nVedi anche [[Opzioni avanzate|AdvancedOptions]]",
	SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "Opzioni »" "Modifica le opzioni di TiddlyWiki">>',
	SideBarTabs: '<<tabs txtMainTab "Data" "Elenca i frammenti cronologicamente" TabTimeline "Tutti" "Tutti i frammenti in ordine alfabetico" TabAll "Categorie" "Elenca i frammenti per tipo" TabTags "Altro" "Altri elenchi" TabMore>>',
	TabMore: '<<tabs txtMoreTab "Mancanti" "Frammenti non ancora editati" TabMoreMissing "Orfani" "Frammenti non collegati tra loro" TabMoreOrphans "Nascosti" "Frammenti nascosti" TabMoreShadowed>>'});
 
merge(config.annotations,{
	AdvancedOptions: "Questo frammento nascosto permette l'accesso alle opzioni avanzate di TiddlyWiki",
	ColorPalette: "I valori presenti in questo frammento nascosto determinano lo schema dei colori dell'interfaccia utente di TiddlyWiki",
	DefaultTiddlers: "I frammenti elencati in questo frammento nascosto saranno automaticamente visualizzati quando viene avviato TiddlyWiki",
	EditTemplate: "Il template HTML contenuto in questo frammento nascosto determina come vengono visualizzati i frammenti quando sono editati",
	GettingStarted: "Questo frammento nascosto fornisce le istruzioni d'uso di base",
	ImportTiddlers: "Questo frammento nascosto fornisce accesso alla funzione di importazione frammenti",
	MainMenu: "Questo frammento nascosto definisce il contenuto del menu principale di TiddlyWiki visualizzato nella colonna di sinistra",
	MarkupPreHead: "Questo frammento è inserito nel top della sezione <head> del file HTML di TiddlyWiki",
	MarkupPostHead: "Questo frammento è inserito nel bottom della sezione <head> del file HTML di TiddlyWiki",
	MarkupPreBody: "Questo frammento è inserito nel top della sezione <body> del file HTML di TiddlyWiki",
	MarkupPostBody: "Questo frammento è inserito alla fine della sezione <body> del file HTML di TiddlyWiki immediatamente prima del blocco script",
	OptionsPanel: "Questo frammento nascosto definisce il contenuto del pannello opzioni visualizzato nella sidebar",
	PageTemplate: "Il template HTML contenuto in questo frammento nascosto determina il layout complessivo di TiddlyWiki",
	PluginManager: "Questo frammento nascosto fornisce accesso al gestore plugin",
	SideBarOptions: "Questo frammento nascosto definisce il contenuto della sidebar",
	SideBarTabs: "Questo frammento nascosto è usato per i contenuti dei tabs della sidebar",
	SiteSubtitle: "Questo frammento nascosto definisce la seconda parte del titolo della pagina",
	SiteTitle: "Questo frammento nascosto definisce la prima parte del titolo della pagina",
	SiteUrl: "Questo frammento nascosto dovrebbe essere personalizzato con l'URL completo utilizzato per pubblicare il sito",
	StyleSheetColours: "Questo frammento nascosto contiene le definizioni CSS relative al colore degli elementi di pagina",
	StyleSheet: "Questo frammento nascosto può contenere le definizioni CSS personalizzate",
	StyleSheetLayout: "Questo frammento nascosto contiene le definizioni CSS relative al layout degli elementi di pagina",
	StyleSheetLocale: "Questo frammento nascosto contiene le definizioni CSS relative alla traduzione locale",
	StyleSheetPrint: "Questo frammento nascosto contiene le definizioni CSS per la stampa",
	TabAll: "Questo frammento nascosto definisce i contenuti del tab 'Tutti' della sidebar",
	TabMore: "Questo frammento nascosto definisce i contenuti del tab 'Altro' della sidebar",
	TabMoreMissing: "Questo frammento nascosto definisce i contenuti del tab 'Mancanti' della sidebar",
	TabMoreOrphans: "Questo frammento nascosto definisce i contenuti del tab 'Orfani' della sidebar",
	TabMoreShadowed: "Questo frammento nascosto definisce i contenuti del tab 'Nascosti' della sidebar",
	TabTags: "Questo frammento nascosto definisce i contenuti del tab 'Categorie' della sidebar",
	TabTimeline: "Questo frammento nascosto definisce i contenuti del tab 'Data' della sidebar",
	ToolbarCommands: "Questo frammento nascosto definisce quali comandi sono visualizzati nella tiddler toolbar",
	ViewTemplate: "Il template HTML contenuto in questo frammento nascosto determina l'aspetto dei frammenti"
	});
	
}}}
<script show>
var xmlhttp,alerted,xx


try {
	var xmlhttp = new XMLHttpRequest(); // Modern
} catch(ex) {
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); // IE 6
	} catch (ex2) {
		xmlhttp = null;
	}
}

displayMessage("xmlhttp ok");


if (xmlhttp) { 
displayMessage("xmlhttp open");
  xmlhttp.open("HEAD", "http://digilander.libero.it/tizzziano/index.html",true);
displayMessage("xmlhttp onready");
  xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState==4) {
                xx=xmlhttp.responseText
               displayMessage("test:"+xx);
                }
         }

displayMessage("xmlhttp send");
  //xmlhttp.send(null)
displayMessage("xmlhttp fine");

// if (xmlhttp.readyState==4) {
//  displayMessage("test:"+xx);
//  return "test: "+xx
// }
  return "test: "+xx
}

</script>
/***
|''Name:''|FieldsEditorPlugin|
|''Description:''|//create//, //edit//, //view// and //delete// commands in toolbar <<toolbar fields>>.|
|''Version:''|1.0.2|
|''Date:''|Dec 21,2007|
|''Source:''|http://visualtw.ouvaton.org/VisualTW.html|
|''Author:''|Pascal Collin|
|''License:''|[[BSD open source license|License]]|
|''~CoreVersion:''|2.2.0|
|''Browser:''|Firefox 2.0; InternetExplorer 6.0, others|
!Demo:
On [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], see [[FieldEditor example]]
!Installation:
*import this tiddler from [[homepage|http://visualtw.ouvaton.org/VisualTW.html]] (tagged as systemConfig)
*save and reload
*optionnaly : add the following css text in your StyleSheet : {{{#popup tr.fieldTableRow td {padding:1px 3px 1px 3px;}}}}
!Code
***/

//{{{

config.commands.fields.handlePopup = function(popup,title) {
	var tiddler = store.fetchTiddler(title);
	if(!tiddler)
		return;
	var fields = {};
	store.forEachField(tiddler,function(tiddler,fieldName,value) {fields[fieldName] = value;},true);
	var items = [];
	for(var t in fields) {
		var editCommand = "<<untiddledCall editFieldDialog "+escape(title)+" "+escape(t)+">>";
		var deleteCommand = "<<untiddledCall deleteField "+escape(title)+" "+escape(t)+">>";
		var renameCommand = "<<untiddledCall renameField "+escape(title)+" "+escape(t)+">>";
		items.push({field: t,value: fields[t], actions: editCommand+renameCommand+deleteCommand});
	}
	items.sort(function(a,b) {return a.field < b.field ? -1 : (a.field == b.field ? 0 : +1);});
	var createNewCommand = "<<untiddledCall createField "+escape(title)+">>";
	items.push({field : "", value : "", actions:createNewCommand });
	if(items.length > 0)
		ListView.create(popup,items,this.listViewTemplate);
	else
		createTiddlyElement(popup,"div",null,null,this.emptyText);
}

config.commands.fields.listViewTemplate = {
	columns: [
		{name: 'Field', field: 'field', title: "Field", type: 'String'},
		{name: 'Actions', field: 'actions', title: "Actions", type: 'WikiText'},
		{name: 'Value', field: 'value', title: "Value", type: 'WikiText'}
	],
	rowClasses: [
			{className: 'fieldTableRow', field: 'actions'}
	],
	buttons: [	//can't use button for selected then delete, because click on checkbox will hide the popup
	]
}

config.macros.untiddledCall = {  // when called from listview, tiddler is unset, so we need to pass tiddler as parameter
	handler : function(place,macroName,params,wikifier,paramString) {
		var macroName = params.shift();
		if (macroName) var macro = config.macros[macroName];
		var title = params.shift();
		if (title) var tiddler = store.getTiddler(unescape(title));
		if (macro) macro.handler(place,macroName,params,wikifier,paramString,tiddler);		
	}
}

config.macros.deleteField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"delete", "delete "+fieldName,this.onClickDeleteField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickDeleteField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName && confirm("delete field " + fieldName+" from " + title +" tiddler ?")) {
			delete tiddler.fields[fieldName];
			store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
			story.refreshTiddler(title,"ViewTemplate",true);
		}
		return false;
	}
}

config.macros.createField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly) {
			var btn = createTiddlyButton(place,"create new", "create a new field",this.onClickCreateField);
			btn.setAttribute("title",tiddler.title);
		}
	},
	onClickCreateField : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		if (tiddler) {
			var fieldName = prompt("Field name","");
			if (store.getValue(tiddler,fieldName)) {
				window.alert("This field already exists.");
			}
			else if (fieldName) {
				var v = prompt("Field value","");
				tiddler.fields[fieldName]=v;
				store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.editFieldDialog = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"edit", "edit this field",this.onClickEditFieldDialog);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickEditFieldDialog : function() {
		var title=this.getAttribute("title");
		var tiddler = store.getTiddler(title);
		var fieldName=this.getAttribute("fieldName");
		if (tiddler && fieldName) {
			var value = tiddler.fields[fieldName];
			value = value ? value : "";
			var lines = value.match(/\n/mg);
			lines = lines ? true : false;
			if (!lines || confirm("This field contains more than one line. Only the first line will be kept if you edit it here. Proceed ?")) {
				var v = prompt("Field value",value);
				tiddler.fields[fieldName]=v;
				store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.macros.renameField = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		if(!readOnly && params[0]) {
			fieldName = unescape(params[0]);
			var btn = createTiddlyButton(place,"rename", "rename "+fieldName,this.onClickRenameField);
			btn.setAttribute("title",tiddler.title);
			btn.setAttribute("fieldName", fieldName);
		}
	},
	onClickRenameField : function() {
		var title=this.getAttribute("title");
		var fieldName=this.getAttribute("fieldName");
		var tiddler = store.getTiddler(title);
		if (tiddler && fieldName) {
			var newName = prompt("Rename " + fieldName + " as ?", fieldName);
			if (newName) {
				tiddler.fields[newName]=tiddler.fields[fieldName];
				delete tiddler.fields[fieldName];
				store.saveTiddler(tiddler.title,tiddler.title,tiddler.text,tiddler.modifier,tiddler.modified,tiddler.tags,tiddler.fields);
				story.refreshTiddler(title,"ViewTemplate",true);
			}
		}
		return false;
	}
}

config.shadowTiddlers.StyleSheetFieldsEditor = "/*{{{*/\n";
config.shadowTiddlers.StyleSheetFieldsEditor += ".fieldTableRow td {padding : 1px 3px}\n";
config.shadowTiddlers.StyleSheetFieldsEditor += ".fieldTableRow .button {border:0; padding : 0 0.2em}\n";
config.shadowTiddlers.StyleSheetFieldsEditor +="/*}}}*/";
store.addNotification("StyleSheetFieldsEditor", refreshStyles);

//}}}