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

#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; 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 use a logographic writing system and 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;}

.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@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 closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></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 +saveTiddler -cancelTiddler deleteTiddler'></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'></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
* [[Puré de calabaza]]
* Filetes de vacuno con setas fritas en ajo (de: [[austernpilze]]).
Cena con Fabien, Béatrice, Noah, Onur, Ozgë.

[[pimientos del piquillo]]
[[escalibada]]
[[bacalhau com natas]]
[[piña]]
[[helado]]
[[moscatel de pasas]]
/***
| Name|CloseOnCancelPlugin|
| Description|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|
| Version|3.0 ($Rev: 1845 $)|
| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.commands.cancelTiddler,{

	handler_orig_closeUnsaved: config.commands.cancelTiddler.handler,

	handler: function(event,src,title) {
		this.handler_orig_closeUnsaved(event,src,title);
		if (!store.tiddlerExists(title) && !store.isShadowTiddler(title))
			story.closeTiddler(title,true);
	 	return false;
	}

});

//}}}

//{{{
config.options.chkHttpReadOnly = false; // means web visitors can experiment with your site by clicking edit
config.options.chkInsertTabs = true;    // tab inserts a tab when editing a tiddler
config.views.wikified.defaultText = ""; // don't need message when a tiddler doesn't exist
config.views.editor.defaultText = "";   // don't need message when creating a new tiddler 
//}}}
[[receta]]
[[MptwEditTemplate]]
/***
| Name:|ExtentTagButtonPlugin|
| Description:|Adds a New tiddler button in the tag drop down|
| Version:|3.2 ($Rev: 2406 $)|
| Date:|$Date: 2007-08-08 22:50:23 +1000 (Wed, 08 Aug 2007) $|
| Source:|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{

window.onClickTag_mptw_orig = window.onClickTag;
window.onClickTag = function(e) {
	window.onClickTag_mptw_orig.apply(this,arguments);
	var tag = this.getAttribute("tag");
	var title = this.getAttribute("tiddler");
	// Saq, you're a genius :)
	var popup = Popup.stack[Popup.stack.length-1].popup;
	createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
	wikify("<<newTiddler label:'New tiddler' tag:'"+tag+"'>>",createTiddlyElement(popup,"li"));
	return false;
}

//}}}

/***
| Name|HideWhenPlugin|
| Description|Allows conditional inclusion/exclusion in templates|
| Version|3.0 ($Rev: 1845 $)|
| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| 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.removeElementWhen = function(test,place) {
	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);
	}}

});

//}}}

!!Ingredientes:
Membrillos y azúcar
!!Procedimiento
* Si previamente se ha hecho carne de membrillo, ya disponemos del agua de cocción. Si no, cocer los membrillos del mismo modo señalado en la receta aludida.
* Medir el agua de cocción y tamizarla de modo que quede sin ningún residuo sólido (hacerla pasar por un colador con una telita o mucho mejor, si se dispone, por una manga de las de colar café).
* Añadir al agua 1/2 de su medida en gramos de azúcar (con 1,5 l. de agua y 750 g. de azúcar se obtienen unos 3 frascos de 375 g. de jalea).
* Llevar lentamente a ebullición y mantenerla al menos durante una hora (será más bien hora y media, pero depende de la intensidad del fuego y de la cantidad de líquido). Debe hervir de manera suavemente animosa, (termostato 5 o 6 sobre 10).
* Es importante desespumar cuidadosamente dos veces, una al cuarto de hora de empezar la ebullición y otra unos 10 minutos antes de terminar. Entre estas dos operaciones podemos desentendernos relativamente del proceso, no hace falta dar vueltas.
* Cuidado a partir de los 60 minutos, hay estar pendiente de cómo va tomando cuerpo: se percibe al introducir la cuchara y se deben ir haciendo pruebas en un plato con gotitas que al enfriarse adquieren consistencia y no se deforman al inclinarlo. Existe, llegados a este punto un peligro, la cristalización. Así que ojo.
* Cuando ya está se pone en los frascos de cristal, eliminando culquier burbujita que pueda quedar por encima, y se deja enfriar en lugar fresco y seco y al abrigo del polvo. Una vez fría (y cuajada), se tapa.

Nota: Los frascos para la conserva deben hervirse en la olla exprés durante 5 minutos y ponerse a escurrir boca abajo sobre un paño limpio. Antes de tapar la jalea (se puede dejar varios días) con su tapa puede cubrirse ésta con un disco de papel mojado con alcohol. Así puede durar ¡varios años!
/***
| Name|LessBackupsPlugin|
| Description|Intelligently limit the number of backup files you create|
| Version|3.0 ($Rev: 2320 $)|
| Date|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
| Source|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
| Author|Simon Baird|
| Email|simon.baird@gmail.com|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!!Description
You end up with just backup one per year, per month, per weekday, per hour, minute, and second.  So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array

!!!Notes
Works in IE and Firefox only.  Algorithm by Daniel Baird. IE code by by Saq Imtiaz.
!!!Code
***/
//{{{
window.getSpecialBackupPath = function(backupPath) {

	var MINS  = 60 * 1000;
	var HOURS = 60 * MINS;
	var DAYS  = 24 * HOURS;

	// comment out the ones you don't want
	var modes = [
		["YYYY",  365*DAYS], // one per year for ever
		["MMM",   31*DAYS],  // one per month
		["ddd",   7*DAYS],   // one per weekday
		//["d0DD",  1*DAYS],   // one per day of month
		["h0hh",  24*HOURS], // one per hour
		["m0mm",  1*HOURS],  // one per minute
		["s0ss",  1*MINS],   // one per second
		["latest",0]         // always keep last version. (leave this).
	];

	var now = new Date();

	for (var i=0;i<modes.length;i++) {

		// the filename we will try
		var specialBackupPath = backupPath.replace(/(\.)([0-9]+\.[0-9]+)(\.html)$/,
						'$1'+now.formatString(modes[i][0]).toLowerCase()+'$3')

		// open the file

		try {
			if (config.browser.isIE) {
				var fsobject = new ActiveXObject("Scripting.FileSystemObject")
				var fileExists  = fsobject.FileExists(specialBackupPath);
				if (fileExists) {
					var fileObject = fsobject.GetFile(specialBackupPath);
					var modDate = new Date(fileObject.DateLastModified).valueOf();
				}
			}
			else {
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
				var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
				file.initWithPath(specialBackupPath);
				var fileExists = file.exists();
				if (fileExists) {
					var modDate = file.lastModifiedTime;
				}
			}
		}
		catch(e) {
			// give up
			return backupPath;
		}

		// expiry is used to tell if it's an 'old' one. Eg, if the month is June and there is a
		// June file on disk that's more than an month old then it must be stale so overwrite
		// note that "latest" should be always because the expiration period is zero (see above)
		var expiry = new Date(modDate + modes[i][1]);
		if (!fileExists || now > expiry)
			return specialBackupPath;
	}
}

// hijack the core function
window.getBackupPath_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
	return getSpecialBackupPath(getBackupPath_orig(localPath));
}

//}}}

[[receta]] [[ingrediente]] [[utensilio]] [[proceso]]
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
[[MonkeyPirateTiddlyWiki|http://mptw.tiddlyspot.com]] is a distribution of [[TiddlyWiki|http://www.tiddlywiki.com/]] created by Simon Baird. See [[the web site|http://mptw.tiddlyspot.com/]] for more information.
!!Upgrading ~MonkeyPirateTiddlyWiki
This "empty" ~MonkeyPirateTiddlyWiki file comes pre-installed with the core ~MonkeyPirateTiddlyWiki plugins. You can upgrade these core plugins to the latest version by doing the following:
* Click ImportTiddlers
* Click "Choose..." and select "~MptwUpgradeURL"
* Click "fetch"
* Click the checkbox in the first column heading to select all tiddlers
* Click "More actions..." and select "Import these tiddlers"
* Click "OK" to confirm you want to overwrite the tiddlers
* Save and reload
/***
| Name|MptwLayoutPlugin|
| Description|A package containing templates and css for the MonkeyPirateTiddlyWiki layout|
| Version|3.0 ($Rev: 1845 $)|
| Source|http://mptw.tiddlyspot.com/#MptwLayoutPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
Presumes you have TagglyTaggingPlugin installed. To enable this you should have a PageTemplate containing {{{[[MptwPageTemplate]]}}} and similar for ViewTemplate and EditTemplate.
***/
//{{{
// used in MptwViewTemplate
config.mptwDateFormat = 'DD/MM/YY';
config.mptwJournalFormat = 'Journal DD/MM/YY';
//config.mptwDateFormat = 'MM/0DD/YY';
//config.mptwJournalFormat = 'Journal MM/0DD/YY';

config.shadowTiddlers.GettingStarted += "\n\nSee also MonkeyPirateTiddlyWiki.";

//}}}

//{{{
merge(config.shadowTiddlers,{

'MptwEditTemplate':[
 "<!--{{{-->",
 "<!--- http://mptw.tiddlyspot.com/#MptwEditTemplate ($Rev: 1829 $) --->",
 "<div class=\"toolbar\" macro=\"toolbar +saveTiddler saveCloseTiddler closeOthers -cancelTiddler cancelCloseTiddler deleteTiddler\"></div>",
 "<div class=\"title\" macro=\"view title\"></div>",
 "<div class=\"editLabel\">Title</div><div class=\"editor\" macro=\"edit title\"></div>",
 "<div class=\"editLabel\">Tags</div><div class=\"editor\" macro=\"edit tags\"></div>",
 "<div class=\"editorFooter\"><span macro=\"message views.editor.tagPrompt\"></span><span macro=\"tagChooser\"></span></div>",
 "<div macro=\"showWhenExists EditPanelTemplate\">[[EditPanelTemplate]]</div>",
 "<div class=\"editor\" macro=\"edit text\"></div>",
 "<!--}}}-->"
].join("\n"),

'MptwPageTemplate':[
 "<!--{{{-->",
 "<!-- http://mptw.tiddlyspot.com/#MptwPageTemplate ($Rev: 1829 $) -->",
 "<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>",
 "<!-- horizontal MainMenu -->",
 "<div id='topMenu' refresh='content' tiddler='MainMenu'></div>",
 "<!-- original MainMenu menu -->",
 "<!-- <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>",
 "<!--}}}-->"
].join("\n"),

'MptwStyleSheet':[
 "/*{{{*/",
 "/* http://mptw.tiddlyspot.com/#MptwStyleSheet ($Rev: 2246 $) */",
 "",
 "/* a contrasting background so I can see where one tiddler ends and the other begins */",
 "body {",
 "	background: [[ColorPalette::TertiaryLight]];",
 "}",
 "",
 "/* sexy colours and font for the header */",
 ".headerForeground {",
 "	color: [[ColorPalette::PrimaryPale]];",
 "}",
 ".headerShadow, .headerShadow a {",
 "	color: [[ColorPalette::PrimaryMid]];",
 "}",
 "",
 "/* separate the top menu parts */",
 ".headerForeground, .headerShadow {",
 "	padding: 1em 1em 0;",
 "}",
 "",
 ".headerForeground, .headerShadow {",
 "	font-family: 'Trebuchet MS' sans-serif;",
 "	font-weight:bold;",
 "}",
 ".headerForeground .siteSubtitle {",
 "	color: [[ColorPalette::PrimaryLight]];",
 "}",
 ".headerShadow .siteSubtitle {",
 "	color: [[ColorPalette::PrimaryMid]];",
 "}",
 "",
 "/* make shadow go and down right instead of up and left */",
 ".headerShadow {",
 "	left: 1px;",
 "	top: 1px;",
 "}",
 "",
 "/* prefer monospace for editing */",
 ".editor textarea {",
 "	font-family: 'Consolas' monospace;",
 "}",
 "",
 "/* sexy tiddler titles */",
 ".title {",
 "	font-size: 250%;",
 "	color: [[ColorPalette::PrimaryLight]];",
 "	font-family: 'Trebuchet MS' sans-serif;",
 "}",
 "",
 "/* more subtle tiddler subtitle */",
 ".subtitle {",
 "	padding:0px;",
 "	margin:0px;",
 "	padding-left:0.5em;",
 "	font-size: 90%;",
 "	color: [[ColorPalette::TertiaryMid]];",
 "}",
 ".subtitle .tiddlyLink {",
 "	color: [[ColorPalette::TertiaryMid]];",
 "}",
 "",
 "/* a little bit of extra whitespace */",
 ".viewer {",
 "font-family: 'Trebuchet MS' sans-serif;", 
 "	padding-bottom:3px;",
 "}",
 "",
 "/* don't want any background color for headings */",
 "h1,h2,h3,h4,h5,h6 {",
 "	background: [[ColorPalette::Background]];",
 "	color: [[ColorPalette::Foreground]];",
 "}",
 "",
 "/* give tiddlers 3d style border and explicit background */",
 ".tiddler {",
 "	background: [[ColorPalette::Background]];",
 "	border-right: 2px [[ColorPalette::TertiaryMid]] solid;",
 "	border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;",
 "	margin-bottom: 1em;",
 "	padding-bottom: 1em;",
 "	padding-top: 0.75em;",
 "}",
 "",
 "/* make options slider look nicer */",
 "#sidebarOptions .sliderPanel {",
 "	border:solid 1px [[ColorPalette::PrimaryLight]];",
 "}",
 "",
 "/* the borders look wrong with the body background */",
 "#sidebar .button {",
 "	border-style: none;",
 "}",
 "",
 "/* this means you can put line breaks in SidebarOptions for readability */",
 "#sidebarOptions br {",
 "	display:none;",
 "}",
 "/* undo the above in OptionsPanel */",
 "#sidebarOptions .sliderPanel br {",
 "	display:inline;",
 "}",
 "",
 "/* horizontal main menu stuff */",
 "#displayArea {",
 "	margin: 1em 15.7em 0em 1em; /* use the freed up space */",
 "}",
 "#topMenu br {",
 "	display: none;",
 "}",
 "#topMenu {",
 "	background: [[ColorPalette::PrimaryMid]];",
 "	color:[[ColorPalette::PrimaryPale]];",
 "}",
 "#topMenu {",
 "	padding:2px;",
 "}",
 "#topMenu .button, #topMenu .tiddlyLink, #topMenu a {",
 "	margin-left: 0.5em;",
 "	margin-right: 0.5em;",
 "	padding-left: 3px;",
 "	padding-right: 3px;",
 "	color: [[ColorPalette::PrimaryPale]];",
 "	font-size: 115%;",
 "}",
 "#topMenu .button:hover, #topMenu .tiddlyLink:hover {",
 "	background: [[ColorPalette::PrimaryDark]];",
 "}",
 "",
 "/* make 2.2 act like 2.1 with the invisible buttons */",
 ".toolbar {",
 "	visibility:hidden;",
 "}",
 ".selected .toolbar {",
 "	visibility:visible;",
 "}",
 "",
 "/* experimental. this is a little borked in IE7 with the button ",
 " * borders but worth it I think for the extra screen realestate */",
 ".toolbar { float:right; }",
 "",
 "/* for Tagger Plugin, thanks sb56637 */",
 ".popup li a {",
 "   display:inline;",
 "}",
 "",
 "/* make it print a little cleaner */",
 "@media print {",
 "	#topMenu {",
 "		display: none ! important;",
 "	}",
 "	/* not sure if we need all the importants */",
 "	.tiddler {",
 "		border-style: none ! important;",
 "		margin:0px ! important;",
 "		padding:0px ! important;",
 "		padding-bottom:2em ! important;",
 "	}",
 "	.tagglyTagging .button, .tagglyTagging .hidebutton {",
 "		display: none ! important;",
 "	}",
 "	.headerShadow {",
 "		visibility: hidden ! important;",
 "	}",
 "	.tagglyTagged .quickopentag, .tagged .quickopentag {",
 "		border-style: none ! important;",
 "	}",
 "	.quickopentag a.button, .miniTag {",
 "		display: none ! important;",
 "	}",
 "}",
 "/*}}}*/"
].join("\n"),

'MptwViewTemplate':[
 "<!--{{{-->",
 "<!--- http://mptw.tiddlyspot.com/#MptwViewTemplate ($Rev: 2247 $) --->",
 "",
 "<div class='toolbar'>",
 "	<span macro=\"showWhenTagged systemConfig\">",
 "		<span macro=\"toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'\"></span>",
 "	</span>",
 "	<span macro=\"showWhenTagged palette\">",
 "		<span macro=\"setPalette\"></span>",
 "	</span>",
 "	<span style=\"padding:1em;\"></span>",
 "	<span macro='toolbar closeTiddler closeOthers +editTiddler deleteTiddler > fields syncing permalink references jump'></span> <span macro='newHere label:\"new here\"'></span>",
 "	<span macro='newJournalHere {{config.mptwJournalFormat?config.mptwJournalFormat:\"MM/0DD/YY\"}}'></span>",
 "</div>",
 "",
 "<div class=\"tagglyTagged\" macro=\"tags\"></div>",
 "",
 "<div class='titleContainer'>",
 "	<span class='title' macro='view title'></span>",
 "	<span macro=\"miniTag\"></span>",
 "</div>",
 "",
 "<div class='subtitle'>",
 "	<span macro='view modifier link'></span>,",
 "	<span macro='view modified date {{config.mptwDateFormat?config.mptwDateFormat:\"MM/0DD/YY\"}}'></span>",
 "	(<span macro='message views.wikified.createdPrompt'></span>",
 "	<span macro='view created date {{config.mptwDateFormat?config.mptwDateFormat:\"MM/0DD/YY\"}}'></span>)",
 "</div>",
 "",
 "<div macro=\"showWhenExists ViewPanelTemplate\">[[ViewPanelTemplate]]</div>",
 "",
 "<div macro=\"hideWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')\">",
 "	<div class='viewer' macro='view text wikified'></div>",
 "</div>",
 "<div macro=\"showWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')\">",
 "	<div class='viewer'><pre macro='view text'></pre></div>",
 "</div>",
 "",
 "<div macro=\"showWhenExists ViewDashboardTemplate\">[[ViewDashboardTemplate]]</div>",
 "",
 "<div class=\"tagglyTagging\" macro=\"tagglyTagging\"></div>",
 "",
 "<!--}}}-->"
].join("\n")

});
//}}}
/*{{{*/
/* http://mptw.tiddlyspot.com/#MptwStyleSheet ($Rev: 2246 $) */

/* a contrasting background so I can see where one tiddler ends and the other begins */
body {
	background: [[ColorPalette::TertiaryLight]];
}

/* sexy colours and font for the header */
.headerForeground {
	color: [[ColorPalette::PrimaryPale]];
}
.headerShadow, .headerShadow a {
	color: [[ColorPalette::PrimaryMid]];
}

/* separate the top menu parts */
.headerForeground, .headerShadow {
	padding: 1em 1em 0;
}

.headerForeground, .headerShadow {
	font-family: 'Trebuchet MS' sans-serif;
	font-weight:bold;
}
.headerForeground .siteSubtitle {
	color: [[ColorPalette::PrimaryLight]];
}
.headerShadow .siteSubtitle {
	color: [[ColorPalette::PrimaryMid]];
}

/* make shadow go and down right instead of up and left */
.headerShadow {
	left: 1px;
	top: 1px;
}

/* prefer monospace for editing */
.editor textarea {
	font-family: 'Consolas' monospace;
}

/* sexy tiddler titles */
.title {
	font-size: 200%;
	color: [[ColorPalette::PrimaryLight]];
	font-family: 'Trebuchet MS' sans-serif;
}

/* more subtle tiddler subtitle */
.subtitle {
	padding:0px;
	margin:0px;
	padding-left:0.5em;
	font-size: 90%;
	color: [[ColorPalette::TertiaryMid]];
}
.subtitle .tiddlyLink {
	color: [[ColorPalette::TertiaryMid]];
}

/* a little bit of extra whitespace */
.viewer {
	padding-bottom:3px;
}

/* don't want any background color for headings */
h1,h2,h3,h4,h5,h6 {
	background: [[ColorPalette::Background]];
	color: [[ColorPalette::Foreground]];
}

/* give tiddlers 3d style border and explicit background */
.tiddler {
	background: [[ColorPalette::Background]];
	border-right: 2px [[ColorPalette::TertiaryMid]] solid;
	border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;
	margin-bottom: 1em;
	padding-bottom: 1em;
	padding-top: 0.75em;
}

/* make options slider look nicer */
#sidebarOptions .sliderPanel {
	border:solid 1px [[ColorPalette::PrimaryLight]];
}

/* the borders look wrong with the body background */
#sidebar .button {
	border-style: none;
}

/* this means you can put line breaks in SidebarOptions for readability */
#sidebarOptions br {
	display:none;
}
/* undo the above in OptionsPanel */
#sidebarOptions .sliderPanel br {
	display:inline;
}

/* horizontal main menu stuff */
#displayArea {
	margin: 1em 15.7em 0em 1em; /* use the freed up space */
}
#topMenu br {
	display: none;
}
#topMenu {
	background: [[ColorPalette::PrimaryMid]];
	color:[[ColorPalette::PrimaryPale]];
}
#topMenu {
	padding:2px;
}
#topMenu .button, #topMenu .tiddlyLink, #topMenu a {
	margin-left: 0.5em;
	margin-right: 0.5em;
	padding-left: 3px;
	padding-right: 3px;
	color: [[ColorPalette::PrimaryPale]];
	font-size: 115%;
}
#topMenu .button:hover, #topMenu .tiddlyLink:hover {
	background: [[ColorPalette::PrimaryDark]];
}

/* make 2.2 act like 2.1 with the invisible buttons */
.toolbar {
	visibility:hidden;
}
.selected .toolbar {
	visibility:visible;
}

/* experimental. this is a little borked in IE7 with the button 
 * borders but worth it I think for the extra screen realestate */
.toolbar { float:right; }

/* for Tagger Plugin, thanks sb56637 */
.popup li a {
   display:inline;
}

/* make it print a little cleaner */
@media print {
	#topMenu {
		display: none ! important;
	}
	/* not sure if we need all the importants */
	.tiddler {
		border-style: none ! important;
		margin:0px ! important;
		padding:0px ! important;
		padding-bottom:2em ! important;
	}
	.tagglyTagging .button, .tagglyTagging .hidebutton {
		display: none ! important;
	}
	.headerShadow {
		visibility: hidden ! important;
	}
	.tagglyTagged .quickopentag, .tagged .quickopentag {
		border-style: none ! important;
	}
	.quickopentag a.button, .miniTag {
		display: none ! important;
	}
}
/*}}}*/
For upgrading directly from tiddlyspot. See [[ImportTiddlers]].
URL: /proxy/mptw.tiddlyspot.com/upgrade.html
For upgrading. See [[ImportTiddlers]].
URL: http://mptw.tiddlyspot.com/upgrade.html
/***
| Name:|NewHerePlugin|
| Description:|Creates the new here and new journal macros|
| Version:|3.0 ($Rev: 1845 $)|
| Date:|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source:|http://mptw.tiddlyspot.com/#NewHerePlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.macros, {
	newHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newTiddler "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	},
	newJournalHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newJournal "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	}
});

//}}}

/***
| Name:|NewMeansNewPlugin|
| Description:|If 'New Tiddler' already exists then create 'New Tiddler (1)' and so on|
| Version:|1.0 ($Rev: 2263 $)|
| Date:|$Date: 2007-06-13 04:22:32 +1000 (Wed, 13 Jun 2007) $|
| Source:|http://mptw.tiddlyspot.com/empty.html#NewMeansNewPlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{

String.prototype.getNextFreeName = function() {
       var numberRegExp = / \(([0-9]+)\)$/;
       var match = numberRegExp.exec(this);
       if (match) {
               var num = parseInt(match[1]) + 1;
               return this.replace(numberRegExp," ("+num+")");
       }
       else {
               return this + " (1)";
       }
}

config.macros.newTiddler.getName = function(newName) {
       while (store.getTiddler(newName))
               newName = newName.getNextFreeName();
       return newName;
}


config.macros.newTiddler.onClickNewTiddler = function()
{
	var title = this.getAttribute("newTitle");
	if(this.getAttribute("isJournal") == "true") {
		var now = new Date();
		title = now.formatString(title.trim());
	}

	title = config.macros.newTiddler.getName(title); // <--- only changed bit

	var params = this.getAttribute("params");
	var tags = params ? params.split("|") : [];
	var focus = this.getAttribute("newFocus");
	var template = this.getAttribute("newTemplate");
	var customFields = this.getAttribute("customFields");
	story.displayTiddler(null,title,template,false,null,null);
	var tiddlerElem = document.getElementById(story.idPrefix + title);
	if(customFields)
		story.addCustomFields(tiddlerElem,customFields);
	var text = this.getAttribute("newText");
	if(typeof text == "string")
		story.getTiddlerField(title,"text").value = text.format([title]);
	for(var t=0;t<tags.length;t++)
		story.setTiddlerTag(title,tags[t],+1);
	story.focusTiddler(title,focus);
	return false;
};

//}}}

[[MptwPageTemplate]]
Crema de aguacate: leche, aguacate, lima o limón, perejil, opcionalmente trocitos de tomate (medios cherrys valen) o trocitos de gambas. Serve chilled!

http://www.nytimes.com/2008/07/09/dining/09mini.html?_r=1&oref=slogin

pollo con mostaza dulce, queso de cabra y nueces de macadamia

* Forelle o Saibling - 
* babqa ganoush http://www.gastronomiaycia.com/2008/03/09/baba-ghanoush/
/***
| Name|QuickOpenTagPlugin|
| Description|Changes tag links to make it easier to open tags as tiddlers|
| Version|3.0.1 ($Rev: 2342 $)|
| Date|$Date: 2007-07-05 10:57:49 +1000 (Thu, 05 Jul 2007) $|
| Source|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
config.quickOpenTag = {

	dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE?

	createTagButton: function(place,tag,excludeTiddler) {
		// little hack so we can to <<tag PrettyTagName|RealTagName>>
		var splitTag = tag.split("|");
		var pretty = tag;
		if (splitTag.length == 2) {
			tag = splitTag[1];
			pretty = splitTag[0];
		}
		
		var sp = createTiddlyElement(place,"span",null,"quickopentag");
		createTiddlyText(createTiddlyLink(sp,tag,false),pretty);
		
		var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
                        config.views.wikified.tag.tooltip.format([tag]),onClickTag);
		theTag.setAttribute("tag",tag);
		if (excludeTiddler)
			theTag.setAttribute("tiddler",excludeTiddler);
    		return(theTag);
	},

	miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tagged = store.getTaggedTiddlers(tiddler.title);
		if (tagged.length > 0) {
			var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
                        	config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);
			theTag.setAttribute("tag",tiddler.title);
			theTag.className = "miniTag";
		}
	},

	allTagsHandler: function(place,macroName,params) {
		var tags = store.getTags(params[0]);
		var filter = params[1]; // new feature
		var ul = createTiddlyElement(place,"ul");
		if(tags.length == 0)
			createTiddlyElement(ul,"li",null,"listTitle",this.noTags);
		for(var t=0; t<tags.length; t++) {
			var title = tags[t][0];
			if (!filter || (title.match(new RegExp('^'+filter)))) {
				var info = getTiddlyLinkInfo(title);
				var theListItem =createTiddlyElement(ul,"li");
				var theLink = createTiddlyLink(theListItem,tags[t][0],true);
				var theCount = " (" + tags[t][1] + ")";
				theLink.appendChild(document.createTextNode(theCount));
				var theDropDownBtn = createTiddlyButton(theListItem," " +
					config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);
				theDropDownBtn.setAttribute("tag",tags[t][0]);
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by QuickOpenTagPlugin */",
".tagglyTagged .quickopentag, .tagged .quickopentag ",
"	{ margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }",
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }",
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}",
"/* extra specificity to make it work right */",
"#displayArea .viewer .quickopentag a.button, ",
"#displayArea .viewer .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink ",
"	{ border:0px solid black; }",
"#displayArea .viewer .quickopentag a.button, ",
"#mainMenu .quickopentag a.button ",
"	{ margin-left:0px; padding-left:2px; }",
"#displayArea .viewer .quickopentag a.tiddlyLink, ",
"#mainMenu .quickopentag a.tiddlyLink ",
"	{ margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }",
"a.miniTag {font-size:150%;} ",
"#mainMenu .quickopentag a.button ",
"	/* looks better in right justified main menus */",
"	{ margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }", 
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }",
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }",
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		// we fully replace these builtins. can't hijack them easily
		window.createTagButton = this.createTagButton;
		config.macros.allTags.handler = this.allTagsHandler;
		config.macros.miniTag = { handler: this.miniTagHandler };
		config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;
		store.addNotification("QuickOpenTagStyles",refreshStyles);
	}
}

config.quickOpenTag.init();

//}}}
/***
| Name:|RenameTagsPlugin|
| Description:|Allows you to easily rename or delete tags across multiple tiddlers|
| Version:|3.0 ($Rev: 1845 $)|
| Date:|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {

	prompts: {
		rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
		remove: "Remove the tag '%0' from %1 tidder%2?"
	},

	removeTag: function(tag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,tag);
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	renameTag: function(oldTag,newTag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
			store.setTiddlerTag(tiddlers[i].title,true,newTag);  // add new
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	storeMethods: {

		saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

		saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields) {
			if (title != newTitle) {
				var tagged = this.getTaggedTiddlers(title);
				if (tagged.length > 0) {
					// then we are renaming a tag
					if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))
						config.renameTags.renameTag(title,newTitle,tagged);

					if (!this.tiddlerExists(title) && newBody == "")
						// dont create unwanted tiddler
						return null;
				}
			}
			return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields);
		},

		removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

		removeTiddler: function(title) {
			var tagged = this.getTaggedTiddlers(title);
			if (tagged.length > 0)
				if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
					config.renameTags.removeTag(title,tagged);
			return this.removeTiddler_orig_renameTags(title);
		}

	},

	init: function() {
		merge(TiddlyWiki.prototype,this.storeMethods);
	}
}

config.renameTags.init();

//}}}

/***
| Name|SaveCloseTiddlerPlugin|
| Description|Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler|
| Version|3.0 ($Rev: 2134 $)|
| Date|$Date: 2007-04-30 16:11:12 +1000 (Mon, 30 Apr 2007) $|
| Source|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
To use these you must add them to the tool bar in your EditTemplate
***/
//{{{
merge(config.commands,{

	saveCloseTiddler: {
		text: 'done/close',
		tooltip: 'Save changes to this tiddler and close it',
		handler: function(e,src,title) {
			config.commands.saveTiddler.handler(e,src,title);
			config.commands.closeTiddler.handler(e,src,title);
			return false;
		}
	},

	cancelCloseTiddler: {
		text: 'cancel/close',
		tooltip: 'Undo changes to this tiddler and close it',
		handler: function(e,src,title) {
			config.commands.cancelTiddler.handler(e,src,title);
			config.commands.closeTiddler.handler(e,src,title);
			return false;
		}
	}

});

//}}}

sobre todo de mi mamá
Co. & Cina
http://www.chefkoch.de/rezept-anzeige.php?ID=73551027602539

Nota: yo la hice sin nata y preparando el huevo weich para la batidora...

El resultado es absolutamente exquisito.
[[MptwStyleSheet]]
<<allTags excludeLists>>
<<tabs txtMoreTab "Tags" "All Tags" TabAllTags "Miss" "Missing tiddlers" TabMoreMissing "Orph" "Orphaned tiddlers" TabMoreOrphans "Shad" "Shadowed tiddlers" TabMoreShadowed>>
<<allTags excludeLists [a-z]>>
/***
| Name|TagglyTaggingPlugin|
| Description|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
| Version|3.1 ($Rev: 2351 $)|
| Date|$Date: 2007-07-12 10:18:02 +1000 (Thu, 12 Jul 2007) $|
| Source|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{
config.taggly = {

	// for translations
	lingo: {
		labels: {
			asc:        "\u2191", // down arrow
			desc:       "\u2193", // up arrow
			title:      "title",
			modified:   "modified",
			created:    "created",
			show:       "+",
			hide:       "-",
			normal:     "normal",
			group:      "group",
			commas:     "commas",
			sitemap:    "sitemap",
			numCols:    "cols\u00b1", // plus minus sign
			label:      "Tagged as '%0':",
			excerpts:   "excerpts",
			contents:   "contents",
			sliders:    "sliders",
			noexcerpts: "title only"
		},

		tooltips: {
			title:    "Click to sort by title",
			modified: "Click to sort by modified date",
			created:  "Click to sort by created date",
			show:     "Click to show tagging list",
			hide:     "Click to hide tagging list",
			normal:   "Click to show a normal ungrouped list",
			group:    "Click to show list grouped by tag",
			sitemap:  "Click to show a sitemap style list",
			commas:   "Click to show a comma separated list",
			numCols:  "Click to change number of columns",
			excerpts: "Click to show excerpts",
			contents: "Click to show entire tiddler contents",
			sliders:  "Click to show tiddler contents in sliders",
			noexcerpts: "Click to show entire title only"
		}
	},

	config: {
		showTaggingCounts: true,
		listOpts: {
			// the first one will be the default
			sortBy:     ["title","modified","created"],
			sortOrder:  ["asc","desc"],
			hideState:  ["show","hide"],
			listMode:   ["normal","group","sitemap","commas"],
			numCols:    ["1","2","3","4","5","6"],
			excerpts:   ["noexcerpts","excerpts","contents","sliders"]
		},
		valuePrefix: "taggly.",
		excludeTags: ["excludeLists","excludeTagging"],
		excerptSize: 50,
		excerptMarker: "/%"+"%/"
	},

	getTagglyOpt: function(title,opt) {
		var val = store.getValue(title,this.config.valuePrefix+opt);
		return val ? val : this.config.listOpts[opt][0];
	},

	setTagglyOpt: function(title,opt,value) {
		if (!store.tiddlerExists(title))
			// create it silently
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),null);
		// if value is default then remove it to save space
		return store.setValue(title,
			this.config.valuePrefix+opt,
			value == this.config.listOpts[opt][0] ? null : value);
	},

	getNextValue: function(title,opt) {
		var current = this.getTagglyOpt(title,opt);
		var pos = this.config.listOpts[opt].indexOf(current);
		// a little usability enhancement. actually it doesn't work right for grouped or sitemap
		var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length);
		var newPos = (pos + 1) % limit;
		return this.config.listOpts[opt][newPos];
	},

	toggleTagglyOpt: function(title,opt) {
		var newVal = this.getNextValue(title,opt);
		this.setTagglyOpt(title,opt,newVal);
	}, 

	createListControl: function(place,title,type) {
		var lingo = config.taggly.lingo;
		var label;
		var tooltip;
		var onclick;

		if ((type == "title" || type == "modified" || type == "created")) {
			// "special" controls. a little tricky. derived from sortOrder and sortBy
			label = lingo.labels[type];
			tooltip = lingo.tooltips[type];

			if (this.getTagglyOpt(title,"sortBy") == type) {
				label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
				onclick = function() {
					config.taggly.toggleTagglyOpt(title,"sortOrder");
					return false;
				}
			}
			else {
				onclick = function() {
					config.taggly.setTagglyOpt(title,"sortBy",type);
					config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);
					return false;
				}
			}
		}
		else {
			// "regular" controls, nice and simple
			label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
			tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
			onclick = function() {
				config.taggly.toggleTagglyOpt(title,type);
				return false;
			}
		}

		// hide button because commas don't have columns
		if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
			createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");
	},

	makeColumns: function(orig,numCols) {
		var listSize = orig.length;
		var colSize = listSize/numCols;
		var remainder = listSize % numCols;

		var upperColsize = colSize;
		var lowerColsize = colSize;

		if (colSize != Math.floor(colSize)) {
			// it's not an exact fit so..
			upperColsize = Math.floor(colSize) + 1;
			lowerColsize = Math.floor(colSize);
		}

		var output = [];
		var c = 0;
		for (var j=0;j<numCols;j++) {
			var singleCol = [];
			var thisSize = j < remainder ? upperColsize : lowerColsize;
			for (var i=0;i<thisSize;i++) 
				singleCol.push(orig[c++]);
			output.push(singleCol);
		}

		return output;
	},

	drawTable: function(place,columns,theClass) {
		var newTable = createTiddlyElement(place,"table",null,theClass);
		var newTbody = createTiddlyElement(newTable,"tbody");
		var newTr = createTiddlyElement(newTbody,"tr");
		for (var j=0;j<columns.length;j++) {
			var colOutput = "";
			for (var i=0;i<columns[j].length;i++) 
				colOutput += columns[j][i];
			var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
			wikify(colOutput,newTd);
		}
		return newTable;
	},

	createTagglyList: function(place,title) {
		switch(this.getTagglyOpt(title,"listMode")) {
			case "group":  return this.createTagglyListGrouped(place,title); break;
			case "normal": return this.createTagglyListNormal(place,title,false); break;
			case "commas": return this.createTagglyListNormal(place,title,true); break;
			case "sitemap":return this.createTagglyListSiteMap(place,title); break;
		}
	},

	getTaggingCount: function(title) {
		// thanks to Doug Edmunds
		if (this.config.showTaggingCounts) {
			var tagCount = store.getTaggedTiddlers(title).length;
			if (tagCount > 0)
				return " ("+tagCount+")";
		}
		return "";
	},

	getExcerpt: function(inTiddlerTitle,title,indent) {
    if (!indent)
			indent = 1;
		if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "excerpts") {
			var t = store.getTiddler(title);
			if (t) {
				var text = t.text.replace(/\n/," ");
				var marker = text.indexOf(this.config.excerptMarker);
				if (marker != -1) {
					return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
				}
				else if (text.length < this.config.excerptSize) {
					return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
				}
				else {
					return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
				}
			}
		}
		else if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "contents") {
			var t = store.getTiddler(title);
			if (t) {
				return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
			}
		}
		else if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "sliders") {
			var t = store.getTiddler(title);
			if (t) {
				return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
			}
		}
		return "";
	},

	notHidden: function(t,inTiddler) {
		if (typeof t == "string") 
			t = store.getTiddler(t);
		return (!t || !t.tags.containsAny(this.config.excludeTags) ||
				(inTiddler && this.config.excludeTags.contains(inTiddler)));
	},

	// this is for normal and commas mode
	createTagglyListNormal: function(place,title,useCommas) {

		var list = store.getTaggedTiddlers(title,this.getTagglyOpt(title,"sortBy"));

		if (this.getTagglyOpt(title,"sortOrder") == "desc")
			list = list.reverse();

		var output = [];
		var first = true;
		for (var i=0;i<list.length;i++) {
			if (this.notHidden(list[i],title)) {
				var countString = this.getTaggingCount(list[i].title);
				var excerpt = this.getExcerpt(title,list[i].title);
				if (useCommas)
					output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
				else
					output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");

				first = false;
			}
		}

		return this.drawTable(place,
			this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
			useCommas ? "commas" : "normal");
	},

	// this is for the "grouped" mode
	createTagglyListGrouped: function(place,title) {
		var sortBy = this.getTagglyOpt(title,"sortBy");
		var sortOrder = this.getTagglyOpt(title,"sortOrder");

		var list = store.getTaggedTiddlers(title,sortBy);

		if (sortOrder == "desc")
			list = list.reverse();

		var leftOvers = []
		for (var i=0;i<list.length;i++)
			leftOvers.push(list[i].title);

		var allTagsHolder = {};
		for (var i=0;i<list.length;i++) {
			for (var j=0;j<list[i].tags.length;j++) {

				if (list[i].tags[j] != title) { // not this tiddler

					if (this.notHidden(list[i].tags[j],title)) {

						if (!allTagsHolder[list[i].tags[j]])
							allTagsHolder[list[i].tags[j]] = "";

						if (this.notHidden(list[i],title)) {
							allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
										+ this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";

							leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers

						}
					}
				}
			}
		}

		var allTags = [];
		for (var t in allTagsHolder)
			allTags.push(t);

		var sortHelper = function(a,b) {
			if (a == b) return 0;
			if (a < b) return -1;
			return 1;
		};

		allTags.sort(function(a,b) {
			var tidA = store.getTiddler(a);
			var tidB = store.getTiddler(b);
			if (sortBy == "title") return sortHelper(a,b);
			else if (!tidA && !tidB) return 0;
			else if (!tidA) return -1;
			else if (!tidB) return +1;
			else return sortHelper(tidA[sortBy],tidB[sortBy]);
		});

		var leftOverOutput = "";
		for (var i=0;i<leftOvers.length;i++)
			if (this.notHidden(leftOvers[i],title))
				leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";

		var output = [];

		if (sortOrder == "desc")
			allTags.reverse();
		else if (leftOverOutput != "")
			// leftovers first...
			output.push(leftOverOutput);

		for (var i=0;i<allTags.length;i++)
			if (allTagsHolder[allTags[i]] != "")
				output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);

		if (sortOrder == "desc" && leftOverOutput != "")
			// leftovers last...
			output.push(leftOverOutput);

		return this.drawTable(place,
				this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),
				"grouped");

	},

	// used to build site map
	treeTraverse: function(title,depth,sortBy,sortOrder) {

		var list = store.getTaggedTiddlers(title,sortBy);
		if (sortOrder == "desc")
			list.reverse();

		var indent = "";
		for (var j=0;j<depth;j++)
			indent += "*"

		var childOutput = "";
		for (var i=0;i<list.length;i++)
			if (list[i].title != title)
				if (this.notHidden(list[i].title,this.config.inTiddler))
					childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder);

		if (depth == 0)
			return childOutput;
		else
			return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;
	},

	// this if for the site map mode
	createTagglyListSiteMap: function(place,title) {
		this.config.inTiddler = title; // nasty. should pass it in to traverse probably
		var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"));
		return this.drawTable(place,
				this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic
				"sitemap"
				);
	},

	macros: {
		tagglyTagging: {
			handler: function (place,macroName,params,wikifier,paramString,tiddler) {
				var refreshContainer = createTiddlyElement(place,"div");
				// do some refresh magic to make it keep the list fresh - thanks Saq
				refreshContainer.setAttribute("refresh","macro");
				refreshContainer.setAttribute("macroName",macroName);
        			refreshContainer.setAttribute("title",tiddler.title);
				this.refresh(refreshContainer);
			},

			refresh: function(place) {
				var title = place.getAttribute("title");
				removeChildren(place);
				if (store.getTaggedTiddlers(title).length > 0) {
					var lingo = config.taggly.lingo;
					config.taggly.createListControl(place,title,"hideState");
					if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
						createTiddlyElement(place,"span",null,"tagglyLabel",lingo.labels.label.format([title]));
						config.taggly.createListControl(place,title,"title");
						config.taggly.createListControl(place,title,"modified");
						config.taggly.createListControl(place,title,"created");
						config.taggly.createListControl(place,title,"listMode");
						config.taggly.createListControl(place,title,"excerpts");
						config.taggly.createListControl(place,title,"numCols");
						config.taggly.createTagglyList(place,title);
					}
				}
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
"	margin-top:0px; padding-top:0.5em; padding-left:2em;",
"	margin-bottom:0px; padding-bottom:0px;",
"}",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
"	color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
"	border:0px; padding-left:0.3em;padding-right:0.3em;",
"}",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active  {",
"	border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
"}",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
"td.tagglyTagging",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
"  margin-bottom:0.5em; }",
".tagglyTagging .indent1  { margin-left:3em;  }",
".tagglyTagging .indent2  { margin-left:4em;  }",
".tagglyTagging .indent3  { margin-left:5em;  }",
".tagglyTagging .indent4  { margin-left:6em;  }",
".tagglyTagging .indent5  { margin-left:7em;  }",
".tagglyTagging .indent6  { margin-left:8em;  }",
".tagglyTagging .indent7  { margin-left:9em;  }",
".tagglyTagging .indent8  { margin-left:10em; }",
".tagglyTagging .indent9  { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		merge(config.macros,this.macros);
		config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;
		store.addNotification("TagglyTaggingStyles",refreshStyles);
	}
};

config.taggly.init();

//}}}

/***
InlineSlidersPlugin
By Saq Imtiaz
http://tw.lewcid.org/sandbox/#InlineSlidersPlugin

// syntax adjusted to not clash with NestedSlidersPlugin

***/
//{{{
config.formatters.unshift( {
	name: "inlinesliders",
	// match: "\\+\\+\\+\\+|\\<slider",
	match: "\\<slider",
	// lookaheadRegExp: /(?:\+\+\+\+|<slider) (.*?)(?:>?)\n((?:.|\n)*?)\n(?:====|<\/slider>)/mg,
	lookaheadRegExp: /(?:<slider) (.*?)(?:>)\n((?:.|\n)*?)\n(?:<\/slider>)/mg,
	handler: function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
			var btn = createTiddlyButton(w.output,lookaheadMatch[1] + " "+"\u00BB",lookaheadMatch[1],this.onClickSlider,"button sliderButton");
			var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
			panel.style.display = "none";
			wikify(lookaheadMatch[2],panel);
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
   },
   onClickSlider : function(e) {
		if(!e) var e = window.event;
		var n = this.nextSibling;
		n.style.display = (n.style.display=="none") ? "block" : "none";
		return false;
	}
});

//}}}

/***
| Name|ToggleTagPlugin|
| Description|Makes a checkbox which toggles a tag in a tiddler|
| Version|3.0 ($Rev: 1845 $)|
| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source|http://tiddlyspot.com/mptw/#ToggleTagMacro|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Usage
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
* TagName - the tag to be toggled, default value "checked"
* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler
* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
(If a parameter is '.' then the default will be used)

Examples:

|Code|Description|Example|h
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|
Notes:
* If TiddlerName doesn't exist it will be silently created
* Set label to '-' to specify no label
* See also http://mgtd-alpha.tiddlyspot.com/#ToggleTag2

!Known issues
* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing

***/
//{{{

merge(config.macros,{

	toggleTag: {

		doRefreshAll: true,
		createIfRequired: true,
		shortLabel: "[[%0]]",
		longLabel: "[[%0]] [[%1]]",

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			var tag = (params[0] && params[0] != '.') ? params[0] : "checked";
			var title = (params[1] && params[1] != '.') ? params[1] : tiddler.title;
			var defaultLabel = (title == tiddler.title ? this.shortLabel : this.longLabel);
			var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;
			label = (label == '-' ? '' : label);
			var theTiddler =  title == tiddler.title ? tiddler : store.getTiddler(title);
			var cb = createTiddlyCheckbox(place, label.format([tag,title]), theTiddler && theTiddler.isTagged(tag), function(e) {
				if (!store.tiddlerExists(title)) {
					if (config.macros.toggleTag.createIfRequired) {
						var content = store.getTiddlerText(title); // just in case it's a shadow
						store.saveTiddler(title,title,content?content:"",config.options.txtUserName,new Date(),null);
					}
					else 
						return false;
				}
				store.setTiddlerTag(title,this.checked,tag);
				return true;
			});
		}
	}
});

//}}}

/***
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'cocina';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[Welcome to Tiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[Welcome to Tiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'Welcome to Tiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n")

});
//}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 24/11/2009 14:41:16 | Pajarillo Alpino | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 06/12/2009 18:02:01 | Pajarillo Alpino | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 16/01/2010 13:17:25 | Valentina | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 19/01/2010 11:28:25 | Álvaro | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 21/01/2010 11:08:32 | Álvaro | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 25/04/2010 23:29:35 | Pajarillo Alpino | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 13/05/2010 13:53:02 | gorrioncillo | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 13/06/2010 13:56:31 | PajarilloAlpino | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . | ok |
| 13/06/2010 13:59:20 | PajarilloAlpino | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . |
| 13/06/2010 13:59:23 | PajarilloAlpino | [[/|http://cocina.tiddlyspot.com/]] | [[store.cgi|http://cocina.tiddlyspot.com/store.cgi]] | . | [[index.html | http://cocina.tiddlyspot.com/index.html]] | . | ok |
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}

/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.0|
|''Date:''|May 5, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (#3125)|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 0,
	date: new Date("May 5, 2007"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0 (#3125)'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	refreshOptions: function(listWrapper) {
		var uploadOpts = [
			"txtUploadUserName",
			"pasUploadPassword",
			"txtUploadStoreUrl",
			"txtUploadDir",
			"txtUploadFilename",
			"txtUploadBackupDir",
			"chkUploadLog",
			"txtUploadLogMaxLine",
			]
		var opts = [];
		for(i=0; i<uploadOpts.length; i++) {
			var opt = {};
			opts.push()
			opt.option = "";
			n = uploadOpts[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
}

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,null,null,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		bidix.upload.httpUpload(rssUploadParams,convertUnicodeToUTF8(generateRss()),callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == httpStatus.NotFound)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


/* don't want this for tiddlyspot sites

// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");

*/


//}}}


[[MptwViewTemplate]]
Éste es el nombre de usuario que aparece cuando no pones el tuyo en la cajita que surge a la derecha al pulsar sobre "options"
/***
|''Name:''|YourSearchPlugin|
|''Version:''|2.1.4 (2009-09-04)|
|''Source:''|http://tiddlywiki.abego-software.de/#YourSearchPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2009 [[abego Software|http://www.abego-software.de]]|
|''~CoreVersion:''|2.1.0|
|''Community:''|[[del.icio.us|http://del.icio.us/post?url=http://tiddlywiki.abego-software.de/index.html%23YourSearchPlugin]]|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; ~InternetExplorer 6.0|
!About YourSearch
YourSearch gives you a bunch of new features to simplify and speed up your daily searches in TiddlyWiki. It seamlessly integrates into the standard TiddlyWiki search: just start typing into the 'search' field and explore!

For more information see [[Help|YourSearch Help]].
!Compatibility
This plugin requires TiddlyWiki 2.1. 
Check the [[archive|http://tiddlywiki.abego-software.de/archive]] for ~YourSearchPlugins supporting older versions of TiddlyWiki.
!Source Code
***/
/***
This plugin's source code is compressed (and hidden). Use this [[link|http://tiddlywiki.abego-software.de/archive/YourSearchPlugin/Plugin-YourSearch-src.2.1.4.js]] to get the readable source code.
***/
///%
if(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:1,revision:4,source:"http://tiddlywiki.abego-software.de/#YourSearchPlugin",licence:"[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",copyright:"Copyright (c) abego Software GmbH, 2005-2009 (www.abego-software.de)"};if(!window.abego){window.abego={};}if(!Array.forEach){Array.forEach=function(_1,_2,_3){for(var i=0,_4=_1.length;i<_4;i++){_2.call(_3,_1[i],i,_1);}};Array.prototype.forEach=function(_5,_6){for(var i=0,_7=this.length;i<_7;i++){_5.call(_6,this[i],i,this);}};}abego.toInt=function(s,_8){if(!s){return _8;}var n=parseInt(s);return (n==NaN)?_8:n;};abego.createEllipsis=function(_9){var e=createTiddlyElement(_9,"span");e.innerHTML="&hellip;";};abego.shallowCopy=function(_a){if(!_a){return _a;}var _b={};for(var n in _a){_b[n]=_a[n];}return _b;};abego.copyOptions=function(_c){return !_c?{}:abego.shallowCopy(_c);};abego.countStrings=function(_d,s){if(!s){return 0;}var _e=s.length;var n=0;var _f=0;while(1){var i=_d.indexOf(s,_f);if(i<0){return n;}n++;_f=i+_e;}return n;};abego.getBracedText=function(_10,_11,_12){if(!_11){_11=0;}var re=/\{([^\}]*)\}/gm;re.lastIndex=_11;var m=re.exec(_10);if(m){var s=m[1];var _13=abego.countStrings(s,"{");if(!_13){if(_12){_12.lastIndex=re.lastIndex;}return s;}var len=_10.length;for(var i=re.lastIndex;i<len&&_13;i++){var c=_10.charAt(i);if(c=="{"){_13++;}else{if(c=="}"){_13--;}}}if(!_13){if(_12){_12.lastIndex=i-1;}return _10.substring(m.index+1,i-1);}}};abego.select=function(_14,_15,_16,_17){if(!_17){_17=[];}_14.forEach(function(t){if(_15.call(_16,t)){_17.push(t);}});return _17;};abego.consumeEvent=function(e){if(e.stopPropagation){e.stopPropagation();}if(e.preventDefault){e.preventDefault();}e.cancelBubble=true;e.returnValue=true;};abego.TiddlerFilterTerm=function(_18,_19){if(!_19){_19={};}var _1a=_18;if(!_19.textIsRegExp){_1a=_18.escapeRegExp();if(_19.fullWordMatch){_1a="\\b"+_1a+"\\b";}}var _1b=new RegExp(_1a,"m"+(_19.caseSensitive?"":"i"));this.tester=new abego.MultiFieldRegExpTester(_1b,_19.fields,_19.withExtendedFields);};abego.TiddlerFilterTerm.prototype.test=function(_1c){return this.tester.test(_1c);};abego.parseNewTiddlerCommandLine=function(s){var m=/(.*?)\.(?:\s+|$)([^#]*)(#.*)?/.exec(s);if(!m){m=/([^#]*)()(#.*)?/.exec(s);}if(m){var r;if(m[3]){var s2=m[3].replace(/#/g,"");r=s2.parseParams("tag");}else{r=[[]];}var _1d=m[2]?m[2].trim():"";r.push({name:"text",value:_1d});r[0].text=[_1d];return {title:m[1].trim(),params:r};}else{return {title:s.trim(),params:[[]]};}};abego.parseTiddlerFilterTerm=function(_1e,_1f,_20){var re=/\s*(?:(?:\{([^\}]*)\})|(?:(=)|([#%!])|(?:(\w+)\s*\:(?!\/\/))|(?:(?:("(?:(?:\\")|[^"])+")|(?:\/((?:(?:\\\/)|[^\/])+)\/)|(\w+\:\/\/[^\s]+)|([^\s\)\-\"]+)))))/mg;var _21={"!":"title","%":"text","#":"tags"};var _22={};var _23;re.lastIndex=_1f;while(1){var i=re.lastIndex;var m=re.exec(_1e);if(!m||m.index!=i){throw "Word or String literal expected";}if(m[1]){var _24={};var _25=abego.getBracedText(_1e,0,_24);if(!_25){throw "Invalid {...} syntax";}var f=Function("tiddler","return ("+_25+");");return {func:f,lastIndex:_24.lastIndex,markRE:null};}if(m[2]){_23=true;}else{if(m[3]){_22[_21[m[3]]]=1;}else{if(m[4]){_22[m[4]]=1;}else{var _26=m[6];var _27=m[5]?window.eval(m[5]):m[6]?m[6]:m[7]?m[7]:m[8];var _20=abego.copyOptions(_20);_20.fullWordMatch=_23;_20.textIsRegExp=_26;var _28=[];for(var n in _22){_28.push(n);}if(_28.length==0){_20.fields=_20.defaultFields;}else{_20.fields=_28;_20.withExtendedFields=false;}var _29=new abego.TiddlerFilterTerm(_27,_20);var _2a=_26?_27:_27.escapeRegExp();if(_2a&&_23){_2a="\\b"+_2a+"\\b";}return {func:function(_2b){return _29.test(_2b);},lastIndex:re.lastIndex,markRE:_2a?"(?:"+_2a+")":null};}}}}};abego.BoolExp=function(s,_2c,_2d){this.s=s;var _2e=_2d&&_2d.defaultOperationIs_OR;var _2f=/\s*(?:(\-|not)|(\())/gi;var _30=/\s*\)/g;var _31=/\s*(?:(and|\&\&)|(or|\|\|))/gi;var _32=/\s*[^\)\s]/g;var _33=/\s*(\-|not)?(\s*\()?/gi;var _34;var _35=function(_36){_33.lastIndex=_36;var m=_33.exec(s);var _37;var _38;if(m&&m.index==_36){_36+=m[0].length;_37=m[1];if(m[2]){var e=_34(_36);_30.lastIndex=e.lastIndex;if(!_30.exec(s)){throw "Missing ')'";}_38={func:e.func,lastIndex:_30.lastIndex,markRE:e.markRE};}}if(!_38){_38=_2c(s,_36,_2d);}if(_37){_38.func=(function(f){return function(_39){return !f(_39);};})(_38.func);_38.markRE=null;}return _38;};_34=function(_3a){var _3b=_35(_3a);while(1){var l=_3b.lastIndex;_31.lastIndex=l;var m=_31.exec(s);var _3c;var _3d;if(m&&m.index==l){_3c=!m[1];_3d=_35(_31.lastIndex);}else{try{_3d=_35(l);}catch(e){return _3b;}_3c=_2e;}_3b.func=(function(_3e,_3f,_40){return _40?function(_41){return _3e(_41)||_3f(_41);}:function(_42){return _3e(_42)&&_3f(_42);};})(_3b.func,_3d.func,_3c);_3b.lastIndex=_3d.lastIndex;if(!_3b.markRE){_3b.markRE=_3d.markRE;}else{if(_3d.markRE){_3b.markRE=_3b.markRE+"|"+_3d.markRE;}}}};var _43=_34(0);this.evalFunc=_43.func;if(_43.markRE){this.markRegExp=new RegExp(_43.markRE,_2d.caseSensitive?"mg":"img");}};abego.BoolExp.prototype.exec=function(){return this.evalFunc.apply(this,arguments);};abego.BoolExp.prototype.getMarkRegExp=function(){return this.markRegExp;};abego.BoolExp.prototype.toString=function(){return this.s;};abego.MultiFieldRegExpTester=function(re,_44,_45){this.re=re;this.fields=_44?_44:["title","text","tags"];this.withExtendedFields=_45;};abego.MultiFieldRegExpTester.prototype.test=function(_46){var re=this.re;for(var i=0;i<this.fields.length;i++){var s=store.getValue(_46,this.fields[i]);if(typeof s=="string"&&re.test(s)){return this.fields[i];}}if(this.withExtendedFields){return store.forEachField(_46,function(_47,_48,_49){return typeof _49=="string"&&re.test(_49)?_48:null;},true);}return null;};abego.TiddlerQuery=function(_4a,_4b,_4c,_4d,_4e){if(_4c){this.regExp=new RegExp(_4a,_4b?"mg":"img");this.tester=new abego.MultiFieldRegExpTester(this.regExp,_4d,_4e);}else{this.expr=new abego.BoolExp(_4a,abego.parseTiddlerFilterTerm,{defaultFields:_4d,caseSensitive:_4b,withExtendedFields:_4e});}this.getQueryText=function(){return _4a;};this.getUseRegExp=function(){return _4c;};this.getCaseSensitive=function(){return _4b;};this.getDefaultFields=function(){return _4d;};this.getWithExtendedFields=function(){return _4e;};};abego.TiddlerQuery.prototype.test=function(_4f){if(!_4f){return false;}if(this.regExp){return this.tester.test(_4f);}return this.expr.exec(_4f);};abego.TiddlerQuery.prototype.filter=function(_50){return abego.select(_50,this.test,this);};abego.TiddlerQuery.prototype.getMarkRegExp=function(){if(this.regExp){return "".search(this.regExp)>=0?null:this.regExp;}return this.expr.getMarkRegExp();};abego.TiddlerQuery.prototype.toString=function(){return (this.regExp?this.regExp:this.expr).toString();};abego.PageWiseRenderer=function(){this.firstIndexOnPage=0;};merge(abego.PageWiseRenderer.prototype,{setItems:function(_51){this.items=_51;this.setFirstIndexOnPage(0);},getMaxPagesInNavigation:function(){return 10;},getItemsCount:function(_52){return this.items?this.items.length:0;},getCurrentPageIndex:function(){return Math.floor(this.firstIndexOnPage/this.getItemsPerPage());},getLastPageIndex:function(){return Math.floor((this.getItemsCount()-1)/this.getItemsPerPage());},setFirstIndexOnPage:function(_53){this.firstIndexOnPage=Math.min(Math.max(0,_53),this.getItemsCount()-1);},getFirstIndexOnPage:function(){this.firstIndexOnPage=Math.floor(this.firstIndexOnPage/this.getItemsPerPage())*this.getItemsPerPage();return this.firstIndexOnPage;},getLastIndexOnPage:function(){return Math.min(this.getFirstIndexOnPage()+this.getItemsPerPage()-1,this.getItemsCount()-1);},onPageChanged:function(_54,_55){},renderPage:function(_56){if(_56.beginRendering){_56.beginRendering(this);}try{if(this.getItemsCount()){var _57=this.getLastIndexOnPage();var _58=-1;for(var i=this.getFirstIndexOnPage();i<=_57;i++){_58++;_56.render(this,this.items[i],i,_58);}}}finally{if(_56.endRendering){_56.endRendering(this);}}},addPageNavigation:function(_59){if(!this.getItemsCount()){return;}var _5a=this;var _5b=function(e){if(!e){var e=window.event;}abego.consumeEvent(e);var _5c=abego.toInt(this.getAttribute("page"),0);var _5d=_5a.getCurrentPageIndex();if(_5c==_5d){return;}var _5e=_5c*_5a.getItemsPerPage();_5a.setFirstIndexOnPage(_5e);_5a.onPageChanged(_5c,_5d);};var _5f;var _60=this.getCurrentPageIndex();var _61=this.getLastPageIndex();if(_60>0){_5f=createTiddlyButton(_59,"Previous","Go to previous page (Shortcut: Alt-'<')",_5b,"prev");_5f.setAttribute("page",(_60-1).toString());_5f.setAttribute("accessKey","<");}for(var i=-this.getMaxPagesInNavigation();i<this.getMaxPagesInNavigation();i++){var _62=_60+i;if(_62<0){continue;}if(_62>_61){break;}var _63=(i+_60+1).toString();var _64=_62==_60?"currentPage":"otherPage";_5f=createTiddlyButton(_59,_63,"Go to page %0".format([_63]),_5b,_64);_5f.setAttribute("page",(_62).toString());}if(_60<_61){_5f=createTiddlyButton(_59,"Next","Go to next page (Shortcut: Alt-'>')",_5b,"next");_5f.setAttribute("page",(_60+1).toString());_5f.setAttribute("accessKey",">");}}});abego.LimitedTextRenderer=function(){var _65=40;var _66=4;var _67=function(_68,_69,_6a){var n=_68.length;if(n==0){_68.push({start:_69,end:_6a});return;}var i=0;for(;i<n;i++){var _6b=_68[i];if(_6b.start<=_6a&&_69<=_6b.end){var r;var _6c=i+1;for(;_6c<n;_6c++){r=_68[_6c];if(r.start>_6a||_69>_6b.end){break;}}var _6d=_69;var _6e=_6a;for(var j=i;j<_6c;j++){r=_68[j];_6d=Math.min(_6d,r.start);_6e=Math.max(_6e,r.end);}_68.splice(i,_6c-i,{start:_6d,end:_6e});return;}if(_6b.start>_6a){break;}}_68.splice(i,0,{start:_69,end:_6a});};var _6f=function(_70){var _71=0;for(var i=0;i<_70.length;i++){var _72=_70[i];_71+=_72.end-_72.start;}return _71;};var _73=function(c){return (c>="a"&&c<="z")||(c>="A"&&c<="Z")||c=="_";};var _74=function(s,_75){if(!_73(s[_75])){return null;}for(var i=_75-1;i>=0&&_73(s[i]);i--){}var _76=i+1;var n=s.length;for(i=_75+1;i<n&&_73(s[i]);i++){}return {start:_76,end:i};};var _77=function(s,_78,_79){var _7a;if(_79){_7a=_74(s,_78);}else{if(_78<=0){return _78;}_7a=_74(s,_78-1);}if(!_7a){return _78;}if(_79){if(_7a.start>=_78-_66){return _7a.start;}if(_7a.end<=_78+_66){return _7a.end;}}else{if(_7a.end<=_78+_66){return _7a.end;}if(_7a.start>=_78-_66){return _7a.start;}}return _78;};var _7b=function(s,_7c){var _7d=[];if(_7c){var _7e=0;var n=s.length;var _7f=0;do{_7c.lastIndex=_7e;var _80=_7c.exec(s);if(_80){if(_7e<_80.index){var t=s.substring(_7e,_80.index);_7d.push({text:t});}_7d.push({text:_80[0],isMatch:true});_7e=_80.index+_80[0].length;}else{_7d.push({text:s.substr(_7e)});break;}}while(true);}else{_7d.push({text:s});}return _7d;};var _81=function(_82){var _83=0;for(var i=0;i<_82.length;i++){if(_82[i].isMatch){_83++;}}return _83;};var _84=function(s,_85,_86,_87,_88){var _89=Math.max(Math.floor(_88/(_87+1)),_65);var _8a=Math.max(_89-(_86-_85),0);var _8b=Math.min(Math.floor(_86+_8a/3),s.length);var _8c=Math.max(_8b-_89,0);_8c=_77(s,_8c,true);_8b=_77(s,_8b,false);return {start:_8c,end:_8b};};var _8d=function(_8e,s,_8f){var _90=[];var _91=_81(_8e);var pos=0;for(var i=0;i<_8e.length;i++){var t=_8e[i];var _92=t.text;if(t.isMatch){var _93=_84(s,pos,pos+_92.length,_91,_8f);_67(_90,_93.start,_93.end);}pos+=_92.length;}return _90;};var _94=function(s,_95,_96){var _97=_96-_6f(_95);while(_97>0){if(_95.length==0){_67(_95,0,_77(s,_96,false));return;}else{var _98=_95[0];var _99;var _9a;if(_98.start==0){_99=_98.end;if(_95.length>1){_9a=_95[1].start;}else{_67(_95,_99,_77(s,_99+_97,false));return;}}else{_99=0;_9a=_98.start;}var _9b=Math.min(_9a,_99+_97);_67(_95,_99,_9b);_97-=(_9b-_99);}}};var _9c=function(_9d,s,_9e,_9f,_a0){if(_9f.length==0){return;}var _a1=function(_a2,s,_a3,_a4,_a5){var t;var _a6;var pos=0;var i=0;var _a7=0;for(;i<_a3.length;i++){t=_a3[i];_a6=t.text;if(_a4<pos+_a6.length){_a7=_a4-pos;break;}pos+=_a6.length;}var _a8=_a5-_a4;for(;i<_a3.length&&_a8>0;i++){t=_a3[i];_a6=t.text.substr(_a7);_a7=0;if(_a6.length>_a8){_a6=_a6.substr(0,_a8);}if(t.isMatch){createTiddlyElement(_a2,"span",null,"marked",_a6);}else{createTiddlyText(_a2,_a6);}_a8-=_a6.length;}if(_a5<s.length){abego.createEllipsis(_a2);}};if(_9f[0].start>0){abego.createEllipsis(_9d);}var _a9=_a0;for(var i=0;i<_9f.length&&_a9>0;i++){var _aa=_9f[i];var len=Math.min(_aa.end-_aa.start,_a9);_a1(_9d,s,_9e,_aa.start,_aa.start+len);_a9-=len;}};this.render=function(_ab,s,_ac,_ad){if(s.length<_ac){_ac=s.length;}var _ae=_7b(s,_ad);var _af=_8d(_ae,s,_ac);_94(s,_af,_ac);_9c(_ab,s,_ae,_af,_ac);};};(function(){function _b0(msg){alert(msg);throw msg;};if(version.major<2||(version.major==2&&version.minor<1)){_b0("YourSearchPlugin requires TiddlyWiki 2.1 or newer.\n\nCheck the archive for YourSearch plugins\nsupporting older versions of TiddlyWiki.\n\nArchive: http://tiddlywiki.abego-software.de/archive");}abego.YourSearch={};var _b1;var _b2;var _b3=function(_b4){_b1=_b4;};var _b5=function(){return _b1?_b1:[];};var _b6=function(){return _b1?_b1.length:0;};var _b7=4;var _b8=10;var _b9=2;var _ba=function(s,re){var m=s.match(re);return m?m.length:0;};var _bb=function(_bc,_bd){var _be=_bd.getMarkRegExp();if(!_be){return 1;}var _bf=_bc.title.match(_be);var _c0=_bf?_bf.length:0;var _c1=_ba(_bc.getTags(),_be);var _c2=_bf?_bf.join("").length:0;var _c3=_bc.title.length>0?_c2/_bc.title.length:0;var _c4=_c0*_b7+_c1*_b9+_c3*_b8+1;return _c4;};var _c5=function(_c6,_c7,_c8,_c9,_ca,_cb){_b2=null;var _cc=_c6.reverseLookup("tags",_cb,false);try{var _cd=[];if(config.options.chkSearchInTitle){_cd.push("title");}if(config.options.chkSearchInText){_cd.push("text");}if(config.options.chkSearchInTags){_cd.push("tags");}_b2=new abego.TiddlerQuery(_c7,_c8,_c9,_cd,config.options.chkSearchExtendedFields);}catch(e){return [];}var _ce=_b2.filter(_cc);var _cf=abego.YourSearch.getRankFunction();for(var i=0;i<_ce.length;i++){var _d0=_ce[i];var _d1=_cf(_d0,_b2);_d0.searchRank=_d1;}if(!_ca){_ca="title";}var _d2=function(a,b){var _d3=a.searchRank-b.searchRank;if(_d3==0){if(a[_ca]==b[_ca]){return (0);}else{return (a[_ca]<b[_ca])?-1:+1;}}else{return (_d3>0)?-1:+1;}};_ce.sort(_d2);return _ce;};var _d4=80;var _d5=50;var _d6=250;var _d7=50;var _d8=25;var _d9=10;var _da="yourSearchResult";var _db="yourSearchResultItems";var _dc;var _dd;var _de;var _df;var _e0;var _e1=function(){if(version.extensions.YourSearchPlugin.styleSheetInited){return;}version.extensions.YourSearchPlugin.styleSheetInited=true;setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch");};var _e2=function(){return _dd!=null&&_dd.parentNode==document.body;};var _e3=function(){if(_e2()){document.body.removeChild(_dd);}};var _e4=function(e){_e3();var _e5=this.getAttribute("tiddlyLink");if(_e5){var _e6=this.getAttribute("withHilite");var _e7=highlightHack;if(_e6&&_e6=="true"&&_b2){highlightHack=_b2.getMarkRegExp();}story.displayTiddler(this,_e5);highlightHack=_e7;}return (false);};var _e8=function(){if(!_de){return;}var _e9=_de;var _ea=findPosX(_e9);var _eb=findPosY(_e9);var _ec=_e9.offsetHeight;var _ed=_ea;var _ee=_eb+_ec;var _ef=findWindowWidth();if(_ef<_dd.offsetWidth){_dd.style.width=(_ef-100)+"px";_ef=findWindowWidth();}var _f0=_dd.offsetWidth;if(_ed+_f0>_ef){_ed=_ef-_f0-30;}if(_ed<0){_ed=0;}_dd.style.left=_ed+"px";_dd.style.top=_ee+"px";_dd.style.display="block";};var _f1=function(){if(_dd){window.scrollTo(0,ensureVisible(_dd));}if(_de){window.scrollTo(0,ensureVisible(_de));}};var _f2=function(){_e8();_f1();};var _f3;var _f4;var _f5=new abego.PageWiseRenderer();var _f6=function(_f7){this.itemHtml=store.getTiddlerText("YourSearchItemTemplate");if(!this.itemHtml){_b0("YourSearchItemTemplate not found");}this.place=document.getElementById(_db);if(!this.place){this.place=createTiddlyElement(_f7,"div",_db);}};merge(_f6.prototype,{render:function(_f8,_f9,_fa,_fb){_f3=_fb;_f4=_f9;var _fc=createTiddlyElement(this.place,"div",null,"yourSearchItem");_fc.innerHTML=this.itemHtml;applyHtmlMacros(_fc,null);refreshElements(_fc,null);},endRendering:function(_fd){_f4=null;}});var _fe=function(){if(!_dd||!_de){return;}var _ff=store.getTiddlerText("YourSearchResultTemplate");if(!_ff){_ff="<b>Tiddler YourSearchResultTemplate not found</b>";}_dd.innerHTML=_ff;applyHtmlMacros(_dd,null);refreshElements(_dd,null);var _100=new _f6(_dd);_f5.renderPage(_100);_f2();};_f5.getItemsPerPage=function(){var n=(config.options.chkPreviewText)?abego.toInt(config.options.txtItemsPerPageWithPreview,_d9):abego.toInt(config.options.txtItemsPerPage,_d8);return (n>0)?n:1;};_f5.onPageChanged=function(){_fe();};var _101=function(){if(_de==null||!config.options.chkUseYourSearch){return;}if((_de.value==_dc)&&_dc&&!_e2()){if(_dd&&(_dd.parentNode!=document.body)){document.body.appendChild(_dd);_f2();}else{abego.YourSearch.onShowResult(true);}}};var _102=function(){_e3();_dd=null;_dc=null;};var _103=function(self,e){while(e!=null){if(self==e){return true;}e=e.parentNode;}return false;};var _104=function(e){if(e.target==_de){return;}if(e.target==_df){return;}if(_dd&&_103(_dd,e.target)){return;}_e3();};var _105=function(e){if(e.keyCode==27){_e3();}};addEvent(document,"click",_104);addEvent(document,"keyup",_105);var _106=function(text,_107,_108){_dc=text;_b3(_c5(store,text,_107,_108,"title","excludeSearch"));abego.YourSearch.onShowResult();};var _109=function(_10a,_10b,_10c,_10d,_10e,_10f){_e1();_dc="";var _110=null;var _111=function(txt){if(config.options.chkUseYourSearch){_106(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}else{story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}_dc=txt.value;};var _112=function(e){_111(_de);return false;};var _113=function(e){if(!e){var e=window.event;}_de=this;switch(e.keyCode){case 13:if(e.ctrlKey&&_e0&&_e2()){_e0.onclick.apply(_e0,[e]);}else{_111(this);}break;case 27:if(_e2()){_e3();}else{this.value="";clearMessage();}break;}if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){_101();}if(this.value.length<3&&_110){clearTimeout(_110);}if(this.value.length>2){if(this.value!=_dc){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(_110){clearTimeout(_110);}var txt=this;_110=setTimeout(function(){_111(txt);},500);}}else{if(_110){clearTimeout(_110);}}}if(this.value.length==0){_e3();}};var _114=function(e){this.select();clearMessage();_101();};var args=_10e.parseParams("list",null,true);var _115=getFlag(args,"buttonAtRight");var _116=getParam(args,"sizeTextbox",this.sizeTextbox);var btn;if(!_115){btn=createTiddlyButton(_10a,this.label,this.prompt,_112);}var txt=createTiddlyElement(null,"input",null,null,null);if(_10c[0]){txt.value=_10c[0];}txt.onkeyup=_113;txt.onfocus=_114;txt.setAttribute("size",_116);txt.setAttribute("accessKey",this.accessKey);txt.setAttribute("autocomplete","off");if(config.browser.isSafari){txt.setAttribute("type","search");txt.setAttribute("results","5");}else{txt.setAttribute("type","text");}if(_10a){_10a.appendChild(txt);}if(_115){btn=createTiddlyButton(_10a,this.label,this.prompt,_112);}_de=txt;_df=btn;};var _117=function(){_e3();var _118=_b5();var n=_118.length;if(n){var _119=[];for(var i=0;i<n;i++){_119.push(_118[i].title);}story.displayTiddlers(null,_119);}};var _11a=function(_11b,_11c,_11d,_11e){invokeMacro(_11b,"option",_11c,_11d,_11e);var elem=_11b.lastChild;var _11f=elem.onclick;elem.onclick=function(e){var _120=_11f.apply(this,arguments);_fe();return _120;};return elem;};var _121=function(s){var _122=["''","{{{","}}}","//","<<<","/***","***/"];var _123="";for(var i=0;i<_122.length;i++){if(i!=0){_123+="|";}_123+="("+_122[i].escapeRegExp()+")";}return s.replace(new RegExp(_123,"mg"),"").trim();};var _124=function(){var i=_f3;return (i>=0&&i<=9)?(i<9?(i+1):0):-1;};var _125=new abego.LimitedTextRenderer();var _126=function(_127,s,_128){_125.render(_127,s,_128,_b2.getMarkRegExp());};var _129=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_12a,_12b,_12c,_12d,_12e,tags,_12f){_129.apply(this,arguments);_102();};var _130=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_131){_130.apply(this,arguments);_102();};config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",handler:function(_132,_133,_134,_135,_136,_137){if(_134.length==0){return;}var name=_134[0];var func=config.macros.yourSearch.funcs[name];if(func){func(_132,_133,_134,_135,_136,_137);}},tests:{"true":function(){return true;},"false":function(){return false;},"found":function(){return _b6()>0;},"previewText":function(){return config.options.chkPreviewText;}},funcs:{itemRange:function(_138){if(_b6()){var _139=_f5.getLastIndexOnPage();var s="%0 - %1".format([_f5.getFirstIndexOnPage()+1,_139+1]);createTiddlyText(_138,s);}},count:function(_13a){createTiddlyText(_13a,_b6().toString());},query:function(_13b){if(_b2){createTiddlyText(_13b,_b2.toString());}},version:function(_13c){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(_13c,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#YourSearchPlugin");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">"+t+"<font>";},copyright:function(_13d){var e=createTiddlyElement(_13d,"a");e.setAttribute("href","http://www.abego-software.de");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">&copy; 2005-2008 <b><font color=\"red\">abego</font></b> Software<font>";},newTiddlerButton:function(_13e){if(_b2){var r=abego.parseNewTiddlerCommandLine(_b2.getQueryText());var btn=config.macros.newTiddler.createNewTiddlerButton(_13e,r.title,r.params,"new tiddler","Create a new tiddler based on search text. (Shortcut: Ctrl-Enter; Separators: '.', '#')",null,"text");var _13f=btn.onclick;btn.onclick=function(){_e3();_13f.apply(this,arguments);};_e0=btn;}},linkButton:function(_140,_141,_142,_143,_144,_145){if(_142<2){return;}var _146=_142[1];var text=_142<3?_146:_142[2];var _147=_142<4?text:_142[3];var _148=_142<5?null:_142[4];var btn=createTiddlyButton(_140,text,_147,_e4,null,null,_148);btn.setAttribute("tiddlyLink",_146);},closeButton:function(_149,_14a,_14b,_14c,_14d,_14e){var _14f=createTiddlyButton(_149,"close","Close the Search Results (Shortcut: ESC)",_e3);},openAllButton:function(_150,_151,_152,_153,_154,_155){var n=_b6();if(n==0){return;}var _156=n==1?"open tiddler":"open all %0 tiddlers".format([n]);var _157=createTiddlyButton(_150,_156,"Open all found tiddlers (Shortcut: Alt-O)",_117);_157.setAttribute("accessKey","O");},naviBar:function(_158,_159,_15a,_15b,_15c,_15d){_f5.addPageNavigation(_158);},"if":function(_15e,_15f,_160,_161,_162,_163){if(_160.length<2){return;}var _164=_160[1];var _165=(_164=="not");if(_165){if(_160.length<3){return;}_164=_160[2];}var test=config.macros.yourSearch.tests[_164];var _166=false;try{if(test){_166=test(_15e,_15f,_160,_161,_162,_163)!=_165;}else{_166=(!eval(_164))==_165;}}catch(ex){}if(!_166){_15e.style.display="none";}},chkPreviewText:function(_167,_168,_169,_16a,_16b,_16c){var _16d=_169.slice(1).join(" ");var elem=_11a(_167,"chkPreviewText",_16a,_16c);elem.setAttribute("accessKey","P");elem.title="Show text preview of found tiddlers (Shortcut: Alt-P)";return elem;}}};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",handler:function(_16e,_16f,_170,_171,_172,_173){var name=_170[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(_16e,_16f,_170,_171,_172,_173);}},funcs:{title:function(_174,_175,_176,_177,_178,_179){if(!_f4){return;}var _17a=_124();var _17b=_17a>=0?"Open tiddler (Shortcut: Alt-%0)".format([_17a.toString()]):"Open tiddler";var btn=createTiddlyButton(_174,null,_17b,_e4,null);btn.setAttribute("tiddlyLink",_f4.title);btn.setAttribute("withHilite","true");_126(btn,_f4.title,_d4);if(_17a>=0){btn.setAttribute("accessKey",_17a.toString());}},tags:function(_17c,_17d,_17e,_17f,_180,_181){if(!_f4){return;}_126(_17c,_f4.getTags(),_d5);},text:function(_182,_183,_184,_185,_186,_187){if(!_f4){return;}_126(_182,_121(_f4.text),_d6);},field:function(_188,_189,_18a,_18b,_18c,_18d){if(!_f4){return;}var name=_18a[1];var len=_18a.length>2?abego.toInt(_18a[2],_d7):_d7;var v=store.getValue(_f4,name);if(v){_126(_188,_121(v),len);}},number:function(_18e,_18f,_190,_191,_192,_193){var _194=_124();if(_194>=0){var text="%0)".format([_194.toString()]);createTiddlyElement(_18e,"span",null,"shortcutNumber",text);}}}};var opts={chkUseYourSearch:true,chkPreviewText:true,chkSearchAsYouType:true,chkSearchInTitle:true,chkSearchInText:true,chkSearchInTags:true,chkSearchExtendedFields:true,txtItemsPerPage:_d8,txtItemsPerPageWithPreview:_d9};for(var n in opts){if(config.options[n]==undefined){config.options[n]=opts[n];}}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseYourSearch>> Use 'Your Search' //([[more options|YourSearch Options]]) ([[help|YourSearch Help]])// ";config.shadowTiddlers["YourSearch Help"]="!Field Search\nWith the Field Search you can restrict your search to certain fields of a tiddler, e.g"+" only search the tags or only the titles. The general form is //fieldname//'':''//textToSearch// (e."+"g. {{{title:intro}}}). In addition one-character shortcuts are also supported for the standard field"+"s {{{title}}}, {{{text}}} and {{{tags}}}:\n|!What you want|!What you type|!Example|\n|Search ''titles "+"only''|start word with ''!''|{{{!jonny}}} (shortcut for {{{title:jonny}}})|\n|Search ''contents/text "+"only''|start word with ''%''|{{{%football}}} (shortcut for {{{text:football}}})|\n|Search ''tags only"+"''|start word with ''#''|{{{#Plugin}}} (shortcut for {{{tags:Plugin}}})|\n\nUsing this feature you may"+" also search the extended fields (\"Metadata\") introduced with TiddlyWiki 2.1, e.g. use {{{priority:1"+"}}} to find all tiddlers with the priority field set to \"1\".\n\nYou may search a word in more than one"+" field. E.g. {{{!#Plugin}}} (or {{{title:tags:Plugin}}} in the \"long form\") finds tiddlers containin"+"g \"Plugin\" either in the title or in the tags (but does not look for \"Plugin\" in the text). \n\n!Boole"+"an Search\nThe Boolean Search is useful when searching for multiple words.\n|!What you want|!What you "+"type|!Example|\n|''All words'' must exist|List of words|{{{jonny jeremy}}} (or {{{jonny and jeremy}}}"+")|\n|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|\n|A word ''must "+"not exist''|Start word with ''-''|{{{-jonny}}} (or {{{not jonny}}})|\n\n''Note:'' When you specify two"+" words, separated with a space, YourSearch finds all tiddlers that contain both words, but not neces"+"sarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need"+" to put the words into quotes. I.e. you type: {{{\"john brown\"}}}.\n\nUsing parenthesis you may change "+"the default \"left to right\" evaluation of the boolean search. E.g. {{{not (jonny or jeremy)}}} finds"+" all tiddlers that contain neither \"jonny\" nor \"jeremy. In contrast to this {{{not jonny or jeremy}}"+"} (i.e. without parenthesis) finds all tiddlers that either don't contain \"jonny\" or that contain \"j"+"eremy\".\n\n!'Exact Word' Search\nBy default a search result all matches that 'contain' the searched tex"+"t. E.g. if you search for {{{Task}}} you will get all tiddlers containing 'Task', but also '~Complet"+"edTask', '~TaskForce' etc.\n\nIf you only want to get the tiddlers that contain 'exactly the word' you"+" need to prefix it with a '='. E.g. typing '=Task' will find the tiddlers that contain the word 'Tas"+"k', ignoring words that just contain 'Task' as a substring.\n\n!~CaseSensitiveSearch and ~RegExpSearch"+"\nThe standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearc"+"h. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.\n\nIn addition you m"+"ay do a \"regular expression\" search even with the ''~RegExpSearch'' set to false by directly enterin"+"g the regular expression into the search field, framed with {{{/.../}}}. \n\nExample: {{{/m[ae][iy]er/"+"}}} will find all tiddlers that contain either \"maier\", \"mayer\", \"meier\" or \"meyer\".\n\n!~JavaScript E"+"xpression Filtering\nIf you are familiar with JavaScript programming and know some TiddlyWiki interna"+"ls you may also use JavaScript expression for the search. Just enter a JavaScript boolean expression"+" into the search field, framed with {{{ { ... } }}}. In the code refer to the variable tiddler and e"+"valuate to {{{true}}} when the given tiddler should be included in the result. \n\nExample: {{{ { tidd"+"ler.modified > new Date(\"Jul 4, 2005\")} }}} returns all tiddler modified after July 4th, 2005.\n\n!Com"+"bined Search\nYou are free to combine the various search options. \n\n''Examples''\n|!What you type|!Res"+"ult|\n|{{{!jonny !jeremy -%football}}}|all tiddlers with both {{{jonny}}} and {{{jeremy}}} in its tit"+"les, but no {{{football}}} in content.|\n|{{{#=Task}}}|All tiddlers tagged with 'Task' (the exact wor"+"d). Tags named '~CompletedTask', '~TaskForce' etc. are not considered.|\n\n!Access Keys\nYou are encour"+"aged to use the access keys (also called \"shortcut\" keys) for the most frequently used operations. F"+"or quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.\n\n|"+"!Key|!Operation|\n|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search in"+"put field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the pr"+"evious search result. This way you can quickly display multiple tiddlers using \"Press {{{Alt-F}}}. S"+"elect tiddler.\" sequences.|\n|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Resul"+"t]] is already closed and the cursor is in the search input field the field's content is cleared so "+"you start a new query.|\n|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second e"+"tc. tiddler from the result list.|\n|{{{Alt-O}}}|Opens all found tiddlers.|\n|{{{Alt-P}}}|Toggles the "+"'Preview Text' mode.|\n|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[Your"+"Search Result]].|\n|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the "+"{{{Return}}} key actually starts the search (as does pressing the 'search' button).|\n\n//If some of t"+"hese shortcuts don't work for you check your browser if you have other extensions installed that alr"+"eady \"use\" these shortcuts.//";config.shadowTiddlers["YourSearch Options"]="|>|!YourSearch Options|\n|>|<<option chkUseYourSearch>> Use 'Your Search'|\n|!|<<option chkPreviewText"+">> Show Text Preview|\n|!|<<option chkSearchAsYouType>> 'Search As You Type' Mode (No RETURN required"+" to start search)|\n|!|Default Search Filter:<<option chkSearchInTitle>>Title ('!')     <<option chk"+"SearchInText>>Text ('%')     <<option chkSearchInTags>>Tags ('#')    <<option chkSearchExtendedFiel"+"ds>>Extended Fields<html><br><font size=\"-2\">The fields of a tiddlers that are searched when you don"+"'t explicitly specify a filter in the search text <br>(Explictly specify fields using one or more '!"+"', '%', '#' or 'fieldname:' prefix before the word/text to find).</font></html>|\n|!|Number of items "+"on search result page: <<option txtItemsPerPage>>|\n|!|Number of items on search result page with pre"+"view text: <<option txtItemsPerPageWithPreview>>|\n";config.shadowTiddlers["YourSearchStyleSheet"]="/***\n!~YourSearchResult Stylesheet\n***/\n/*{{{*/\n.yourSearchResult {\n\tposition: absolute;\n\twidth: 800"+"px;\n\n\tpadding: 0.2em;\n\tlist-style: none;\n\tmargin: 0;\n\n\tbackground: #ffd;\n\tborder: 1px solid DarkGra"+"y;\n}\n\n/*}}}*/\n/***\n!!Summary Section\n***/\n/*{{{*/\n.yourSearchResult .summary {\n\tborder-bottom-width:"+" thin;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: #999999;\n\tpadding-bottom: 4px;\n}\n\n.yourSea"+"rchRange, .yourSearchCount, .yourSearchQuery   {\n\tfont-weight: bold;\n}\n\n.yourSearchResult .summary ."+"button {\n\tfont-size: 10px;\n\n\tpadding-left: 0.3em;\n\tpadding-right: 0.3em;\n}\n\n.yourSearchResult .summa"+"ry .chkBoxLabel {\n\tfont-size: 10px;\n\n\tpadding-right: 0.3em;\n}\n\n/*}}}*/\n/***\n!!Items Area\n***/\n/*{{{*"+"/\n.yourSearchResult .marked {\n\tbackground: none;\n\tfont-weight: bold;\n}\n\n.yourSearchItem {\n\tmargin-to"+"p: 2px;\n}\n\n.yourSearchNumber {\n\tcolor: #808080;\n}\n\n\n.yourSearchTags {\n\tcolor: #008000;\n}\n\n.yourSearc"+"hText {\n\tcolor: #808080;\n\tmargin-bottom: 6px;\n}\n\n/*}}}*/\n/***\n!!Footer\n***/\n/*{{{*/\n.yourSearchFoote"+"r {\n\tmargin-top: 8px;\n\tborder-top-width: thin;\n\tborder-top-style: solid;\n\tborder-top-color: #999999;"+"\n}\n\n.yourSearchFooter a:hover{\n\tbackground: none;\n\tcolor: none;\n}\n/*}}}*/\n/***\n!!Navigation Bar\n***/"+"\n/*{{{*/\n.yourSearchNaviBar a {\n\tfont-size: 16px;\n\tmargin-left: 4px;\n\tmargin-right: 4px;\n\tcolor: bla"+"ck;\n\ttext-decoration: underline;\n}\n\n.yourSearchNaviBar a:hover {\n\tbackground-color: none;\n}\n\n.yourSe"+"archNaviBar .prev {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n\n.yourSearchNaviBar .currentPage {\n\tcolor: #"+"FF0000;\n\tfont-weight: bold;\n\ttext-decoration: none;\n}\n\n.yourSearchNaviBar .next {\n\tfont-weight: bold"+";\n\tcolor: blue;\n}\n/*}}}*/\n";config.shadowTiddlers["YourSearchResultTemplate"]="<!--\n{{{\n-->\n<span macro=\"yourSearch if found\">\n<!-- The Summary Header ============================"+"================ -->\n<table class=\"summary\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">"+"<tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Result <span class=\"yourSearchRange\" macro=\"yourSearc"+"h itemRange\"></span>\n\t\t&nbsp;of&nbsp;<span class=\"yourSearchCount\" macro=\"yourSearch count\"></span>\n"+"\t\tfor&nbsp;<span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>\n\t</td>\n\t<td class=\"yourSea"+"rchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch chkPreviewText\"></span><span class=\"chkBoxLabel"+"\">preview text</span>\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch openAllButton\"></span>\n\t\t<span macro=\"yourSearch lin"+"kButton 'YourSearch Options' options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkB"+"utton 'YourSearch Help' help 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch clo"+"seButton\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n\n<!-- The List of Found Tiddlers ================="+"=========================== -->\n<div id=\"yourSearchResultItems\" itemsPerPage=\"25\" itemsPerPageWithPr"+"eview=\"10\"></div>\n\n<!-- The Footer (with the Navigation) ==========================================="+"= -->\n<table class=\"yourSearchFooter\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody"+">\n  <tr>\n\t<td align=\"left\">\n\t\tResult page: <span class=\"yourSearchNaviBar\" macro=\"yourSearch naviBar"+"\"></span>\n\t</td>\n\t<td align=\"right\"><span macro=\"yourSearch version\"></span>, <span macro=\"yourSearc"+"h copyright\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n<!-- end of the 'tiddlers found' case ========="+"================================== -->\n</span>\n\n\n<!-- The \"No tiddlers found\" case ================="+"========================== -->\n<span macro=\"yourSearch if not found\">\n<table class=\"summary\" border="+"\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Resu"+"lt: No tiddlers found for <span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>.\n\t</td>\n\t<t"+"d class=\"yourSearchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Options'"+" options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Help' help"+" 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch closeButton\"></span>\n\t</td>\n  <"+"/tr>\n</tbody></table>\n</span>\n\n\n<!--\n}}}\n-->\n";config.shadowTiddlers["YourSearchItemTemplate"]="<!--\n{{{\n-->\n<span class='yourSearchNumber' macro='foundTiddler number'></span>\n<span class='yourSea"+"rchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;\n<span class='yourSearchTags' macro='found"+"Tiddler field tags 50'/></span>\n<span macro=\"yourSearch if previewText\"><div class='yourSearchText' macro='fo"+"undTiddler field text 250'/></div></span>\n<!--\n}}}\n-->";config.shadowTiddlers["YourSearch"]="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";config.macros.search.handler=_109;var _195=function(){if(config.macros.search.handler!=_109){alert("Message from YourSearchPlugin:\n\n\nAnother plugin has disabled the 'Your Search' features.\n\n\nYou may "+"disable the other plugin or change the load order of \nthe plugins (by changing the names of the tidd"+"lers)\nto enable the 'Your Search' features.");}};setTimeout(_195,5000);abego.YourSearch.getStandardRankFunction=function(){return _bb;};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction();};abego.YourSearch.getCurrentTiddler=function(){return _f4;};abego.YourSearch.closeResult=function(){_e3();};abego.YourSearch.getFoundTiddlers=function(){return _b1;};abego.YourSearch.getQuery=function(){return _b2;};abego.YourSearch.onShowResult=function(_196){highlightHack=_b2?_b2.getMarkRegExp():null;if(!_196){_f5.setItems(_b5());}if(!_dd){_dd=createTiddlyElement(document.body,"div",_da,"yourSearchResult");}else{if(_dd.parentNode!=document.body){document.body.appendChild(_dd);}}_fe();highlightHack=null;};})();}
//%/
!Field Search
With the Field Search you can restrict your search to certain fields of a tiddler, e.g only search the tags or only the titles. The general form is //fieldname//'':''//textToSearch// (e.g. {{{title:intro}}}). In addition one-character shortcuts are also supported for the standard fields {{{title}}}, {{{text}}} and {{{tags}}}:
|!What you want|!What you type|!Example|
|Search ''titles only''|start word with ''!''|{{{!jonny}}} (shortcut for {{{title:jonny}}})|
|Search ''contents/text only''|start word with ''%''|{{{%football}}} (shortcut for {{{text:football}}})|
|Search ''tags only''|start word with ''#''|{{{#Plugin}}} (shortcut for {{{tags:Plugin}}})|

Using this feature you may also search the extended fields ("Metadata") introduced with TiddlyWiki 2.1, e.g. use {{{priority:1}}} to find all tiddlers with the priority field set to "1".

You may search a word in more than one field. E.g. {{{!#Plugin}}} (or {{{title:tags:Plugin}}} in the "long form") finds tiddlers containing "Plugin" either in the title or in the tags (but does not look for "Plugin" in the text). 

!Boolean Search
The Boolean Search is useful when searching for multiple words.
|!What you want|!What you type|!Example|
|''All words'' must exist|List of words|{{{jonny jeremy}}} (or {{{jonny and jeremy}}})|
|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|
|A word ''must not exist''|Start word with ''-''|{{{-jonny}}} (or {{{not jonny}}})|

''Note:'' When you specify two words, separated with a space, YourSearch finds all tiddlers that contain both words, but not necessarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need to put the words into quotes. I.e. you type: {{{"john brown"}}}.

Using parenthesis you may change the default "left to right" evaluation of the boolean search. E.g. {{{not (jonny or jeremy)}}} finds all tiddlers that contain neither "jonny" nor "jeremy. In contrast to this {{{not jonny or jeremy}}} (i.e. without parenthesis) finds all tiddlers that either don't contain "jonny" or that contain "jeremy".

!'Exact Word' Search
By default a search result all matches that 'contain' the searched text. E.g. if you search for {{{Task}}} you will get all tiddlers containing 'Task', but also '~CompletedTask', '~TaskForce' etc.

If you only want to get the tiddlers that contain 'exactly the word' you need to prefix it with a '='. E.g. typing '=Task' will find the tiddlers that contain the word 'Task', ignoring words that just contain 'Task' as a substring.

!~CaseSensitiveSearch and ~RegExpSearch
The standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearch. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.

In addition you may do a "regular expression" search even with the ''~RegExpSearch'' set to false by directly entering the regular expression into the search field, framed with {{{/.../}}}. 

Example: {{{/m[ae][iy]er/}}} will find all tiddlers that contain either "maier", "mayer", "meier" or "meyer".

!~JavaScript Expression Filtering
If you are familiar with JavaScript programming and know some TiddlyWiki internals you may also use JavaScript expression for the search. Just enter a JavaScript boolean expression into the search field, framed with {{{ { ... } }}}. In the code refer to the variable tiddler and evaluate to {{{true}}} when the given tiddler should be included in the result. 

Example: {{{ { tiddler.modified > new Date("Jul 4, 2005")} }}} returns all tiddler modified after July 4th, 2005.

!Combined Search
You are free to combine the various search options. 

''Examples''
|!What you type|!Result|
|{{{!jonny !jeremy -%football}}}|all tiddlers with both {{{jonny}}} and {{{jeremy}}} in its titles, but no {{{football}}} in content.|
|{{{#=Task}}}|All tiddlers tagged with 'Task' (the exact word). Tags named '~CompletedTask', '~TaskForce' etc. are not considered.|

!Access Keys
You are encouraged to use the access keys (also called "shortcut" keys) for the most frequently used operations. For quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.

|!Key|!Operation|
|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search input field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the previous search result. This way you can quickly display multiple tiddlers using "Press {{{Alt-F}}}. Select tiddler." sequences.|
|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Result]] is already closed and the cursor is in the search input field the field's content is cleared so you start a new query.|
|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second etc. tiddler from the result list.|
|{{{Alt-O}}}|Opens all found tiddlers.|
|{{{Alt-P}}}|Toggles the 'Preview Text' mode.|
|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[YourSearch Result]].|
|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the {{{Return}}} key actually starts the search (as does pressing the 'search' button).|

//If some of these shortcuts don't work for you check your browser if you have other extensions installed that already "use" these shortcuts.//
Una manera de extraer todo el sabor del ajo consiste en salarlo en un vaso estrecho. Si después va a ser utilizado para una salsa con e.g. orégano y aceite, se puede mezclar todo, en lugar de freír (ejemplo: salsa con champignones de philipp para la pasta).
el apio tiene dos aplicaciones sencillas (dix Marta):

la italiana: [[salsa de tomate]] para [[pasta]]
la espagnola: [[sopa]] o [[caldo]] tipo [[cocido]] con una [[cebollita|cebolla]], [[tomate]], [[ajo]] y un [[hueso]] o trozo de [[pollo]] o [[gallina]].

!! Ingredientes para 4 personas

* 4 tacitas moca de arroz
* 200 g de garbanzos cocidos
* 4 dientes de ajo
* 1 cebolla
* 1/2 Kg de tomates maduros
* 1 tomate rojo, pero duro
* 1 patata mediana
* 1 cabeza de ajos partida por la mitad
* 9 tacitas moca de caldo de cocido
* 8 cucharadas de aceite
* unas hebras de azafrán
* 1 cucharadita de pimentón
* sal y perejil

!!Procedimiento

. Calentar el aceite en una cazuela de barro (o en una paellera que luego pueda ir al horno) y freír los 4 dientes de ajo picados.
. antes de que se doren, añadir la cebolla picada
. freír unos minutos y añadir el tomate pelado u sin pepitas
. cuando se consuma el agua del tomate, añadir el pimentón, el perejil picado,  y el azafrán tostado y deshecho
. añadir los garbanzos al  refrito y darles una vuelta
. pelar la patata, lavarla, cortarla en rodajas y medio freírla con todo lo demás
. lavar el tomate rojo, cortarlo en rodajas, añadirlas y rehogarlas ligeramente
. incorporar el arroz, rehogarlo con cuidado de no deshacer las rodajas de tomate y verter encima el caldo hirviendo
. cocer 3 minutos sobre el fuego, poner en el centro la cabeza de ajos cortada por la mitad y repartir la patata y el tomate
. comprobar el punto de sazón e introducir en el horno (precalentado) durante 20 minutos a 200º

Nota: Creo que es un plato valenciano y es sorprendentemente rico. Se puede hacer aprovechando un cocido o por libre: cociendo los garbanzos con verdura (cebolla, puerro, zanahoria, un diente de ajo, perejil, un par de hojas de berza...), un hueso de jamón  y otro fresco, si se tiene...Si le metemos carne, nos plantamos en el cocido y no es plan. En este último caso, no pasarse de agua para cocer los garbanzos:  se consiguen dos ingredientes a la vez, los garbanzos y el caldo. Yo lo he hecho y sale estupendamente.
Tostar el azafrán tiene su miga: es bastante fácil quemarlo, así que no pasa nada si no se tuesta. 
!! Ingredientes


!! Procedimiento

!!Ingredientes
* 1/2 kg de [[arroz]]
* 6 [[pimiento]]s
* agua
* sal
* 150g de mantequilla
* 2 dientes de ajo
* queso rallado ([[parmesano]] ideal por su fuerte sabor)
!! Procedimiento
# poner a [[cocer]] abundante agua con sal y aceite
# añadir el arroz al agua en ebullición y dejar durante 15 minutos aproximadamente. Escurrir al retirar.
# mientras tanto, en una sartén con aceite y la mitad de la mantequilla, [[freír]] los pimientos en tiras y el ajo. Sazonar. 
# cuando esté pochado, retirar de la sartén y [[rehogar]] ahí el arroz cocido.
# colocar el arroz en una fuente de horno, cubrir con los pimientos, unas nueces de mantequilla y queso.
# gratinar 6-8 minutos y servir.
!!Ingredientes
* 3 berenjenas
* 1 tomate grande
* 300 grs de queso
* pimentón
!!Procedimiento
# lavar las berenjenas y cortarlas en láminas de 1/2 cm
# cortar el tomate en rodajas
# pasar láminas de berenjenas por harina y freír ligeramente
# aceitar un molde para horno
# formar capas: bereneja con pimienta, sal y pimentón, rodajas de tomate, queso (...) rodajas de tomate, queso de [[gratinar]]


!! Ingredientes
* Un yogur de limón tamagno Danone (será la //medida//); en su defecto: un yogur natural y raspaduras de piel de limón
* Tres medidas de harina
* Dos medidas de azúcar blanco
* Una medida de aceite de oliva
* Un sobrecito de levadura
* Opcional (para versión "mármol") Una [[CS]] bien cargada de [[cacao en polvo]] (por ejemplo, cola-cao). Parece que se puede también hacer con chocolate.
* 3 huevos.

!! Procedimiento
Poner en un recipiente para la [[batidora]] todos los ingredientes mencionados (salvo el cacao), utilizando el yogur como medida y vertiendo el aceite en último lugar para evitar que el azúcar y la harina se peguen a sus paredes. Ocupará aproximadamente 1 a 1.1 L.

Poner el horno a precalentar a 180C mientras se bate a conciencia la untuosa mezcla. Si se desea un bizcocho con zonas chocolateadas ("bizcocho mármol"), separar 1/3 de la mezcla a otro recipiente, echarle cucharada bien cargada de cacao en polvo y batir hasta que quede homogénea.

Preparar un [[molde]] de repostería untándolo con mantequilla por todo su interior (meterlo al horno ayudará a que la mantequilla se liquidifique y sea más fácil de repartir).  Después espolvorear harina. Así no se pegará al sacarlo.

Verter el contenido de las dos jarras, sin mezclar demasiado para que se distinga bien la zona chocolateada y meter el molde al horno durante unos 40'. Para comprobar que está hecho, observar el color de la superficie e introducir un cuchillo, que debe salir seco. Los últimos minutos se pueden hacer con el calor residual.

No desmoldar inmediatamente, sino esperar a que se enfríe.




[<img[calabaza partida por la mitad|http://farm2.static.flickr.com/1207/1470362200_d068626e64.jpg][calabaza partida por la mitad]]























especificar qué tipo de caldo..
!!Ingredientes
Membrillos y azúcar.
!!Procedimiento
# Limpiar los membrillos de su pelusa frotándolos con un paño.
# Trocearlos (en [[gajos]] de 1/8, por ejemplo, pero dependiendo del tamaño), quitándoles los rabillos extremos y el corazón duro que contiene las semillas, pues su consistencia leñosa fastidiaría la textura final: deben quedar trozo de pulpa limpios con su piel. Reservar todas las simientes que van saliendo en esta operación. Al final, reunirlas en un atadillo que se hace con una gasa o un trapito fino: es el fardito de las pepitas que se incluirá en la cocción.
# Poner en la olla exprés el membrillo con agua, a razón aproximadamente de 1kg. de fruta/ 1l. de agua, y con el fardito de las pepitas. Cocer entre 10 y 15 minutos, según la olla.
# Escurrir por completo el membrillo de su agua en un colador, presionando con una cuchara para eliminar todo el líquido posible. Si se va a hacer jalea, se reserva el agua, preciado tesoro, si no, se tira como hace todo el mundo ( la receta de la jalea para otro día)
# De nuevo en la olla, por no manchar otro cacharro y, sobre todo por ser honda, se pone la pulpa previamente pesada y el azúcar (500 g. de pulpa/300 de azúcar) a hervir a fuego medio... y a dar vueltas, con tanta más continuidad cuanto más avance la cocción que no suele durar menos de una hora, dependiendo de la cantidad que se esté haciendo y de lo escurridita que hayamos dejado la fruta.
#A los 20-30 minutos se mete la varilla de la batidora un poquito para que la pasta quede más homogénea. Se puede dar por terminado cuando a la vez que ha adquirido un bonito color oscuro, se ha densificado de modo que cuesta seguir dándolo vueltas (esto ...es conveniente no dejarse llevar por la impaciencia ni sentirse demasiado aludida por la respuesta impertinente en forma de pequeñas erupciones con que suele obsequiarnos: salta y quema). En todo caso, sacar un poco al borde de un plato y si no se va al fondo y se va quedando como trabadito al enfriarse...pues, ya está.  Un procedimiento para acelerar el secado es meterlo en el horno durante una o dos horas a temperatura mínima, una vez ya vaciado en la fuente-molde.

!!Ingredientes
* Para un par de cebollas (1/2 kg): 
* 2 o 3 cucharadas de aceite
* 1 cucharada rasa de azúcar, un poquito de sal
* un buen chorro de vino (moscatel, PX, o jerez) o un chorrito de buen vinagre (jerez o módena)
* Optativo: un puñadito de pasas de corinto, si lo que se emplea es vino. En este caso, mientras se pocha la cebolla se ponen las pasas a remojar en el vino).
!!Procedimiento
* Cortar en aros finos (-finos-) la cebolla, ponerla a pochar a fuego lento con el azúcar y la sal (entre 1/2 hora y 3/4).
*  Una vez pochada añadir el vino, con o sin las pasas, o bien el vinagre, según hayan sido las opciones. Subir el fuego (no al máximo) para que se vaya reduciendo. Vigilar esta operación, dándole vueltas para evitr que se pegu y controlando el fuego. Cuando se haya consumido el líquido la cebolla debe tener la consistencia de hilos (o cintitas ) untuosos y brillantes, pero sin caldo alguno.

Aplicaciones múltiples:
* Guarnición de carne, que si es de cerdo o pollo admite las dos opciones: vino o vinagre y si es ternera, mejor la de vinagre.
* Tostas: Con queso de cabra, camemberg u otro.....
Pueden hacerse con cualquier pan, pero hay panes especiales, multicereales, de semillas variadas, de nueces...o tradicionales de buena masa del tipo de la hogaza de León de aquí, que mejoran mucho el resultado: Tostar las rebanadas, poner una cama de cebolla caramelizada, el queso y unos hilos de cebolla, poquita cosa bien dispuesta, un o dos pasitas por encima para decorar.
Se puede sustituir el queso, en plan pasada, por foie de ese que le regala a uno un amigo francés, abrigando la cebolla con una loncha finísima de jamón y encima el foie.....


Nota: Conviene no pillarse los dedos con el tiempo y ponerlo a hacer pronto o incluso la víspera, porque se conserva bien.
!! Ingredientes para 2 personas
* Preparado para chili con carne (un sobre de polvos, maggi)
* Opcional: una cebolla
* 1 lata (425ml) de [[alubias pintas]] ("pinto bohnen") cocidas en lata
* 200g carne picada
* puré de patata de sobre

!! Procedimiento
# Por un lado: sofreír la carne. Agnadir la cebolla en cubitos y una cucharada de miel, si la hay a mano. Pochar.
# Verter 250ml de agua, Mezclar el contenido del sobre, llevar a ebullicion y mantenerla 5 minutos a fuego bajo.
# Echarle las alubias sin el líquido y remover hasta que adquieran la temperatura.
# Hacer el [[puré de patata de sobre]]


!!ingredientes [para cuatro]

* 16 chipirones
* 2 cebollas
* 2 dientes de ajo
* 1 pimiento verde [facultativo]
* 1 punta de jamón [facultativo]
* 4 tomates maduros o tomate triturado (~250 gr.)
* aceite 
* sal
* 2 bolsitas de tinta

!! Procedimiento

Limpiar los chipirones: separamos las patas de la bolsa. Quitamos la piel exterior, damos la vuelta, quitamos el pincho cartilaginoso, y limpiamos por dentro y fuera bajo el grifo de agua fría. Cerca de la "espina" se encuentran las bolsas de tinta que pueden reservarse. Normalmente no es suficiente y se compra tinta separadamente o se pide en la pescadería. En Munich se encuentra por ejemplo en la tienda española de la Elisabethpl.

El relleno: picamos una cebolla y un diente de ajo muy finos. Sofreímos. Añadimos el jamón y los tentáculos de los calamares troceados. Cuando está listo rellenamos los cuerpos de los chipirones. Pueden cerrase con un palillo para que no se salga el relleno. 

La salsa: sofreímos la otra cebolla, con el diente de ajo y si deseamos con el pimiento verde, todo troceado. Cuando está pochado añadimos los tomates picados o triturado, con sal y azúcar. A continuación disolvemos la tinta en un poquito de agua, y vertemos la mezcla en la salsa de tomate.  Tras remover para que adquiera una consistencia homogénea añadimos los calamares y dejamos cocer a fuego lento unos 40 minutos. 

!! Notas

* Si se comen un día después de cocinarlos están mucho más sabrosos. 
* Cuidado con la sal. Sobre todo si se añade jamón pueden quedar muy sabrosos.
* Una cazuela de barro o una ancha y baja son los mejores recipientes. 
* Se puede acompañar de arroz blanco. 
* Si sobra salsa es excelente para hacer un arroz negro o huevos escalfados al día siguiente. 


!!!!
!!

!!wie

Die Tintenfischen: wir trennen die Tentakeln von den Körper. Wir drehen die Beutel, nehmen den Stöckchen weg, reservieren die neben an liegenden Tintenbeutel, wenn wir die finden, und reinen wir drin und draus die Tintenfischbeutel unter die Wasserhahn. 

Die Füllung: wir hacken ganz klein eine Zwiebel, eine Knoblauchzehe und die Tentakeln der Calamari, zusammen mit den Schinken, wenn wir es wollen. Wir braten das ganze in einer Pfanne an und wenn es fertig es füllen wir damit die Köpfe der Tintenfische. Wi schließen die Beutel mit einen Zahnstocher. 

Die Soße: wir schneiden die andere Zwiebel, Knoblauchzehe und die Paprika ganz klein und lassen die in einer Pfanne langsam anbraten. Wenn die Zweibel weiß und weich genug sind, fügen wir die geschnittenen oder purierten Tomaten hin, zusammen mit Salz und Zücker. Wir lassen die Soße eine Weile kochen und tuen die Tinten, geloescht in einen Weinglas Wasser, rein. Wir berühren das ganze, und wenn die Mischung homogen aussieht, stellen wir die gefüllte Calamari drin. Wir lassen um die 40 Minuten kochen.

!!  was noch


* Wenn das Gericht ein Tag zusammem zieht, ist ja viel leckerer
* Einen typischen Schmortopf ist perfekt geinigt, aber irgendwelche Topf breit und klein genügt. 
* Aufpassen mit den Salz, im Prinzip alles wird gesalzt, aber der Schinken ist selbst ganz salzig.
* Man kann mit Reis serviert.
* Wenn Soße übrig wäre, kann man der Tag danach einen Schwarzenreis oder Eier auf der Tinte kochen. 



Gorrión pecho amarillo, 30/11/08 (created 3/10/07)
Por ser la primera receta telefónica de má

!!Ingredientes para 4

* 8 chuletas de lomo de cerdo (100g x chuleta)
* 1 tomate grande
* 1 cebolla
* 4 lonchas de queso
* 4 lonchas de beicon
* 2 chucharas pequeñas de mostaza de Dijon
* un golpe de Manzanilla de Sanlúcar
* 8 cucharadas de aceite
* sal y pimienta
* (opcionalmente, la cebolla puede ir acompañada de pimiento o guisantes)


!!Procedimiento

# Poner a calentar el horno a 200ºC (10 min)
# Cortar la cebolla en rodajas
# Cortar el tomate en 8 rodajas no muy gruesas
# Salpimentar las chuletas de lomo
# En una sartén, añadir el aceite y, en cuanto esté bien caliente, freir las chuletas hasta que adquieran un poco de color pero sin hacerse del todo. Retirar en un plato aparte
# Acto seguido, frier vuelta y vuelta (sin pasarse) el beicon. Retirar de la sartén.
# En el mismo aceite, añadir la cebolla y freir hasta dorar. Retirar el aceite sobrante y reducir con un golpe de manzanilla. Retirar la cebolla de la sartén y guardar la reducción
# En una bandeja de horno, distribuir las chuletas por toda su superficie y, sobre cada una de ellas poner 1 mota de [[mostaza de Dijón]]. Encima, media loncha de beicon. Encima de la media loncha de beicon, media loncha de queso y, encima, la rodaja de tomate.
— Colocar la cebolla en el fondo de la bandeja, entre las chuletas y regar con la reducción ya preparada.
— Introducir en el horno previamente calentado y mantener a 180ºC durante unos 15 min, aunque el indicador más fiable es que el tomaté se verá hecho.



A ver qué tal te sale. Besos para ambos. ¡conste que estas monadas me llevan un buen rato!
 
Se la voy a mandar también a Ricardo y para él .......................ATENCIÓN.: olvidé una cosa fundamental del congrio: Salarlo, pasar por harina, sacudiendo el sobrante, freirlo, retirar los trozos de la sartén  y apartar la sartén del fuego que habrá quedado con muy poco aceite y con unos turrumotillos dorado-oscuro que es el jugo frito del pescado. Machacar ajo, perejil, unas hebras de azafrán y la rebanadita (mejor hecha con pan del día anterior, como de medio centímetro de grosor y uniformemente cortada) que se habrá frito en el aceite, la primera, antes que el congrio, cuando el aceite está, caliente y cuidando de que se dore por ambos lados, pero no se queme). Añadir medio vasito de agua cuando se tenga bien machacado, y echarlo a la sartén (insisto, fuera del fuego y algo enfriada, para que no salte el aceite: hay peligro de quemarse). Dar unas vueltas y con una cuchara de palo rascar un poquito, si fuera necesario, lo pegadito en la sartén: poner el congrio y el jugo que haya soltado en el plato. Cocer un par de minutos y dar la vuelta a los trozos, cocer otros dos minutos y retirar del fuego, que repose  un poquito tapado antes de llevarlo ala mesa.

Notas: si la cantidad de congrio (500 o 600 g. para la pareja, es bastante) cabe de una vez en la sartén, no es necesario retirarlo una vez frito por ambos lados, la picada (machacado) se vierte sobre el congrio. Item más, ojo con el agua, mejor quedarse un poco corto que pasarse, para que no quede agua chirle. Si nos pasamos y una vez hecho el guiso, el agua es excesiva, sacar el pescado y reducir el caldo hasta que tenga la consistencia adecuada, a fuego vivo y vigilando para que no se pegue: devolver entonces el pescado a la salsa a que repose fuera del fuego.  Esa vigilancia la requiere el pescado durante el breve tiempo que hierve. Conviene mover varias veces la sartén (no el pescado): el jugo pegajoso que suelta es la clave del plato.
Supongo que habrá millones, pero lo primero que he pinchado es perfecto, porque mata dos pájaros de un tiro, es una buena receta de costillas con patatas y se ve perfectamente cómo deben estar cortadas las costillas a ese efecto y al de las 7 cosas. La mejor imagen, la última, la que presenta el plato ya terminado.

http://cajondesastres.wordpress.com/2008/10/04/guiso-de-costilla-de-cerdo-con-patatas-cocina-facil/


!!Ingredientes

- Costillas con su carne cortadas en trozos de unos 5/6 cm., aproximadamente: 1 Kg./1;5 Kg
- Sal (fina, con moderación, trozo por trozo), se puede poner también, pimienta negra molida.
- Orégano (una cucharada sopera)
- Pimentón dulce (una cucharadita de las de café, rasa)
- Ajo, 5 dientes, pelados y enteros.
- Laurel: un par de hojas
- Vino blanco, un vaso (150 ml)
- Aceite de oliva: un chorreón generoso.

!!Procedimiento

Se salan los trozos de costilla y se disponen en una cazuela (mejor ancha, que alta y estrecha), se van repartiendo por encima los ingredientes, y así, todo en crudo, se pone al fuego 
con la tapa puesta. Cuando rompe a hervir, se baja el fuego hasta dejarlo muy suave. Tarda unas 2 horas, cuando se aprecia que los huesos se desprenden de la carne. Suele quedar excesivamente caldoso, por lo que es conveniente reducir el caldo: se saca la carne a otra cazuela o a una fuente y se pone a hervir a cazuela descubierta y a fuego vivo, hasta que pierde el carácter de aguachirle, pero dejando para salsear (cuidado, que se consume rápido). Un toque sofisticado: tostar un puñado de piñones (con mimo, porque se arrebatan muy fácilmente: se ponen en una sartencita y se posa sobre el fuego dándoles vueltas hasta que empiecen a dorarse y a desprender un rico aroma) y esparcirlos por encima antes de servir.
Como todos los guisos, está mejor reposado.

Espero que te valga. Para 18 personas, supongo que tendrás que pensar en triplicar las proporciones, pero depende del resto de la comida.
!!ingredientes [para cuatro]

* 3 ó 4 calabacines grandes
* cebolla, o puerro o ambos,
* leche
* quesitos tipo "el caserío"
* sal

!! procedimiento

Se pican y sofríen la cebolla y puerro. Se lavan o pelan los calabacines, según se quiera una crema más o menos fina. Si se pelan, pueden guardarse las peladillas para hacer una tortilla. Se pican sin esmerarse en que sea demasiado fino -se pasará luego la batidora- y se añade al sofrito. Pasados unos minutos en que se doran ligeramente se añade agua o caldo -hay gente que prefiere cocerlo directamente en leche- y una pizca de sal. Cuando se remblandecen se detiene la cocción, se quita parte o todo el agua, se añade leche al gusto y dos o tres quesitos. Pasamos todo con la batidora y a comer...

!Ingredientes

* bote de judías 
* tomate
* pimiento en tiras, rojo, verde o ambos 
* cebolla en juliana
* aceitunas negras
* atún en aceite
* perejil 

!Procedimiento

Se aclaran las judías para que se vaya el sabor a bote. Se añaden los pimientos en tiras, la cebolla en juliana, los tomates pelados en dados, y el perejil picadito. A continuación si queremos añadimos aceitunas y/o atún. Se prepara una vinagreta típica de proporciones 1/3 (viangre/aceite) y listo. En un santiamén.

!! Ingredientes
* un pimiento rojo y uno verde, bien grandes.
* 3/4 tomates (2 si son grandes)
* 2 cebollas: una morada y una blanca
* 2 dientes de ajo
* 5 patatas
* una berenjena (grande, o dos normales)

!! Procedimiento
# poner el horno a calentar al máximo y bajar a 180C 5' antes de empezar
# lavar la verdura, pero no pelarla (tampoco el ajo)
# con las manos untadas de aceite, aceitar y dejar brillante pero no chorreante lo que se va a asar
# untar también la bandeja del horno para que no se pegue
# 45' de horno a 180C, 30' si es de convección. Tras 2/3 del tiempo, dar la vuelta a todo con pinzas. No dejar tostar, pinchar con un palillo para comprobar que las patatas están tiernas, las cebollas deben estar duritas.
# sacar bandeja del horno, poner sobre ella una lámina de papel de aluminio y encima un trapo (una [[rodea]]).
# quitar la piel a todo
# pimiento, tomates y berenjena: cortar en tiras. No quitar las semillas de esta última.
# patatas, cebolla: en rodajas.
# distribuir las verduras estéticamente y de forma que se facilite el reparto de las porciones
# salpimentar
# servir del tiempo

!!Notas
# los pimientos dan mucho sabor y colorido, especialmente los rojos
# limpiar bien los tomates antes del horno, después, especialmente si son pequegnos, están intratables, casi como una pulpa
# dependiendo del tamagno, puede ser necesario meter las patatas por adelantado, y si acaso, las berenjenas.
# pimientos y cebolla aportan el dulce y la gracia, patata y sobre todo berenjena, la textura
# plato delicioso en el que las verduras adquieren un protagonismo total, revelando todo su sabor sin ningún ingrediente espurio.
alias hamburguesa

!! Notas
lavado puerros corte longitudinal (?)
cebolleta muy picadita

dos recetas, marta y mamá (mamá en gmail, copia abajo, notas manuscritas entre las recetas impresas...) 

!!Ingredientes

- 3 vasos de leche (de los de agua)
-  6 huevos
- 12 cucharadas soperas de azúcar (rasas)
_________

-2 cucharadas colmadas de azúcar para caramelizar

Generalmente no se dispone de una flanera ad hoc que quepa en la olla, cual es mi caso: reduzco las proporciones a la mitad (mantener la proporción según el nº de huevos.

!!Procedimiento

Batir todo los ingredientes del flan
Caramelizar el molde con las dos cucharadas de azúcar previstas: poner el azúcar en el molde a fuego moderado y ayudarse con una cuchara para homogeneizarlo. Atención cuando adquiera consistencia líquida y color rubio, porque hay que evitar que se queme, pero debe permitirse que oscurezca (adquiere así el sabor ideal), sin que llegue a quemarse y es un momento delicado. Generalmente, conviene tener el fuego bajo, tener convenientemente protegida la mano por una manopla y retirar la flanera del fuego para controlar la operación. Cuando se ha logrado, es fácil y rápido, se apaga el fuego y se inclina la flanera para bañar las paredes: precaución, no llegar hasta el borde y no quemarse bajo ningún concepto (una quemadura de azúcar tostado (así se llama), es extremadamente dolorosa.
Verter con cuidado el batido en la flanera (puede salpicar)
Tapar la flanera herméticamente y ponerla en la olla exprés con unos tres dedos de agua( que llegue a algo menos de la mitad de la flanera. Para que la flanera no salte con la cocción, poner una bayetita limpia en el fondo y posar la flanera sobre ella.  Luego seguir las indicaciones de tiempo de la olla que suelen ser de esta guisa: una raya de presión, 3 minutos.
Pasado el tiempo, retirar la olla del fuego y enfriarla según sus indicaciones. Cuando pueda abriese, sacar la flanera con cuidado de no quemarse. Entonces se puede destapar, comprobar qué bien ha cuajado y volverla a poner la tapa colocando un papel de cocina antes de volver a taparla ( al enfriarse absorberá las gotitas que se condensen sin que caigan sobre el flan). Una vez templado meter al frigorífico y cuando se haya enfriado, que puede ser en 2 horas o al día siguiente, desmoldarlo con cuidado en una fuente redonda o un plato donde se presuma que caben flan y salsa. (Plato sobre la flanera, se sujetan ambos firmemente y se dan la vuelta con decisión). 
butterplätzchen 

plato catalán, parece 

COMPLETAR con 2da versión (casi idéntica) impresa

!! Ingredientes para 4

* 200g de garbanzos
* 1 berenjena
* 2 cebollas
* 2 dientes de ajo
* 1 pimiento rojo
* 3 pimientos verdes finos
* 2 tomates
* 8 cucharadas de aceite
* sal
* (opcionalmente, un hueso o puntita de jamón)

!! Procedimiento

-- La víspera, poner los garbanzos a remojo en agua calentita con un poco de sal
-- Pelar la berenjena y cortarla en tiras. Espolvorearla con sal y dejarla durante unos 30 minutos en un escurridor para que sude y se le quite el amargor
-- Pelar y cortar en aros finos una cebolla y media. Pelar un diente de ajo. Hacer tiras los pimientos, una vez lavados y quitadas las semillas.
-- Engrasar una bandeja de horno y disponer todas las verduras preparadas bien extendidas, salar con prudencia y rociar con la mitad del aceite. Asarlas en el horno previamente calentado a unos 170 º durante unos 30 minutos (posible también en microondas durante 15 minutos a máxima potencia y tapadas) En cualquier caso es conveniente, darles una vuelta a mitad de cocción.

-- Enjuagar y escurrir los garbanzos. Ponerlos a cocer en agua caliente  con algo de sal y a fuego lento hasta que estén tiernos (en cazuela unas 2 horas, en olla a presión 25 o 30 minutos). Agradecen la compañía de una puntita o un hueso de jamón.

-- Calentar el resto del aceite en una sartén y freir la media cebolla y el ajo restantes picaditos. Añadir los tomates picados y previamente pelados y sin pepitas
-- Unir el sofrito a los garbanzos que deberán tener el caldo suficiente para que los cubra.
-- Mezclar bien las verduras asadas y añadirlas al conjunto, cociéndolo todo junto a fuego lento 5 o 10 minutos más.
-- Si fuera necesario, añadir agua de cocer los garbanzos o agua caliente. Rectificar de sal y servir
 
Notas (solo para  los menos expertos)
-- Ojo con la sal: es conveniente ir poniendo a cada cosa lo suyo con moderación, tener en cuenta el jamón, si se pone (la receta original no lo contempla)
-- Resulta más agradable que las tiras de verdura no sean  gruesas, pero hay que vigilar que no se arrebaten en el horno
-- Si el guiso reposa un rato antes de salir a la mesa, está más animado, como todos los guisos, aunque haya que volver a calentarlo. Admite, por tanto, la preparación de víspera)

aceite - sal - pimienta

http://www.daskochrezept.de/rezepte/guacamole-avocado-dip_42.html

!! Ingredientes
2 personas: 1 [[cebolla]] mediana, [[chorizo]] a voluntad, 500gr de [[guisantes]]
!! Procedimiento
# Si los guisantes son congelados, hervirlos con sal 5-10'para prepararlos
# [[picar]] la cebolla y el chorizo en cuadraditos
# [[rehogar]] la cebolla y el chorizo a fuego lento en la sartén (orden particular? - primero cebolla?)
# Añadir los guisantes y remover bien para que se mezclen sabores. Atención: no dejarlos demasiado tiempo
# Ajustar de sal

!! Presentación
Una <span id="apture_prvw1" class="aptureLink"><a href="http://bp0.blogger.com/_-HZrdkAKPY0/SFS3UhroHaI/AAAAAAAAAIM/RJXRcfsBGXM/s1600-h/IMG_4367+copy.JPG"><span id="apture_prvw1" class="aptureLink"><a href="http://bp0.blogger.com/_-HZrdkAKPY0/SFS3UhroHaI/AAAAAAAAAIM/RJXRcfsBGXM/s1600-h/IMG_4367+copy.JPG">foto en el sitio de Bruno</a></span></a></span>.
1. Buy 400g of Kircherebsen. Wash them well, take out the bad ebsen, and put them in water over night, together with
2 spoons of Kaiser Natron (Natriumhydrogencarbonat). During the summer it is better to put them in the fridge. 
(the Kaiser Natron helps to make the softening procedure faster) 
2. The next day wash them again until the water are clear, and put them in water again for a few hours. 
3. Put the Kircherebsen in a clean bowl with ~3 litre of water, 1 spoon of Kaiser Natron, and bring to boil. Lower heat, 
and cook until the Kircherebsen are soft. While cooking, clear the white foam that will gather on top, together with the peels. 
4. When soft, drain the water, but keep some of the fluid for further use. 
5. While still warm, put the Kircherebsen in a food processor. Mash them for a few minutes, adding a few spoons of the cooking water to make it easier and more paste like. 
6. Add about 2/3 of a cup of Tahini paste, and some lemon juice from about 2-3 small lemons. Mash it all again, taste, and add either a bit of the cooking water, lemon juice, salt or Tahini until you are happy with the result. 

Eat immediately or store in the fridge. Just before eating, add some garlic, parsley and spread all over with good olive oil. 
you can also add some prepared Tahini on top (you add lemon juice and water to the Tahini paste, and mix, until it looks 
as it should. then you add some garlic, and the tahini is ready). You can also add the garlic and some olive oil at the end of the preparation stage of the humus (the olive oil will smooth the paste). 
Better to eat with fresh bread, or beside anything else. Good as a first dish, or as a main dish. 

!!Ingredientes
* Judías verdes 1/2kg (3 personas? 4?)
* Patatas: una del tamaño de un puño por persona
* Aceite, ajo, sal
* Opcionalmente: pimentón
!!Procedimiento
# Lavar las judías, cortar los picos, cascarlas por la mitad
# Si procede, pelar las patatas y cascarlas sin cortarlas (verbo?)
# Echar todo a la olla a presión, y dejar 10'
# Poner a calentar (no muy fuerte) una sartén con abundante aceite de oliva y unos ajitos 
# [[rehogar]] las patatas y las judías hasta que adquieran bien el sabor; condimentar, opcionalmente añadiendo pimentón.

Knoblauch andrücken und in der Pfanne mit Öl erhitzen. Das Hackfleisch (250g, gemischtes) dazu geben und durchbraten. Würzen mit Salz und Pfeffer. 

Fleisch auf einem Teller zur Seite stellen.

Zwiebel (1), Möhre (1) und einen Apfel grob schneiden und in einem Topf mit zwei Lorbeer Blättern anbraten. Mit Weißwein ablöschen und kurz aufkochen. Das Hackfleisch, den Mais (Dosenmais) und geschälte Tomaten aus der Dose dazu geben und aufkochen. Nach Bedarf würzen mit Salz, Pfeffer, Chili und Muskat.

Danke an Anne.
!Ingredientes (para dos personas)
Aceite de oliva, 200 g de [[carne picada]], 400ml de agua, 1 sobre maggi "fix für Lasagne", 6 hojas de lasaña, 100g crème fraîche, 3 [[CS]] leche, 50g queso rallado.

!Procedimiento
Poner a calentar el horno (170C si es de convección, 200 si no).

Freír la carne en el aceite de oliva. Vertir el agua. Mezclar con el sobre de maggi fix für lasagne y llevar a la ebullición mientras se remueve. Hervir durante cinco minutos a fuego bajo, removiendo ocasionalmente. 

En una fuente plana (20x20cm) intercalar la salsa y las hojas de lasagna. Empezar y terminar con salsa. 

Mezclar la crème fraîche con leche y distribuir sobre la lasagna. Esparcir el queso por encima e introducir la fuente en el horno. Dejar 25' hasta que el queso esté bien dorado.

NOTA: probado con carne exclusivamente de ternera y con queso grana padano.


Origen: paquete 500g de hojas de lasagna de Buitoni
Se caracterizan porque no hay que picar nada de lo que va en la olla.
Primera fase de 8-10' en la olla
Segunda de 4-5'

Patata, zanahoria, cebolla (entera), pimiento, 100 cc de aceite, pimienta, laurel, pimentón, ajo... 250 gr para 3 personas.

El chorizo mejor freírlo a parte y echarlo para la segunda fase junto al pimentón y la sal.
MEDIDAS Y EQUIVALENCIAS
Cómo leer las recetas, para utilizar la cantidad adecuada de producto. Dicen los chefs que el éxito de una receta depende un 40% de la calidad de los ingredientes, otro 20% a la calidad de la receta, y el resto al talento y sensibilidad de la persona que cocina.
En líquidos
½ taza................................ 100 cc aprox.
1 taza................................. 200 cc aprox.
2 tazas.............................. 400 cc aprox.
5 tazas.................................1 litro
1 vaso de agrua.......................200 ml
1 vaso de vino........................100 ml
1 cucharón ...........................260 ml
1 cucharada........................ ..15 ml
1 copa de coñac.......................40-50 ml
1 taza de té.........................150 ml
Cuando en una receta dice:
Tazón =......................1 taza de desayuno
Taza =.......................1 taza de las de té
Tacita =.....................1 taza de las de café
Cucharada =..................1 cucharada de las soperas
Cucharadita =................1 cucharada de las de postre
Cucharadita de moca =........1 cucharadita de las utilizadas para el café
Vaso = ......................1 vaso de los de agua
Vasito =.....................1 vaso de los de vino
Equivalencia de capacidad:
1 tazón o taza de desayuno = .250 mililitros =¼ de litro = 2 decilitros
y ½ 1 taza de las de té =.........150 mililitros = 1 decilitro
y ½ 1 taza de las de café =.......100 mililitros = 1 decilitro
1 vaso de los de agua =.......200 mililitros = 2 decilitros
1 vaso de los de vino =.......100 mililitros = 1 decilitro
8 cucharadas soperas =........100 mililitros = 1 decilitro
1 copita o vaso de licor = ....50 mililitros = ½ decilitro = 4 cucharadas soperas
Una taza de las de té de:
Agua = .........................1 decilitro
Arroz =.......................150 gr
Azúcar =......................150 gr
Harina =......................120 gr
Pan rallado =.................100 gr
Queso rallado =...............100 gr
Una taza de las de café de:
Agua =........................100 mililitros = 1decilitro
Arroz =........................75 gr
Azúcar =.......................75 gr
Harina =.......................60 gr
Pan rallado =..................50 gr
Queso rallado =................50 gr
Pesos y equivalencias varias:
de 1 taza en gr
Arroz.........................200 gr
Fresas picadas................170 gr
Manzanas picadas..............125 gr
Ciruelas, melocotones, naranjas, peras, sandía picadas ...............150 gr
Galletitas molidas............100 gr
Nueces molidas.................80 gr
Nueces en trozos..............100 gr
Pan rallado...................100 gr
Pasas de uva..................160 gr
Pulpa de membrillo............220 gr
Pulpa de tomate...............180 gr
Maicena o sémola..............130 gr
Chocolate en polvo............100 gr
Coco rallado...................80 gr
Cacao en polvo................140 gr
Una cucharada sopera rasa de en gr:
Aceite =.......................15 gr
Agrua =........................16 gr
Arroz =........................20 gr
Azúcar =.......................20 gr
Azúcar grlas =.................15 gr
Café =.........................18 gr
Fécula =.......................12 gr
Harina =.......................15 gr
Leche =........................17 gr
Levadura =.....................10 gr
Mantequilla =..................15 gr
Mermelada =....................20 gr
Miel =.........................10 gr
Nata líquida =.................20 gr
Pan rallado =..................15 gr
Perejil o cualquier otra hierba picada = 10 gr
Queso rallado =................15 gr
Sal =..........................15 gr
Un tazón o taza de desayuno de:
Agua =........................250 mililitros = ¼ de litro = 2 decilitros y ½
Arroz =.......................240 gr
Azúcar =......................240 gr
Harina =......................180 gr
Pan rallado =.................150 gr
Queso rallado =...............150 gr
Aceite:
1 litro de aceite...............5 tazas
1 taza de aceite..............190 a 200 cc
1 cucharada de aceite..........14 a 16 cc
1 cucharadita de aceite.........4 a 5 cc
1 taza.........................15 a 16 cucharadas
Harina:
1 kilo de harina............. ..8 y 1/2 tazas aprox.
1 taza de harina..............120 a 130 gr aprox.
1 cucharada rasa harina....... 10 gr aprox.
1 cucharada colmada de harina..20 gr aprox.
1 cucharadita rasa de harina....3 gr aprox.
1 taza de maicena.............100 gr
Azúcar:
1 kilo de azúcar............... 5 tazas aprox.
1 taza de azúcar............. 190 a 200 gr aprox.
1 taza de azúcar negra........160 gr
1 taza azúcar impalpable......120 a 130 gr aprox.
1 cucharada rasa...............11 a 13 gr aprox.
1 cucharada colmada............26 a 28 gr
1 cucharadita rasa..............3 a 4 gr
Mantequilla.
1 taza....................... 190 a 200 gr
1 cucharada rasa............. .10 a 15 gr
1 cucharadita rasa..............6 a 8 gr
1 cucharada colmada........... 40 a 45 gr
1 taza a temperatura ambiente. .
1 y 1/2 taza derretida
Una nuez de mantequilla.......30 gr
Varios:
Cucharada =.........................1 cuchara sopera
Cucharadita =.......................1 cuchara de té
1 taza de claras.=..................6 claras
1 taza de arroz blanco............180 gr
1 cucharada de miel................25-30 gr
Una rebanada de pan................30 gr
Una cucharada de café molido.......15 -18gr
1 cucharada de levadura seca =.....25 gr de levadura fresca
6 cucharadas equivalen a..........1/2 taza de té de 200 grs.
1 cucharada sopera al ras..........25 gr de miel
1 cuchara sopera medida al ras.....20 gr de sal gruesa
1 cuchara sopera medida al ras.....15 gr de aceite
1 cuchara sopera medida al ras.....10 gr de queso rallado
3 cucharaditas equivalen a..........1 cucharada
4 hojas de gelatina.................1 sobre de 7grs. de gelatina en polvo
1 diente de ajo = ..................5 gr
1 avellana de mantequilla =.........5 gr.
1 docena de olivas o aceitunas =...50 gr
1 nuez de mantequilla =............10 gr.
1 cebolla mediana =................75 gr
1 cucharada de café de mantequilla =6 gr.
1 limón mediano = .................75 - 100 gr
1 manzana o 1 pera medianas =.....100 - 150 gr
1 patata mediana =................150-200 gr
1 tomate mediano =................100 gr
1 zanahoria mediana =.............100 gr
1 loncha de jamón serrano =........40 gr
1 loncha de jamón de cocido =......40 - 50 gr
1 loncha o filete de queso =.......30 - 40 gr
1 rebanada de pan tostado =........15 gr
1 rebanada de pan normal =.........20 gr
1 terrón de azúcar = ...............5 - 7 gr
Varios:
1 Libra = 1 Pinta = 16 Onzas = 450 - 480 gr
1 Onza = 28, 5 - 30 gr
Un huevo:
pequeño............50 gr
mediano............55-60 gr
grande........+ de 65 gr
1 onza...... ......30,5 gr
1 libra...........490 gr
Para tener en cuenta:
1 cucharada equivale a 10 gr de aceite
1 cucharadita =.........4 gr de aceite
1 vaso de vino =......150 ml de aceite
1 vasito de licor =....20 ml de aceite
¿Cuánto hay que servir?:
Guarnición de papas...250 gr
Legumbres frescas.... 200 gr
Ensalada verde .......100 gr
Carne con hueso.......250 gr
Carne sin hueso.......150 gr
Pescado entero .......250 gr
Filete................150 gr
Queso.................80 gr
Spaghetti.............80 gr
Arroz.................40 gr
Tres aclaraciones:
Para medir una taza, llenar el medidor sin comprimir el ingrediente. Para "rasar" una cucharada de ingrediente, utilizar un cuchillo para quitar el exceso. Una pizca, es lo que puede tomarse entre las puntas de dos dedos
Temperatura del horno entre número y grados de temperatura.
1 = 150º C
2 = 160º C
3 = 180º C
4 = 200º C
5 = 220º C
6 = 240º C
7 = 260º C
8 = 280º C
9 = 300º C
10 = 320º C
LA TEMPERATURA DEL HORNO
De 100 a 120º:
Horno a temperatura muy suave. Un papel blanco, puesto en su interior, mantiene su color. Merengrues, soufflés, mousses, etc.
De 120 a 150º
Horno a temperatura suave-moderada. Después de 5 minutos, el papel blanco se vuelve amarillo pálido.
Bizcochos grenovesa y otros bizcochos esponjosos, y masas quebradas.
De 150 a 200º
Horno a temperatura moderada-media. El papel se vuelve amarillo en pocos segundos.
Pastelitos y pastas, petits fours, y masa de los petits choux.
De 200 a 250º
Horno a temperatura media-caliente. El papel se vuelve marrón claro. Pasta quebrada, y tartas de masa compactas.
De 250 a 300º Horno a temperatura caliente-muy caliente.
El papel se vuelve marrón oscuro y ennegrece.
Masas de levadura (para brioches, suizos...), y hojaldres 

Encargo difícil, no creas. Porque las migas, como las sopas en general
y otros muchos que habrá, es un guiso de intuición y "jharte", más que
de técnica de
componentes tasados. ¿Me captas?.
 Para empezar, una advertencia: este plato puede perecer del todo por
dos errores: el agua y el aceite. Todo lo demás puede tener arreglo,
pero
si te pasas en una de estas cosas, pues kaput. Incomibles y  a por los
huevos fritos.

 Para 4 personas:
                             3 barras de pan duro
                            10 cl. de aceite (mejor de oliva virgen)
                             4 pimientos verdes
                              panceta fresca (dos-tres trozos por persona)
                              chorizo tierno desmigajado
                              jamón de baja calidad (más bien blando)
picado en daditos

Preparación:
                     Paso clave nº 1:  mojar el pan. Quiebras las
barras en trozos del tamaño de un puño. Dejas el grifo con un hilito
de agua y vas poniendo
                     cada trozo debajo unos segundos (dos-tres)
para que el agua penetre por la miga y una pasadita por la corteza.
Pero sin pasarse. Dejas
                     todo el pan así mojado en la cazuela o en
cualquier recipiente hasta el día siguiente.
                     Por la mañana, vas picando el pan en la tabla en
trocitos pequeños. Bien picado y sin cortarse, que tú eres un peligro.
No te preocupes si parece que algunos trozos están muy
                     empapados (sobre todo de miga). Si no es general
no hay peligro. Si todo es una papa, me temo que tendrás que dejarlas
para otro día. (ver apartado trucos).
                     Una vez picadas echas dos cucharaditas de sal
fina (aunque al gusto). Las remueves bien con la espumadera y las
dejas unas dos horas mínimo. Al cabo, tienen
                      que estar esponjosas. Que al apretarlas con la
mano tiendan a volver arriba.

                     Vamos a ello:
                                             Vas friendo los
pimientos cortados en trozos grandes a fuego medio-lento. Ya en la
sartén le pones una pizca de sal a cada trozo. Cuando casi estén
fritos,
                                             echas también dos
dientes de ajo, que retirarás
                                                apenas estén dorados.
Sacas los pimientos bien escurridos y los dejas aparte. Los ajos los
tiras.
                                             Vacías el aceite en un
bol, dejando apenas manchado el suelo de la cazuela y echas la
panceta, que también soltará su propia grasa. Deja que se
                                              vaya friendo a fuego
medio. En una sartén aparte, vas friendo el chorizo sin nada de
aceite. (se hace aparte para que las migas no tomen color, pero
                                              hay a quien le gustan
así). El chorizo muy  poco frito. Lo sacas con la espumadera y echas
los tacos de jamón, también ojo que no se te pasen, que
                                             luego están muy duros.
Lo vas dejando todo aparte, cada cosa en su cuenco, junto con el de
los pimientos. Este aceite rojo, yo lo tiro, aunque como
                                              te digo hay quien le
gusta añadirlo al de las  migas para que tomen color.

                                             Vuelves a echar el
aceite en la sartén. La cantidad de aceite  habrá aumentado algo con
lo que ha soltado la panceta. A fuego medio, y en cuanto
                                             tome temperatura, echas
las migas y comienzas a dar vueltas  metiendo la espumadera al fondo
para que no se peguen. Siempre a fuego
                                             medio-lento. Despacio
pero sin parar. 15-20  minutos, dependiendo de lo húmedas que
estuvieran. La textura final tiene que ser blanda, que no
                                             pinchen si las tocas con
el revés de la mano. Las puedes ir probando por si están escasas de
sal o de aceite. (Aquí es cuando se rezan unas admoniciones
                                             al dios de los ateos, y
de paso abres la botella de vino y te vas dando unos lingotazos).

                                                 Y si todo ha salido
más menos, pues ñam, ñam, claro que sí.

                                              Ahora a ver como se lo
traduces a los boches para que lo cuadriculen y lo entiendan.

                         Suerte. Un beso

               Trucos:
                             - Si te has pasado con el agua: mejor
una vez picadas, aplicar aire caliente con el secador del pelo,
removiéndolas.
                             - Dependiendo del pan que se use, de su
textura y de lo absorbente que sea, la cantidad de aceite puede variar
ligeramente. Yo siempre pongo al inicio un poco
                             más (en este caso 15 cl en vez de 10), y
lo retiro (el excedente, o sea 5 cl.) antes de echar las migas. Si
cuando las estoy haciendo veo que están
                             poco brillantes,  añado un poco. Es
importante porque en realidad el aceite es lo que le da sabor a la
masa de pan. Pero es que si te pasas, quedan
                             muy grasientas y no hay quien las coma.

                             Por último: No es necesario comerlas de
una sentada. Las que sobren, al día siguiente las calientas en la
sartén rociándolas ligeramente con agua, y quedan
                             como recién hechas. Si por algún error
te han quedado duras (secas), sirven perfectamente para el desayuno,
con el café.

                                Cualquier duda, ya sabes.

Julián Calzas
!Ingredientes
Muslos de pollo, patata, cebolla (en cantidad correspondiente a los muslos y apta para formar una buena cama sobre el fondo de la fuente escogida), ajo, aceite, pimienta, sal. Opcional: vino blanco, cuanto más 'gracioso' mejor, tomillo.

!Procedimiento
Poner a precalentar el horno entre 180 y 200C

Conviene tener las patatas por su cuenta en el horno desde 1/2 hora antes para que al hacer el pollo nos podamos permitir dejarlo tierno pero no seco.

Patatas
# Untar la fuente con aceite.
# Pelar y cortar en rodajas no demasiado gruesas las patatas, para que se hagan con mayor facilidad.
# Disponer cubriendo el fondo
# Meter al horno para que se vayan haciendo... en ese caso, añadir el agua o el vino hasta que estén todas empapadas. Si el agua se añade una vez que el pollo está sobre la cama, atención a no bañar los muslos!


# Secar y retirar plumitas si las tuviera
# Salpimentar por ambos lados
# Pelar y cortar en cuadrados gruesos la cebolla o en aros ídem. Picar un ajo.
# Sacar las patatas del horno y disponer sobre la cama la cebolla y el ajo, así como los muslos (lado feo hacia arriba: se los va a dar la vuelta). Regarlos generosamente con aceite pero sin encharcar. Opcionalmente espolvorear tomillo.

# Suele tardar entre 1h y 1h20 (dependiendo del precalentamiento de las patatas). Estar atento para 20' antes del final comprobar que el pollo le falta poco para estar hecho y darle la vuelta. Subir la temperatura si se desea piel dorada, pero estar atento a que no se seque por dentro.

Poner el horno a calentar desde el principio!
Recuerda el prehorneado de la patata!
vino blanco+agua para el caldillo
Los tiempos de cocción dados en este sitio son a partir de la subida del pitorro.

recordar los chilis opcionales

mirar por eemplo aquí: http://www.marions-kochbuch.de/rezept/1817.htm

consultar en el libro de Arguignano

recordar freír el chorizo
* seco (alguien ha probado esto?)
* fresco (se puede [[congelar]]).
Cortar pimiento rojo y verde en cubitos minúsculos -- cuanto más pequeños, mejor. Hacer lo mismo con la cebolleta o cebolla (mejor entonces su corazón), en cantidad moderada para evitar que repita. Lavar el tomate y cortarlo asimismo en cubitos pequeños. La zanahoria es opcional: conviene a algunos platos, como la [[coliflor con picadito de verduras]] pero no a otros.

Todo esto habrá que ponerlo a macerar en una emulsión de vinagre en aceite que se prepara como sigue: primero echar una cucharada de sal en el recipiente. Después, según la cantidad deseada, una parte de vinagre y tras ello, cuatro (si el vinagre es bueno y ligero) o cinco de aceite. Remover bien (por ejemplo, con un tenedor) para lograr la emulsión. Finalmente echar la verdura finamente picada en este recipiente.
pimientos rojos en el mercado


!!Ingredientes :
* 2 kg. de calabacines
* 3 cebollas medianas
* 1 kg. de tomates
* 3 pimientos verdes
* 1 cucharadita de azúcar
* 6 cucharadas soperas de aceite

!!Procedimiento
Salsa:
En una cacerola, poner 2 cucharadas soperas de aceite a calentar. Añadir 1 [[cebolla]] pelada y cortada en cuadraditos y los tomates pelados y cortados en cuartos. Aplastarlos, echar la cucharadita de azúcar y dejar cocer a fuego lento durante 20'.
Pisto:
Calentar en una sartén 4 cucharadas de aceite. Sofreír dos cebollas en cubitos hasta que estén transparentes. Agregar entonces los [[pimiento]]s verdes, limpios y cortados también en cubitos. Sazonar. Dejar a fuego lento durante 10' y, mientras, pelar y cortar los calabacines. Sofreír otros 5'-10' con los calabacines, que deberían empezar a soltar agua.

Una vez listo, mezclar con la salsa y dejar cocer a fuego lento durante 25', sazonando a conveniencia.
!!Ingredients

    * Cooking spray
    * 8 boneless skinless chicken breast halves, about 5 ounces each
    * Salt and freshly ground black pepper
    * 1/4 cup honey mustard
    * 6 ounces soft goat cheese
    * 1 cup macadamia nuts
    * 1 cup couscous
    * 1/4 cup diced pimentos
    * 2 tablespoons chopped fresh parsley leaves

!! Directions

Preheat oven to 400 degrees F.

    * Coat a shallow roasting pan with cooking spray.

Season chicken all over with salt and black pepper and place in prepared pan. Brush mustard all over tops of chicken. Then spread with goat cheese. Place macadamia nuts in a plastic bag and smash with the flat side of a meat mallet or bottom of a heavy skillet until finely crushed. Sprinkle nuts over goat cheese. Cover pan with foil and bake for 20 minutes. Uncover and bake 5 to 10 more minutes, until cheese is golden brown and chicken is cooked through.

While chicken is baking, cook couscous according to package directions. Fluff with a fork, and stir in pimentos, parsley and season, to taste, with salt and freshly ground black pepper.

Serve half of the chicken and all of the couscous. Reserve remaining chicken for the chopped salad, if desired.

Cocer la berenjena 20' en la olla, con un vaso de caldo de carne, hasta que esté tierna
Simultaneamente, sofreír una cebolla y batir tres huevos con sal
Pasar la berenjena por la batidora (con el pasapuré no he probado), añadirle los huevos y la cebolla. Mezclar y poner 4 minutos a gratinar en el horno.

Observaciones: garantizado el color mierda verdoso. Es increíble. Pero es suave y se puede mejorar con parmesano.
!!Ingredientes
* [[calabaza]] (de: [[kurbis]])
* [[cebolla]]
* aceite de oliva, cebolla
* [[leche]]
* [[yogur natural]]
* [[estragón]]
* [[curry]]
* sal
* una [[cucharada]] de [[miel]]
!!Procedimiento
# [[pelar]] la calabaza. Para ganar estabilidad conviene partirla en trozos
# [[sofreír]] la cebolla y apartarla
# cubrir los trozos de calabaza con agua en una [[olla]] y cocer durante 15'
# añadir el curry
# [[triturar]] con la [[batidora]], añadiendo leche y yogur para darle suavidad.
!!Ingredientes
* Sobre de Maggi
* 125ml leche //fría//
* mantequilla o margarina
!!Procedimiento
# Llevar a ebullición 3/8 l 375ml de agua con media cucharadita de sal.
# Quitar la olla del fuego y agnadir la leche fría más un pedazo de mantequilla
# Echar el contenido del sobre y mezclarlo bien
# Dejar un minuto que absorba el agua y antes de servir remover un poco.

!!Notas
# en el sobre también vienen instrucciones para el microondas: todos los ingredientes en un recipiente apto y calentar abierto por 5 minutos a 600W. Al final remover.
# se puede guardar en el frigorífico. No recalentar demasiado rápido.
# al puré se le pueden agnadir hierbas, queso rallado, dados de bacon, cebolla tostada, pulpa de tomate o champignones hervidos
!!Ingredientes (para hacerse una idea)
* 2-3 [[patata]]s de tamaño medio (una patata del tamagno del hueco de la mano por persona)
* 1/4 [[cebolla]] mediana da para 3 personas
* 1/4 [[puerro]] - se puede aprovechar el verde del final del tallo - ppio de las hojas. Si no hay, sustituir por cebolla
* 1 [[ajo]] -- cortándole los picos
* [[pimiento]] verde y rojo  (1/4 de pimiento en total o la mitad de un [[pimiento italiano]]).
* Un chorrito de aceite de oliva
* 1 [[zanahoria]]
* Una ramita de [[perejil]]
* 1/2 o 1 [[tomate]], dependiendo del tamaño

!!Procedimiento
# Si se tiene una [[cocina eléctrica]], poner la olla a calentar con agua. Da tiempo a hacer el resto antes de la ebullición.
# [[pelar]] lo pelable, 
# [[trocear]] para que se haga más rápido (especialmente las zanahorias si se usa una [[olla convencional]]). La patata se parte a escortezón.
# echar todo en la [[olla exprés]] y añadir [[agua]], debe quedar suelto pero sin llegar a cubrir del todo.
# [[cocer]] 5 minutos en olla exprés, 30 en olla normal, tapado, a fuego moderado. La medida de que está listo la dan las zanahorias, que tienen que estar bien blanditas. 
# [[pasar]] **importante** con el [[pasapuré]] (la batidora da una textura demasiado fina). 
# un chorro generoso de aceite y una cucharadita de sal, a corregir tras pasar.

!!Notas
# ajo, perejil, patatas: nunca romper la cocción -- si demanda más agua, agnadirla caliente (la interrupción de la cocción endurece la patata).
# 1 o 2 hojas de [[acelga]] ([[mangold]]) introducen otro sabor
# para enfermo de la tripa: retirar el tomate, que domine la patata y la zanahoria, moderar el aceite.

!! ingredientes [para dos]

* 250 gramos de arroz
* 200 gramos de champiñón (seco es excelente) u otra verdura (calabacín, por ejemplo) [facultativo]
* 750 ml de caldo (o cubito)
* 1 vaso de los de vino de vino blanco
* 1 cebolla
* aceite
* parmesano rallado
* mantequilla
* perejil

!! procedimiento

Pochamos en una sartén muy lentamente la cebolla picada en aros. Si queremos agnadir una segunda verdura, cuando esté suficientemente blanquita, echamos los trozos finos de la verdura y dejamos pochar.

En otro recipiente, un cazuela baja y ancha o una sartén grande, con aceite muy caliente sofreimos el arroz. Este es el truco de la receta, porque el aceite para sofreir el arroz ha de estar muy caliente, y si lo añadimos a la sartén donde tenemos la cebolla o se quema ésta, o el aceite no está suficientemente caliente para el arroz. Tras sofreirlo un par de minutos echamos el vasito de vino y comenzamos a remover. Cuando está casi evaporado añadimos un cazo de caldo. Y de nuevo a remover. Repetimos este procedimiento hasta que el arroz queda en su punto. El risotto tiene una consistencia caldosa y blanda similar a la del arroz con leche, donde el almidón del arroz hace su parte y liga la salsa con el lento remover. 

Unos 10 min antes de que aquello termine añadimos la verdura de la otra sartén al recipiente del arroz para que se mezclen los sabores. Si sólo tuviéramos cebolla, añadimos casi desde el principio azafrán al arroz. Esta variante con cebolla y azafrán, es la más simple, y también deliciosa. 

Cuando se da el arroz por listo se añade el parmesano rallado y una nuez de mantequilla, se remueve, se tapa el recipiente y se deja reposar 5 minutos. Al servir se puede espolvorear perejil picado. Es importante comerlo justo después de los cinco minutos de reposo!!!

A mí no me gustan los cubitos *maggic*os, pero la gente los adora. Si tengo caldo de verdura lo añado, si no suelo añadir sólo agua, pero esto al parecer es sacrilegio.

!!Notas
* esto es risotto "à la Valentina"
* paraAfriConCarigno, dice Bairel
!! Ingredientes para 4 personas

- 4 rebanadas de pan preferiblemente sobado (bregado o gramado, ¡toma!) 200 gramos más o menos
- 4 tomates muy maduros
- 1/2 pimiento rojo
- 1 huevo cocido (unos 5 minutos, poco más que pasado por agua que son 3 minutos -se pone el huevo en una cazuelita con agua fría y una cucharada de sal y cuando rompe a cocer se cuentan cuidadosamente los minutos, 12 minutos para cocido-)
Para el menester que nos proponemos  debe quedar cuajada la clara y algo afectada la yema .
- 8 cucharadas de aceite de oliva virgen
- un diente de ajo pequeño
- una cucharada de vinagre, sal, una ramita de perejil.
- Para completar el plato: huevo cocido y taquitos de jamón

!!Procedimiento

Remojar el pan y escurrirlo por completo. Triturar el tomate pelado, sin pepitas en la medida que se pueda, pero sin perder el jugo, añadir el ajo, el pimiento y el perejil, después el pan, el aceite, el  vinagre y la sal. Debe tener una consistencia cremosa y una textura fina. Servir frío o del tiempo, en cacharrito hondo acompañado de huevo cocido y jamón al gusto
para gratinar o rellenos
Una receta de Sergi Arola de la que mlo que más me interesa es el tratamiento de la sepia, para aprender a hacer algo similar pero opcionalmente con otras verduras más fáciles de encontrar.

Recomienda usar aceite de arbequina.
!! Ingredientes
* Pera, manzana, melocotón en trozos
* 8 [[CS]] de azúcar (para una olla media)
* un chorrito de licor: vodka o ron
* vino a esportillón
Freír en aceite, usualmente se aplica al [[pimiento]], la [[cebolla]]... ¿cuál es el orden adecuado?
!! Ingredientes: (para 4 personas)
* 2 [[solomillos de cerdo| solomillo de cerdo]] de 1/2 Kg la pieza. NB una pieza de 600g da muchísimo de sí!
* 1 kg de manzanas (preferiblemente [[reineta]]s)
* tomillo, aceite de oliva, miel (opcional), sal, [[pimienta]] negra molida, romero, vino dulce (opcional).

!!Procedimiento
!!! Poner el horno a precalentar e introducir el solomillo
# Salpimentar bien la pieza o piezas.
# Diluir el aceite en una cucharada de miel antes de embadurnar los solomillos, quedará un plato muy dulce, para golosos.
# Colocar en una fuente de horno y embadurnar con bien con aceite los dos solomillos.
# Distribuir con las manos el tomillo y el romero sobre el solomillo embadurnado
# Meter en el horno precalentado a temperatura fuerte durante unos 8 minuts. Darles la vuelta y dejar otros 8 minutos.
!!! En esos 16'-20'...
# Pelar y trocear las manzanas en rodajas ni muy finas ni gruesas (las peladuras y los trozos de manzana que no van en las rodajas por razones estéticas van a aprovecharse para hacer una pasta dulcita)
# Se puede hacer una pasta con las peladuras de la manzana, reduciéndolas en la sartén con algún vino dulce.
!!! Finalmente...
# Cortar el solomillo en rodajas e intercalar y/o cubrir con manzanas. Fijarse en cuan tierno está para determinar el tiempo de finalización.
# Volver a meter en el horno 15 o 20 minutos más (cuidado!, dependiente del grosor del solomillo para que quede tierno), hasta que las manzanas estén doraditas y hayan reducido su jugo.
Una receta de Arola que suena brutal
Este es también un plato que permite aprovechar un exceso de garbanzos de cocido o de alubias. La cantidad de los ingredientes se deja al buen juicio de los cocineros y cocineras.

Cebolla, puerro si se tiene, zanahoria, berza, garbanzos o alubias, chorizo o jamón, aceite y sal

!!Procedimiento

- Sofreír incorporando al aceite sucesivamente la cebolla, el puerro, la berza y la zanahoria, cortadas en tiritas finas (la zanahoria sale muy bien con el pelador de patatas). Se va poniendo un poco de sal a cada ingrediente . Añadir el chorizo o el jamón también cortadito y dar una vuelta con las verduras sofritas hasta que vuelva el color. Añadir caldo de verdura o agua y cocer (20 minutos en cazuela, 3 en olla exprés). De la cantidad de agua añadida dependerá que el resultado sea una sopa, un potaje o un ¡sopitaje...!, (He acabado poniendo la palabra híbrida esa, porque llevo un rato riéndome sola a cuenta de ella).
Añadir los garbanzos (o judías). Si parece oportuno se hace puré con unos pocos, lo cual engorda el caldo y si apetece 1 huevo batido al servir, e incluso cuscurros de pan frito ya en la mesa.

Nota: el origen de este invento creo que es Arguiñano. Yo lo he hecho con garbanzos,  chorizo y  tipo potaje. 
500 g kurbi, 1 cebolla,  (sofreir y hervir en 700 ml agua o caldo, de la que yo quite parte junto con una cuchara curry). pasar batidora. angnadir , sal, 200 ml leche, 200gr yogurt natural... 1 cuchara miel
das wars...una hierbita tipo perejil por encima (estragon?)
estaba muy muy rica...:) besos

más aquí: http://www.oekokiste-kirchdorf.de/index.php?article_id=43 *buscar kürbis* 
ver recetas: http://www.gastronomiaycia.com/2010/05/31/diez-recetas-con-tahini/
hay dos recetas, una de marta y otra de mamá por email

Ingredientes:
-- una tableta de Valor
-- 250 g. de mantequilla (debe estar a temperatura ambiente, o meterla un poco al microondas para que se reblandezca algo, pero que no se funda
-- 3 huevos a temperatura ambiente
-- 3.5 cucharadas soperas de azúcar (se enrasan con el dorso de un cuchillo)
-- una tacita de café de presión

Modo de hacerlo
-- Derretir el chocolate (en un tazón o bol partida en trocitos y cubierta con un film en el microondas a máxima potencia, 1minuto. Si es necesario repetir la operación, dándole una vuelta al chocolate. debe quedar como una pasta suave, cuando se pone blandito y se le dan unas vueltas). Añadirle la tacita de café, cargadita de café y cortita de agua, como las que tomamos en casa. Dejar templar: cuando se puede tocar con el dedo y no quema, ya está.
-- En la batidora,  mezclar el azúcar y los  huevos y después añadir la mantequilla, que quede bien ligadito todo.
-- Añadir el chocolate, una vez se haya enfriado, a la mezcla de la batidora, de forma que quede una pasta bien homogénea
-- poner la mezcla en un molde apropiado para meter al congelador y que pueda ponerse después al calor; por ejemplo un molde circular de metal de los de los bizcochos
  Antes de servir, para desmoldarla con facilidad, aplicarla calor ligeramente (sobre un fuego al mínimo). Si se ve peligro de que se desarme, también se pueden ir sacando las raciones del propio molde o fuente, si no se tiene molde metálico. Si el molde es de los que lleva protector antiadherente , cuidado, te lo puedes cargar.


(cantidad como para un postre razonable para 6)


Básicamente la receta de Simone Ortega (nº 440). Observaciónn: el resultado es muy dulce, y muy líquido, así que tanto la eliminación de semillas con su juguillo, como el tiempo de "secado boca abajo" como el tiempo de horno conviene respetarlos. Complementar el pan rallado con queso grana padano espolvoreado o queso de cabra no añade mucho sabor, y el queso queda poco ligado al tomate, como una superficie dura independiente. No recomendado.

El plato está bien. Lleva poco tiempo de preparación en sí, pero mucho de horno y secado, y también un rato de espera para que los tomates se enfríen.
!!Ingredientes
* una [[calabaza]] por ejemplo de tipo [[Hokkaido|calabaza Hokkaido]].
* dos huevos
* ricotta

!!Procedimiento
# bla
# ble 
# blie
La receta definitiva

!!Ingredientes
* 5 ó 6 puerros
* 2 patatas grandes
* cebolla [facultativo]
* leche

!!Procedimiento

Se lavan y cortan los puerros, en juliana, anillos o de cualquier otra manera, como se pasará no es relevante. Se sofrien en la cazuela con un poco de aceite durante unos minutos. Se añaden las patatas cortadas en finas rodajas como para tortilla para que se pasen rápido. Se cubre con agua o caldo y se deja cocer lentamente. Cuando las verduras están listas, se pasa con la batidora el puerro y la patata escurrida junto con leche, la cantidad según guste la crema más o menos espesa. También puede añadirse parte del caldo en lugar de sólo leche. Salpimentar o simplemente corregir de sal y enfríar, preferiblemente en un recipiente de porcelana o cristal. Se puede adornar con una ramita de perejil al servir. 

!Notas
* Se trata de un entrante frío, pero en invierno tibio o caliente está también exquisito.   
!! Ingredientes para 4 personas
* una [[patata]] grande
* 100g de [[puerro]]s, solamente lo blanco
* 2 nueces de [[mantequilla]] (unos 50g)
* 1/2 cebolla
* 1 vaso de leche (de los de agua, 220cc, puede ser semidesnatada).
* 2 vasos de [[caldo]] natural o de cubitos (1/2 litro)
* 1/3 brik de 200ml de nata
* sal, [[pimienta blanca]] y perejil

!! Procedimiento
# Derretir la mantequilla con unas gotas de aceite para evitar que se queme y [[saltear]] la cebolla troceada hasta que esté transparente. 
# Añadir lo blanco del puerro cortado en aros y saltear 2' más.
# Añadir la patata cortada en lonchas finas y rehogar brevemente.
# Añadir el caldo caliente, sal y pimienta. Cocer a fuego lento 20'.
# Cuando ya está hecha la patata retirar del fuego y pasar por la batidora en la misma cazuela. 
# Añadir la leche y seguir batiendo hasta que quede fino.
# Añadir la nata batiendo hasta conseguir una mezcla muy homogénea.
# Si hace falta, rectificar de sal en caliente.
# Refrigerar y servir muy fría, mejor al día siguiente.