<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

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

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left: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:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

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

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

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding: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 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin: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;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
[>img(auto,200px)[https://lh6.googleusercontent.com/-_qrkFNW2voM/TiNf4W31rWI/AAAAAAAAABI/y4MHLj6jDZU/5MinSherriedShrimp.jpg]]

Simple and delicious.


''Servings:''4
''Active time:''
''Total prep time:'' 5 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
12 jumbo shrimp or prawns; peeled and deveined 
salt & freshly ground black pepper 
Tabasco sauce 
2 tablespoons olive oil 
4 tablespoons sherry wine
!Preparation
#Heat the olive oil in a frying pan and stir fry the prepared shrimp or prawn for 2-3 minutes until pink.
#Add the sherry to the pan; stir and continue to cook for 30 seconds until the shrimp are very fragrant.
#Season with Tabasco sauce, salt and pepper to taste and serve immediately.
!Notes

[>img(auto,200px)[https://lh5.googleusercontent.com/-CMwyxHCyXNc/TiNf47sKlQI/AAAAAAAAABY/67WMcgkgua4/AddictiveSweetPotatoBurritos.jpg]]

 "Once you've had one - you'll want another. The recipe is a little different from most burrito recipes, but I've had many, many requests for it. Serve these with sour cream, chopped green onions and salsa. For vegan burritos, omit the cheese and sour cream. These may be made ahead of time, individually frozen, then heated. For an interesting variation, try deep frying these tasty burritos." //- Karena//


''Servings:'' 8-12
''Active time:'' 30 minutes
''Total prep time:'' 50 minutes

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients

1 onion; chopped
4 cloves garlic; minced
6 cups canned kidney beans; drained
2 cups water
3 tablespoons chili powder
2 teaspoons ground cumin
4 teaspoons prepared mustard
1 pinch cayenne pepper; or to taste
3 tablespoons soy sauce
4 cups cooked and mashed sweet potatoes
12 (10 inch) flour tortillas; warmed
8 ounces shredded Cheddar cheese
!Preparation 
Preheat oven to 350 degrees F (175 degrees C).

Heat oil in a medium skillet, and saute onion and garlic until soft. Stir in beans, and mash. Gradually stir in water, and heat until warm. Remove from heat, and stir in the chili powder, cumin, mustard, cayenne pepper and soy sauce.

Divide bean mixture and mashed sweet potatoes evenly between the warm flour tortillas. Top with cheese. Fold up tortillas burrito style, and place on a baking sheet.

Bake for 12 minutes in the preheated oven, and serve.
!Notes
allrecipes.com

http://allrecipes.com/Recipe/Addictive-Sweet-Potato-Burritos/Detail.aspx

[>img(auto,200px)[https://lh6.googleusercontent.com/-sTf1xRuXvtA/UGj23cQU6-I/AAAAAAAAAZA/6aHaJkxS5NI/s595/pbchili_pasta.JPG]]


''Servings:'' 4
''Active time:'' 10
''Total prep time:'' 20


!Ingredients
1 pound dried soba noodles or spaghetti
1/8 cup sesame oil
1/4 cup soy sauce
1/2-1 tablespoon sweetener
1 1/2 tablespoons balsamic vinegar
1-3 tablespoons spicy red chili sauce
4 tablespoons peanut butter
1 cup fresh cilantro, chopped
8 green onions, sliced
handful chopped peanuts, to garnish, optional
!Preparation
#Cook noodles in large pot of boiling, salted water until just tender. For sauce, whisk sesame oil, soy sauce, sweetener, vinegar, chili sauce, and peanut butter.
#Drain and rinse noodles when done. Using tongs, toss noodles with sauce.
#Add cilantro and green onions. Garnish with peanuts, if desired.

This can be served cold or hot.
!Notes
Source: http://www.vegweb.com/recipes/asian-noodles-peanut-butter-and-chilies?page=1
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

''Servings:'' 2-3
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 tbsp vegetable oil
2 tbsp rice wine vinegar
2 tbsp creamy peanut butter
1 tbsp soy sauce
1 tbsp brown sugar
2 tsp ginger, minced or grated
1 tsp garlic, minced

1 1/2 c cabbage, thinly sliced
1/2 c red bell pepper, thinly sliced
1/2 c carrot, julienned
2 scallions, thinly sliced
2 tbsp cilantro, chopped
salt (just a pinch)
pepper
!Preparation
#To make the dressing, combine the first 7 ingredients in a small bowl and whisk until smooth. Let sit for at least 20 minutes. 
#Combine the remainder of ingredients in a large bowl and toss to mix. Toss with the dressing right before serving.
!Notes
[>img(auto,256px)[Tux|https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Sour cream can be substituted for the mascarpone, but the polenta won't be as rich.

''Servings:'' 8

''Active time:''

''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
12 cups water
1 tablespoon salt
2 large garlic cloves, minced
3 cups white cornmeal
12 ounces sharp white cheddar cheese, shredded (about 3 cups) 
8 ounces mascarpone cheese*
4 tablespoons (1/2 stick) butter
1/4 teaspoon ground white pepper

!Preparation
Lightly butter 15x10x2-inch glass baking dish. Bring 12 cups water, 1 tablespoon salt, and garlic to boil in heavy large saucepan over high heat. Gradually add cornmeal, whisking until smooth. Reduce heat to medium-low and cook until cornmeal is very soft and mixture is thick and creamy, whisking often, about 12 minutes. Remove from heat. Stir in half of cheddar cheese, all of mascarpone, 3 tablespoons butter, and 1/4 teaspoon white pepper. Transfer polenta to prepared dish. (Can be prepared 2 hours ahead. Cover and let stand at room temperature.) 

Preheat oven to 400°F. Sprinkle remaining half of cheddar cheese over polenta. Dot with remaining 1 tablespoon butter. Bake polenta until heated through and golden on top, about 25 minutes.
!Notes
~* Italian cream cheese, available at Italian markets and many supermarkets.

Bon Appétit
January 2003

Entertaining Made Easy
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 1 double crust
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 2/3 cups flour
2 tbsp sugar
1/2 tsp salt
1/2 cup chilled solid vegetable shortening; cut into small piece
1/2 cup chilled unsalted butter (1 stick); cut into small piece
1 large egg
3 tablespoons ice water; (or more...) 
!Preparation
Combine flour, sugar and salt in processor. Using on/off turns, cut in shortening and butter until mixture resembles coarse meal. Beat egg and 3 tablespoons water in small bowl to blend. Add to flour mixture. Process until moist clumps form, adding more water by teaspoonfuls if dough is dry. Gather into ball. Divide in half. Flatten each half into disk. Wrap in plastic; chill 1 hour. (Can be made 1 day ahead. Keep chilled. Let dough soften slightly at room temperature before rolling.)
!Notes
[>img(auto,256px)[https://lh3.googleusercontent.com/-t3FOkVMsO_A/TiNf5JXLEXI/AAAAAAAAABU/3Sn5ON1kb-E/beet_pancake.jpg]]

An almost unbelievably sweet and wonderful side dish. The sugar in the beets caramelizes, and the flavors of the rosemary, beets, and butter meld beautifully. With thanks to Michael Romano, the brilliant chef at New York's Union Square Cafe, who shared this recipe with me almost 10 years ago. //- Charlie Mayer, NPR//

''Servings:'' 4

''Total prep time:'' 20 minutes

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 to 1 1/2 pounds beets
1 teaspoon coarsely chopped fresh rosemary
1 teaspoon salt
1/4 cup flour
2 tablespoons butter
!Preparation
#Trim the beets and peel them as you would potatoes; grate them in a food processor or by hand. Begin preheating a medium to large non-stick skillet over medium heat. 
#Toss the grated beets in a bowl with the rosemary and salt, then add about half the flour; toss well, add the rest of the flour, then toss again. 
#Place the butter in the skillet and heat until it begins to turn nut-brown. Scrape the beet mixture into the skillet, shape it into a nice circle, and press it down with a spatula. Turn the heat to medium-high and cook, shaking the pan occasionally, until the bottom of the beet cake is nicely crisp, 6 to 8 minutes. Slide the cake out onto a plate, top with another plate, invert the two plates, and slide the cake back into the pan. Continue to cook, adjusting the heat if necessary, until the second side is browned. Cut into wedges and serve immediately.
!Notes
From //All Things Considered//, May 30, 2005
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 9 cups
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
hree 15 1/2 ounce cans black beans (about 4 1/2 cu; rinsed and drained 
1 cup drained canned tomatoes; chopped 
1 1/4 cups chopped onion 
1/2 cup minced shallot 
4 garlic cloves minced 
1 tablespoon plus 2 teaspoons ground cumin 
1 teaspoon salt 
1/2 teaspoon freshly ground black pepper 
1/2 stick (1/4 cup) unsalted butter 
4 cups beef broth 
a 16-ounce can pumpkin pureé (about 1 1/2 cups) 
1/2 cup dry Sherry 
1/2 pound cooked ham; cut into 1/8-inch di 
3 to 4 tablespoons Sherry vinegar 
Garnish: sour cream and coarsely chopped lightly toasted pumpkin seeds
!Preparation
In a food processor coarsely pureé beans and tomatoes.
In a 6-quart heavy kettle cook onion, shallot, garlic, cumin, salt, and pepper in butter over moderate heat, stirring, until onion is softened and beginning to brown. Stir in bean pureé. Stir in broth, pumpkin, and Sherry until combined and simmer, uncovered, stirring occasionally, 25 minutes, or until thick enough to coat the back of a spoon.

Just before serving, add ham and vinegar and simmer soup, stirring, until heated through. Season soup with salt and pepper.

Serve soup garnished with sour cream and toasted pumpkin seeds.
!Notes
Gourmet
November 1996
http://www.epicurious.com/recipes/food/views/Black-Bean-Pumpkin-Soup-14330
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

The crust of this tart is tender and quite crumbly.


''Servings:'' 6
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''For crust ''
1 1/4 cups all-purpose flour
1 teaspoon ground cumin
1 teaspoon chili powder
1 teaspoon paprika
1/2 teaspoon salt
1 stick (1/2 cup) chilled unsalted butter, cut into bits
2 tablespoons ice water
raw rice for weighting shell

''For filling ''
1/2 pound dried black beans, picked over, or 3 cups canned black beans, rinsed and drained
1 bay leaf
1 medium red onion, chopped
2 tablespoons sour cream
1 tablespoon vegetable oil
a 10-ounce package frozen corn, thawed
1 red bell pepper, chopped (about 1 cup)
1/2 cup fresh coriander sprigs, washed well, spun dry, and chopped
1 1/2 cups coarsely grated Monterey Jack (about 6 ounces)
2 fresh jalapeño chiles, seeded and chopped fine (wear rubber gloves)
1/2 cup chopped scallions (about 2)

''For lime sour cream: ''
1 cup sour cream
2 teaspoons fresh lime juice, or to taste
!Preparation
Preheat oven to 350°F. 

''Make crust:''
In a bowl with a pastry blender or in a food processor blend or pulse together flour, spices, and salt until combined well. Add butter and blend or pulse until mixture resembles coarse meal. Add ice water and blend or pulse until incorporated and mixture forms a dough. 

Press dough evenly onto bottom and sides of a 10-inch tart pan with a removable fluted rim and chill 15 minutes, or until firm. Line shell with foil and fill with rice. Bake shell in middle of oven until edge is set, 8 to 10 minutes. Carefully remove foil and rice and bake crust 10 minutes more, or until golden. Cool crust in pan on a rack. Crust may be made 1 day ahead and kept at room temperature, covered loosely with plastic wrap. 

''Make filling:''
In a bowl soak dried beans if using in water to cover by 2 inches overnight and drain. In a large saucepan combine soaked beans, bay leaf, onion, and water to cover by 2 inches and simmer, uncovered, 1 to 1 1/4 hours, or until tender, adding more water if necessary. Drain beans, discarding bay leaf, and cool. 

In a food processor purée 1 cup cooked or canned beans with sour cream until smooth and season with salt and pepper. 

In a skillet heat oil over moderately high heat until hot but not smoking and sauté corn with salt and pepper to taste, stirring, about 2 minutes. Cool corn. 

In a large bowl stir together corn, whole beans, bell pepper, coriander, Monterey Jack, jalapeños, and scallions and season with salt and pepper. 

Spread bean purée evenly onto crust and mound with remaining filling, pressing gently. Bake tart in middle of oven about 20 minutes, or until hot and cheese is melted. Let tart cool in pan on a rack 15 minutes. 

Remove rim of pan and serve tart warm or at room temperature with lime sour cream. 

''Make lime sour cream:''
In a bowl whisk sour cream and lime juice with salt and pepper to taste. Sauce may be made 1 day ahead and chilled, covered. Makes about 1 cup.
!Notes
Gourmet
January 1996

http://www.epicurious.com/recipes/food/views/Black-Bean-Tart-with-Chili-Crust-11432
[>img(auto,256px)[Tux|https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Serve this over the [[Baked White Polenta with Two Cheeses]], and season with any — or all — of the suggested toppings (chocolate adds //mole// flavor).

''Servings:'' 8

''Active time:''

''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/2 cup olive oil
5 large onions, chopped
1/4 cup instant espresso powder
1/4 cup chili powder
1/4 cup ground cumin
1/4 cup dried oregano leaves
2 28-ounce cans crushed tomatoes with added puree
1/3 cup honey
6 large garlic cloves, minced
7 15-ounce cans black beans, rinsed, drained
2 cups water
1 tablespoon salt
1/4 teaspoon chipotle chili powder or chili powder
Large pinch of ground cinnamon

Assorted toppings (sour cream, chopped fresh cilantro, chopped green onions, shredded cheese, sliced jalapeños, and shaved bittersweet chocolate)
!Preparation
Heat oil in heavy large pot over medium-high heat. Add onions and sauté until tender, about 8 minutes. Mix in espresso powder, 1/4 cup chili powder, cumin, and oregano. Cook 1 minute. Mix in tomatoes, honey, and garlic. Bring to simmer. Reduce heat to medium-low, cover, and simmer 30 minutes. Add beans, 2 cups water, salt, chipotle chili powder, and cinnamon. Bring to boil over high heat. Reduce heat to medium and simmer uncovered until mixture thickens slightly, stirring often, about 30 minutes. Season with salt. (Can be prepared 1 day ahead. Cool slightly. Refrigerate uncovered until cold, then cover and refrigerate. Rewarm before serving.)

Place toppings in individual condiment bowls. Ladle chili into bowl and serve toppings alongside.
!Notes
Bon Appétit
January 2003

Entertaining Made Easy
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
4 9- to 10-inch-diameter flour tortillas

3/4 cup chopped onion
2 teaspoons vegetable oil
1/2 teaspoon ground cumin
1/2 teaspoon chili powder
1 cup chopped red bell pepper
2/3 cup frozen corn kernels, thawed
1 medium carrot, coarsely grated
1 2/3 cups canned black beans, rinsed, drained
1/2 cup drained canned Mexican-style stewed tomatoes
2 teaspoons minced seeded jalapeño chile

8 tablespoons grated Monterey Jack cheese (about 2 ounces)
4 tablespoons nonfat sour cream
4 tablespoons chopped fresh cilantro
!Preparation
Preheat oven to 350°F. Wrap tortillas in foil. Warm in oven until heated through, about 15 minutes.

Meanwhile, combine onion and oil in large nonstick skillet. Stir over medium-high heat until onion is golden, about 6 minutes. Add cumin and chili powder; stir 20 seconds. Add bell pepper, corn and carrot; sauté until almost tender, about 5 minutes. Add beans, tomatoes and jalapeño; bring to simmer. Season with salt and pepper. remove from heat.

Place warm tortillas on work surface. Spoon filling down center, dividing equally. Top each with 2 tablespoons cheese, then 1 tablespoon each of sour cream and cilantro. Fold sides of tortillas over filling, forming packages. Turn each package, seam side down, onto plate.

!Notes
Per Serving: calories, 387; total fat, 10 g; saturated fat, 3 g; cholesterol, 13 mg 

Bon Appétit
January 1996
Cooking for Health

http://www.epicurious.com/recipes/food/views/Black-Bean-and-Vegetable-Burritos-1192
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 2
''Total prep time:'' Can be prepared in 45 minutes or less.

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 onion, chopped fine
1/2 pound mushrooms, chopped fine
1 tablespoon vegetable oil
1 bunch spinach (about 1 pound), coarse stems discarded, washed well and spun dry
2 garlic cloves
1/4 cup water
1 cup canned black beans, rinsed well and drained
1 teaspoon fresh lemon juice
2 scallions, chopped fine
3/4 cup coarsely grated pepper Jack cheese (about 5 ounces)
1/2 cup canned mild enchilada sauce
two 10-inch or four 8-inch flour tortillas

Sour cream
!Preparation
In a heavy skillet cook onion and mushrooms in oil over moderate heat, stirring, until golden. Add spinach and garlic and cook, stirring, until spinach is wilted, about 30 seconds. Stir in water, beans, lemon juice, scallions, pepper Jack, and salt to taste and cook, stirring, until cheese is melted. 

In a small saucepan heat enchilada sauce. 

Heat a dry skillet (large enough to hold 1 tortilla) over moderately high heat until hot. In skillet heat tortillas, 1 at a time, turning frequently, 30 seconds, or until softened, and transfer to a work surface. Divide filling between tortillas and roll up burritos. 

Spoon sauce over burritos and serve with sour cream.
!Notes
Gourmet
January 1995

http://www.epicurious.com/recipes/food/views/Black-Bean-Spinach-and-Mushroom-Burritos-10020
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 2
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
a 16- to 19-ounce can black beans
2 garlic cloves
1 teaspoon ground cumin
2 tablespoons olive oil
1/3 cup tomato juice or water
3/4 teaspoon salt
2 tablespoons chopped fresh cilantro
!Preparation
Rinse black beans and drain. Chop garlic. In a nonstick skillet cook garlic and cumin in oil over moderate heat, stirring, until fragrant. Add black beans, juice or water, and salt and cook, stirring, until beans are heated through. Stir in cilantro.
!Notes
Gourmet
March 1999
Quick Kitchen

http://www.epicurious.com/recipes/food/views/Black-Beans-with-Garlic-Cumin-and-Cilantro-101154
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 medium russet potato, peeled, cut into 1/2-inch pieces
2 cups drained canned black-eyed peas (about 1 1/2 15-ounce cans)
1/2 cup water
2 teaspoons minced fresh ginger
1/4 teaspoon turmeric

2 tablespoons vegetable oil
1 cup chopped onion
1 teaspoon curry powder
1/2 cup chopped tomato

1/4 cup chopped fresh cilantro
!Preparation
Boil potato in medium pot of boiling salted water until tender, about 10 minutes; drain. Blend 1/2 cup black-eyed peas, 1/2 cup water, ginger and turmeric in processor until smooth. 

Heat oil in heavy large skillet over medium heat. Add onion and sauté until translucent, about 5 minutes. Add curry powder and stir until fragrant, about 1 minute. Add remaining 1 1/2 cups black-eyed peas, puree from processor, potato and tomato to skillet. Cook until mixture is thick and creamy, stirring occasionally, about 5 minutes. Season to taste with salt and pepper. (Can be prepared 1 day ahead. Cover and refrigerate. Rewarm before continuing.) 

Transfer curry to large bowl. Garnish with chopped cilantro and serve.
!Notes
Bon Appétit
August 1993
Chitra Joshi: Coppell, Texas

http://www.epicurious.com/recipes/food/views/Black-Eyed-Pea-Curry-2316
[>img(auto,200px)[https://lh6.googleusercontent.com/-pOa7xLWQSkc/Ty1iXI9M62I/AAAAAAAAAYU/yXOOmjCms1A/s800/BlueCoyoteNachos.jpg]]

"Inspired by nachos we had at the Blue Coyote Grill in Palm Springs years ago, this recipe is an instant favorite. "


''Servings:'' 6 to 8
''Active time:''
''Total prep time:''


!Ingredients
1 large bag tortilla chips
3 boneless, skinless chicken breasts — cubed
2 tablespoons butter — red pepper oil can also be used
2 cloves garlic — minced
3 tablespoons Paul Prudhomme Poultry Magic
1 can black beans
2-3 tablespoons hickory liquid smoke flavoring
3 cups Monterey Jack cheese — shredded

//Garnish with the following: //
Salsa
Guacamole
Sour cream
Jalapeno peppers
Sliced black olives
Green onions
Cilantro
!Preparation
Simmer black beans and liquid smoke flavoring for 30-40 min. Cut chicken into 1′ cubes. Heat butter and garlic in skillet over medium heat. Add chicken and sprinkle generously with Poultry Magic seasoning and brown in saucepan with oil and garlic until thoroughly cooked.

Place a layer of tortilla chips on a ceramic plate (approx. 8-10 large chips) for one serving. (Serving sizes can be customized for each person.) Sprinkle 1/2 – 3/4 cup cheese to just cover chips. Place approx 1/2 cup cooked chicken on top of cheese layer and approx 1/4 cup of black beans (use a slotted spoon to avoid the liquid) on top of chicken layer.

Bake in oven at 350° until cheese melts and chips are crispy, approximately 5-8 minutes depending on the serving size. Serve hot and garnish as desired.
!Notes
Original recipe: http://savoringtoday.com/2011/02/03/wow-your-super-bowl-crowd-with-a-platter-of-nachos/

[>img(auto,200px)[https://lh6.googleusercontent.com/-iHCHGLGzek8/TiNf5W5R4xI/AAAAAAAAABc/eOct5KbWidQ/bulgur_veggie_burgers.jpg]]

Most veggie burgers must have self-esteem issues, since they're always pretending to be something they're not. But these bulgur burgers don't try to hide their meatless nature and instead celebrate their grain-centric origins with wonderful texture and a hint of Middle Eastern spice.


''Servings:'' 4
''Active time:'' 20 minutes
''Total prep time:'' 1 hour

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/2 cup onion; chopped and divided
1 tbsp olive oil; plus additional for
1/2 cup bulgur
1 cup water
1 cup canned pinto beans; rinsed and drained
5 1/2 tbsp soy sauce
3/4 cup walnuts (2 1/2 oz)
2 garlic cloves; coarsely chopped
1/2 cup cilantro sprigs; packed
3/4 teaspoon ground cumin
1/4 teaspoon cayenne
1/4 cup mayonnaise
1/4 teaspoon lime zest; grated
1/2 teaspoon fresh lime juice
4 slices multi-grain bread; toasted 
!Preparation
Cook half of onion with 1/4 teaspoon salt in oil in a small heavy saucepan over medium heat, stirring occasionally, until golden, 5 to 7 minutes. Add bulgur and water and cook, covered, over low heat until water is absorbed, 15 to 18 minutes. Transfer to a bowl and stir in beans and soy sauce.

Pulse bulgur mixture, walnuts, garlic, cilantro, cumin, cayenne, a rounded 1/4 tsp salt, 1/2 teaspoon pepper, and remaining onion in a food processor until finely chopped.

Form rounded 1/2 cups of mixture into 4 (3 1/2-inch-diameter) patties. Chill at least 10 minutes.

While patties chill, stir together mayonnaise, zest, and juice.

Prepare grill for direct-heat cooking over medium-hot charcoal (medium heat for gas). Put perforated grill sheet on grill and preheat 10 minutes.

Brush patties all over with oil.

Oil grill sheet, then grill burgers on grill sheet, covered only if using a gas grill, carefully turning once, until golden brown, about 8 minutes total.

Serve burgers open-faced on toast with lime mayonnaise.

Cooks' notes:
•Burgers can be cooked on the stove. Heat 1 tablespoon oil in a 12-inch heavy skillet over medium heat until it shimmers, then cook patties, carefully turning once, until golden brown, about 8 minutes total.
•Uncooked patties can be chilled, covered, up to 4 hours.
!Notes
Gourmet
June 2008

http://www.epicurious.com/recipes/food/views/Bulgur-Veggie-Burgers-with-Lime-Mayonnaise-242594
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]





[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/2 cup unsalted butter 
1 1/2 cups buttermilk 
2 large eggs 
2 cups yellow cornmeal 
1 cup unbleached all purpose flour 
1/2 cup sugar 
4 teaspoons baking powder 
1 teaspoon salt 
1/4 teaspoon ground black pepper
!Preparation
Preheat oven to 400°F. Butter 13x9x2-inch metal baking pan. Melt butter in large saucepan over low heat. Remove from heat. Whisk in buttermilk, then eggs. Mix all remaining ingredients in large bowl. Stir in buttermilk mixture. Transfer to prepared pan. 

Bake corn bread until edges are lightly browned and tester inserted into center comes out clean, about 20 minutes. Cool completely in pan. If using in stuffing, cover tightly and store at room temperature at least 1 day and up to 2 days.
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Fried sage leaves make a crispy garnish. Try them also crumbled on mashed potatoes and sautéed vegetables.


''Servings:'' 8
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 tablespoons butter
1 onion, coarsely chopped
1 tablespoon chopped fresh sage
1 2 3/4-pound butternut squash, halved, peeled, seeded, chopped (about 5 cups)
5 cups canned low-salt chicken broth
1/3 cup freshly grated Parmesan cheese

24 fresh sage leaves
!Preparation
Melt 1 tablespoon butter in heavy large pot over medium heat. Add onion; cover and cook until soft, stirring occasionally, about 7 minutes. Add chopped sage; stir 1 minute. Add squash and broth. Increase heat to high and bring to boil. Reduce heat and simmer until squash is tender, about 25 minutes. Cool slightly. Puree soup in batches in blender until smooth. Return soup to pot. Mix in cheese. Season to taste with salt and pepper. (Can be made 1 day ahead. Cool slightly, then cover and refrigerate.) 

Melt remaining 2 tablespoons butter in heavy large skillet over medium heat. Add sage leaves and sauté until brown and toasted, about 2 minutes.Bring soup to simmer. Ladle into bowls. Garnish with fried sage leaves.
!Notes
Bon Apetit, November 2001

http://www.epicurious.com/recipes/food/views/Butternut-Squash-Soup-with-Parmesan-and-Fried-Sage-Leaves-105771
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

This lovely and satisfying main course uses light coconut milk, Thai red curry paste and jalapeño chili for lots of flavor and spice. //- Bon Appetit//


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 tablespoon olive oil 
1 1/2 cups chopped onions 
2 lbs butternut squash; peeled,seeded,cut into 1/2- to 3/4 
1 cup canned vegetable broth 
1 1/2 tablespoons jalapeño chili; minced,seeded 
1 tablespoon garlic; minced 
1 cup canned light unsweetened coconut milk* 
2 tablespoons fresh lime juice 
1 teaspoon Thai red curry paste* 
12 ounces dried futonaga udon noodles (oriental-style spaghe 
1/2 cup fresh cilantro; chopped
!Preparation
Heat oil in large nonstick skillet over medium-high heat. Add onions; sauté until golden, about 5 minutes. Add squash; sauté 4 minutes. Add broth, jalapeño and garlic; bring to boil. Cover; cook until squash is almost tender, about 5 minutes. Stir in coconut milk, lime juice and curry paste. Simmer uncovered until squash is tender and liquid is slightly reduced, about 4 minutes. Season to taste with salt.

Meanwhile, cook noodles in large pot of boiling salted water until just tender but still firm to bite. Drain noodles. Return to pot. Add squash mixture and cilantro to noodles; toss to blend. Serve.
!Notes
Bon Appetit
May 1998
http://www.epicurious.com/recipes/food/views/Butternut-Squash-and-Noodles-with-Coconut-Lime-and-Cilantro-Sauce-5340
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 8
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
 ''Crust:''
1 cup flour; Plus 6 Tbsp
1 tsp sugar
1/2 tsp salt
1/4 cup chilled unsalted butter (1/2 stick); cut into pieces
1/4 cup chilled vegetable shortening; cut into pieces
2 1/2 tbsp ice water
1 tsp cider vinegar 

''Squash Filling:''
1 1/4 lbs butternut squash
2 large eggs
1/2 cup golden brown sugar; packed
1/2 cup whipping cream
1 tsp all purpose flour; rounded
1 tsp ground cinnamon
1 tsp vanilla extract
1/4 tsp ground ginger
1/8 tsp ground cloves 

''Pecan Filling:''
1/4 cup golden brown sugar; packed
1 large egg
2 tbsp light corn syrup
1 tbsp Light unsulfured molasses
1/2 tsp vanilla extract
1/3 cup pecans; toasted,coarsley chopped
whipped cream; (optional) 
!Preparation
''For crust:''
Combine flour, sugar and salt in large bowl. Add butter and shortening and rub in with fingertips until mixture resembles coarse meal. Mix ice water and cider vinegar; pour over flour mixture and toss until moist clumps form. Gather dough into ball; flatten into disk. Wrap in plastic and refrigerate 45 minutes. (Can be prepared 1 day ahead. Soften slightly at room temperature before rolling.)

''For Squash Filling:''
Preheat oven to 350 F. Cut squash in half lengthwise. Scrape out seeds. Place cut side down in baking dish. Bake until tender when pierced with knife, about 1 hour. Cool completely. Scrape squash into processor, discarding peel. Puree squash until smooth. Measure 1 C squash puree into medium bowl. Add remaining ingredients; whisk until smooth. Roll out dough on floured surface to 1/8-inch-thick round. Transfer to 9-inch diameter glass pie dish. Press dough gently into dish. Trim dough, leaving 1/2-inch overhang. Fold edge under and crimp decoratively, forming high-standing rim. Freeze until firm, about 15 minutes.

''For Pecan Filling:''
Whisk first 5 ingredients in small bowl until blended. Mix in 2/3 C chopped pecans.
Position rack in bottom third of oven and preheat to 400'F. Spread pecan filling in crust. Bake until filling is set and slightly puffed, about 20 minutes. Cool 10 minutes.
Pour squash filling over pecan layer and smooth top. Bake until squash is set in center, about 40 minutes. Cool completely on rack. (Can be prepared 1 day ahead; cover and chill.)

Garnish pie with pecan halves. Cut into wedges and serve with whipped cream, if desired.
!Notes
Food processor works well for mixing crust.
[>img(auto,200px)[./images/kami23-kiss-the-cook-2598.png]]

http://www.cooksillustrated.com/recipes/login.asp?docid=31244


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients

!Preparation

!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 4
''Active time:'' 45 minutes
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
6-7 fresh large tomatoes
1 can lima beans
1 can blackeye peas
1 cup fresh chopped okra
1 onion, chopped
2-3 cloves garlic, chopped
1 tablespoon [[Creole Seasoning]]
pepper and salt to taste
1-2 teaspoon olive oil
!Preparation
Heat olive oil in a large stew pot.  Add chopped onions and garlic and saute for 2-3 minutes.  Add chopped tomatoes, lima beans, blackeye peas and cajun seasoning.  Bring to a boil, stir well, then reduce heat and simmer on low for 30 minutes, stirring occasionally.  If the stew gets too thick add water as needed.  Add chopped okra, stir well.  Simmer for another 15 minutes.  Serve over brown rice.
!Notes
Recipe submitted by Eric Freeman
http://vegweb.com/index.php?topic=8540.0
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Only native Californians like two wine-making friends of mine in Salinas can regularly throw together a vegetable chili such as this utilizing their almost year-round abundance of fresh vegetables and herbs. For those of us with seasonal gardens, various substitutions often have to be made (canned tomatoes, dried herbs, and the like), but such is the availability almost everywhere today of certain fresh produce even in the coldest months that no imaginative cook should have much trouble concocting a very tasty vegetable and bean chili according to this basic recipe. One advantage, by the way, of using a 28-ounce can of tomatoes with their juices instead of the fresh is that most likely you won't have to add any water to keep the chili slightly soupy. //- James Villas//

''Servings:'' 4 to 6
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/2 cup vegetable oil
2 medium-size onions, chopped
1 celery rib, chopped
1 small green bell pepper, seeded and chopped
1 garlic clove, minced
2 medium-size yellow squash or zucchini, scrubbed, ends trimmed, and chopped
Two 32-ounce cans chickpeas (garbanzo beans), drained
2 tablespoons chopped fresh coriander (cilantro) leaves
2 tablespoons chili powder
1 tablespoon chopped fresh oregano leaves, or 1/2 teaspoon dried, crumbled
1 tablespoon chopped fresh basil leaves, or 1/2 teaspoon dried, crumbled
1 teaspoon ground cumin
Salt and freshly ground black pepper to taste
Cayenne pepper to taste
4 large, ripe tomatoes, chopped and juices retained
1 1/2 cups tomato juice
!Preparation
In a large, heavy pot, heat the oil over moderate heat, then add the onions, celery, bell pepper, and garlic, and cook, stirring, till softened, about 2 minutes. Add the squash and cook, stirring, 3 minutes longer to soften. Add the remaining ingredients and stir well. Reduce the heat to a low simmer, cover, and cook for 1 hour, adding a little water if the stew begins to get too thick.
!Notes
//Stews, Bogs, and Burgoos: Recipes from the Great American Stewpot//
James Villas
William Morrow and Co., Inc.
October 1997

http://www.epicurious.com/recipes/food/views/California-Vegetable-and-Chickpea-Chili-14832

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Include introductory text here.


''Servings:'' 4 burgers
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
a 19-ounce can chick-peas
2 garlic cloves
1/2 medium onion
1 tablespoon fresh rosemary leaves
1/4 cup chopped fresh flat-leafed parsley leaves
1/2 cup fine fresh bread crumbs
3/4 cup walnuts, toasted and chopped
1 large egg
2 tablespoons olive oil
4 sesame buns
4 slices beefsteak tomato
4 slices red onion
!Preparation
In a colander rinse and drain chick-peas. In a food processor pulse garlic, onion, and rosemary until chopped coarse. Add chick-peas, parsley, and bread crumbs and pulse until just combined. Transfer mixture to a bowl and stir in walnuts, egg, and salt and pepper to taste until well combined. Form mixture into four 3-inch patties. Chill patties, covered, at least 1 hour and up to 1 day. 

In a large skillet heat oil over moderate heat until hot but not smoking and cook patties until golden brown, about 4 minutes on each side. Toast sesame buns. Transfer burgers to buns and top with tomato and onion.
!Notes
Gourmet
August 1997
http://www.epicurious.com/recipes/food/views/CHICK-PEA-WALNUT-BURGERS-14244
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 8
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 pound dried chick-peas (about 2 1/3 cups), picked over
2 cinnamon sticks, broken in half
1 teaspoon cumin seeds
1/4 cup olive oil
3 large onions, sliced thin (about 7 cups)
two 28- to 32-ounce cans whole tomatoes, drained, reserving juice, and chopped
1 cup raisins
1/3 cup chopped peel of preserved lemons
3/4 teaspoon ground cumin
1/2 teaspoon ground coriander
1 1/2 pounds fresh spinach, stems trimmed and leaves washed well and drained (about 10 cups packed)

''Dried Beans''
1/2 to 1 pound dried beans, picked over

Accompaniment: couscous and crusty bread

!Preparation
 In a bowl soak chick-peas in water in cover by 2 inches overnight or quick-soak (procedure page 103) and drain.

In a 3-quart saucepan combine chick-peas, cinnamon, cumin seeds, and water to cover, by 2 inches and simmer, covered partially, adding more water if necessary, 1 to 1 1/4 hours, or until chick-peas are just tender. Discard cinnamon. Chick-peas may be made 1 day ahead, cooled completely, and chilled in their cooking liquid, covered.

In a large heavy kettle heat oil over moderate heat and cook onions, stirring occasionally, until deep golden brown, about 15 minutes. Stir in tomatoes with reserved juice, chick-peas with cooking liquid, raisins, preserved lemon peel, ground cumin, and coriander and bring to a simmer. Cook stew about 45 minutes, or until chick-peas are tender and liquid is thickened slightly. Stir in spinach, a heaping handful at a time, and cook until wilted and just tender.

Season stew with salt and pepper and serve with couscous and bread.

''To quick-soak dried beans:''
In a colander rinse the beans under cold water and discard any discolored ones. In a kettle combine the beans with enough cold water to cover them by 2 inches, bring the water to a boil, and boil the beans for 2 minutes. Remove the kettle from the heat and let the beans soak, covered, for 1 hour. 
!Notes
Gourmet
January 1996

http://www.epicurious.com/recipes/food/views/Chick-Pea-Tomato-Stew-with-Moroccan-Flavors-11434
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

for [[Cold Avocado Soup with Chili Coriander Cream]]


''Servings:'' 6 servings
''Active time:''
''Total prep time:'' 10 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/4 cup sour cream 
1/4 cup plain yogurt 
2 garlic cloves; chopped 
1 fresh jalapeño or other fresh green chili; seeded and chopped (,or to taste 
2 cups packed fresh coriander; washed well and spun
!Preparation
In a blender or small food processor blend together all ingredients with salt and pepper to taste, scraping down sides, until very smooth. Cream may be made 6 hours ahead and chilled, covered.
!Notes
/***
|Name:|CloseOnCancelPlugin|
|Description:|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.commands.cancelTiddler,{

	handler_mptw_orig_closeUnsaved: config.commands.cancelTiddler.handler,

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

});

//}}}

[>img(auto,200px)[https://lh6.googleusercontent.com/-VPNnYKyBPaA/TiNf5Xxh6JI/AAAAAAAAABg/0EUHznlX5fY/ColdAvocadoSoup.jpg]]



''Servings:'' 6
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 ripe California avocados (each about 1/2 pound) 
2 tbsp fresh lemon or lime juice; or to taste 
1 1/2 cups low-salt chicken broth 
1 1/2 cups buttermilk 
2-3 cups ice water 
1 tsp ground cumin; or to taste 
Tabasco to taste
!Preparation
Halve, pit and peel avocados and in a blender or food processor blend with lemon or lime juice, broth, buttermilk, 2 cups ice water, cumin, Tabasco, and salt and pepper to taste until smooth. Transfer soup to a large bowl. Thin soup with enough of remaining cup ice water to reach desired consistency and chill, covered with plastic wrap, until very cold, at least 2 hours and up to 4 (soup will discolor if kept longer).

Serve soup drizzled with [[Chili Coriander Cream]] and garnished with coriander sprigs.
!Notes
Bon Appetit
August 1999
http://www.epicurious.com/recipes/food/views/COLD-AVOCADO-SOUP-WITH-CHILI-CORIANDER-CREAM-10185
/***
|Name|CollapseTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#CollapseTiddlersPlugin|
|Version|2.0.0|
|Author|Eric Shulman|
|OriginalAuthor|Bradley Meck - http://gensoft.revhost.net/Collapse.html|
|License|unknown|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|CollapsedTemplate|
|Overrides||
|Description|show/hide content of a tiddler while leaving tiddler title visible|
!!!Revisions
<<<
2009.05.04 [2.0.0] standardized documentation and added version #
2008.10.05 collapseAll() and expandAll(): added "return false" to button handlers to prevent IE page transition
2008.03.06 refactored all code for size reduction, readability, and I18N/L10N-readiness.  Also added 'folded' flag to tiddler elements (for use by other plugins that need to know if tiddler is folded (e.g., [[SinglePageModePlugin]]
2007.10.11 moved [[FoldFirst]] inline script and converted to {{{<<foldFirst>>}}} macro
2007.12.09 suspend/resume SinglePageMode (SPM/TPM/BPM) when folding/unfolding tiddlers
2007.05.06 add "return false" at the end of each command handler to prevent IE 'page transition' problem.
2007.03.30 add a shadow definition for CollapsedTemplate.  Tweak ViewTemplate shadow so "fold/unfold" and "focus" toolbar items automatically appear when using default templates.  Remove error check for "CollapsedTemplate" existence, since shadow version will now always work as a fallback.
2006.02.24 added fallback to "CollapsedTemplate" if "WebCollapsedTemplate" is not found
2006.02.06 added check for 'readOnly' flag to use alternative "WebCollapsedTemplate"
<<<
!!!Code
***/
//{{{
version.extensions.CollapseTiddlersPlugin= {major: 2, minor: 0, revision: 0, date: new Date(2009,5,4)};

config.shadowTiddlers.CollapsedTemplate=
	"<!--{{{-->\
	<div class='toolbar' macro='toolbar expandTiddler collapseOthers closeTiddler closeOthers +editTiddler permalink references jump'></div>\
	<div class='title' macro='view title'></div>\
	<!--}}}-->";

// automatically tweak shadow ViewTemplate to add "collapseTiddler collapseOthers" commands
config.shadowTiddlers.ViewTemplate=config.shadowTiddlers.ViewTemplate.replace(/closeTiddler/,"collapseTiddler collapseOthers closeTiddler");

config.commands.collapseTiddler = {
	text: "fold",
	tooltip: "Collapse this tiddler",
	collapsedTemplate: "CollapsedTemplate",
	webCollapsedTemplate: "WebCollapsedTemplate",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		// don't fold tiddlers that are being edited!
		if(story.isDirty(e.getAttribute("tiddler"))) return false;
		var t=config.commands.collapseTiddler.getCollapsedTemplate();
		config.commands.collapseTiddler.saveTemplate(e);
		config.commands.collapseTiddler.display(title,t);
		e.setAttribute("folded","true");
		return false;
	},
	getCollapsedTemplate: function() {
		if (readOnly&&store.tiddlerExists(this.webCollapsedTemplate))
			return this.webCollapsedTemplate;
		else
			return this.collapsedTemplate
	},
	saveTemplate: function(e) {
		if (e.getAttribute("savedTemplate")==undefined)
			e.setAttribute("savedTemplate",e.getAttribute("template"));

	},
	// fold/unfold tiddler with suspend/resume of single/top/bottom-of-page mode
	display: function(title,t) {
		var opt=config.options;
		var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
		var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
		var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
		story.displayTiddler(null,title,t);
		opt.chkBottomOfPageMode=saveBPM;
		opt.chkTopOfPageMode=saveTPM;
		opt.chkSinglePageMode=saveSPM;
	}
}

config.commands.expandTiddler = {
	text: "unfold",
	tooltip: "Expand this tiddler",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		var t = e.getAttribute("savedTemplate");
		config.commands.collapseTiddler.display(title,t);
		e.setAttribute("folded","false");
		return false;
	}
}

config.macros.collapseAll = {
	text: "collapse all",
	tooltip: "Collapse all tiddlers",
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		createTiddlyButton(place,this.text,this.tooltip,function(){
			story.forEachTiddler(function(title,tiddler){
				if(story.isDirty(title)) return;
				var t=config.commands.collapseTiddler.getCollapsedTemplate();


				config.commands.collapseTiddler.saveTemplate(tiddler);
				config.commands.collapseTiddler.display(title,t);
				tiddler.folded=true;
			});
			return false;
		})
	}
}

config.macros.expandAll = {
	text: "expand all",
	tooltip: "Expand all tiddlers",
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		createTiddlyButton(place,this.text,this.tooltip,function(){
			story.forEachTiddler(function(title,tiddler){
				var t=config.commands.collapseTiddler.getCollapsedTemplate();
				if(tiddler.getAttribute("template")!=t) return; // re-display only if collapsed
				var t=tiddler.getAttribute("savedTemplate");
				config.commands.collapseTiddler.display(title,t);
				tiddler.folded=false;
			});
			return false;
		})
	}
}

config.commands.collapseOthers = {
	text: "focus",
	tooltip: "Expand this tiddler and collapse all others",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		story.forEachTiddler(function(title,tiddler) {
			if(story.isDirty(title)) return;
			var t=config.commands.collapseTiddler.getCollapsedTemplate();
			if (e==tiddler) t=e.getAttribute("savedTemplate");
			config.commands.collapseTiddler.saveTemplate(tiddler);
			config.commands.collapseTiddler.display(title,t);
			tiddler.folded=(e!=tiddler);
		})
		return false;
	}
}

// {{{<<foldFirst>>}}} macro forces tiddler to be folded when *initially* displayed.
// Subsequent re-render does NOT re-fold tiddler, but closing/re-opening tiddler DOES cause it to fold first again.
config.macros.foldFirst = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		var e=story.findContainingTiddler(place);
		if (e.getAttribute("foldedFirst")=="true") return; // already been folded once
		var title=e.getAttribute("tiddler")
		var t=config.commands.collapseTiddler.getCollapsedTemplate();
		config.commands.collapseTiddler.saveTemplate(e);
		config.commands.collapseTiddler.display(title,t);
		e.setAttribute("folded","true");
		e.setAttribute("foldedFirst","true"); // only when tiddler is first rendered
		return false;
	}
}
//}}}
<!--{{{-->
<!--
|Name|CollapsedTemplate|
|Source|http://www.TiddlyTools.com/#CollapsedTemplate|
|Version||
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|template|
|Requires|ToolbarCommands|
|Overrides||
|Description|alternative to ViewTemplate, used by CollapseTiddlersPlugin to display tiddler when 'folded'|
-->
<span class='toolbar' macro='toolbar [[ToolbarCommands::CollapsedToolbar]]'></span>
</span>
<span class='title'>
	<span class='floatleft' macro='tiddlerIcons' style='cursor:auto !important;'></span>
	<span macro='view title'></span>
</span>
<div class='tagClear'></div>
<!--}}}-->
Name: MptwSmoke
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

[>img(auto,200px)[https://lh4.googleusercontent.com/-BYfS5gHREcI/TiNf52N18mI/AAAAAAAAABo/IHWHbNwWJgk/corn%252520on%252520the%252520cob%252520with%252520chipotle-scallion%252520butter.jpg]]



''Servings:'' 4-6 servings
''Active time:''
''Total prep time:'' 10 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3/4 stick unsalted butter; softened 
1/4 cup scallions (2 to 3); inced 
1 tablespoon canned chipotle chiles in adobo; minced and seeded 
1/4 teaspoon lime zest; grated 
6 large ears of corn; shucked and halved
!Preparation
Stir together butter, scallions, chipotles, zest, and rounded 1/2 teaspoon salt in a large bowl.

Cook corn in a large pot of boiling water until crisp-tender, 3 to 5 minutes. Transfer with tongs to butter mixture and toss. 

Optional: grill before buttering.
!Notes
[>img(auto,200px)[https://lh6.googleusercontent.com/-tAOMesWcCyw/TiNf5vJ8z-I/AAAAAAAAABk/vmgFgEvMtBI/CormealBiscuitsChipotle.jpg]]

Include introductory text here.


''Servings:'' Makes about 10.



[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 tablespoon unsalted butter
3/4 cup (packed) chopped green onions 
1 1/2 cups all purpose flour 
1/2 cup yellow cornmeal 
2 tablespoons sugar 
2 1/2 teaspoons baking powder 
3/4 teaspoon coarse kosher salt 
1/2 teaspoon baking soda 
1/2 cup (1 stick) chilled unsalted butter; cut into 1/2-inch cubes
1 1/2 cups (packed) coarsely grated yellow extra-sharp cheddar cheese
1 large egg 
3/4 cup (about) buttermilk 
1 tablespoon finely minced canned chipotle chiles in adobo* 
1 egg; beaten with 1 tablespoon whipping cream (for glaze)
!Preparation
Position rack in center of oven; preheat to 425°F. Melt 1 tablespoon butter in nonstick skillet over medium heat. Add green onions and sauté 2 minutes to soften slightly. Remove from heat. 

Blend flour, cornmeal, sugar, baking powder, salt, and baking soda in processor. Add 1/2 cup chilled butter; cut in using on/off turns until mixture resembles coarse meal. Add cheese; cut in using on/off turns. Transfer flour mixture to large bowl. Whisk 1 egg in glass measuring cup. Add enough buttermilk to egg to measure 1 cup; stir in green-onion mixture and chipotles. Make well in center of dry ingredients. Pour buttermilk mixture into well; mix just until evenly moistened. 

Turn dough out onto generously floured surface. Knead gently just until dough holds together, about 10 turns. Pat out on generously floured surface to 3/4-inch-thick round. Using 3-inch round cutter, cut out biscuits. Transfer to ungreased baking sheet, spacing 1 inch apart. Gather dough scraps; pat out to 3/4-inch thickness and cut out additional biscuits. Brush biscuits with egg glaze. 

Bake biscuits until golden, tester inserted into center comes out clean, and biscuits feel firm, about 18 minutes. Cool on rack 5 minutes. Serve warm. 

~*Available at some supermarkets, specialty foods stores, and Latin markets.
!Notes
Bon Appetit
March 2006
http://www.epicurious.com/recipes/food/views/Cornmeal-Biscuits-with-Cheddar-and-Chipotle-234118
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Cranberries originally grew wild in Wisconsin; now they are the state's leading commercial fruit crop. They're also a must on the Thanksgiving table. In this take on a holiday staple, the mincemeat filling is packed with dried cranberries, which lend a tart balance to the sweetness of the raisins. //- Bon Appetit//

A Thanksgiving favorite.


''Servings:'' 8
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 lbs baking apples (such as Jonathan or McIntosh); peeled,cored,chopped
1 cup dried cranberries
1 cup golden raisins
1/2 cup chopped pecans
1/2 cup dark brown sugar; packed
6 tbsp brandy
1/4 cup unsalted butter (1/2 stick); cut into pieces
1/4 cup apple cider or apple juice
1/4 cup unsulfured (light) molasses
2 tbsp fresh lemon juice
2 tsp grated lemon peel
1 tsp ground cinnamon
1/4 tsp ground allspice
1/4 tsp ground cloves
Pinch of salt
1 [[Basic Pie Crust]]
1 tbsp milk
1 tbsp sugar 
!Preparation
Combine all ingredients except crust, milk and 1 tablespoon sugar in heavy large saucepan. Cook over low heat until apples are very tender and mixture is thick, stirring occasionally, about 50 minutes. Cool completely. (Mincemeat can be prepared up to 1 week ahead. Cover and refrigerate.)

Position rack in bottom third of oven and preheat oven to 400° F.

Roll out 1 dough disk on lightly floured surface to 13-inch round. Transfer to 9-inch-diameter glass pie dish. Trim any overhang. Fill with mincemeat.

Roll out 2nd dough disk and cut with pastry wheel into 10 strips. Arrange strips on top of pie to form lattice. Crimp edge. Brush crust with milk. Sprinkle crust with 1 tablespoon sugar.

Bake pie until crust is golden brown and mincemeat bubbles thickly, about 45 minutes. Transfer pie to rack and cool completely. (Can be prepared 1 day ahead. Cover pie with foil and store at room temperature.)
!Notes
Bon Appetit
November 1995

http://www.epicurious.com/recipes/food/views/Cranberry-Mincemeat-Lattice-Top-Pie-2595
[>img(auto,200px)[./images/kami23-kiss-the-cook-2598.png]]

Since the beans need to soak overnight, be sure to begin one day ahead. Spicy Italian sausage is a good substitute for the chorizo.


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 pound dried cannellini or Great Northern beans (generous 2 cups)

8 cups water
3 tablespoons extra-virgin olive oil, divided
3 garlic cloves; 1 smashed, 2 chopped
1 large fresh rosemary sprig
1 bay leaf

1 large onion, coarsely chopped (about 2 cups)
1 large carrot, coarsely chopped (about 1 cup)
1 large celery stalk, coarsely chopped (about 3/4 cup)
2 1/2 teaspoons finely chopped fresh thyme, divided
4 cups (or more) low-salt chicken broth

1 pound fresh chorizo link sausages, casings removed

1/4 cup whipping cream

!Preparation
Place beans in heavy large saucepan. Add enough water to pan to cover beans by 4 inches. Let beans soak overnight at room temperature.

Drain and rinse beans; return to same saucepan. Add 8 cups water, 1 tablespoon oil, smashed garlic clove, rosemary, and bay leaf. Bring to boil. Reduce heat to medium-low, partially cover, and simmer until beans are just tender, 1 to 11/2 hours. Season to taste with salt. (Can be prepared 2 days ahead. Cool slightly, cover, and chill.)

Drain beans, reserving cooking liquid. Discard rosemary sprig and bay leaf. Heat remaining 2 tablespoons oil in heavy large pot over medium heat. Add onion, carrot, and celery. Sprinkle with salt and pepper. Sauté until vegetables are beginning to soften, about 10 minutes. Add chopped garlic and 1 teaspoon thyme; sauté 2 minutes. Add 2 cups reserved bean cooking liquid, 4 cups chicken broth, and beans. Bring to boil; reduce heat to medium and simmer uncovered until vegetables are tender, about 25 minutes. Cool soup 10 minutes. Meanwhile, sauté chorizo in heavy large skillet over medium-high heat until cooked through, breaking up lumps with back of spoon, about 5 minutes. Transfer chorizo to paper towels to drain.

Using slotted spoon, remove 1 1/2 cups bean mixture from soup; reserve. Working in batches, puree remaining soup in blender until smooth. Return puree to pot. Stir in reserved whole-bean mixture, remaining 1 1/2 teaspoons thyme, chorizo, and cream. (Can be made 1 day ahead. Chill uncovered until cold. Cover and keep chilled.) Rewarm soup over medium heat, thinning with more broth if desired. Season with salt and pepper. Divide soup among bowls and serve.

!Notes

www.epicurious.com/recipes/food/views/Creamy-White-Bean-and-Chorizo-Soup-233903
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

"A very versatile seasoning blend. Use this as a base seasoning, and build upon it in your dish.

Some versions of Creole seasoning blend contain salt -- I don't do that, because I like to control salt content separately. If you insist on this blend being salty, á la Tony Chachere's "when it's salty enough, it's perfectly seasoned!" rationale, start with 2 tablespoons salt in the blend, increasing up to 4 tablespoons depending on your sodium tolerance level." //- Chuck Taggart//



''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 tablespoons onion powder 
2 tablespoons garlic powder 
2 tablespoons dried oregano leaves 
2 tablespoons dried sweet basil 
1 tablespoon dried thyme leaves 
1 tablespoon black pepper 
1 tablespoon white pepper 
1 tablespoon cayenne pepper 
1 tablespoon celery seed 
5 tablespoons sweet paprika
!Preparation
Combine in food processor and pulse until well-blended, or mix thoroughly in a large bowl. The recipe doubles or triples well. Give lots of it away as gifts to your family and friends.
!Notes
http://www.gumbopages.com/food/creole.html
[>img(auto,200px)[https://lh3.googleusercontent.com/-QYXwuSwv3U8/TiNf6BED3YI/AAAAAAAAABw/L4qNHGvU3eY/CrispChipotleShrimp.jpg]]

Two summer favorites join forces in this gratin-style main dish, whose complex flavors belie its ease of preparation.


''Servings:'' 4
''Active time:'' 20 min
''Total prep time:'' 40 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/3 cup mayonnaise
2 teaspoons finely chopped chipotle chiles in adobo plus 1 tea
3/4 teaspoon salt
4 cups corn (cut from about 7 ears)
1/3 cup water
4 scallions; thinly sliced
1 lb peeled and deveined large shrimp (about 21 to 25 p
1-1 1/2 cups panko (Japanese bread crumbs) 
!Preparation
Put oven rack in middle position and preheat oven to 475°F.

Stir together mayonnaise, chipotle with adobo sauce, and salt in a bowl.

Pulse 1 1/2 cups corn in a food processor with water and 2 tablespoons chipotle mayonnaise until coarsely puréed. Transfer mixture to a shallow 2-quart gratin dish. Stir in scallions and remaining corn.

Toss shrimp with remaining chipotle mayonnaise in bowl to coat.

Put 1 cup panko in another bowl, then add shrimp in small batches, tossing to coat evenly and shaking off excess (add more panko if needed). Arrange shrimp in 1 layer on top of corn. Roast until crumbs are golden and shrimp are just cooked through, about 18 minutes.
!Notes
Gourmet
June 2007

http://www.epicurious.com/recipes/food/views/Crisp-Chipotle-Shrimp-with-Corn-and-Scallions-238666
[>img(auto,200px)[https://lh3.googleusercontent.com/-nkiNR0x90Gg/TiNf6TgmfrI/AAAAAAAAAB4/b7zFINZL8y4/EggplantFritters.jpg]]



''Servings:'' Makes about 20 fritters.
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 large eggplants (2 pounds total) 
1 1/4 teaspoons salt; divided 
Olive oil (for brushing and frying) 
2 large eggs 
3/4 cup parmesan cheese; finely grated 
1 1/4 cups plain dry breadcrumbs; divided 
1/4 cup fresh Italian parsley; finely chopped 
1 tablespoon fresh thyme; chopped 
1/4 teaspoon ground black pepper 
1 1/2 tablespoons all purpose flour 
4 ounces smoked mozzarella cheese; cut into 1/2-inch cubes
!Preparation
Preheat oven to 350°F. Cut eggplants crosswise into 1/2-inch-thick slices. Place on layers of paper towels. Sprinkle with 1 teaspoon salt; let stand 30 minutes. Brush 2 large baking sheets with oil. Pat eggplant dry; arrange in single layer on prepared sheets. Brush lightly with oil. Bake until eggplant is tender and dry, about 1 hour. Cool slightly; chop coarsely.

Whisk 1 egg, grated Parmesan cheese, 1/4 cup breadcrumbs, parsley, thyme, 1/4 teaspoon pepper, and 1/4 teaspoon salt in medium bowl. Stir in chopped eggplant (mixture will be soft). Spread 1 cup breadcrumbs on plate. Whisk 1 egg and flour in another bowl. Press and shape eggplant mixture into 1 1/4 -inch-diameter balls. Press 1 piece smoked mozzarella into center of each ball, making sure eggplant mixture covers cheese. Dip balls, 1 at a time, into egg batter; roll in breadcrumbs to coat.

Pour enough oil into large skillet to reach depth of 1/4 inch; heat over medium-high heat. Working in batches, add balls to skillet; sauté until browned, turning often, about 4 minutes. Using slotted spoon, transfer to paper towels to drain. Sprinkle with salt and serve.
!Notes
Bon Appetit
August 2007
Jimmy Bradley
http://www.epicurious.com/recipes/food/views/Crispy-Eggplant-Fritters-with-Smoked-Mozzarella-239053


[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Cooked cocktail sausages are glazed with a sweet and spicy mixture flavored with Worcestershire sauce, and served with a sauce whose predominant ingredient is mango chutney.  //- Bon Appetit//

A favorite holiday starter. //- JKL//

''Servings:'' 50 sausages
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''For sauce:''
1 8-ounce jar mango chutney 
1/4 cup fresh lime juice 
1 tablespoon lime peel; grated 
3/4 cup mayonnaise 

''For sausages:''
50 fully cooked smoked cocktail-size sausages 
1/3 cup dark brown sugar; packed 
3 tablespoons ketchup 
2 tablespoons Worcestershire sauce 
2 tablespoons Dijon mustard 
1 teaspoon hot pepper sauce (such as Tabasco)
!Preparation
''Make sauce:''
Combine chutney, lime juice and peel in processor; blend until almost smooth. Transfer to bowl. Whisk in mayonnaise. Season with salt and pepper.

''Make sausages:''
Preheat oven to 425°F. Place sausages in 8 x 8 x 2-inch glass baking dish. Mix brown sugar, ketchup, Worcestershire sauce, mustard and hot pepper sauce in small bowl to blend. Pour over sausages and toss to coat. (Sauce and sausages can be prepared 1 day ahead. Cover separately and refrigerate.)

Bake sausages until heated through and brown in spots, turning occasionally, about 25 minutes.

Transfer sausages to platter. Place toothpick in each. Place chutney dipping sauce alongside and serve.
!Notes
Bon Appetit
December 1997
http://www.epicurious.com/recipes/food/views/Deviled-Cocktail-Sausages-with-Chutney-and-Lime-Dipping-Sauce-4547
/***
|Name:|ExtentTagButtonPlugin|
|Description:|Adds a New tiddler button in the tag drop down|
|Version:|3.2 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|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");
	// Thanks 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;
}

//}}}

[>img(auto,200px)[https://lh6.googleusercontent.com/-4wyP0djyja4/TiNf6dGdm0I/AAAAAAAAAB0/HH0sC3bAGxo/FagioliOnToast.jpg]]

The resulting dish is brothy but thick; it can be thinned with stock for a more traditional soup.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
4 thick slices country bread 
4 tablespoons olive oil 
2 garlic cloves; peeled and sliced 
A few fresh sage leaves 
1 28-ounce can diced tomatoes 
1 15-ounce can cannellini beans 
1/2 teaspoon salt 
1/4 teaspoon freshly ground black pepper
!Preparation
#Sprinkle the bread with 2 tablespoons of the oil. Toast the slices until crusty and golden.
#Heat the remaining oil in a large skillet, then add the garlic and sage and stir until the garlic begins to brown, about 1 minute.
#Add the tomatoes, beans, salt, and pepper and stir to combine. Cook until the liquid is reduced and the soup is slightly thickened, a few more minutes.
#Serve, placing a slice of toast into each soup bowl or generously spooning the beans and broth right over the bread, if the kids will let you.
!Notes
Cookie
December 2008 
by Victoria Granof
http://www.epicurious.com/recipes/food/views/Fagioli-on-Toast-351013
[>img(auto,200px)[https://lh6.googleusercontent.com/-Cly5AN-m3iM/TiNf6g7U0LI/AAAAAAAAAB8/FoBXdVG0rZU/fennel-potato%252520soup%252520with%252520smoked%252520salmon.jpg]]

An immersion blender makes the prep time even shorter.


''Servings:'' 8 first-course servings
''Active time:'' 25 min
''Total prep time:'' 40 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 tbsp butter 
2 medium fennel bulbs; trimmed,chopped,fronds chopped and r 
1 large leek (white and pale green parts only); halved lengthwise,thinly sliced crossw 
1 tsp fennel seeds 
1 1/2 lbs russet potatoes (about 2 large); peeled,cut into 2-inch cube 
5 1/2 cups low-salt chicken broth; (or more) 
1 ounce smoked salmon; chopped
!Preparation
Melt butter in heavy large pot over medium-high heat. Add fennel, leek, and fennel seeds and cook until vegetables begin to soften, stirring often, about 8 minutes. Add potatoes and 5 1/2 cups broth. Bring to boil; reduce heat to medium. Cover with lid slightly ajar and simmer until potatoes are tender, about 12 minutes. Working in batches, puree soup in blender. Return soup to pot and rewarm over medium heat, stirring often and thinning with more broth by 1/4 cupfuls for desired consistency. Season soup with salt and pepper.

Divide soup among bowls. Garnish with smoked salmon and reserved chopped fennel fronds.
!Notes
Bon Appétit
November 2007 
by The Bon Appétit Test Kitchen
http://www.epicurious.com/recipes/food/views/Fennel-Potato-Soup-with-Smoked-Salmon-240432

[>img(auto,200px)[https://lh5.googleusercontent.com/-G23l8AEgUg8/TiNf6hFfnjI/AAAAAAAAACA/d2GVZdyoD4g/FishCakesWithColeslawAndHorseradish-DillSauce.jpg]]

Less expensive than crab but just as good.


''Servings:'' 4
''Total prep time:'' 45 minutes

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 large lemons 
1/2 cup mayonnaise 
1/2 cup chopped green onions; divided 
2 tablespoons sweet pickle relish 
2 tablespoons prepared horseradish 
3 tablespoons chopped fresh dill; divided 
4 slices white sandwich bread; torn into pieces 
8 ounces mahi-mahi; cut into 8 strips 
1 large egg; lightly beaten 
1 8-ounce bag coleslaw mix 
2 tablespoons olive oil
!Preparation
Grate enough lemon peel to measure 2 1/2 teaspoons. Halve lemons; squeeze enough juice to measure 1/4 cup. Mix peel, 2 tablespoons juice, mayonnaise, 1/4 cup green onion, relish, horseradish, and 2 tablespoons dill in bowl; set sauce aside. 

Grind bread to fine crumbs in processor. Place 1 cup breadcrumbs in medium bowl. Place remaining breadcrumbs in 13x9-inch baking dish. Using on/off turns, very coarsely chop fish in processor (do not form paste). Add fish to breadcrumbs in bowl; gently mix in egg, 1 tablespoon sauce, and 1/4 cup green onion. Shape fish mixture into four 31/2-inch-round cakes; thickly coat with breadcrumbs in baking dish. 

Toss coleslaw mix, 3 tablespoons sauce, 2 tablespoons lemon juice, and 1 tablespoon dill in bowl. Season with salt and pepper. 

Heat oil in large nonstick skillet over medium heat. Add fish cakes; sauté until cooked through, about 2 minutes per side. Serve fish cakes with slaw and sauce.
!Notes
Bon Appetit
January 2009
http://www.epicurious.com/recipes/food/views/Fish-Cakes-with-Coleslaw-and-Horseradish-Dill-Sauce-350960
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 4
''Active time:'' 20 min
''Total prep time:'' 25 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 scallions; white parts finely c
1 tablespoon unsalted butter
1-2 tablespoons fresh jalapeño including seeds; finely chopped
1/2 cup heavy cream
1/2 teaspoon salt
4 (6- to 8-oz) pieces flounder fillet
1/8 teaspoon black pepper
1/2 cup grape tomatoes; quartered
1 tablespoon fresh cilantro; chopped 
!Preparation
Cook chopped scallions in butter in a 10-inch heavy skillet over moderate heat, stirring, until softened, 3 to 4 minutes. Add jalapeño (to taste), cream, and 1/4 teaspoon salt and bring to a simmer.

Pat fish dry, then sprinkle with pepper and remaining 1/4 teaspoon salt. Fold each fillet in half crosswise. Put folded fish in sauce in skillet and cook at a bare simmer, covered, until fish is just cooked through, 5 to 6 minutes. Transfer fish to a platter and keep warm, covered with foil.

Add tomatoes and cilantro to sauce in skillet, along with any fish juices on platter, and cook over moderately low heat until heated through, about 1 minute. Spoon sauce over fish.
!Notes
Gourmet
June 2005

http://www.epicurious.com/recipes/food/views/Flounder-in-Jalapeno-Cream-232156
/***
|Name|FoldHeadingsPlugin|
|Source|http://www.TiddlyTools.com/#FoldHeadingsPlugin|
|Version|1.1.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|automatically turn headings into slider-like panels that can be folded/unfolded with a single click|
This plugin defines a macro that automatically converts heading-formatted content into sliders that let you expand/collapse their content by clicking on individual headings.
!!!!!Usage
<<<
{{{
<<foldHeadings opened|closed tag tag tag...>>
}}}
where: ''opened'' or ''closed'' is a keyword indicating the initial state of the sections (default: opened), and ''tag tag tag...'' is an optional list of tags to match, so that the foldable effect is only applied to tiddlers that contain one (or more) of the indicated tags.  

When you place the macro in a tiddler, any heading-formatted content (i.e, "!" through "!!!!!") in that tiddler will automatically become //'fold-able'//, allowing you to expand/collapse the content that follows each heading simply by clicking on that heading.  Each content section begins with the first element following a heading, and continues until either another heading is found or the end of the tiddler is reached.  For example:
{{{
<<foldHeadings closed>>
}}}
is embedded in ''this'' tiddler in order to make all the headings it contains 'fold-able'.  Note that the macro has been placed at the //end// of the tiddler because it only operates on *rendered* content.  Thus, only headings that //precede// it in the same tiddler will become fold-able, as any headings that //follow// it are not actually rendered until //after// the macro has been processed.

You can further limit the effect of the macro within the tiddler by surrounding several headings in a "CSS class wrapper" ("""{{classname{...}}}""") or other containing DOM element (e.g., """@@display:inline;...@@""") and then embedding the {{{<<foldHeadings>>}}} macro inside that container (at the end)... only those headings that are also within that container will be made fold-able, instead of converting ''all'' the headings in that tiddler.

Conversely, if you want the fold-able ability to apply to the headings in //all// tiddlers, ''without having to alter //any// of those individual tiddlers'', you can add the macro to the end of your [[ViewTemplate]], so that it will be invoked after the content in each tiddler has been rendered, causing all headings they contain to automatically become fold-able.  For example:
{{{
<span macro="foldHeadings closed"></span>
}}}
You can also limit this effect to selected tiddlers by specifying one or more tags as additional macro parameters.  For example:
{{{
<span macro="foldHeadings closed systemConfig"></span>
}}}
is only applied to headings contained in //plugin tiddlers// (i.e., tiddlers tagged with <<tag systemConfig>>), while headings in other tiddlers remain unaffected by the macro, even though it is embedded in the common [[ViewTemplate]] definition.
<<<
!!!!!Revisions
<<<
2009.01.06 [1.1.1] removed hijack of scrollToSection() (see [[SectionLinksPlugin]] for equivalent code)
2008.11.17 [1.1.0] added hijack of 'scrollToSection()' function (see [[CoreTweaks]] and http://trac.tiddlywiki.org/ticket/784)
2007.12.06 [1.0.2] fix handling for empty sections when checking for sliderPanel/floatingPanel
2007.12.02 [1.0.1] fix handling when content following a heading is already a sliderPanel/floatingPanel
2007.12.01 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.FoldHeadingsPlugin= {major: 1, minor: 1, revision: 1, date: new Date(2009,1,6)};

config.macros.foldHeadings = {
	guideText: "opened|closed className",
	showtip: "click to show '%0'",
	hidetip: "click to hide '%0'",
	showlabel: "more...",
	hidelabel: "[x]",
	html: "<span style='float:right;text-weight:normal;font-size:80%;' class='TiddlyLinkExisting'>%0&nbsp;</span>",
	handler: function(place,macroName,params) {
		var show=params[0] && params.shift().toLowerCase()!="closed";
		if (params.length) { // if filtering by tag(s)
			var here=story.findContainingTiddler(place);
			if (here) var tid=store.getTiddler(here.getAttribute("tiddler"));
			if (!tid || !tid.tags.containsAny(params)) return; // in a tiddler and not tagged... do nothing...
		}
		var elems=place.parentNode.getElementsByTagName("*");
		var heads=[]; for (var i=0; i<elems.length; i++) { // get non-foldable heading elements
			var n=elems[i].nodeName; var foldable=hasClass(elems[i],"foldable");
			if ((n=="H1"||n=="H2"||n=="H3"||n=="H4"||n=="H5")&&!foldable)
				heads.push(elems[i]);
			}
		for (var i=0; i<heads.length; i++) { var h=heads[i]; // for each heading element...
			// find start/end of section content (up to next heading or end of content)
			var start=end=h.nextSibling; while (end && end.nextSibling) {
				var n=end.nextSibling.nodeName.toUpperCase();
				if (n=="H1"||n=="H2"||n=="H3"||n=="H4"||n=="H5") break;
				end=end.nextSibling;
			}
			if (start && hasClass(start,"sliderPanel")||hasClass(start,"floatingPanel")) continue; // heading is already a slider!
			var span=createTiddlyElement(null,"span",null,"sliderPanel"); // create container
			span.style.display=show?"inline":"none"; // set initial display state
			h.parentNode.insertBefore(span,start); // and insert it following the heading element
			// move section elements into container...
			var e=start; while (e) { var next=e.nextSibling; span.insertBefore(e,null); if (e==end) break; e=next; }
			// set heading label/tip/cursor...
			h.title=(show?this.hidetip:this.showtip).format([h.textContent])
			h.innerHTML=this.html.format([show?this.hidelabel:this.showlabel])+h.innerHTML;
			h.style.cursor='pointer';
			addClass(h,"foldable"); // so we know it been done (and to add extra styles)
			h.onclick=function() {
				var panel=this.nextSibling; var show=panel.style.display=="none";
				// update panel display state
				if (config.options.chkAnimate) anim.startAnimating(new Slider(panel,show));
				else panel.style.display = show?"inline":"none";
				// update heading label/tip
				this.removeChild(this.firstChild); // remove existing label
				var fh=config.macros.foldHeadings; // abbreviation for readability...
				this.title=(show?fh.hidetip:fh.showtip).format([this.textContent])
				this.innerHTML=fh.html.format([show?fh.hidelabel:fh.showlabel])+this.innerHTML;
			}
		}		
	}
}

if (story.scrollToSection) {
Story.prototype.foldheadings_scrollToSection=Story.prototype.scrollToSection;
Story.prototype.scrollToSection=function(title,section) {
	var e=this.foldheadings_scrollToSection.apply(this,arguments);
	// if scrolling to a folded section heading, click to expand it
	if (e && hasClass(e,'foldable') && e.nextSibling.style.display=='none') e.onclick();
}
}
//}}}
// //<<foldHeadings closed>>
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 8
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 cup all-purpose flour
1 tsp baking soda
1/4 tsp salt
3/4 lb Golden Delicious apples; peeled,cored and diced
1 egg; beaten
1 cup sugar
1/2 cup walnuts; coarsely chopped
1/4 cup vegetable oil
1 tsp cinnamon
1/4 tsp nutmeg 
!Preparation
Preheat oven to 350 degrees. Grease 8-inch square baking pan.

Sift flour, baking soda and salt into small bowl. In large bowl, toss diced apple with egg; add sugar, nuts, oil, cinnamon and nutmeg. Add flour mixture and stir just until combined (batter will be pasty).

Spread batter in prepared pan. Bake until tester inserted in center comes out clean (40-45 minutes). Cool in pan for 10 minutes. Cut into squares and serve.

Once the cake is cooled, the squares can be frozen in plastic storage bags for six weeks. When ready to serve, wrap the squares in plastic wrap and heat in microwave oven. 8 servings.
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 4-6 servings
''Active time:''
''Total prep time:'' 30 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 garlic cloves; chopped 
1 (2- by 1 1/2-inch) piece peeled fresh ginger; chopped 
2 tbsp vegetable oil 
3/4 tsp dried hot red pepper flakes 
3 large tomatoes; cored and quartered 
3/4 tsp salt 
1/4 tsp black pepper 
1 lb small fresh okra; untrimmed
!Preparation
Pulse garlic and ginger in a food processor until finely chopped and transfer to a 12-inch heavy skillet. Add oil and red pepper flakes to taste and cook over moderate heat, stirring, until fragrant, about 1 minute. 

Pulse tomatoes with salt and black pepper in processor until coarsely chopped and stir into oil in skillet. Cook, uncovered, over moderate heat, stirring occasionally, 10 minutes. Stir in okra and simmer, covered, until just tender, about 10 minutes.
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 50 pieces
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
8 ripe plum tomatoes; seeded and diced 
2 tbsp garlic; finely minced 
1/2 cup fresh basil; coarsely chopped 
1/4 cup fresh parsley; finely chopped 
1 tbsp fresh lemon juice 
1/2 tbsp extra-virgin olive oil 
1 tsp fresh tarragon; finely minced 
1/4 tsp crushed red pepper flakes 
2 baguettes; cut in 1/2-inch-thic 
6 cloves garlic; cut in half
!Preparation
In a bowl, mix all ingredients except bread and garlic cloves. Add salt and pepper to taste. Set aside, unrefrigerated, 3 hours. Heat oven to 350°F. Toast bread on a baking sheet. Rub cut side of garlic on each slice; top with tomato mixture.
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 4 burgers
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 15- to 16-ounce can garbanz beans (chickpeas), rinsed, drained
3 tablespoons minced red onion
3 tablespoons chopped fresh dill
2 1/2 tablespoons dry breadcrumbs
1 1/2 tablespoons fresh lemon juice
1 large egg white
1 tablespoon tahini
2 garlic cloves, peeled

1/3 cup plain nonfat yogurt
1/2 teaspoon hot pepper sauce
1/4 teaspoon ground cumin

2 pita bread rounds, warmed, halved horizontally
2 cups shredded romaine lettuce
1 cup chopped tomatoes
!Preparation
Using fork, coarsely mash 3/4 cup garbanzo beans in medium bowl. Mix in onion and next 3 ingredients. Puree remaining garbanzo beans, egg white, tahini and garlic in processor until almost smooth. Stir into mashed garbanzo bean mixture. Season with salt and pepper. Shape mixture into four 1/2-inch-thick patties. (Can be made 4 hours ahead. Cover and chill.) 

If grilling, spray grill rack with nonstick spray, then prepare barbecue (medium heat). If sautéing, spray large nonstick skillet with nonstick spray and heat over medium heat. Lightly spray patties on both sides with nonstick spray. Place patties on grill or in skillet and cook until golden brown and heated through, about three minutes per side. 

Meanwhile, mix yogurt, hot pepper sauce and cumin in small bowl. 

Place burgers in pita halves. Top with lettuce, tomatoes and yogurt.
!Notes
Bon Appetit
July 1999
http://www.epicurious.com/recipes/food/views/GARBANZO-BEAN-AND-TAHINI-BURGERS-101832
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
185 g butter
425 g flour
250 g sugar
7 egg yolks
1 eggs
300 g icing sugar
1 stick cinnamon
1 vanilla pods
100 g almonds
100 g currants
1/2 l milk 
!Preparation
First, we need to make the dough: place in a mixing bowl 375g of the flour and make a hole in the middle, where you can place the butter slightly soft, the icing (or normal) sugar, 3 egg yolks, the egg, and 375g flour. Mix all these properly until you get something quite consistant. And leave it in the fridge for at least 1/2 an hour, covered with cling film.

In the mean time, in order to make some cream, put the milk boiling in a saucepan, and add the cinnamon and the vanilla pod. Midwhile, mix in a bowl the 150 g of the sugar, the rest of the flour (50g), and the 4 egg yolks that are left. Once the milk is boiling, remove the cinnamon and the vanilla pod and add this mixture to the milk. Keep going on mixing continuously until the cream gets quite thick, and once it starts boiling add the almonds, previously grounded, 100 g of sugar which is left, and the currants. Leave this mixture in the fridge for 1/2 an hour.

Once these two things are done, get a mould ready for baking spreading a bit of butter and then flour so that the cake won't stick to the mould.

Now, put a thin (less than 5mm) layer of the dough covering the bottom and side parts of the mould, and fill it in with the cream, and cover on top with the rest of the dough in the same way.

Paint the cake's top part with a bit of whisked egg, and put it in the oven at 190C for around 30 mins. Et voilá! you have a delicious sweet cake.
!Notes
by Unai Garro
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>>

See also [[MPTW]].
[>img(auto,200px)[https://lh4.googleusercontent.com/-L-g9Vwau_Zo/TiNf4hMC3CI/AAAAAAAAABQ/z6yu3V36wYQ/051093086-02-prosciutto-panini.jpg]]

No panini press? No problem. You can still make crisp-crusted grilled Italian sandwiches, by splitting pita loaves. You can also cook these sandwiches over a very low flame on a covered gas or charcoal grill.


''Servings:'' 2-3
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 Tbs. extra-virgin olive oil
2 medium cloves garlic, smashed
5 oz. baby spinach (about 5 lightly packed cups)
Kosher salt and freshly ground black pepper
1-1/4 cups grated fontina cheese
1/4 cup freshly grated Parmigiano-Reggiano
6 oil-packed sun-dried tomatoes, drained and chopped
Three 7- to 8-inch pitas, each split into two rounds
6 very thin slices prosciutto, preferably imported (about 3-1/2 oz.)
!Preparation
Heat the oven to 250°F. Heat the oil and garlic in a 10-inch heavy-duty skillet (preferably cast-iron) over medium-high heat until the garlic starts to sizzle steadily and browns in places, about 2 minutes. Add the spinach, sprinkle with 1/4 tsp. each salt and pepper, and cook, tossing, until just wilted, about 2 minutes. Transfer the spinach to a colander. Let cool a couple of minutes, discard the garlic, and gently squeeze out the excess liquid from the spinach.

In a medium bowl, toss the spinach with the fontina, parmigiano, sun-dried tomatoes, and 1/4 tsp. pepper. Set 3 of the pita halves on a work space and top each with 2 slices of the prosciutto. Top each evenly with the spinach mixture and set the remaining 3 pita halves on top.

Wipe the skillet clean with a paper towel and heat the pan over medium heat. When the pan is hot, add one of the pita sandwiches and set another medium heavy skillet on top of the sandwich. Put 2 lb. of weights (cans work well) in the empty skillet and cook the sandwich until the bottom starts to brown, about 2 minutes. Flip and cook the other side until it browns and the cheese starts to melt out the sides, about 2 minutes. Transfer to a baking sheet and keep warm in the oven. Cook the remaining sandwiches in the same manner. Cut the sandwiches in wedges and serve.
!Notes
Fine Cooking 93, pp. 86a, May 7, 2008
http://www.finecooking.com/recipes/grilled-cheese-prosciutto-fontina-panini.aspx?nterms=52698
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Include introductory text here.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''For dressing:''
5 tablespoons fresh lime juice
3/4 cup olive oil
6 tablespoons fresh cilantro; chopped
1 1/2 tablespoons jalepeño chili (preferably red); minced seeded
1 tablespoon ground cumin 

''For salad:''
3 cups seeded tomatoes; chopped
1 15-ounce can black beans; rinsed,drained
1 cup green onions; chopped
3/4 cup fresh cilantro; chopped
3/4 cup red onion; chopped
6 cups iceberg lettuce (about 1 head); shredded
2 ears corn; husked
24 large shrimp (about 1 1/2 pounds); peeled (tails left i,deveined
24 large tortilla chips
Additional chopped fresh cilantro (optional) 
!Preparation
Make Dressing:
Place lime juice in medium bowl. Gradually whisk in olive oil. Mix in cilantro, jalepeño, and cumin. Season to taste with salt and pepper.

Make Salad:
Combine tomatoes, beans, green onions, 3/4 cup cilantro and red onion in large bowl. (Dressing and salad can be prepared 6 hours ahead. Cover dressing and let stand at room temperature. Cover salad and refrigerate.)

Prepare berbeque (medium-high heat). Mix lettuce into salad. Pour 1/4 cup dressing into small bowl. Reserve remainder for salad. Brush corn with dressing from small bowl. Grill corn unril beginning to brown, turning often, about 5 minutes. Brush shrimp with dressing from small bowl and grill until opaque in center, turning occasionally, about 5 minutes.

Cut kernels from corn and add to salad. Toss salad with enough dressing to coat. Season with salt and pepper. Top with shrimp. Garnish with tortilla chips and additional cilantro, if desired.
!Notes
Bon Appetit
August 1996

http://www.epicurious.com/recipes/food/views/Grilled-Shrimp-Corn-and-Black-Bean-Tostada-Salad-101248
[>img(auto,200px)[https://lh4.googleusercontent.com/-kHSwenXyiT4/TiNf6reCvLI/AAAAAAAAACE/bJcFA34CU9Y/HalibutPotPie.jpg]]

Also great with salmon or mahi-mahi. Rewarm the mashed potatoes in the microwave before using them in this recipe, adding more warm milk as needed if they are too thick.  

''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 tablespoons (1/4 stick) butter
1 large fennel bulb, trimmed, halved, thinly sliced crosswise (about 3 cups)
1/2 cup sliced shallots (about 2 medium)
2 tablespoons all purpose flour
1 1/2 cups vegetable broth
1 1/2 pounds halibut fillets, cut into 1-inch cubes
1 6-ounce package baby spinach

3 1/2 cups warm mashed potatoes
!Preparation
Preheat broiler. Melt butter in heavy large saucepan over medium heat. Add fennel and shallots. Cover; cook until tender, stirring occasionally, about 8 minutes. Sprinkle with flour, salt, and pepper. sauté 2 minutes. Add broth; bring to boil, stirring often. Add fish and spinach. Cover; simmer over medium heat until fish is almost cooked through, about 4 minutes.

Transfer fish mixture to 11x7x2-inch baking dish. Spoon mashed potatoes over, covering completely. Broil until filling bubbles at edges and potatoes are brown in spots, about 4 minutes. Serve.
!Notes
Bon Appetit
November 2006

http://www.epicurious.com/recipes/food/views/Halibut-Pot-Pie-with-Mashed-Potato-Crust-236492
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

The classic Italian sauce gets an update with the addition of parsley and tarragon.


''Servings:'' about 1 cup
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 1/2 cups (lightly packed) fresh basil leaves
1/2 cup pine nuts, toasted
1/2 cup freshly grated Parmesan cheese
1/4 cup (packed) fresh Italian parsley leaves
1/4 cup fresh taragon leaves
2 garlic cloves, peeled
1/3 cup extra-virgin olive oil
!Preparation
Combine first 6 ingredients in processor. Blend until herbs are finely chopped. Add oil and blend to coarse puree. Season pesto to taste with salt and pepper. Transfer to small bowl. DO AHEAD: Can be made 1 day ahead. Press plastic wrap directly onto surface of pesto and chill.
!Notes
Bon Apetit, June 2010
http://www.epicurious.com/recipes/food/views/Herb-Pesto-359320
Use in [[Spinach, Pesto and Fontina Lasagna]]
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

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


merge(config.macros,{

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

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

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

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

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

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

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

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

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

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

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

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

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

});

//}}}

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' Makes 1 3/4 cups
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 cup sour cream
2 tablespoons grated fresh horseradish or drained prepared horseradish
1/8 teaspoon paprika
1 garlic clove, minced
!Preparation
Combine sour cream, horseradish, paprika and garlic in small bowl until well blended. Season to taste with salt and pepper. (Can be prepared 8 hours ahead. Cover and keep refrigerated.)
!Notes
Bon Appetit
March 1998

http://www.epicurious.com/recipes/food/views/Horseradish-Cream-5144

/***
|Name|ImageSizePlugin|
|Source|http://www.TiddlyTools.com/#ImageSizePlugin|
|Version|1.2.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin,formatter|
|Requires||
|Overrides|'image' formatter|
|Description|adds support for resizing images|
This plugin adds optional syntax to scale an image to a specified width and height and/or interactively resize the image with the mouse.
!!!!!Usage
<<<
The extended image syntax is:
{{{
[img(w+,h+)[...][...]]
}}}
where ''(w,h)'' indicates the desired width and height (in CSS units, e.g., px, em, cm, in, or %). Use ''auto'' (or a blank value) for either dimension to scale that dimension proportionally (i.e., maintain the aspect ratio). You can also calculate a CSS value 'on-the-fly' by using a //javascript expression// enclosed between """{{""" and """}}""". Appending a plus sign (+) to a dimension enables interactive resizing in that dimension (by dragging the mouse inside the image). Use ~SHIFT-click to show the full-sized (un-scaled) image. Use ~CTRL-click to restore the starting size (either scaled or full-sized).
<<<
!!!!!Examples
<<<
{{{
[img(100px+,75px+)[images/meow2.jpg]]
}}}
[img(100px+,75px+)[images/meow2.jpg]]
{{{
[<img(34%+,+)[images/meow.gif]]
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
}}}
[<img(34%+,+)[images/meow.gif]]
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
{{tagClear{
}}}
<<<
!!!!!Revisions
<<<
2009.02.24 [1.2.1] cleanup width/height regexp, use '+' suffix for resizing
2009.02.22 [1.2.0] added stretchable images
2008.01.19 [1.1.0] added evaluated width/height values
2008.01.18 [1.0.1] regexp for "(width,height)" now passes all CSS values to browser for validation
2008.01.17 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.ImageSizePlugin= {major: 1, minor: 2, revision: 1, date: new Date(2009,2,24)};
//}}}
//{{{
var f=config.formatters[config.formatters.findByField("name","image")];
f.match="\\[[<>]?[Ii][Mm][Gg](?:\\([^,]*,[^\\)]*\\))?\\[";
f.lookaheadRegExp=/\[([<]?)(>?)[Ii][Mm][Gg](?:\(([^,]*),([^\)]*)\))?\[(?:([^\|\]]+)\|)?([^\[\]\|]+)\](?:\[([^\]]*)\])?\]/mg;
f.handler=function(w) {
	this.lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var floatLeft=lookaheadMatch[1];
		var floatRight=lookaheadMatch[2];
		var width=lookaheadMatch[3];
		var height=lookaheadMatch[4];
		var tooltip=lookaheadMatch[5];
		var src=lookaheadMatch[6];
		var link=lookaheadMatch[7];

		// Simple bracketted link
		var e = w.output;
		if(link) { // LINKED IMAGE
			if (config.formatterHelpers.isExternalLink(link)) {
				if (config.macros.attach && config.macros.attach.isAttachment(link)) {
					// see [[AttachFilePluginFormatters]]
					e = createExternalLink(w.output,link);
					e.href=config.macros.attach.getAttachment(link);
					e.title = config.macros.attach.linkTooltip + link;
				} else
					e = createExternalLink(w.output,link);
			} else 
				e = createTiddlyLink(w.output,link,false,null,w.isStatic);
			addClass(e,"imageLink");
		}

		var img = createTiddlyElement(e,"img");
		if(floatLeft) img.align="left"; else if(floatRight) img.align="right";
		if(width||height) {
			var x=width.trim(); var y=height.trim();
			var stretchW=(x.substr(x.length-1,1)=='+'); if (stretchW) x=x.substr(0,x.length-1);
			var stretchH=(y.substr(y.length-1,1)=='+'); if (stretchH) y=y.substr(0,y.length-1);
			if (x.substr(0,2)=="{{")
				{ try{x=eval(x.substr(2,x.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			if (y.substr(0,2)=="{{")
				{ try{y=eval(y.substr(2,y.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			img.style.width=x.trim(); img.style.height=y.trim();
			config.formatterHelpers.addStretchHandlers(img,stretchW,stretchH);
		}
		if(tooltip) img.title = tooltip;

		// GET IMAGE SOURCE
		if (config.macros.attach && config.macros.attach.isAttachment(src))
			src=config.macros.attach.getAttachment(src); // see [[AttachFilePluginFormatters]]
		else if (config.formatterHelpers.resolvePath) { // see [[ImagePathPlugin]]
			if (config.browser.isIE || config.browser.isSafari) {
				img.onerror=(function(){
					this.src=config.formatterHelpers.resolvePath(this.src,false);
					return false;
				});
			} else
				src=config.formatterHelpers.resolvePath(src,true);
		}
		img.src=src;
		w.nextMatch = this.lookaheadRegExp.lastIndex;
	}
}

config.formatterHelpers.addStretchHandlers=function(e,stretchW,stretchH) {
	e.title=((stretchW||stretchH)?'DRAG=stretch/shrink, ':'')
		+'SHIFT-CLICK=show full size, CTRL-CLICK=restore initial size';
	e.statusMsg='width=%0, height=%1';
	e.style.cursor='move';
	e.originalW=e.style.width;
	e.originalH=e.style.height;
	e.minW=Math.max(e.offsetWidth/20,10);
	e.minH=Math.max(e.offsetHeight/20,10);
	e.stretchW=stretchW;
	e.stretchH=stretchH;
	e.onmousedown=function(ev) { var ev=ev||window.event;
		this.sizing=true;
		this.startX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
		this.startY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
		this.startW=this.offsetWidth;
		this.startH=this.offsetHeight;
		return false;
	};
	e.onmousemove=function(ev) { var ev=ev||window.event;
		if (this.sizing) {
			var s=this.style;
			var currX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var currY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var newW=(currX-this.offsetLeft)/(this.startX-this.offsetLeft)*this.startW;
			var newH=(currY-this.offsetTop )/(this.startY-this.offsetTop )*this.startH;
			if (this.stretchW) s.width =Math.floor(Math.max(newW,this.minW))+'px';
			if (this.stretchH) s.height=Math.floor(Math.max(newH,this.minH))+'px';
			clearMessage(); displayMessage(this.statusMsg.format([s.width,s.height]));
		}
		return false;
	};
	e.onmouseup=function(ev) { var ev=ev||window.event;
		if (ev.shiftKey) { this.style.width=this.style.height=''; }
		if (ev.ctrlKey)  { this.style.width=this.originalW; this.style.height=this.originalH; }
		this.sizing=false;
		clearMessage();
		return false;
	};
	e.onmouseout=function(ev) { var ev=ev||window.event;
		this.sizing=false;
		clearMessage();
		return false;
	};
}
//}}}
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2009.04.11 [1.9.5] pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};

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

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

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

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
/***
|Name|InlineJavascriptPluginInfo|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.4|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|documentation|
|Requires||
|Overrides||
|Description|Documentation for InlineJavascriptPlugin|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Usage
<<<
This plugin adds wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be recognized as embedded javascript code.
<script show>
	/* javascript code goes here... */
</script>Every time the tiddler content is rendered, the javascript code is automatically evaluated, allowing you to invoke 'side-effect' processing and/or produce dynamically-generated content that is then inserted into the tiddler content, immediately following the script (see below).  By including the optional ''show'' keyword as the final parameter in a {{{<script>}}} marker, the plugin will also include the script source code in the output that it displays in the tiddler.  This is helpful when creating examples for documentation purposes (such as used in this tiddler!)

__''Deferred execution from an 'onClick' link''__
<script label="click here" title="mouseover tooltip text" key="X" show>
	/* javascript code goes here... */
	alert('you clicked on the link!');
</script>
By including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered.  You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text, and a {{{key="X"}}} parameter to specify an //access key// (which must be a //single// letter or numeric digit only).

__''Loading scripts from external source files''__
<script src="URL" show>
	/* optional javascript code goes here... */
</script>You can also load javascript directly from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}).  This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins.  The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.

In addition to loading the javascript from the external file, you can also use this feature to invoke javascript code contained within the {{{<script>...</script>}}} markers.  This code is invoked //after// the external script file has been processed, and can make immediate use of the functions and/or global variables defined by the external script file.
>Note: To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that is rendered as soon as your TiddlyWiki document is opened, such as MainMenu.  For example: put your {{{<script src="..."></script>}}} syntax into a separate 'library' tiddler (e.g., LoadScripts), and then add {{{<<tiddler LoadScripts>>}}} to MainMenu so that the library is loaded before any other tiddlers that rely upon the functions it defines. 
>
>Normally, loading external javascript in this way does not produce any direct output, and should not have any impact on the appearance of your MainMenu.  However, if your LoadScripts tiddler contains notes or other visible content, you can suppress this output by using 'inline CSS' in the MainMenu, like this: {{{@@display:none;<<tiddler LoadScripts>>@@}}}
<<<
!!!!!Creating dynamic tiddler content and accessing the ~TiddlyWiki DOM
<<<
An important difference between TiddlyWiki inline scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document: in a typical web document, you use the {{{document.write()}}} (or {{{document.writeln()}}}) function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.

However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and instead will //completely replace the entire ~TiddlyWiki document in your browser window (which is clearly not a good thing!)//.  In order to allow scripts to use {{{document.write()}}}, the plugin automatically converts and buffers all HTML output so it can be safely inserted into your tiddler content, immediately following the script.

''Note that {{{document.write()}}} can only be used to output "pure HTML" syntax.  To produce //wiki-formatted// output, your script should instead return a text value containing the desired wiki-syntax content'', which will then be automatically rendered immediately following the script.  If returning a text value is not sufficient for your needs, the plugin also provides an automatically-defined variable, 'place', that gives the script code ''direct access to the //containing DOM element//'' into which the tiddler output is being rendered.  You can use this variable to ''perform direct DOM manipulations'' that can, for example:
* generate wiki-formatted output using {{{wikify("...content...",place)}}}
* vary the script's actions based upon the DOM element in which it is embedded
* access 'tiddler-relative' DOM information using {{{story.findContainingTiddler(place)}}}
Note:
''When using an 'onclick' script, the 'place' element actually refers to the onclick //link text// itself, instead of the containing DOM element.''  This permits you to directly reference or modify the link text to reflect any 'stateful' conditions that might set by the script.  To refer to the containing DOM element from within an 'onclick' script, you can use "place.parentNode" instead.
<<<
!!!!!Instant "bookmarklets"
<<<
You can also use an 'onclick' link to define a "bookmarklet": a small piece of javascript that can be ''invoked directly from the browser without having to be defined within the current document.''  This allows you to create 'stand-alone' commands that can be applied to virtually ANY TiddlyWiki document... even remotely-hosted documents that have been written by others!!  To create a bookmarklet, simply define an 'onclick' script and then grab the resulting link text and drag-and-drop it onto your browser's toolbar (or right-click and use the 'bookmark this link' command to add it to the browser's menu).

Notes:
*When writing scripts intended for use as bookmarklets, due to the ~URI-encoding required by the browser, ''you cannot not use ANY double-quotes (") within the bookmarklet script code.''
*All comments embedded in the bookmarklet script must ''use the fully-delimited {{{/* ... */}}} comment syntax,'' rather than the shorter {{{//}}} comment syntax.
*Most importantly, because bookmarklets are invoked directly from the browser interface and are not embedded within the TiddlyWiki document, there is NO containing 'place' DOM element surrounding the script.  As a result, ''you cannot use a bookmarklet to generate dynamic output in your document,''  and using {{{document.write()}}} or returning wiki-syntax text or making reference to the 'place' DOM element will halt the script and report a "Reference Error" when that bookmarklet is invoked.  
Please see [[InstantBookmarklets]] for many examples of 'onclick' scripts that can also be used as bookmarklets.
<<<
!!!!!Special reserved function name
<<<
The plugin 'wraps' all inline javascript code inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler.  To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.
<<<
!!!!!$(...) 'shorthand' function
<<<
As described by Dustin Diaz [[here|http://www.dustindiaz.com/top-ten-javascript/]], the plugin defines a 'shorthand' function that allows you to write:
{{{
$(id)
}}}
in place of the normal standard javascript syntax:
{{{
document.getElementById(id)
}}}
This function is provided merely as a convenience for javascript coders that may be familiar with this abbreviation, in order to allow them to save a few bytes when writing their own inline script code.
<<<
!!!!!Examples
<<<
simple dynamic output:
><script show>
	document.write("The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
dynamic output using 'place' to get size information for current tiddler:
><script show>
	if (!window.story) window.story=window;
	var title=story.findContainingTiddler(place).getAttribute("tiddler");
	var size=store.getTiddlerText(title).length;
	return title+" is using "+size+" bytes";
</script>
dynamic output from an 'onclick' script, using {{{document.write()}}} and/or {{{return "..."}}}
><script label="click here" show>
	document.write("<br>The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
creating an 'onclick' button/link that accesses the link text AND the containing tiddler:
><script label="click here" title="clicking this link will show an 'alert' box" key="H" show>
	if (!window.story) window.story=window;
	var txt=place.firstChild.data;
	var tid=story.findContainingTiddler(place).getAttribute('tiddler');
	alert('Hello World!\nlinktext='+txt+'\ntiddler='+tid);
</script>
dynamically setting onclick link text based on stateful information:
>{{block{
{{{
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.previousSibling.innerHTML=on?"disable":"enable";
</script>
}}}
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.innerHTML=on?"enable":"disable";
</script>
}}}
loading a script from a source url:
>http://www.TiddlyTools.com/demo.js contains:
>>{{{function inlineJavascriptDemo() { alert('Hello from demo.js!!') } }}}
>>{{{displayMessage('InlineJavascriptPlugin: demo.js has been loaded');}}}
>note: When using this example on your local system, you will need to download the external script file from the above URL and install it into the same directory as your document.
>
><script src="demo.js" show>
	return "inlineJavascriptDemo() function has been defined"
</script>
><script label="click to invoke inlineJavascriptDemo()" key="D" show>
	inlineJavascriptDemo();
</script>
<<<
!!!!!Revisions
<<<
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
2008.06.11 [1.9.3] added $(...) function as 'shorthand' for document.getElementById()
2008.03.03 [1.9.2] corrected fallback declaration of wikifyPlainText() (fixes Safari "parse error")
2008.02.23 [1.9.1] in onclick function, use string instead of array for 'bufferedHTML' (fixes IE errors)
2008.02.21 [1.9.0] output from 'onclick' scripts (return value or document.write() calls) are now buffered and rendered into into a span following the script.  Also, added default 'return false' handling if no return value provided (prevents HREF from being triggered -- return TRUE to allow HREF to be processed).  Thanks to Xavier Verges for suggestion and preliminary code.
2008.02.14 [1.8.1] added backward-compatibility for use of wikifyPlainText() in TW2.1.3 and earlier
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info tiddler
2007.12.28 [1.8.0] added support for key="X" syntax to specify custom access key definitions
2007.12.15 [1.7.0] autogenerate URI encoded HREF on links for onclick scripts.  Drag links to browser toolbar to create bookmarklets.  IMPORTANT NOTE: place is NOT defined when scripts are used as bookmarklets.  In addition, double-quotes will cause syntax errors.  Thanks to PaulReiber for debugging and brainstorming.
2007.11.26 [1.6.2] when converting "document.write()" function calls in inline code, allow whitespace between "write" and "(" so that "document.write ( foobar )" is properly converted.
2007.11.16 [1.6.1] when rendering "onclick scripts", pass label text through wikifyPlainText() to parse any embedded wiki-syntax to enable use of HTML entities or even TW macros to generate dynamic label text.
2007.02.19 [1.6.0] added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script
2006.10.16 [1.5.2] add newline before closing '}' in 'function out_' wrapper.  Fixes error caused when last line of script is a comment.
2006.06.01 [1.5.1] when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly
2006.04.19 [1.5.0] added 'show' parameter to force display of javascript source code in tiddler output
2006.01.05 [1.4.0] added support 'onclick' scripts.  When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked.  'place' value is set to match the clicked button/link element.
2005.12.13 [1.3.1] when catching eval error in IE, e.description contains the error text, instead of e.toString().  Fixed error reporting so IE shows the correct response text.  Based on a suggestion by UdoBorkowski
2005.11.09 [1.3.0] for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content.  Based on a suggestion by BradleyMeck
2005.11.08 [1.2.0] handle loading of javascript from an external URL via src="..." syntax
2005.11.08 [1.1.0] pass 'place' param into scripts to provide direct DOM access 
2005.11.08 [1.0.0] initial release
<<<
/***
|Name:|InstantTimestampPlugin|
|Description:|A handy way to insert timestamps in your tiddler content|
|Version:|1.0.10 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#InstantTimestampPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Usage
If you enter {ts} in your tiddler content (without the spaces) it will be replaced with a timestamp when you save the tiddler. Full list of formats:
* {ts} or {t} -> timestamp
* {ds} or {d} -> datestamp
* !ts or !t at start of line -> !!timestamp
* !ds or !d at start of line -> !!datestamp
(I added the extra ! since that's how I like it. Remove it from translations below if required)
!!Notes
* Change the timeFormat and dateFormat below to suit your preference.
* See also http://mptw2.tiddlyspot.com/#AutoCorrectPlugin
* You could invent other translations and add them to the translations array below.
***/
//{{{

config.InstantTimestamp = {

	// adjust to suit
	timeFormat: 'DD/0MM/YY 0hh:0mm',
	dateFormat: 'DD/0MM/YY',

	translations: [
		[/^!ts?$/img,  "'!!{{ts{'+now.formatString(config.InstantTimestamp.timeFormat)+'}}}'"],
		[/^!ds?$/img,  "'!!{{ds{'+now.formatString(config.InstantTimestamp.dateFormat)+'}}}'"],

		// thanks Adapted Cat
		[/\{ts?\}(?!\}\})/ig,"'{{ts{'+now.formatString(config.InstantTimestamp.timeFormat)+'}}}'"],
		[/\{ds?\}(?!\}\})/ig,"'{{ds{'+now.formatString(config.InstantTimestamp.dateFormat)+'}}}'"]
		
	],

	excludeTags: [
		"noAutoCorrect",
		"noTimestamp",
		"html",
		"CSS",
		"css",
		"systemConfig",
		"systemConfigDisabled",
		"zsystemConfig",
		"Plugins",
		"Plugin",
		"plugins",
		"plugin",
		"javascript",
		"code",
		"systemTheme",
		"systemPalette"
	],

	excludeTiddlers: [
		"StyleSheet",
		"StyleSheetLayout",
		"StyleSheetColors",
		"StyleSheetPrint"
		// more?
	]

}; 

TiddlyWiki.prototype.saveTiddler_mptw_instanttimestamp = TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {

	tags = tags ? tags : []; // just in case tags is null
	tags = (typeof(tags) == "string") ? tags.readBracketedList() : tags;
	var conf = config.InstantTimestamp;

	if ( !tags.containsAny(conf.excludeTags) && !conf.excludeTiddlers.contains(newTitle) ) {

		var now = new Date();
		var trans = conf.translations;
		for (var i=0;i<trans.length;i++) {
			newBody = newBody.replace(trans[i][0], eval(trans[i][1]));
		}
	}

	// TODO: use apply() instead of naming all args?
	return this.saveTiddler_mptw_instanttimestamp(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);
}

// you can override these in StyleSheet 
setStylesheet(".ts,.ds { font-style:italic; }","instantTimestampStyles");

//}}}

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 4 burgers
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 teaspoon vegetable oil
1/2 cup finely chopped onion
1/2 cup chopped seeded plum tomato
1 teaspoon minced jalapeño chili
1 garlic clove, minced
1 teaspoon chili powder

1 15- to 16-ounce can kidney beans, rinsed, well drained
1/4 cup dry breadcrumbs
6 tablespoons barbecue sauce
1 large egg white, beaten to blend

4 whole grain buns, toasted
4 tablespoons grated reduced-fat cheddar cheese
4 lettuce leaves
4 tomato slices
!Preparation
Heat oil in medium nonstick skillet over medium heat. Add next 5 ingredients; sauté 5 minutes. Cool slightly. 

Using fork, coarsely mash beans in medium bowl. Mix in onion mixture, breadcrumbs, 2 tablespoons barbecue sauce and egg white. Shape mixture into four 1/2-inch-thick patties. (Can be prepared 4 hours ahead. Cover and chill.) 

If grilling, spray grill rack with nonstick spray, then prepare barbecue (medium heat). If sautéing, spray large nonstick skillet with nonstick spray and heat over medium heat. Lightly spray patties on both sides with nonstick spray. Place patties on grill or in skillet and cook until golden brown and heated through, about three minutes per side. 

Place burgers on bun bottoms. Spread 1 tablespoon barbecue sauce over each. Sprinkle with cheese. Top with lettuce, tomatoes and bun tops.
!Notes
Bon Appetit
July 1999
http://www.epicurious.com/recipes/food/views/JALAPENO-RED-BEAN-BURGERS-101833
[>img(auto,200px)[https://lh3.googleusercontent.com/-e1kbK22hMpk/TiNf6_wUXcI/AAAAAAAAACU/epex5gIdPEE/LemonOliveTapas.jpg]]


''Servings:'' 6
''Active time:''
''Total prep time:'' 10 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 pint good green olives or black olives (or both mixed) 
1/4 teaspoon kosher salt 
1/2 teaspoon black peppercorns 
3 bay leaves 
3 sprigs fresh rosemary or fresh thyme 
1/2 teaspoon fennel seed; lightly crushed 
4-5 garlic cloves; cut in half lengthwi 
1 pinch dried red pepper flakes (optional) 
2 medium lemons 
3 tablespoons extra-virgin olive oil
!Preparation
#If using brine-packed olives, drain them.
#If you wish, you may whack them with a (clean) hammer or rolling pin to "crack" them so the seasonings penetrate further.
#In a medium bowl, combine the olives, salt, peppercorns, bay leaves, herb sprigs, fennel seeds, garlic, and red pepper flakes (if using).
#Zest the lemons in whatever size zest you like: a mix of finely grated zest for the brightest flavor and larger strips for color is nice.
#Add the zest and oil to the olives and mix well. Pour and scrape into a covered jar and refrigerate for 12-24 hours to let the flavors mingle.
!Notes
[>img(auto,200px)[https://lh4.googleusercontent.com/-VkOOtp4LsUo/TiNf7e-LM-I/AAAAAAAAACY/_Ot8x6NQD8k/LentilLoaf.jpg]]


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 1/8 cups green lentils
2 1/4 cups water
6 slices white bread; torn into small piec
2 eggs
1 cup vegetable broth
2 tablespoons tomato paste
1/2 teaspoon dried basil
1/4 teaspoon garlic powder
1/2 teaspoon ground black pepper
1 teaspoon dried parsley
1 tablespoon olive oil
1 packet dry vegetable soup mix
1/3 cup dried bread crumbs 
!Preparation
Combine lentils and water in a small saucepan. Bring to a boil. Reduce heat, and simmer until tender, about 40 minutes.

Preheat oven to 400 degrees F (205 degrees C). Grease a 9x5 inch loaf pan.

In a large bowl, mix together 2 cups cooked lentils, bread, eggs, broth, tomato paste, basil, garlic powder, black pepper, parsley, olive oil, and dry soup mix. Spread into prepared pan.

Bake for 40 minutes. Sprinkle top with dry bread crumbs, and continue baking another 10 minutes. Let sit for 10 minutes before serving.
!Notes
Substitute ketchup for tomato paste.
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Reflecting the cuisines of Israel and the surrounding Mediterranean Middle Eastern countries, this meatless stew is seasoned with mint and lemon. Serve it with sesame seed rolls and a tomato and cucumber salad; have pistachio ice cream for dessert.

A personal favorite.

''Servings:'' 2, can be doubled
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 tablespoons olive oil
2 large garlic cloves; chopped
3 cups canned vegetable broth
1 cup lentils; rinsed,picked over
8 ounces red-skinned potatoes; cut into 1/2-inch pi
1 lemon
6 ounces torn fresh spinach leaves (about 8 cups)
1/4 teaspoon torn fresh spinach leaves (about 8 cups)
1/4 cup chopped fresh mint
Crumbled feta cheese (optional) 
!Preparation
Heat olive oil in heavy large saucepan over medium heat. Add garlic and stir 30 seconds. Add vegetable broth and lentils; bring to boil. Reduce heat, cover and simmer 10 minutes. Add potatoes; cook uncovered until potatoes and lentils are tender, stirring occasionally, about 15 minutes.

Meanwhile, grate 1/2 teaspoon peel from lemon; squeeze enough juice from lemon to measure 2 tablespoons. Add lemon peel, lemon juice, spinach and cayenne to stew. Cover and simmer stew until spinach wilts and is cooked through, about 2 minutes. Mix in mint. Season to taste with salt and pepper. (Can be prepared 1 day ahead. Cover and refrigerate. Rewarm over low heat before serving.)

Spoon stew into large soup bowls. Sprinkle feta cheese over, if desired.
!Notes
Bon Appetit
May 1995

http://www.epicurious.com/recipes/food/views/Lentil-Stew-with-Spinach-and-Potatoes-349
/***
|Name:|LessBackupsPlugin|
|Description:|Intelligently limit the number of backup files you create|
|Version:|3.0.1 ($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 specific code by by Saq Imtiaz.
***/
//{{{

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

if (!config.lessBackups) {
	config.lessBackups = {
		// comment out the ones you don't want or set config.lessBackups.modes in your 'tweaks' plugin
		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).
		]
	};
}

window.getSpecialBackupPath = function(backupPath) {

	var now = new Date();

	var modes = config.lessBackups.modes;

	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 written 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_mptw_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
	return getSpecialBackupPath(getBackupPath_mptw_orig(localPath));
}

//}}}

/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''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|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
MPTW is a distribution or edition of TiddlyWiki that includes a standard TiddlyWiki core packaged with some plugins designed to improve usability and provide a better way to organise your information. For more information see http://mptw.tiddlyspot.com/.

[[Home|Welcome to Jeff's Cookbook]] <<tag Category>> <<tag Credit>> <<tag Active>> <<tag Tried>> <<tag Recommend>> [[Links|Cooking Links]] [[About]]   <<search>>     {{floatright{<<tiddler ToggleRightSidebar>>}}}
[>img(auto,200px)[https://lh5.googleusercontent.com/-jBWmRZfnuOI/TiNf7jiH-VI/AAAAAAAAACc/dJAIkL-D2ks/MangoShrimpWrap.jpg]]



''Servings:'' 4
''Active time:'' 30 minutes
''Total prep time:'' 30 minutes

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/3 cup sour cream
1/3 cup mayonnaise
1/4 cup chopped fresh basil
2 tablespoons chopped fresh chives
2 1/4 teaspoons salt
1/4 teaspoon black pepper
1 tablespoon fresh lemon juice
1 1/2 lbs large shrimp in shell (16 to 20 per lb); peeled and deveined
1 (1-lb) firm-ripe mango; peeled and cut into
4 (10-inch) flour tortillas
1 (6-oz) bunch watercress; tough stems discarde 
!Preparation
Pulse sour cream, mayonnaise, basil, chives, 1/4 teaspoon salt, and pepper in a blender until herbs are finely chopped and mixture is pale green.

Bring 2 quarts water, lemon juice, and remaining 2 teaspoons salt to a boil in a 3-quart saucepan, then poach shrimp, uncovered, at a bare simmer until just cooked through, about 3 minutes. Transfer shrimp with a slotted spoon to a bowl of ice and cold water to stop cooking. Let shrimp chill in water 2 minutes, then drain and pat dry. Coarsely chop shrimp, then add to dressing along with mango and stir to combine.

Toast tortillas 1 at a time directly on burner (gas or electric) at moderately high heat, turning over and rotating with tongs, until puffed slightly and browned in spots but still flexible, 30 to 40 seconds. Transfer to a clean kitchen towel as toasted and stack, loosely wrapped in towel.

Divide watercress among tortillas, arranging it across middle, then top with 1 1/4 cups shrimp salad. Tuck in ends of wraps, then roll up tightly to enclose filling. Cut wraps in half diagonally.
!Notes
Gourmet
May 2004

http://www.epicurious.com/recipes/food/views/Mango-and-Shrimp-Wraps-109450

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Use for chicken or pork.


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 tablespoon oil
2 tablespoons vinegar
2 tablespoons brown sugar				
¼ cup lemon juice					
1 cup ketchup						
3 tablespoons Worcestershire sauce			
½ tablespoon mustard
1 cup water
1 cup celery, chopped
1 medium onion, minced	
salt
dash of red pepper

!Preparation
Mince and brown onion.
Add remaining ingredients and simmer for 30 minutes.
Pour over well-browned chicken and bake at 350° for 1 hour.
If using for spare ribs – brown ribs in 425°  for 10 –15 minutes.   Reduce heat to 350°, cover with sauce and bake for 1 hour or until tender.
!Notes
	
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Include introductory text here.


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/2 cup olive oil
1/3 cup white wine vinegar
4 teaspoons Moroccan spice blend
1 15-ounce can garbanzo beans; drained
1 1/2 cups tomatoes; seeded coarsely chop
1 1/2 cups cucumber; peeled,seeded,coarsely crumbled
1 cup feta cheese; coarsely crumbled
1/2 cup red onion; chopped
1/3 cup fresh Italian parsley; chopped
4 whole pita bread rounds; halved crosswise
whole pita bread rounds

''Moroccan Spice Blend:''
1/4 tsp ground coriander
1/4 tsp ground cinnamon
1 tbsp ground cumin
1/4 tsp ground cayenne 
!Preparation
Whisk together olive oil, white wine vinegar, and Moroccan spice blend in medium bowl. Place drained garbanzo beans in large bowl and mix in enough vinaigrette to coat. Let stand 10 minutes to allow flavors to blend.

Add tomatoes, cucumbers, feta cheese, red onion, and parsley to garbanzo beans. Mix in enough vinaigrette to coat. Season bean salad to taste with salt and pepper. Fill pita halves with bean salad and top with dollop of yogurt. Place 2 pita halves on each of 4 plates; pass remaining vinaigrette separately.
!Notes
Bon Appetit
August 2003

http://www.epicurious.com/recipes/food/views/Moroccan-Garbanzo-Bean-and-Feta-Pitas-108446
[>img(auto,200px)[https://lh4.googleusercontent.com/-WN-vZIkAPGk/TiNf7lMiN8I/AAAAAAAAACk/ecBPdkIsZDo/moroccan-spiced%252520cold%252520tomato%252520soup.jpg]]

North African spices combine with a touch of honey and lemon in a refreshing summer soup.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 small onion; chopped 
2 tbsp olive oil 
1 tsp paprika 
1/4 tsp ground ginger 
1/4 tsp ground cumin 
1/4 tsp ground cinnamon; scant! 
1 (14- to 16-oz) can whole tomatoes in juice; drained and juices r 
1 3/4 cups chicken broth (14 fl oz) 
2 tsp honey 
2 tbsp fresh parsley; chopped 
2 tbsp fresh cilantro; chopped 
1/2 tsp fresh lemon juice; or to taste 
Garnish: lemon slices
!Preparation
Cook onion in oil with spices in a 3-quart heavy saucepan over moderate heat, stirring occasionally, until onion is softened and begins to brown, 4 to 5 minutes. Coarsely chop tomatoes and add to onion mixture with reserved juices, broth, honey, 1 tablespoon parsley, and 1 tablespoon cilantro, then bring to a boil. Transfer soup to a metal bowl set in a larger bowl of ice and cold water. Cool soup, stirring occasionally, until cold, 15 to 20 minutes. Stir in lemon juice and salt and pepper to taste, then stir in remaining parsley and cilantro.
!Notes
Gourmet
June 2003
http://www.epicurious.com/recipes/food/views/Moroccan-Spiced-Cold-Tomato-Soup-108156

Some reviewers recommend pureeing.
Name: MptwBlack
Background: #000
Foreground: #fff
PrimaryPale: #333
PrimaryLight: #555
PrimaryMid: #888
PrimaryDark: #aaa
SecondaryPale: #111
SecondaryLight: #222
SecondaryMid: #555
SecondaryDark: #888
TertiaryPale: #222
TertiaryLight: #666
TertiaryMid: #888
TertiaryDark: #aaa
Error: #300

This is in progress. Help appreciated.


Name: MptwBlue
Background: #fff
Foreground: #000
PrimaryPale: #cdf
PrimaryLight: #57c
PrimaryMid: #114
PrimaryDark: #012
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

//{{{
// Pretty sure this is incomplete and experimental
// TODO: Fix it or remove it.

(function($){

merge(config.macros,{
  mptwCollapse: {
    handler: function(place,macroName,params) {
      createTiddlyButton(place, params[0] == '+' ? '\u25AD' : '\u25AC', 'collapse/uncollapse', function(){
        $(story.findContainingTiddler(place)).toggleClass('collapsed');
      });
    }
  }
});

/* this doesn't work unless you have a modified ViewTempate */
config.shadowTiddlers["MptwCollapsePluginStyles"] = ""
  +".collapsed .uncollapsedView { display:none;       }"
  +".collapsedView              { display:none;       }"
  +".collapsed .collapsedView   { display:block;      }"
  +".tiddler.collapsed          { padding-bottom:1em; }"
  +".tiddler.collapsed .title   { font-size:100%;     }"
;

store.addNotification("MptwCollapsePluginStyles",refreshStyles);

})(jQuery);

//}}}
/***
|Name:|MptwConfigPlugin|
|Description:|Miscellaneous tweaks used by MPTW|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
!!Note: instead of editing this you should put overrides in MptwUserConfigPlugin
***/
//{{{
var originalReadOnly = readOnly;
var originalShowBackstage = showBackstage;

config.options.chkHttpReadOnly = false; 		// means web visitors can experiment with your site by clicking edit
readOnly = false;								// needed because the above doesn't work any more post 2.1 (??)
showBackstage = true;							// show backstage for same reason

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 

config.options.chkSaveBackups = true;			// do save backups
config.options.txtBackupFolder = 'twbackup';	// put backups in a backups folder

config.options.chkAutoSave = (window.location.protocol == "file:"); // do autosave if we're in local file

config.mptwVersion = "2.5.3";

config.macros.mptwVersion={handler:function(place){wikify(config.mptwVersion,place);}};

if (config.options.txtTheme == '')
	config.options.txtTheme = 'MptwTheme';

// add to default GettingStarted
config.shadowTiddlers.GettingStarted += "\n\nSee also [[MPTW]].";

// add select theme and palette controls in default OptionsPanel
config.shadowTiddlers.OptionsPanel = config.shadowTiddlers.OptionsPanel.replace(/(\n\-\-\-\-\nAlso see AdvancedOptions)/, "{{select{<<selectTheme>>\n<<selectPalette>>}}}$1");

// these are used by ViewTemplate
config.mptwDateFormat = 'DD/MM/YY';
config.mptwJournalFormat = 'Journal DD/MM/YY';

//}}}
Name: MptwGreen
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

Name: MptwRed
Background: #fff
Foreground: #000
PrimaryPale: #eaa
PrimaryLight: #c55
PrimaryMid: #711
PrimaryDark: #500
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

|Name|MptwRounded|
|Description|Mptw Theme with some rounded corners (Firefox only)|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
|PageTemplate|MptwTheme##PageTemplate|
|StyleSheet|##StyleSheet|

!StyleSheet
/*{{{*/

[[MptwTheme##StyleSheet]]

.tiddler,
.sliderPanel,
.button,
.tiddlyLink,
.tabContents
{ -moz-border-radius: 1em; }

.tab {
	-moz-border-radius-topleft: 0.5em;
	-moz-border-radius-topright: 0.5em;
}
#topMenu {
	-moz-border-radius-bottomleft: 2em;
	-moz-border-radius-bottomright: 2em;
}

/*}}}*/

Name: MptwSmoke
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

|Name|MptwStandard|
|Description|Mptw Theme with the default TiddlyWiki PageLayout and Styles|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
Name: MptwTeal
Background: #fff
Foreground: #000
PrimaryPale: #B5D1DF
PrimaryLight: #618FA9
PrimaryMid: #1a3844
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #f8f8f8
TertiaryLight: #bbb
TertiaryMid: #999
TertiaryDark: #888
Error: #f88
|Name|MptwTheme|
|Description|Mptw Theme including custom PageLayout|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|StyleSheet|##StyleSheet|

http://mptw.tiddlyspot.com/#MptwTheme ($Rev: 1829 $)

!PageTemplate
<!--{{{-->
<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>
<!--}}}-->

!ViewTemplate
<!--{{{-->
[[MptwTheme##ViewTemplateToolbar]]

<div class="tagglyTagged" macro="tags"></div>

<div class='titleContainer'>
	<span class='title' macro='view title'></span>
	<span macro="miniTag"></span>
</div>

<div class='subtitle'>
	(updated <span macro='view modified date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>
	by <span macro='view modifier link'></span>)
	<!--
	(<span macro='message views.wikified.createdPrompt'></span>
	<span macro='view created date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>)
	-->
</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="else">
	<div class='viewer' macro='view text wikified'></div>
</div>

<div><span macro='toggleTag Tried'></span><span macro='toggleTag Recommend'></span><span macro='toggleTag Active'></span></div>

<div class="tagglyTagging" macro="tagglyTagging"></div>

<!--}}}-->

!ViewTemplateToolbar
<!--{{{-->
<div class='toolbar'>
	<span macro="showWhenTagged systemConfig">
		<span macro="toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'"></span>
	</span>
	<span macro="showWhenTagged systemTheme"><span macro="applyTheme"></span></span>
	<span macro="showWhenTagged systemPalette"><span macro="applyPalette"></span></span>
	<span macro="showWhen tiddler.tags.contains('css') || tiddler.title == 'StyleSheet'"><span macro="refreshAll"></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>
<!--}}}-->

!EditTemplate
<!--{{{-->
<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 macro='annotations'></div>
<div class="editLabel">Content</div><div class="editor" macro="edit text"></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>
<!--}}}-->

!StyleSheet
/*{{{*/

/* 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, .editor input {
	font-family: 'Consolas' monospace;
	background-color:[[ColorPalette::TertiaryPale]];
}


/* 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:1em;
	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-color: transparent;
	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:1em 2em 2em 1.5em;
}

/* 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; }

/* fix for TaggerPlugin. from sb56637. improved by FND */
.popup li .tagger a {
   display:inline;
}

/* makes theme selector look a little better */
#sidebarOptions .sliderPanel .select .button {
  padding:0.5em;
  display:block;
}
#sidebarOptions .sliderPanel .select br {
	display:none;
}

/* 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;
	}
}

/* get user styles specified in StyleSheet */
[[StyleSheet]]

/*}}}*/

|Name|MptwTrim|
|Description|Mptw Theme with a reduced header to increase useful space|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
|StyleSheet|MptwTheme##StyleSheet|
|PageTemplate|##PageTemplate|

!PageTemplate
<!--{{{-->

<!-- horizontal MainMenu -->
<div id='topMenu' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<span refresh='content' tiddler='SiteTitle' style="padding-left:1em;font-weight:bold;"></span>:
<span refresh='content' tiddler='MainMenu'></span>
</div>
<div id='sidebar'>
	<div id='sidebarOptions'>
		<div refresh='content' tiddler='SideBarOptions'></div>
		<div style="margin-left:0.1em;"
			macro='slider chkTabSliderPanel SideBarTabs {{"tabs \u00bb"}} "Show Timeline, All, Tags, etc"'></div>
	</div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
</div>

For upgrading. See [[ImportTiddlers]].
URL: http://mptw.tiddlyspot.com/upgrade.html
/***
|Description:|A place to put your config tweaks so they aren't overwritten when you upgrade MPTW|
See http://www.tiddlywiki.org/wiki/Configuration_Options for other options you can set. In some cases where there are clashes with other plugins it might help to rename this to zzMptwUserConfigPlugin so it gets executed last.
***/
//{{{

// example: set your preferred date format
//config.mptwDateFormat = 'MM/0DD/YY';
//config.mptwJournalFormat = 'Journal MM/0DD/YY';

// example: set the theme you want to start with
//config.options.txtTheme = 'MptwRoundTheme';

// example: switch off autosave, switch on backups and set a backup folder
//config.options.chkSaveBackups = true;
//config.options.chkAutoSave = false;
//config.options.txtBackupFolder = 'backups';

// uncomment to disable 'new means new' functionality for the new journal macro
//config.newMeansNewForJournalsToo = false;

//}}}
[>img(auto,200px)[https://lh6.googleusercontent.com/-VKcy2kEuj_0/TiNf7zDTRjI/AAAAAAAAACo/POHZBWVHpB0/MushroomKashaBurger.jpg]]

Think meatless has to mean boring? These delicious patties, made with earthy portabella mushrooms and hearty kasha, defy the bland reputation of vegetarian burgers. A fiery dollop of chipotle mayonnaise makes them even more irresistible.


''Servings:'' 4
''Active time:'' 40 minutes
''Total prep time:'' 2 hours

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2/3 cup water
1/3 cup coarse kasha (whole roasted buckwheat groats)
1 pound portabella mushrooms; stems discarded
1 cup finely chopped onion
1 cup finely chopped red bell pepper
3 tablespoons unsalted butter
2 garlic cloves; finely chopped
3 tablespoons finely chopped flat-leaf parsley
1 teaspoon soy sauce
1 1/2 cups fine dry bread crumbs; divided
1 large egg; lightly beaten
1/4 cup olive oil
1/2 cup mayonnaise
1 tablespoon Tabasco chipotle sauce; or to taste
8 large oval slices rye bread; cut into 4 1/2-inch ,lightly toasted 
!Preparation
Bring water to a boil in a 1- to 1 1/2-quart heavy saucepan, then stir in kasha. Cover and reduce heat to low, then cook until kasha is tender and water is absorbed, about 10 minutes. Transfer to a bowl and cool.

Break one third of mushrooms into a food processor and pulse until finely chopped, then transfer to a bowl. Repeat with remaining 2 batches of mushrooms, transferring to bowl.

Cook onion and bell pepper in butter in a 12-inch heavy skillet over medium heat, stirring occasionally, until softened, about 5 minutes. Add chopped mushrooms, garlic, 3/4 teaspoon salt, and 1/2 teaspoon pepper and cook over medium-high heat, stirring occasionally, until any liquid mushrooms give off is evaporated and mushrooms begin to brown, 8 to 10 minutes. Transfer mixture to a large bowl, then stir in kasha, parsley, soy sauce, and 1/2 cup bread crumbs until combined well. Cool 10 minutes, then stir in egg until combined well.

Line a platter with foil. Spread remaining cup bread crumbs in a shallow baking dish.

Form one fourth of mushroom mixture (about 3/4 cup) into a 3/4-inch-thick patty (3 1/2 inches in diameter), then dredge in bread crumbs, knocking off excess, and transfer to platter. Form and dredge 3 more patties, transferring to platter. Chill patties, loosely covered with plastic wrap, 1 hour.

Heat oil in cleaned 12-inch heavy skillet over medium-high heat until it shimmers, then fry patties, turning over once, until deep golden, about 4 minutes total. Transfer patties to paper towels to drain (patties will be soft).

Meanwhile, whisk together mayonnaise and chipotle sauce.

Spread bread with chipotle mayonnaise and sandwich each mushroom patty between 2 slices.

Patties can be formed, without bread-crumb coating, 12 hours ahead and chilled, covered.
!Notes
*Scrape the gills out of the portabellas. Keeps the mixture from getting watery / slimy.
*Panko instead of plain bread crumbs gives nice crispiness.
*Skip the Tabasco Chipotle sauce. Use chipotles in adobo sauce for better flavor and real heat.

Gourmet 
August 2007

http://www.epicurious.com/recipes/food/views/Mushroom-Kasha-Burgers-with-Chipotle-Mayonnaise-239295
[>img(auto,200px)[https://lh3.googleusercontent.com/-nMCluHTTsAg/TiNf8C6vgxI/AAAAAAAAACg/PdfGKxjJjpw/NectarineCrisp.jpg]]

Top with ice cream, lightly sweetened créme fraîche, or whipped cream.


''Servings:'' 8
''Active time:''
''Total prep time:'' 1:20

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3/4 cup plus 1 tablespoon all purpose flour
1/2 cup (packed) golden brown sugar, divided
1 1/4 teaspoons ground cardamom, divided
1 teaspoon ground ginger, divided
1/4 teaspoon salt
2 ounces almond paste (about 1/3 cup), crumbled
6 tablespoons (3/4 stick) chilled unsalted butter, cut into 1/2-inch cubes
1 1/2 cups sliced almonds
2 1/2 to 2 3/4 pounds nectarines (about 8 cups), each cut into 8 wedges
1/2 cup apricot preserves
!Preparation
 Preheat oven to 400°F. Butter 11 x 7 x 2-inch glass baking dish. Blend 3/4 cup flour, 1/4 cup brown sugar, 3/4 teaspoon cardamom, 1/2 teaspoon ginger, and salt in processor. Add almond paste and process until fine crumbs form. Add butter and process using on/off turns until mixture begins to clump together. Transfer to bowl. Mix in almonds.

Toss nectarine wedges, apricot preserves, remaining 1 tablespoon flour, 1/4 cup sugar, 1/2 teaspoon cardamom, and 1/2 teaspoon ginger in large bowl to coat. Transfer to prepared baking dish; sprinkle topping over. Bake until topping is golden, nectarines are tender, and juices are bubbling around edges, about 40 minutes. Cool at least 20 minutes before serving. 
!Notes
 Bon Appétit
August 2007
The Bon Appétit Test Kitchen

http://www.epicurious.com/recipes/food/views/Nectarine-and-Almond-Crisp-239094
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Offer with crusty French bread and you have a satisfying summer supper. The creamy dressing is lower-fat version, using half yogurt and half mayonnaise.


''Servings:'' 2, can be doubled or tripled
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 3/4 lbs medium white-skinned boiling potatoes (about 6)
2 tablespoons cider vinegar
4 green onions; chopped
4 tablespoons plain yogurt
4 tablespoons mayonnaise
4 teaspoons prepared white horseradish
1 teaspoon caraway seeds
1/2 lb kielbasa sausage; sliced into rounds
5 ounces Gruyáre cheese; diced
Salt and freshly ground pepper
Curly endive 
!Preparation
Cook potatoes in large saucepan of boiling water until tender, about 20 minutes. Drain and cool slightly. Peel and slice potatoes. Transfer to large bowl. Gently mix in vinegar and green onions, using rubber spatula. Cool.

Combine yogurt, mayonnaise, horseradish and caraway. Mix into potatoes. Add kielbasa and cheese. Season with salt and pepper. Line plates with endive. Spoon salad atop.
!Notes
Bon Appetit
August 1990

http://www.epicurious.com/recipes/food/views/New-Potato-Kielbasa-and-Gruyere-Salad-2356
/***
|Name:|NewHerePlugin|
|Description:|Creates the new here and new journal macros|
|Version:|3.0 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|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.1.1 ($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|
!!Note: I think this should be in the core
***/
//{{{

// change this or set config.newMeansNewForJournalsToo it in MptwUuserConfigPlugin
if (config.newMeansNewForJournalsToo == undefined) config.newMeansNewForJournalsToo = true;

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.checkForUnsaved = function(newName) {
	var r = false;
	story.forEachTiddler(function(title,element) {
		if (title == newName)
			r = true;
	});
	return r;
}

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


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

	// ---- these three lines should be the only difference between this and the core onClickNewTiddler
	if (config.newMeansNewForJournalsToo || this.getAttribute("isJournal") != "true")
		title = config.macros.newTiddler.getName(title);

	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");
	if(!customFields && !store.isShadowTiddler(title))
		customFields = String.encodeHashMap(config.defaultCustomFields);
	story.displayTiddler(null,title,template,false,null,null);
	var tiddlerElem = story.getTiddler(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;
};

//}}}

<<tiddler TspotOptions>>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
<<selectTheme>>
<<selectPalette>>

----
Also see [[AdvancedOptions]]
[>img(auto,200px)[https://lh4.googleusercontent.com/-ORv1DqulSx8/TiNf4v-W2CI/AAAAAAAAABs/J46l-GjkVsM/051102107-02-orecchiette-brussels-sprouts-gorgonzola-pecan-recipe.jpg]]

"You'd be hard-pressed to find a more perfect fall pasta dish. For a sweet, nutty flavor, roast the Brussels sprouts until they’re just this side of charred."  //by Dawn Yanagihara-Mitchell, Fine Cooking//


''Servings:'' 4 to 6
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
Kosher salt
20 oz. Brussels sprouts, trimmed (4 cups)
3-1/2 Tbs. extra-virgin olive oil
Freshly ground black pepper
1 lb. dried orecchiette
1-1/2 Tbs. unsalted butter
1/2 cup coarsely chopped pecans
2 large shallots, minced (3/4 cup)
3/4 cup heavy cream
4 oz. Gorgonzola, crumbled (1 cup)
1 Tbs. fresh lemon juice
!Preparation
Position a rack in the lower third of the oven, set a heavy rimmed baking sheet on the rack, and heat the oven to 500°F. Bring a large pot of well-salted water to a boil over high heat.

In a food processor fitted with the medium (4 mm) slicing disk, slice the Brussels sprouts. Transfer them to a large bowl, drizzle with the oil, sprinkle with 1-1/4 tsp. salt and 1/2 tsp. pepper, and toss until well coated. Remove the hot baking sheet from the oven and spread the Brussels sprouts on it in a single layer. Roast, stirring once about halfway through the cooking time, until the Brussels sprouts are tender and flecked with charred bits, 15 to 20 minutes.

Meanwhile, cook the orecchiette according to package directions until just al dente.

In a medium heavy-duty skillet, melt 1/2 Tbs. of the butter over medium heat. Add the pecans and cook, stirring frequently, until the butter is deeply browned and the pecans are toasted, about 3 minutes. Transfer to a plate and set aside.

Melt the remaining 1 Tbs. butter in the skillet over medium heat. Add the shallots and cook, stirring occasionally, until softened, 2 to 3 minutes. Add the cream and bring to a simmer. Off the heat, add 3 oz. (3/4 cup) of the Gorgonzola and stir until melted.

Drain the orecchiette and return it to the pot. Add the Brussels sprouts, Gorgonzola sauce, and lemon juice and toss well. Serve, sprinkled with the pecans and the remaining Gorgonzola.
!Serving Suggestions
Serve with a fresh salad or quick braised Acorn Squash with Rosemary and Brown Sugar.
!Notes
nutrition information (per serving):
Calories (kcal): 670; Fat (g): 36; Fat Calories (kcal): 330; Saturated Fat (g): 14; Protein (g): 19; Monounsaturated Fat (g): 15; Carbohydrates (g): 67; Polyunsaturated Fat (g): 4.5; Sodium (mg): 700; Cholesterol (mg): 70; Fiber (g): 8; 

photo: Scott Phillips

From Fine Cooking 102, pp. 107
October 29, 2009
http://www.finecooking.com/recipes/orecchiette-brussels-sprouts-gorgonzola-brown-butter-pecans.aspx
[>img(auto,200px)[./images/kami23-kiss-the-cook-2598.png]]

Looking for a fish you can feel good about eating? Arctic char is a fast-reproducing fish that is a good, sustainable alternative to Atlantic salmon, which it resembles in flavor and texture.

''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
4 small red potatoes (about 3/4 lb.), sliced 1/4 inch thick 
Kosher salt and freshly ground black pepper 
4 skin-on arctic char fillets (about 5 oz. each), scaled 
3 Tbs. olive oil 
2 sprigs fresh rosemary, each about 3 inches long 
1/2 cup pitted Kalamata olives 
3 Tbs. roughly chopped fresh flat-leaf parsley 
1 Tbs. balsamic vinegar 
4 lemon wedges

http://www.finecooking.com/recipes/pan-seared-arctic-char-olives-potatoes.aspx?nterms=50182
[>img(auto,200px)[https://lh5.googleusercontent.com/-QRIlc0jTPbA/TiNf65QO3FI/AAAAAAAAACI/xRLh2XAnoAU/july01.jpg]]


''Servings:'' 4
''Active time:''
''Total prep time:'' 15

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/2 stick (1/4 cup) unsalted butter; softened
1/2-1 tbsp canned chipotle chiles in adobo sauce; finely chopped
1/2 tsp salt
4 red snapper fillets with skin (1 1/2 lb total)
1/3 cup all-purpose flour
3 tablespoons vegetable oil

Accompaniment: lime wedges 
!Preparation
Mash together butter, chipotles to taste, adobo sauce, and salt with a fork until blended.

Pat fish dry and cut each fillet in half crosswise, then season with salt and pepper. Spread flour on a plate and dredge fish, knocking off excess.

Heat 1 1/2 tablespoons oil in a 12-inch nonstick skillet over moderately high heat until hot but not smoking, then panfry fish, skin sides up first, in batches, turning over once, until browned and just cooked through, 4 to 6 minutes. Transfer as cooked with a slotted spatula to plates and add more oil to skillet as needed. Top fish with dollops of chipotle butter.

Serve over [[Pecan Barley Salad]]
!Notes
Gourmet
July 2001

http://www.epicurious.com/recipes/food/views/Panfried-Red-Snapper-with-Chipotle-Butter-105222
/***
|''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"
	});
*/
//}}}
[>img(auto,200px)[https://lh5.googleusercontent.com/-QRIlc0jTPbA/TiNf65QO3FI/AAAAAAAAACI/xRLh2XAnoAU/july01.jpg]]



''Servings:'' 6 servings
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 cup quick-cooking barley 
2 cups water 
1/2 tsp salt 
3/4 cup pecans (3 oz); chopped 
1/4 cup extra-virgin olive oil 
2 medium carrots; 1/4-inch dice 
2 celery ribs; 1/4-inch dice 
1/4 cup chopped fresh dill 
1/4 cup finely chopped shallot (1 large) 
2 tbsp fresh lemon juice
!Preparation
Bring barley, water, and salt to a boil in a 2-quart heavy saucepan, then reduce heat and simmer, covered, until barley is tender, about 10 minutes. Remove from heat and let stand, covered, 5 minutes. Drain barley in a colander, then rinse under cold water and drain well.

While barley is simmering, cook pecans in oil in a heavy skillet over moderately low heat, stirring frequently, until nuts are toasted 1 shade darker, about 4 minutes. Toss nuts and oil with barley and remaining ingredients in a large bowl, then season with salt and pepper.
!Notes
Serve with [[Panfried Red Snapper with Chipotle Butter]]
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Two New Orleans favorites — catfish and pecans — team up in this terrific dish from Upperline Restaurant.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''Sauce''
1 cup dry white wine
1/4 cup fresh lemon juice
1 tablespoon Worcestershire sauce
2 large garlic cloves, minced
1/2 cup whipping cream
3 tablespoons chilled unsalted butter, cut into pieces

''Fish''
1/2 cup (about) all purpose flour
1 cup whole milk
1 large egg
4 6- to 8-ounce catfish fillets
1 cup finely chopped pecans
1 tablespoon vegetable oil
!Preparation

For sauce: Combine wine, fresh lemon juice, Worcestershire sauce and garlic in small nonaluminum saucepan. Boil until liquid is reduced to 1/2 cup, about 8 minutes. Add cream. Boil until sauce thickens slightly, about 5 minutes. Reduce heat to low. Whisk in butter 1 tablespoon at a time. Season sauce to taste with salt and pepper. Strain sauce into small bowl. Return sauce to pan.

Meanwhile, prepare fish: Preheat oven to 400°F. Place flour on large plate. Whisk milk and egg in shallow bowl to blend. Sprinkle catfish fillets with salt and pepper. Lightly coat catfish fillets in flour. Dip into milk mixture. Coat 1 side of fish with pecans. Lightly coat second side with flour.

Heat 1/2 tablespoon oil in large skillet over medium-high heat. Add 2 fish fillets to skillet, nut side down, and cook until nuts begin to brown, about 2 minutes. Turn fish over; cook 1 minute. Using metal spatula, transfer fish, nut side up, to rimmed baking sheet. Repeat with remaining fish and 1/2 tablespoon oil. Bake until opaque in center, about 10 minutes.

Transfer catfish fillets to plates. Serve catfish with sauce. 
!Notes
Bon Appétit
April 1998

http://www.epicurious.com/recipes/food/views/Pecan-Crusted-Catfish-5235
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 4
''Active time:'' 45 minutes
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 tablespoons olive oil
3/4 pound fully cooked pork; chicken or turkey sa,thickly sliced into
3/4 pound fresh wild mushrooms (such as crimini or ste; thickly sliced
3/4 cup chopped shallots
5 garlic cloves; minced
1/2 teaspoon dried crushed red pepper
1 10-ounce package spinach leaves
1 1/4 cups canned low-salt chicken broth
3/4 lb penne
2 cups provolone or mozzarella cheese 
!Preparation
Heat oil in heavy large pot over medium-high heat. Add sausages, mushrooms, shallots, garlic and crushed red pepper. Sauté until mushrooms begin to brown, about 10 minutes. Add spinach and broth; toss until spinach wilts, about 2 minutes. Add pasta and cheese; toss until cheese melts and sauce coats pasta, about 3 minutes. Season with salt and pepper.
!Notes
Button mushrooms would also be fine here.

Bon Appetit
October 1998

http://www.epicurious.com/recipes/food/views/Penne-with-Sausage-Wild-Mushrooms-and-Spinach-15542
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Include introductory text here.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
6 tablespoons olive oil
1 1/2 cups onion; chopped
1 teaspoon garlic; minced
3 28-ounce cans Italian plum tomatoes
2 teaspoons dried basil
1 1/2 teaspoons dried crushed red pepper
2 cups canned low-salt chicken broth
1 pound penne or rigatoni
2 1/2 cups Havarti cheese; packed grated
1/3 cup brine-cured olives (such as Kalamata); sliced pitted
1/3 cup brine-cured olives (such as Kalamata); grated
1/4 cup fresh basil; finely chopped 
!Preparation
Heat 3 tablespoons oil in heavy large Dutch oven over medium-high heat. Add onion and garlic; sauté until onion is translucent, about 5 minutes. Mix in tomatoes, dried basil and crushed red pepper. Bring to boil, breaking up tomatoes with back of spoon. Add broth; bring to boil. Reduce heat to medium; simmer and mixture thickens to chunky sauce and is reduced to 6 cups, stirring occasionally, about 1 hour 10 minutes. Season with salt and pepper. (Can be made 2 days ahead. Cover and chill. Rewarm over low heat before continuing.)

Preheat oven to 375°F. Cook pasta in large pot of boiling salted water until tender but still firm to bite. Drain well.

Return pasta to same pot. Toss with 3 tablespoons oil. Pour sauce over and toss to blend. Mix in Havarti cheese. Transfer pasta to 13x9x2-inch glass baking dish. Sprinkle with olives, then Parmesan.

Bake until pasta is heated through, about 30 minutes. Sprinkle with basil.
!Notes
Bon Appetit
February 1995

http://www.epicurious.com/recipes/food/views/Penne-with-Tomatoes-Olives-and-Two-Cheeses-513
[>img(auto,200px)[https://lh4.googleusercontent.com/-quaEJFPVk7I/TiNf8DlUT1I/AAAAAAAAACs/lLGUI-OtWrA/PenneArugulaRadicchioSmokedMoz.jpg]]



''Servings:'' 6
''Active time:'' 25 minutes
''Total prep time:'' 25 minutes

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 lb dried penne
5 tablespoons extra-virgin olive oil
1 teaspoon fresh lemon zest; finely grated
2 garlic cloves; minced
6 ounces radicchio (1 head)
9 ounces arugula; trimmed (6 cups)
1 cup fresh basil
4 ounces smoked mozzarella; cut into 1/2-inch di
2 tablespoons fresh lemon juice 
!Preparation
Cook pasta in a 6-quart pot of well-salted boiling water until al dente.

While pasta is boiling, whisk together oil, zest, garlic, and salt and pepper to taste in a large bowl. Then thinly slice radicchio, arugula, and basil and add to dressing.

Reserve 1/2 cup cooking water and drain pasta in a colander.

Add hot pasta and reserved cooking water to greens and let stand 1 minute to wilt.

Add mozzarella and lemon juice and toss well. Season with salt and pepper and serve warm.
!Notes
Gourmet
June 2001

http://www.epicurious.com/recipes/food/views/Penne-with-Wilted-Arugula-Radicchio-and-Smoked-Mozzarella-105120
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 6
''Active time:''
''Total prep time:'' 1 hour

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 can (16 ounce) can black beans 
1 (15 ounce) can kidney beans 
1 (10 ounce) can whole kernel corn 
1 onion; chopped 
1 green bell pepper; chopped 
1 small eggplant; peeled and cubed 
6 fresh mushrooms; chopped 
1 (1.27 ounce) packet dry fajita seasoning 
1 (8 ounce) jar salsa 
1 cup shredded mozzarella cheese 
1/3 cup black olives 
16 ounces polenta; sliced

!Preparation
Preheat oven to 350 degrees F (175 degrees C). Lightly oil a 9x13 inch baking dish. 

Heat oil in a skillet over medium heat. Cook and stir onion, green pepper, eggplant, and mushrooms in oil until soft. Mix in fajita seasoning. 

Line prepared baking dish with slices of polenta. Spread beans and corn evenly over the polenta, and then spread onion mixture over the beans. Top with salsa, mozzarella cheese and black olives. 

Bake until heated through, about 20 minutes.
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Healthy bonus: Fiber and potassium from mushrooms; fiber and iron from beans; folate from avocado; potassium from corn

''Servings:'' 4 burgers
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''Corn salsa'' 
1 1/2 cups corn, fresh or frozen (thawed)
3 tomatoes, seeded and finely diced
1 1/2 tbsp chopped fresh cilantro
2 tsp fresh lime juice
1 tsp paprika
1/4 tsp salt

''Burgers''
1 package (10 oz) portobello mushrooms, wiped clean
1 1/4 cups canned black beans, rinsed and drained
1/4 cup chopped green chiles
3 tsp Worcestershire sauce
1 1/2 tsp chili powder
1/2 tsp salt
1/4 tsp onion powder
3/4 cup breadcrumbs
1 egg
Vegetable-oil cooking spray
2 whole-grain pitas, halved
1 avocado, sliced
!Preparation
Combine salsa ingredients and set aside. In a food processor, chop mushrooms into extra fine pieces. Add beans, chiles, Worcestershire, chili powder, salt, onion powder, breadcrumbs and egg; process until fully combined. Liberally coat a large nonstick pan with cooking spray. Form 4 patties, then gently place onto pan. Grill over medium heat 5 minutes per side, or until a crisp crust forms and the burger is heated through. Place each burger into a pita half with 1/4 of the salsa and avocado slices.
!Notes
SELF
December 2004
http://www.epicurious.com/recipes/food/views/PORTOBELLO-BLACK-BEAN-BURGERS-WITH-CORN-SALSA-231146
[>img(auto,200px)[https://lh6.googleusercontent.com/-KnHdaSKlI3k/TiNf8cZVj9I/AAAAAAAAACw/ktcMYrtlGSU/PotatoCroquettes.jpg]]

In the past two years, half of our food editors have traveled to Spain, where they tried a variety of croquetas (ham, fish, and vegetable) that left a very positive impression. Serve these potato croquetas with any combination of dried sausage, olives, nuts, and cheese. //- Gourmet//


''Servings:'' Makes 24 to 28 hors d'oeuvres
''Active time:'' 1.5 hours
''Total prep time:'' 2 hours (incl making the aioli)

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 lb large boiling potatoes (about 2) 
3 large eggs 
1 tablespoon fresh flat-leaf parsley; chopped 
1 tablespoon fresh chives; finely chopped 
1/4 teaspoon fresh tarragon; chopped 
2 tablespoons unsalted butter; softened 
1/2 teaspoon salt 
1/8 teaspoon black pepper 
3/4 cup all-purpose flour 
3/4 cup fine dry bread crumbs 
About 4 cups olive oil (not extra-virgin) for frying
!Preparation
Peel potatoes and cut into 1-inch pieces. Cover with salted cold water by 1 inch in a 2-quart saucepan, then boil until tender, about 8 minutes. Drain in a colander. Force potatoes through ricer into a medium bowl and cool. 

Lightly beat 1 egg in a small bowl with a fork. Add to cooled potatoes along with herbs, butter, salt, and pepper and stir just until combined. 

Spoon tablespoons of potato mixture onto a tray, then lightly roll each into a ball between palms of your hands and return to tray. 

Lightly beat remaining 2 eggs in a small bowl and set aside. Spread flour in a shallow bowl, then spread bread crumbs in another shallow bowl. 

Working in 4 batches (of 6 or 7), roll balls in flour to coat, gently shaking off excess flour. Dip balls in egg, turning to coat and letting excess drip off, then roll in bread crumbs and return to tray. Chill, covered, 30 minutes. 

Preheat oven to 200°F. 

Heat 1 1/2 inches oil in a 3-quart pot until it registers 360°F on thermometer. Working in 4 batches, fry croquetas, turning if necessary, until browned, about 1 1/2 minutes per batch. Transfer with a slotted spoon to paper towels to drain, then transfer to a baking pan and keep warm in oven while frying remaining croquetas. (Return oil to 360°F between batches.)

Serve with [[Saffron Aioli]]
!Notes
Gourmet
October 2004
http://www.epicurious.com/recipes/food/views/Potato-Croquetas-with-Saffron-Alioli-230736
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/3 cup red onion; thinly sliced 
1 lb small (1 1/2- to 2-inch) boiling potatoes 
1 lb sweet or hot Italian sausage links 
4 tablespoons extra-virgin olive oil 
2 tablespoons red-wine vinegar 
1 1/4 teaspoons salt 
1/2 cup bottled roasted red peppers; drained and cut into small pieces
1/2 lb arugula; coarse stems discarded
!Preparation
Soak onion in cold water to cover 15 minutes. Drain and pat dry.

Meanwhile, cover potatoes with salted cold water by 2 inches in a 3-quart heavy saucepan and simmer, uncovered, until just tender, 15 to 25 minutes. Drain in a colander and cool slightly. 

While potatoes are simmering, prick sausages once or twice with a fork, then cook in 1 tablespoon oil in a large heavy skillet over moderate heat, turning occasionally, until browned and cooked through, about 10 minutes. Transfer to paper towels to drain. When sausages are cool enough to handle, cut diagonally into 1/2-inch pieces. 

Whisk together vinegar and salt in a large bowl until salt is dissolved. When potatoes are just cool enough to handle (but still warm), peel and cut into 1-inch cubes, adding to vinegar as cut, and toss gently. 

Add onion, sausages, roasted peppers, arugula, remaining 3 tablespoons oil, and salt and pepper to taste to potatoes and toss well.
!Notes
/***
|Name:|PrettyDatesPlugin|
|Description:|Provides a new date format ('pppp') that displays times such as '2 days ago'|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#PrettyDatesPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Notes
* If you want to you can rename this plugin. :) Some suggestions: LastUpdatedPlugin, RelativeDatesPlugin, SmartDatesPlugin, SexyDatesPlugin.
* Inspired by http://ejohn.org/files/pretty.js
***/
//{{{
Date.prototype.prettyDate = function() {
	var diff = (((new Date()).getTime() - this.getTime()) / 1000);
	var day_diff = Math.floor(diff / 86400);

	if (isNaN(day_diff))      return "";
	else if (diff < 0)        return "in the future";
	else if (diff < 60)       return "just now";
	else if (diff < 120)      return "1 minute ago";
	else if (diff < 3600)     return Math.floor(diff/60) + " minutes ago";
	else if (diff < 7200)     return "1 hour ago";
	else if (diff < 86400)    return Math.floor(diff/3600) + " hours ago";
	else if (day_diff == 1)   return "Yesterday";
	else if (day_diff < 7)    return day_diff + " days ago";
	else if (day_diff < 14)   return  "a week ago";
	else if (day_diff < 31)   return Math.ceil(day_diff/7) + " weeks ago";
	else if (day_diff < 62)   return "a month ago";
	else if (day_diff < 365)  return "about " + Math.ceil(day_diff/31) + " months ago";
	else if (day_diff < 730)  return "a year ago";
	else                      return Math.ceil(day_diff/365) + " years ago";
}

Date.prototype.formatString_orig_mptw = Date.prototype.formatString;

Date.prototype.formatString = function(template) {
	return this.formatString_orig_mptw(template).replace(/pppp/,this.prettyDate());
}

// for MPTW. otherwise edit your ViewTemplate as required.
// config.mptwDateFormat = 'pppp (DD/MM/YY)'; 
config.mptwDateFormat = 'pppp'; 

//}}}

[>img(auto,200px)[https://lh3.googleusercontent.com/-GTdasgK5jeY/TiNf8uqNaHI/AAAAAAAAADQ/zo1RFSgkjRU/QuickTomatoBasilPastaWithFreshMozz.jpg]]



''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 tablespoons extra virgin olive oil 
4 cloves garlic ; minced 
1/4 teaspoon red pepper flakes 
1 can crushed tomatoes (28 ounces) 
1 can diced tomatoes (14 1/2 ounces) 
5 tablespoons roughly chopped fresh basil 
1/4 teaspoon sugar 
Table salt 
1 lb campanelle or fusilli pasta 
8 ounces fresh mini mozzarella balls ; drained and cut in h 
1/3 cup grated Parmesan cheese
!Preparation
1. Bring 4 quarts water to boil in large pot. 

2. Meanwhile, heat 2 tablespoons oil, garlic, and pepper flakes in medium saucepan over medium heat until fragrant but not brown, about 2 minutes. Stir in crushed and diced tomatoes, bring to simmer, and cook until slightly thickened, 15 to 20 minutes. Stir in 3 tablespoons basil, sugar, and 1/2 teaspoon salt. 

3. Add 1 tablespoon salt and pasta to boiling water. Cook until al dente. Reserve 1/4 cup cooking water, drain pasta, and transfer back to pot. Stir in sauce and remaining tablespoon oil, and cook over medium heat until heated through (adding reserved water if pasta seems dry), about 1 minute. Stir in mozzarella and season with salt. Serve, sprinkling with remaining 2 tablespoons basil and Parmesan.
!Notes
/***
|Name:|QuickOpenTagPlugin|
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|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 do this: <<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();

//}}}

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

From the author, "This recipe is one of my best guarded secrets. Ideal for feeding the masses as part of a buffet dinner, or good as a side dish. I even have this for lunch on its own as it has very high nutritional content, fatty acids and protein."

''Servings:'' 10
''Active time:''
''Total prep time:'' 15 minutes

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 1/2 cups quinoa 
4 large artichoke hearts in oil (Italian style) 
1 small red onion 
1 red pepper 
handful of mixed olives; chopped 
handful of cashew nuts 
1/4 cup Tahini 
1 apple (Gala) 
sprinkle of pine nuts 
sprinkle of hemp protein bulk (hulled hemp seed) 
sprinkle of mixed seeds 
2 Italian plum tomatoes 
4 tbsp balsamic vinegar 
sea salt and pepper
!Preparation
To make this delight, cook the quinoa with slightly more water than 1 part water 1 part dry quinoa (maybe use two cups of water for 1.5 cups of dry quinoa) in a covered pot with a sprinkle of sea salt. The quinoa should soak up all the water. Put aside to cool. When the mix is still quite warm it’s best to start the "mix". I find this helps the flavors merge.

In a large mixing bowl, or serving bowl start with the quinoa.

First slice up the artichoke hearts into small pieces and mix with the quinoa. Pour some of the oil from the artichokes over also (no more than 1/4 of a cup). Then drizzle the tahini and the balsamic vinegar over the mix.

Dice the onion, pepper, and tomatoes finely (in a processor if you have one) and add them to the mix.

Slice the apple into small chunks and add to the mix.

Sprinkle over the nuts, seeds, hemp and olives.

Mix the remaining ingredients. Make sure its all mixed well and season as you wish with salt and pepper.

Serve this dish chilled or warm, don't reheat though. Once its chilled serve as cold.
!Notes
Found on VegWeb
/***
|Name|RearrangeTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#RearrangeTiddlersPlugin|
|Version|2.0.0|
|Author|Eric Shulman|
|OriginalAuthor|Joe Raii|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.refreshTiddler|
|Description|drag tiddlers by title to re-order story column display|

adapted from: http://www.cs.utexas.edu/~joeraii/dragn/#Draggable
changes by ELS:
* hijack refreshTiddler() instead of overridding createTiddler()
* find title element by className instead of elementID
* set cursor style via code instead of stylesheet
* set tooltip help text
* set tiddler "position:relative" when starting drag event, restore saved value when drag ends
* update 2006.08.07: use getElementsByTagName("*") to find title element, even when it is 'buried' deep in tiddler DOM elements (due to custom template usage)
* update 2007.03.01: use apply() to invoke hijacked core function
* update 2008.01.13: only hijack core function once.  (allows for dynamic loading of plugin via bookmarklet)
* update 2008.10.19: added onclick popup menu with 'move to top' and 'move to bottom' commands

***/
//{{{

if (Story.prototype.rearrangeTiddlersHijack_refreshTiddler===undefined) {
Story.prototype.rearrangeTiddlersHijack_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template)
{
	this.rearrangeTiddlersHijack_refreshTiddler.apply(this,arguments);
	var theTiddler = document.getElementById(this.idPrefix + title); if (!theTiddler) return;
	var theHandle;
	var children=theTiddler.getElementsByTagName("*");
	for (var i=0; i<children.length; i++) if (hasClass(children[i],"title")) { theHandle=children[i]; break; }
	if (!theHandle) return theTiddler;

	Drag.init(theHandle, theTiddler, 0, 0, null, null);
	theHandle.style.cursor="move";
	theHandle.title="drag title to re-arrange tiddlers, click for more options..."
	theTiddler.onDrag = function(x,y,myElem) {
		if (this.style.position!="relative")
			{ this.savedstyle=this.style.position; this.style.position="relative"; }
		y = myElem.offsetTop;
		var next = myElem.nextSibling;
		var prev = myElem.previousSibling;
		if (next && y + myElem.offsetHeight > next.offsetTop + next.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			next.parentNode.insertBefore(myElem, next.nextSibling);//elems[pos+1]);
			myElem.style["top"] = -next.offsetHeight/2+"px";
		}
		if (prev && y < prev.offsetTop + prev.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			prev.parentNode.insertBefore(myElem, prev);
			myElem.style["top"] = prev.offsetHeight/2+"px";
		}
	};
	theTiddler.onDragEnd = function(x,y,myElem) {
		myElem.style["top"] = "0px";
		if (this.savedstyle!=undefined)
			this.style.position=this.savedstyle;
	};
	theHandle.onclick=function(ev) {
		ev=ev||window.event;
		var p=Popup.create(this); if (!p) return;
		var b=createTiddlyButton(createTiddlyElement(p,"li"),
			"\u25B2 move to top of column ","move this tiddler to the top of the story column",
			function() {
				var t=story.getTiddler(this.getAttribute("tid"));
				t.parentNode.insertBefore(t,t.parentNode.firstChild); // move to top of column
				window.scrollTo(0,ensureVisible(t));
				return false;
			});
		b.setAttribute("tid",title);
		var b=createTiddlyButton(createTiddlyElement(p,"li"),
			"\u25BC move to bottom of column ","move this tiddler to the bottom of the story column",
			function() {
				var t=story.getTiddler(this.getAttribute("tid"));
				t.parentNode.insertBefore(t,null); // move to bottom of column
				window.scrollTo(0,ensureVisible(t));
				return false;
			});
		b.setAttribute("tid",title);
		Popup.show();
		ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); return(false);
	};
	return theTiddler;
}
}

/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Drag = {
	obj:null,

	init:
	function(o, oRoot, minX, maxX, minY, maxY) {
		o.onmousedown = Drag.start;
		o.root = oRoot && oRoot != null ? oRoot : o ;
		if (isNaN(parseInt(o.root.style.left))) o.root.style.left="0px";
		if (isNaN(parseInt(o.root.style.top))) o.root.style.top="0px";
		o.minX = typeof minX != 'undefined' ? minX : null;
		o.minY = typeof minY != 'undefined' ? minY : null;
		o.maxX = typeof maxX != 'undefined' ? maxX : null;
		o.maxY = typeof maxY != 'undefined' ? maxY : null;
		o.root.onDragStart = new Function();
		o.root.onDragEnd = new Function();
		o.root.onDrag = new Function();
	},

	start:
	function(e) {
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		o.root.onDragStart(x, y, Drag.obj.root);
		o.lastMouseX = e.clientX;
		o.lastMouseY = e.clientY;
		if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
		if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
		if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
		if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
		document.onmousemove = Drag.drag;
		document.onmouseup = Drag.end;
		Drag.obj.root.style["z-index"] = "10";
		return false;
	},

	drag:
	function(e) {
		e = Drag.fixE(e);
		var o = Drag.obj;
		var ey = e.clientY;
		var ex = e.clientX;
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		var nx, ny;
		if (o.minX != null) ex = Math.max(ex, o.minMouseX);
		if (o.maxX != null) ex = Math.min(ex, o.maxMouseX);
		if (o.minY != null) ey = Math.max(ey, o.minMouseY);
		if (o.maxY != null) ey = Math.min(ey, o.maxMouseY);
		nx = x + (ex - o.lastMouseX);
		ny = y + (ey - o.lastMouseY);
		Drag.obj.root.style["left"] = nx + "px";
		Drag.obj.root.style["top"] = ny + "px";
		Drag.obj.lastMouseX = ex;
		Drag.obj.lastMouseY = ey;
		Drag.obj.root.onDrag(nx, ny, Drag.obj.root);
		return false;
	},

	end:
	function() {
		document.onmousemove = null;
		document.onmouseup = null;
		Drag.obj.root.style["z-index"] = "0";
		Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style["left"]), parseInt(Drag.obj.root.style["top"]), Drag.obj.root);
		Drag.obj = null;
	},

	fixE:
	function(e) {
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
//}}}
[>img(auto,200px)[./images/kami23-kiss-the-cook-2598.png]]

Include introductory text here.


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients

!Preparation

!Notes

[>img(auto,200px)[https://lh3.googleusercontent.com/-QS57yfTS-VI/UGj4C973yWI/AAAAAAAAAZI/HIurq_LV7V8/s595/red_pepper_pesto.jpg]]


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 (12 ounce) jar roasted red peppers
3 tablespoons olive oil
1/2 teaspoon balsamic vinegar
3 tablespoons nutritional yeast flakes
3 garlic cloves
3 tablespoons almond meal
1/2 teaspoon salt
1/2 teaspoon pepper
1/2 cup fresh basil, chopped or 1 tablespoon dried
!Preparation
#Put your peppers in a food processor.
#Add the other ingredients (except basil) slowly, while running the machine.
#Put in bowl and stir in chopped basil.
!Notes
Source: http://www.vegweb.com/recipes/red-pepper-pesto
/***
|Name:|RenameTagsPlugin|
|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|3.0 ($Rev: 5501 $)|
|Date:|$Date: 2008-06-10 23:11:55 +1000 (Tue, 10 Jun 2008) $|
|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,clearChangeCount,created) {
			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,clearChangeCount,created);
		},

		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();

//}}}

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 6 to 8
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
[[pastry dough]]
pie weights or raw rice for weighting shell

1 small butternut squash (about 1 pound)
1 1/2 teaspoons olive oil plus about 2 teaspoons for brushing squash
1 small onion
1 1/2 tablespoons unsalted butter
1 whole large egg
1/2 large egg yolk (1/2 tablespoon)
1/3 cup heavy cream
3/4 cup grated Italian Fontina cheese (about 2 1/2 ounces)
1/3 cup freshly grated Parmesan (about 1 ounce)
1/4 cup crumbled mild soft goat cheese (about 1 ounce)
1 1/2 teaspoons minced fresh herbs such as rosemary, thyme, and marjoram leaves
1/2 teaspoon salt
freshly ground black pepper
1/3 cup fine fresh bread crumbs
!Preparation
On a lightly floured surface roll out dough into a 12-inch round (about 1/8 inch thick). Fit dough into an 11-inch tart pan with a removable fluted rim. Freeze shell 15 minutes. 

Preheat oven to 375°F. 

Line shell with foil and fill with pie weights or raw rice. Bake shell in middle of oven until edge is pale golden, about 20 minutes. Carefully remove foil and weights or rice and bake shell 10 minutes more, or until bottom is golden. Leave oven on. Cool shell in pan on a rack. 

Halve squash and scoop out seeds. Lightly brush each cut side with about 1 teaspoon oil and on a baking sheet roast squash, cut sides down, in middle of oven 40 minutes, or until soft. 

While squash is roasting, thinly slice onion and in a heavy skillet cook in 1/2 tablespoon butter and remaining 1 1/2 teaspoons oil over moderate heat, stirring occasionally, until soft and golden brown, about 20 minutes. 

Cool squash and scoop out flesh. In a food processor purée squash. Add whole egg, egg yolk, and cream and blend well. Transfer mixture to a large bowl and stir in cheeses, herbs, onion, salt, and pepper to taste. Pour filling into shell, smoothing top. 

In a small skillet melt remaining tablespoon butter and stir in bread crumbs until combined well. Sprinkle bread crumb mixture evenly over filling. Bake tart in middle of oven 40 minutes, or until filling is set. Cool tart in pan on rack 10 minutes and carefully remove rim.
!Notes
Gourmet
November 1998
http://www.epicurious.com/recipes/food/views/Roasted-Butternut-Squash-and-Caramelized-Onion-Tart-15748
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3/4 lb seedless piece butternut squash; peeled and cut into 
1 medium onion; unpeeled,cut into eighths 
1 large garlic clove; unpeeled 
1 tablespoon vegetable oil 
8 5- to 6-inch flour tortillas 
1 cup chopped red bell pepper (about 1 large) 
1 cup coarsely grated jack cheese 
1/2 stick (1/4 cup) unsalted butter; softened 
Accompaniment: chipotle lime sour cream dip 
For the dip: 
1 canned chipotle chili in adobo*; minced 
2 teaspoons fresh lime juice 
1 cup sour cream
!Preparation
To make the quesadillas:
Preheat oven to 400°F.

In a shallow baking pan arrange squash, onion, and garlic in one layer and drizzle with oil, tossing to coat. Roast mixture in middle of oven 15 minutes, or until garlic is tender and transfer garlic to a work surface. Roast squash and onion until tender, about 15 minutes more. Discard peels from squash, onion, and garlic.

In a food processor purée squash, onion and garlic with salt and pepper to taste until smooth. Squash purée may be made 2 days ahead and chilled, covered.

Spread about one fourth squash purée on each of 4 tortillas and sprinkle each with about one fourth bell pepper and about one fourth cheese. Top each quesadilla with a plain tortilla, pressing gently together. Spread each side of quesadillas with 1/2 tablespoon butter.

Heat a griddle or 7-inch non-stick skillet over moderately high heat until hot and cook quesadillas, 1 at a time, until golden, about 3 minutes on each side, transferring to a cutting board.

Cut each quesadilla into 6 to 8 wedges and serve warm with chipotle dip.

To make the dip:
In a small bowl stir chili and lime juice into sour cram until combined well. Dip may be made 2 days ahead and chilled, covered. Makes about 1 cup. 

Makes 24 to 32 hors d'oeuvres.
!Notes
Gourmet
October 1995
http://www.epicurious.com/recipes/food/views/Roasted-Squash-Red-Pepper-and-Jack-Cheese-Quesadillas-with-Chipotle-Lime-Sour-Cream-Dip-13075
[>img(auto,200px)[https://lh4.googleusercontent.com/-KHrBRHFk5yI/TiNf8uuaF6I/AAAAAAAAAC4/dK3_NyAFmzA/RoastedWinterVegetableBaklava.jpgg]]

Traditionally, baklava is a Middle Eastern dessert, but we fell head over heels for this savory rendition. Roasting coaxes out the earthy magic in hearty root vegetables and fennel, which are then tossed with fresh dill and baked in walnut-layered phyllo until it's golden brown.  //- Melissa Roberts//


''Servings:'' 6
''Active time:''
''Total prep time:'' 1:45

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/2 cup walnuts (2 ounces); toasted 
1/4 cup fine dry plain bread crumbs 
1 lb Yukon Gold potatoes 
2 medium fennel bulbs; trimmed,reserving fronds,bulbs halved and sli 
3/4 lb parsnips (3 medium); sliced diagonally 1/ 
1/2 lb carrots (3 medium); sliced diagonally 1/ 
1 large onion; halved and sliced 
3/4 cup olive oil; divided 
2/3 cup water 
1/3 cup chopped dill 
8 (17-by 12-inch) phyllo sheets; thawed if frozen
!Preparation
Preheat oven to 425°F with racks in upper and lower thirds. 

Pulse walnuts with bread crumbs in a food processor until nuts are finely chopped (not ground). 

Peel potatoes and slice 1/4 inch thick. Divide all vegetables between 2 large 4-sided sheet pans and toss each pan of vegetables with 3 tablespoons oil, 1/2 teaspoon salt, and 1/2 teaspoon pepper. 

Roast vegetables, stirring and switching position of pans halfway through, until softened and golden brown in spots, 35 to 40 minutes. Leave oven on with 1 rack in middle. 

Add 1/3 cup water to each pan of vegetables and stir and scrape up brown bits from bottom. Chop 1/4 cup fennel fronds. Combine all vegetables in 1 pan and toss with fennel fronds and dill. 

Brush baking dish with some of remaining olive oil. Cover stack of phyllo sheets with plastic wrap and a damp kitchen towel. Keeping remaining phyllo covered and working quickly, place 1 sheet on a work surface, then gently brush with some oil and sprinkle with 2 rounded tablespoon walnut mixture. Place another phyllo sheet on top and repeat brushing and sprinkling. Top with a third sheet and brush with oil. 

Drape phyllo stack into one half of baking dish, gently pressing it into bottom and up side and leaving an overhang. Make another stack with 3 more phyllo sheets, more oil, and remaining walnut mixture. Drape into other half of dish (phyllo will overlap in center of dish). 

Spoon vegetables into phyllo shell. Fold overhang toward center over filling (it will not cover vegetables) and brush edge with oil. Brush remaining 2 sheets of phyllo with remaining oil, tear in half, crumple, and arrange on top of filling. 

Bake in middle of oven until phyllo is deep golden brown, 20 to 25 minutes. Cool 5 minutes before serving.
!Notes
Gourmet
December 2008
http://www.epicurious.com/recipes/food/views/Roasted-Winter-Vegetable-Baklava-350885
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Serve with [[Potato Croquetas with Saffron Alioli]]


''Servings:'' 2/3 cup
''Active time:''
''Total prep time:'' 10 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
Pinch saffron threads; about 8 crumbled 
1/2 teaspoon hot water 
1/2 cup mayonnaise 
1 garlic clove; chopped 
1 teaspoon Dijon mustard 
1 tablespoon extra-virgin olive oil 
1 teaspoon fresh lemon juice 
1/4 teaspoon tomato paste 
1/8 teaspoon salt 
1/8 teaspoon black pepper
!Preparation
Put saffron threads in a small cup, then add hot water and let stand 5 minutes. 

Purée saffron mixture with remaining ingredients in a mini food processor or a blender until smooth.
!Notes

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 16-ounce can black beans, rinsed, drained
1 10-ounce package frozen corn, thawed, drained
1 7 1/2-ounce can hearts of palm, drained, cut into 1/4-inch-thick rounds
2 large tomatoes, seeded, diced
1/2 red onion, minced
1/2 cup chopped fresh cilantro
1/4 cup olive oil
3 tablespoons fresh lime juice
1 teaspoon ground coriander
!Preparation
Mix all ingredients in medium bowl. Season salad to taste with salt and pepper. (Salad can be prepared 1 day ahead. Cover and refrigerate.)
!Notes
Bon Appétit
August 1992

http://www.epicurious.com/recipes/food/views/Salad-of-Black-Beans-Hearts-of-Palm-and-Corn-1165
[>img(auto,200px)[https://lh5.googleusercontent.com/-Glw9AundNU8/Ti-OONbBGkI/AAAAAAAAADs/_AqguLBxWZs/salmorejo.jpg]]



''Servings:'' 8
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
Chopped hard-boiled egg
Serrano ham or prosciutto, thinly sliced
Salt
1/2 cup extra-virgin olive oil
1 teaspoon Sherry vinegar
4 smashed garlic cloves
1/4 cup toasted slivered almonds
3 toasted, chopped 4x4x1/2" slices white sandwich bread
3 pounds ripe halved tomatoes
!Preparation
Squeeze seeds and pulp from 3 pound ripe halved tomatoes into a strainer set over a large bowl. Press solids to release as much liquid as possible; discard solids. Core and chop tomatoes; add to bowl. 

Combine 3 toasted, chopped 4x4x1/2" slices white sandwich bread, 1/4 cup toasted slivered almonds, and 4 smashed garlic cloves in a blender. Pulse until chopped. Add tomatoes with liquid to blender in batches, puréeing until very smooth. Add 1 teaspoon Sherry vinegar. With blender running, gradually add 1/2 cup extra-virgin olive oil. Purée until emulsified and frothy, about 3 minutes. Season with salt and more vinegar, if desired. Chill until cold, about 2 hours. Season to taste again with salt and vinegar. 

Divide soup among small bowls or glasses. Garnish with thinly sliced Serrano ham or prosciutto and chopped hard-boiled egg. Drizzle with more oil.
!Notes
Bon Appétit
August 2011
by Ian Knauer
http://www.epicurious.com/recipes/food/views/Salmorejo-366737?mbid=epi_widget

/***
|Name:|SaveCloseTiddlerPlugin|
|Description:|Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler|
|Version:|3.0 ($Rev: 5502 $)|
|Date:|$Date: 2008-06-10 23:31:39 +1000 (Tue, 10 Jun 2008) $|
|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(ev,src,title) {
			var closeTitle = title;
			var newTitle = story.saveTiddler(title,ev.shiftKey);
			if (newTitle)
				closeTitle = newTitle;
			return config.commands.closeTiddler.handler(ev,src,closeTitle);
		}
	},

	cancelCloseTiddler: {
		text: 'cancel/close',
		tooltip: 'Undo changes to this tiddler and close it',
		handler: function(ev,src,title) {
			// the same as closeTiddler now actually
			return config.commands.closeTiddler.handler(ev,src,title);
		}
	}

});

//}}}

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

These thin cornmeal fritters go nicely with the flounder in jalapeño cream. They are made from the same type of batter as hush puppies, but not deep-fried. //- Gourmet//


''Servings:'' 18 fritters
''Active time:'' 25 min
''Total prep time:'' 25 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 large egg; lightly beaten 
1 cup whole milk 
1 1/3 cups yellow cornmeal (preferably stone-ground) 
1 teaspoon baking powder 
1/2 teaspoon salt 
2 tablespoons scallion greens; finely chopped 
1/2 cup vegetable oil
!Preparation
Put oven rack in middle position and preheat oven to 200°F.

Whisk together egg, milk, cornmeal, baking powder, salt, and scallions in a bowl until combined.

Heat 1/4 inch oil in a 10-inch heavy skillet over moderately high heat until hot but not smoking. Fill a 1/4-cup measure half full with batter and carefully spoon it into skillet, then form 4 more fritters in skillet and fry, turning over once, until golden, 3 to 4 minutes total. Transfer to paper towels to drain briefly, then keep warm in 1 layer in a shallow baking pan in oven. Make more fritters in same manner (do not crowd skillet).
!Notes
Gourmet
June 2005
http://www.epicurious.com/recipes/food/views/Scallion-Cornmeal-Fritters-232165
/***
|Name:|SelectThemePlugin|
|Description:|Lets you easily switch theme and palette|
|Version:|1.0.1 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SelectThemePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
* Borrows largely from ThemeSwitcherPlugin by Martin Budden http://www.martinswiki.com/#ThemeSwitcherPlugin
* Theme is cookie based. But set a default by setting config.options.txtTheme in MptwConfigPlugin (for example)
* Palette is not cookie based. It actually overwrites your ColorPalette tiddler when you select a palette, so beware. 
!Usage
* {{{<<selectTheme>>}}} makes a dropdown selector
* {{{<<selectPalette>>}}} makes a dropdown selector
* {{{<<applyTheme>>}}} applies the current tiddler as a theme
* {{{<<applyPalette>>}}} applies the current tiddler as a palette
* {{{<<applyTheme TiddlerName>>}}} applies TiddlerName as a theme
* {{{<<applyPalette TiddlerName>>}}} applies TiddlerName as a palette
***/
//{{{

config.macros.selectTheme = {
	label: {
      		selectTheme:"select theme",
      		selectPalette:"select palette"
	},
	prompt: {
		selectTheme:"Select the current theme",
		selectPalette:"Select the current palette"
	},
	tags: {
		selectTheme:'systemTheme',
		selectPalette:'systemPalette'
	}
};

config.macros.selectTheme.handler = function(place,macroName)
{
	var btn = createTiddlyButton(place,this.label[macroName],this.prompt[macroName],this.onClick);
	// want to handle palettes and themes with same code. use mode attribute to distinguish
	btn.setAttribute('mode',macroName);
};

config.macros.selectTheme.onClick = function(ev)
{
	var e = ev ? ev : window.event;
	var popup = Popup.create(this);
	var mode = this.getAttribute('mode');
	var tiddlers = store.getTaggedTiddlers(config.macros.selectTheme.tags[mode]);
	// for default
	if (mode == "selectPalette") {
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'),"(default)","default color palette",config.macros.selectTheme.onClickTheme);
		btn.setAttribute('theme',"(default)");
		btn.setAttribute('mode',mode);
	}
	for(var i=0; i<tiddlers.length; i++) {
		var t = tiddlers[i].title;
		var name = store.getTiddlerSlice(t,'Name');
		var desc = store.getTiddlerSlice(t,'Description');
		var btn = createTiddlyButton(createTiddlyElement(popup,'li'), name?name:t, desc?desc:config.macros.selectTheme.label['mode'], config.macros.selectTheme.onClickTheme);
		btn.setAttribute('theme',t);
		btn.setAttribute('mode',mode);
	}
	Popup.show();
	return stopEvent(e);
};

config.macros.selectTheme.onClickTheme = function(ev)
{
	var mode = this.getAttribute('mode');
	var theme = this.getAttribute('theme');
	if (mode == 'selectTheme')
		story.switchTheme(theme);
	else // selectPalette
		config.macros.selectTheme.updatePalette(theme);
	return false;
};

config.macros.selectTheme.updatePalette = function(title)
{
	if (title != "") {
		store.deleteTiddler("ColorPalette");
		if (title != "(default)")
			store.saveTiddler("ColorPalette","ColorPalette",store.getTiddlerText(title),
					config.options.txtUserName,undefined,"");
		refreshAll();
		if(config.options.chkAutoSave)
			saveChanges(true);
	}
};

config.macros.applyTheme = {
	label: "apply",
	prompt: "apply this theme or palette" // i'm lazy
};

config.macros.applyTheme.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	var useTiddler = params[0] ? params[0] : tiddler.title;
	var btn = createTiddlyButton(place,this.label,this.prompt,config.macros.selectTheme.onClickTheme);
	btn.setAttribute('theme',useTiddler);
	btn.setAttribute('mode',macroName=="applyTheme"?"selectTheme":"selectPalette"); // a bit untidy here
}

config.macros.selectPalette = config.macros.selectTheme;
config.macros.applyPalette = config.macros.applyTheme;

config.macros.refreshAll = { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
	createTiddlyButton(place,"refresh","refresh layout and styles",function() { refreshAll(); });
}};

//}}}

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


A favorite holiday treat. //- JKL//

''Servings:''4 cups
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 1/2 cups golden brown sugar; packed 
1/2 cup cream Sherry 
2 tablespoons light corn syrup 
1/4 teaspoon ground nutmeg 
1/4 teaspoon salt 
3 cups walnut halves; toasted
!Preparation
Line 2 cookie sheets with waxed paper. Combine first 5 ingredients in heavy large saucepan. Stir over medium heat until sugar dissolves. Cook without stirring until clip-on candy thermometer registers 240°F., about 10 minutes. Remove from heat. Add nuts and stir until syrup begins to look cloudy, about 2 minutes. Divide mixture between cookie sheets. Working quickly, separate nuts with fork. Cool. (Can be made 1 week ahead. Store airtight at room temperature.)
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Include introductory text here.


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
 1 cup flour
 1/2 cup Sugar
 1 tbsp Crisco; good heaping
 1/2 cup molasses
 1 teaspoon baking soda
 hot water 
!Preparation
Crumbs should feel sort of sandy and stick together

Set aside

In a 1 cup (or a bit larger) measuring cup, measure ½ cup molasses
Fill with hot water to make 1 cup liquid
Add a level teaspoon baking soda

Stir until it fizzles

Put some crumbs in the bottom of a 9” unbaked pie crust
Alternate between crumbs and molasses ending with a good thickness of crumbs.

Bake at 375 for 35 minutes.
!Notes
This recipe is from Dad’s mother - Mimi (Mildred) Lee

<<search>><<closeAll>><<permaview>><<newTiddler label:"new recipe" title:"New Recipe" text:{{store.getTiddlerText("Recipe Template")}}>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<tiddler TspotSidebar>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>

Jeff's Cookbook
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Include introductory text here.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 1/2 cups flaked smoked trout or smoked whitefish
2 tablespoons chopped green onion
2 teaspoons drained capers
1/2 teaspoon grated lemon peel
1/4 teaspoon ground pepper
1 large egg, beaten to blend
1/4 cup whipping cream
1 cup fresh breadcrumbs from French bread

2 tablespoons (about) vegetable oil
[[Horseradish Cream]]
!Preparation
Combine trout, green onion, capers, lemon peel and pepper in medium bowl. Season with salt. Stir in egg, cream and 1/2 cup breadcrumbs to blend. Form mixture by 1/4 cupfuls into eight 1/2-inch-thick fish cakes.

Place remaining 1/2 cup breadcrumbs in shallow dish. Roll fish cakes in breadcrumbs, coating completely. Heat 2 tablespoons oil in large skillet over medium heat. Working in batches and adding more oil as necessary, cook fish cakes until golden brown, about 3 minutes per side. Serve with [[Horseradish Cream]].
!Notes
Bon Appétit
March 1998

http://www.epicurious.com/recipes/food/views/Smoked-Trout-Cakes-with-Horseradish-Cream-5143
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Delicious. //- JKL//


''Servings:'' 4
''Active time:''
''Total prep time:'' 40 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 tablespoons extra virgin olive oil 
1/2 Spanish onion; diced 
1 garlic clove; minced 
1 tablespoon smoked paprika 
2 cups eggplants (unpeeled; cubed and roasted) 
1 can chickpeas (15 ounces); drained and rinsed 
1 can tomatoes with juice (15 ounces); Italian,diced or chopped 
1 cup frozen spinach; thawed and chopped) 
1 cup manchego cheese; crumbled
!Preparation
#Prepare eggplant by preheating oven to 375ºF/175ºC.
#Dice unpeeled eggplant into 1 inch cubes. Combine with 2 tablespoons olive oil and salt and pepper to taste. Spread on a baking pan with the sides lined with foil or parchment paper. Bake for 30 minutes until golden brown and tender.
#Heat remaining oil in large nonstick sauté pan over medium heat. Add onion, garlic and smoked paprika. Sauté 1 minute to soften the onions.
#Add chickpeas, tomatoes and bring to a simmer; cook for 5 minutes.
#Add spinach, eggplant and cheese. Cook until heated through and cheese is melted.
!Notes

[>img(auto,200px)[https://lh3.googleusercontent.com/-K9p6wdMpqAE/TiNf84wkmcI/AAAAAAAAAC8/mBgSx62g__M/SouthwestCornbreadStuffing.jpg]]

For best results, make this stuffing with day-old [[Buttermilk Corn Bread]].


''Servings:'' 10 to 12 servings
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients

10 tablespoons unsalted butter 
1 1/4 cups fresh Anaheim chilies* (8 ounces); chopped seeded 
1 1/4 cups fresh poblano chilies * (8 ounces); chopped seeded 
3 large jalapeño chilies; seeded,chopped 
2 1-pound packages frozen petite yellow corn kernels; thawed 
1 1/4 cups chopped green onions 
2/3 cup chopped fresh cilantro 
Buttermilk Corn Bread; 1 day old 
4 large eggs 
1/4 cup sugar 
2 1/4 teaspoons salt 
1/2 teaspoon ground black pepper
!Preparation
Melt butter in heavy large skillet over medium-high heat. Add all chilies; sauté until beginning to soften, about 8 minutes. Stir in 1 package corn and green onions. Transfer to very large bowl. Mix in cilantro. Coarsely crumble corn bread into vegetable mixture; toss to blend.

Blend second package of corn, eggs, sugar, salt, and pepper in processor to coarse puree. Stir mixture into stuffing. 

To bake stuffing in turkey:
Loosely fill neck and main cavities of turkey with stuffing. Add enough broth to remaining stuffing to moisten slightly (1/4 to 3/4 cup, depending on amount of remaining stuffing). Generously butter baking dish. Spoon remaining stuffing into prepared dish. Cover with buttered foil, buttered side down. Bake stuffing in dish along side turkey until heated through, about 25 minutes. Uncover stuffing. Bake until top of stuffing is slightly crisp and golden, about 15 minutes longer.

To bake all of stuffing in baking dish:
Preheat oven to 350°F. Generously butter 13x9x2-inch glass baking dish, depending on recipe. Transfer stuffing to prepared dish. Cover with buttered foil, buttered side down. Bake until heated through, about 40 minutes. Uncover and bake until top is slightly crisp and golden, about 20 minutes longer.
!Notes
Bon Appetit
November 2001
http://www.epicurious.com/recipes/food/views/Southwest-Corn-Bread-Stuffing-with-Corn-and-Green-Chilies-105807
[>img(auto,200px)[https://lh4.googleusercontent.com/-wnuXODvKNNY/TiNf9LkUv9I/AAAAAAAAADE/Hkn9eFpg2kU/sw_corn_potato_soup.jpg]]

Enriched with coarsely mashed potatoes, this lively soup makes for an easy supper. Serve the Accompaniments in separate bowls for an interactive touch


''Servings:'' 6 main-course servings
''Active time:'' 20 minutes
''Total prep time:'' 35 minutes

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 tablespoons olive oil 
1 large onion; chopped 
1 fresh jalapeño; seeded and finely ch 
1/2 teaspoon salt 
1/4 teaspoon black pepper 
1 1/2 lbs large yellow-fleshed potatoes such as Yukon Gold ( 
3 1/4 cups reduced-sodium chicken broth (26 fl oz) 
1 cup water 
1 (10-oz) package frozen corn (not thawed) 
3 tablespoons fresh lime juice 
1/4 cup fresh cilantro; finely chopped

Accompaniments: 1/2-inch cubes of California avocado; chopped fresh cilantro; tortilla chips; lime wedges
!Preparation
Heat oil in a 5- to 6-quart heavy pot over moderate heat until hot but not smoking, then cook onion, jalapeño, salt, and pepper, stirring occasionally, until onion is pale golden, about 8 minutes.

Meanwhile, peel potatoes and cut into 1-inch pieces.

Add broth, water, and potatoes to onion mixture and cover pot, then bring to a boil over high heat.

Reduce heat and simmer, uncovered, stirring occasionally, until potatoes are very tender, 12 to 14 minutes.

Coarsely mash potatoes in pot with a potato masher. Stir in corn and simmer, uncovered, 3 minutes.

Stir in lime juice, cilantro, and salt to taste.


!Notes
Gourmet
April 2006
http://www.epicurious.com/recipes/food/views/Southwestern-Corn-and-Potato-Soup-234264
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Italian food with added veggie value.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 spaghetti squash (about 1 1/2 lb) 
Vegetable-oil cooking spray 
2 cloves garlic; peeled and minced 
1 small onion; finely chopped 
2 tsp olive oil 
1 can (28 oz) diced plum tomatoes 
3 tbsp tomato paste 
1 tsp white wine vinegar 
1 tsp dried oregano 
1 tsp dried basil 
1/2 tsp red pepper flakes 
fresh basil
!Preparation

Preheat oven to 375°F. Halve squash lengthwise and scoop out seeds. Coat a baking sheet with cooking spray; lay halves, flesh side down, on sheet. Bake 35 minutes or until you can easily pierce shell. While squash bakes, sauté garlic and onion in oil over medium heat 5 minutes. Add remaining ingredients except fresh basil and cook, stirring occasionally, for 30 minutes. Lower heat if sauce begins to boil. Remove squash from oven. Scrape crosswise to pull strands from shell. Place in nonmetal serving bowl. Pour sauce over squash and garnish with basil.
!Notes
Self
November 2002
http://www.epicurious.com/recipes/food/views/Spaghetti-Squash-with-Pomodoro-Sauce-230297
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 2
''Active time:''
''Total prep time:'' 10 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3 tablespoons extra virgin Spanish olive oil 
1/2 lb medium mushrooms; stemmed,quartered 
4 garlic cloves; peeled and thinly sl 
2 teaspoons fresh lemon juice 
2 tablespoons dry spanish sherry wine 
1/4 cup chicken broth or vegetable broth 
1/2 teaspoon spanish paprika 
1/4 teaspoon crushed red pepper flakes 
salt; to taste 
fresh ground black pepper; to taste 

''Garnish:''
1 tablespoon fresh Italian parsley ("flat leaf") 
2 lemon slices
!Preparation
#In a saute pan, heat the olive oil until hot but {NOT} smoking. Saute the garlic for about 1 minute, being careful not to burn!
#Add the mushrooms and cook 1 minute.
#Add the remaining ingredients except for the parsley and lemon slices and simmer for 2 minutes.
#Garnish with the fresh parsley and serve immediately. Serve with lemon slices.
#Heaven is these mushrooms scooped up with crusty bread! Trust me!
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Thanks to a few humble additions—sun-dried tomatoes, sweet smoked paprika, and leafy spinach—these saucy beans have real pizzazz. Best of all, the dish requires little more than a quick sauté and simmer.

''Servings:''  6
''Active time:'' 25 min
''Total prep time:'' 30 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 large onion, coarsely chopped (2 cups)
1/2 cup oil-packed sun-dried tomatoes, drained and chopped 
6 tablespoons extra-virgin olive oil, divided
4 garlic cloves, minced
1/2 teaspoon sweet smoked paprika (pimentón dulce)
2 (19-ounces cans) cannellini beans, rinsed and drained
1 cup water
2 (10-ounces) bags spinach, tough stems removed
!Preparation
Cook onion and sun-dried tomatoes in 1/4 cup oil with 1/2 teaspoon each of salt and pepper in a 5- to 6-qt pot over medium heat, stirring occasionally, until onion is browned, 6 to 8 minutes. Add garlic and paprika and cook, stirring, 1 minute. 

Stir in beans, water, spinach, and 1/2 teaspoon salt and cook, covered, stirring occasionally, until spinach is wilted, about 5 minutes. Season with pepper and drizzle with remaining 2 tablespoon oil.
!Notes
from //Gourmet//, November 2009
http://www.epicurious.com/recipes/food/views/Spanish-White-Beans-with-Spinach-356051
[>img(auto,200px)[https://lh6.googleusercontent.com/-GFmcszrVZPY/TiNf8z8fZeI/AAAAAAAAADA/8dI5SyKmZQQ/SpicedTapasAlmonds.jpg]]



''Servings:'' 6 
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 tablespoon coarse salt 
1/2 teaspoon paprika (Spanish smoked sweet or hot) 
1 lb almonds; blanched 
1-3 tablespoons olive oil
!Preparation
#Preheat oven to 400.
#Grind salt and paprika in a mortar and pestle or a coffee grinder till fine.
#Place almonds on cookie sheet and toast for 5-10 minutes.
#Pour into a glass bowl and toss in 1 tablespoon oil to coat using more if needed.
#Add seasonings stirring to coat.
#Serve at room temperature
!Notes
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Since this exotic dish has a very flavorful sauce, serve it with couscous or rice.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
4 skinless boneless chicken breast halves 
2 tablespoons olive oil 
1 3/4 cups onions; chopped 
2 large garlic cloves; chopped 
1 tablespoon all purpose flour 
1 teaspoon ground ginger 
1 teaspoon ground cinnamon 
1 teaspoon ground cumin 
2 cups canned low-salt chicken broth 
1 cup pitted prunes 
3 tablespoons fresh lemon juice 
2 tablespoons honey 
fresh cilantro; chopped
!Preparation
Sprinkle chicken with salt and pepper. Heat oil in heavy large skillet over medium-high heat. Add chicken; sauté until brown and just cooked through, about 4 minutes per side. Using tongs, transfer chicken to plate. Add onions and garlic to same skillet. Sauté until onions begin to soften, about 3 minutes. Mix in flour, ginger, cinnamon and cumin; stir 1 minute. Gradually whisk in broth. Add prunes, lemon juice and honey. Boil until sauce thickens enough to coat spoon, whisking occasionally, about 8 minutes. Return chicken to skillet. Simmer until heated through, about 2 minutes. Season with salt and pepper.

Transfer chicken and sauce to platter. Sprinkle with cilantro and serve.
!Notes
Bon Appetit
November 1997
http://www.epicurious.com/recipes/food/views/Spiced-Moroccan-Chicken-with-Onions-and-Prunes-4503
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

These crispy cakes are jazzed up with cayenne and lemon peel. Add purchased potato salad, sliced tomatoes, and a seeded baguette. A strawberry tart from the bakery would make a refreshing summer finish.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3/4 cup fresh breadcrumbs made from crustless French bread
1/3 cup mayonnaise
1/4 cup thinly sliced green onions
1 teaspoon grated lemon peel
1/4 teaspoon cayenne pepper
1 pound crabmeat, well drained

3 tablespoons olive oil

4 cups mixed baby greens
1/4 cup bottled citrus vinaigrette
Lemon wedges
!Preparation
Line baking sheet with foil. Mix first 5 ingredients in large bowl. Add crabmeat and stir gently to combine. Shape mixture into eight 1/2-inch-thick cakes. Transfer to prepared sheet. (Can be made 2 hours ahead. Cover and refrigerate.)

Heat oil in large nonstick skillet over medium heat. Working in batches, cook crab cakes until bottoms are brown, about 4 minutes. Using spatula, carefully turn cakes over and cook until second sides are brown, about 4 minutes longer.

Divide greens among 4 plates. Drizzle with vinaigrette. Top with crab cakes. Garnish with lemon wedges and serve.
!Notes
Bon Appetit
June 2002

http://www.epicurious.com/recipes/food/views/Spicy-Lemon-Crab-Cakes-on-Mixed-Greens-106613
[>img(auto,200px)[https://lh5.googleusercontent.com/-d0_PxWQJCAk/TiNf4opzJZI/AAAAAAAAABM/f3-aX5k1V9A/359319.jpg]]

Layers of homemade mixed herb pesto lend a fresh brightness to this vegetarian main.


''Servings:'' 8 
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''Sauce''
2 tablespoons (1/4 stick) unsalted butter
1/4 cup all purpose flour
2 1/2 cups reduced-fat (2%) milk
1/2 cup dry white wine
1 cup freshly grated Parmesan cheese
1/2 teaspoon salt

''Spinach''
2 tablespoons olive oil
1/2 cup finely chopped shallots
4 large garlic cloves, finely chopped
3 6-ounce packages baby spinach

''Lasagna''
15 no-boil 7 x 3 1/2-inch lasagna noodles (from two 9-ounce packages)
3 1/2 cups fresh ricotta cheese* (28 ounces)
1 cup freshly grated Parmesan cheese
1/2 teaspoon finely grated lemon peel
1 large egg
2 cups coarsely grated Italian Fontina cheese (8 to 9 ounces), divided

[[Herb Pesto]]
!Preparation
''For sauce: ''
Melt butter in heavy large saucepan over medium heat. Add flour and whisk 1 minute (do not brown). Add milk and wine and whisk until smooth. Cook until sauce thickens and comes to boil, whisking constantly, 4 to 5 minutes. Remove from heat. Whisk in Parmesan cheese and salt. Season sauce to taste with pepper. DO AHEAD: Sauce can be made up to 1 day ahead. Cover and chill. 

''For spinach:'' 
Heat oil in large pot over medium-high heat. Add shallots and garlic. Sauté until shallots soften, about 2 minutes. Add all spinach (pot will be full). Cook spinach until wilted but still bright green, tossing often, about 3 minutes. Using tongs, transfer spinach to large sieve set over bowl; reserve pot. Press out excess liquid from spinach. Drain 10 to 15 minutes longer. 

Return drained liquid from spinach to reserved pot. Boil until liquid is reduced to glaze. Return spinach to pot and toss 1 minute. Remove spinach from heat. Mix in 1 1/2 cups sauce. Season spinach to taste with pepper. 

''For lasagna: ''
Place noodles in large bowl. Fill bowl with hot tap water. Soak noodles until pliable, stirring occasionally to separate, about 15 minutes. Place large sheet of parchment paper on work surface. Transfer noodles to parchment in single layer, shaking off excess water. 

Preheat oven to 350°F. Butter 13 x 9 x 2- inch glass baking dish. Mix ricotta, Parmesan, and lemon peel in medium bowl. Season to taste with salt. Mix in egg. 

Spread 1/2 cup sauce thinly over bottom of prepared dish. Top with 3 noodles, arranged side by side and covering most of bottom of dish. Spread half of spinach mixture over (about 1 1/2 cups). Sprinkle with 1/3 cup Fontina. Top with 3 noodles and half of ricotta mixture (generous 1 3/4 cups). Drop half of pesto over by teaspoonfuls, spacing drops evenly apart. Continue layering with 3 noodles, remaining spinach mixture, 1/3 cup Fontina, 3 more noodles, remaining ricotta mixture, then remaining pesto. Top with last 3 noodles. Spread remaining sauce over; sprinkle with remaining Fontina. Cover dish with buttered foil. 

Bake lasagna until heated through and bubbling at edges, 50 to 55 minutes. Remove from oven. Remove foil from dish. 

Preheat broiler. Broil lasagna until top is browned in spots, turning dish occasionally for even browning, about 4 minutes. Let stand 15 minutes to set up.
!Notes
Bon Appetit, June 2010
http://www.epicurious.com/recipes/food/views/Spinach-Pesto-and-Fontina-Lasagna-359319
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

A pilaf enriched with butternut squash, red pepper, and toasted pumpkin seeds is wonderful with [[Spanish White Beans and Spinach]]. It would also be terrific with roast chicken.


''Servings:'' 6
''Active time:'' 20 min
''Total prep time:'' 50 min

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
3/4 pound butternut squash, peeled, seeded, and cut into 1-inch pieces (2 cups)
1 red bell pepper, cut into 1/2-inch pieces (1 cup)
1 1/2 cups coarsely chopped onion
1 Turkish or 1/2 California bay leaf
1/4 cup extra-virgin olive oil
1 cup long-grain white rice
2 cups water
1/4 cup raw green (hulled) pumpkin seeds (pepitas), toasted
!Preparation
Cook squash, bell pepper, onion, and bay leaf in oil with 1 teaspoon salt and 1/4 teaspoon pepper in a 12-inch heavy skillet over medium heat, stirring occasionally, until vegetables begin to brown, 8 to 10 minutes. 

Add rice and stir until well coated, then add water and bring to a vigorous boil. Reduce heat to low and cook, tightly covered with lid, until vegetables and rice are tender and liquid is absorbed, about 20 minutes. Remove from heat and let stand, covered, 10 minutes. Season with salt and pepper and sprinkle with seeds.
!Notes
from //Gourmet//, November 2009
http://www.epicurious.com/recipes/food/views/Squash-and-Red-Pepper-Pilaf-356033
.editor textarea { background:[[ColorPalette::PrimaryDark]];}
.editor input { background:[[ColorPalette::PrimaryDark]];}

.viewer img { padding: 0em 1em 5em 1em; }
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

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

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}


#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
[>img(auto,200px)[https://lh4.googleusercontent.com/-VuFOmLbJUSM/TiNf58SBBrI/AAAAAAAAACQ/UNFC7HX6LWM/cream_cheese_torta.jpg]]

You can make this up to three days ahead; be sure to start at least one day in advance.

A favorite holiday starter. //- JKL//


''Servings:'' 20 servings
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients

4 garlic cloves 
1 1/2 cups fresh basil leaves; packed 
1/4 cup pine nuts 
2 tbsp extra-virgin olive oil 
1 tsp fresh lemon juice 
2 3/4 cups cream cheese; room temperature 
1/4 cup freshly grated Parmesan cheese 
1 1/3 cups drained oil-packed sun-dried tomatoes 
1/3 cup tomato paste 
3/4 cup butter; room temperature 
Nonstick vegetable oil spray 
Fresh basil sprigs 
Toasted pine nuts 
Baguette slices; toasted
!Preparation
Finely chop garlic in processor. Add basil, 1/4 cup pine nuts, oil and lemon juice. Process until well blended. Add 1/3 cup cream cheese and 1/4 cup Parmesan cheese. Using on/off turns, process just until blended. Transfer pesto to medium bowl. 

Coarsely chop tomatoes in processor. Add tomato paste and process until mixture is almost smooth. Add 1/3 cup cream cheese and blend well. 

Using electric mixer, beat 2 cups cream cheese and butter in large bowl until fluffy. Season with salt and pepper. 

Spray 6-cup soufflé dish with nonstick spray. Line with plastic wrap, extending plastic over sides. Spread 3/4 cup cream cheese-butter mixture evenly over bottom of prepared dish. Top with half of tomato mixture, then 1/2 cup cream cheese-butter mixture, then half of pesto mixture. Repeat layering with 1/2 cup cream cheese-butter mixture, remaining tomato mixture, 1/2 cup cream cheese-butter mixture and remaining pesto. Top with remaining cream cheese-butter mixture. Cover and chill overnight. (Can be made 3 days ahead. Keep refrigerated.) 

Invert torta onto platter. Peel off plastic. Garnish with basil sprigs and toasted pine nuts. Serve with baguette slices.
!Notes
Bon Appetit
December 1999
http://www.epicurious.com/recipes/food/views/Sun-Dried-Tomato-and-Pesto-Torta-102634
<<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.3.1 ($Rev: 9828 $)|
|Date:|$Date: 2009-06-03 21:38:41 +1000 (Wed, 03 Jun 2009) $|
|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
***/
//{{{

merge(String.prototype,{

	parseTagExpr: function(debug) {

		if (this.trim() == "")
			return "(true)";

		var anyLogicOp = /(!|&&|\|\||\(|\))/g;
		var singleLogicOp = /^(!|&&|\|\||\(|\))$/;

		var spaced = this.
			// because square brackets in templates are no good
			// this means you can use [(With Spaces)] instead of [[With Spaces]]
			replace(/\[\(/g," [[").
			replace(/\)\]/g,"]] "). 
			// space things out so we can use readBracketedList. tricky eh?
			replace(anyLogicOp," $1 ");

		var expr = "";

		var tokens = spaced.readBracketedList(false); // false means don't uniq the list. nice one JR!

		for (var i=0;i<tokens.length;i++)
			if (tokens[i].match(singleLogicOp))
				expr += tokens[i];
			else
				expr += "tiddler.tags.contains('%0')".format([tokens[i].replace(/'/,"\\'")]); // fix single quote bug. still have round bracket bug i think

		if (debug)
			alert(expr);

		return '('+expr+')';
	}

});

merge(TiddlyWiki.prototype,{
	getTiddlersByTagExpr: function(tagExpr,sortField) {

		var result = [];

		var expr = tagExpr.parseTagExpr();

		store.forEachTiddler(function(title,tiddler) {
			if (eval(expr))
				result.push(tiddler);
		});

		if(!sortField)
			sortField = "title";

		result.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
		
		return result;
	}
});

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':",
			exprLabel:  "Matching tag expression '%0':",
			excerpts:   "excerpts",
			descr:      "descr",
			slices:     "slices",
			contents:   "contents",
			sliders:    "sliders",
			noexcerpts: "title only",
			noneFound:  "(none)"
		},

		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",
			descr:      "Click to show the description slice",
			slices:     "Click to show all slices",
			contents:   "Click to show entire tiddler contents",
			sliders:    "Click to show tiddler contents in sliders",
			noexcerpts: "Click to show entire title only"
		},

		tooDeepMessage: "* //sitemap too deep...//"
	},

	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","descr","slices","contents","sliders"]
		},
		valuePrefix: "taggly.",
		excludeTags: ["excludeLists","excludeTagging"],
		excerptSize: 50,
		excerptMarker: "/%"+"%/",
		siteMapDepthLimit: 25
	},

	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) {
		// create it silently if it doesn't exist
		if (!store.tiddlerExists(title)) {
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),"");

			// <<tagglyTagging expr:"...">> creates a tiddler to store its display settings
			// Make those tiddlers less noticeable by tagging as excludeSearch and excludeLists
			// Because we don't want to hide real tags, check that they aren't actually tags before doing so
			// Also tag them as tagglyExpression for manageability
			// (contributed by RA)
			if (!store.getTaggedTiddlers(title).length) {
				store.setTiddlerTag(title,true,"excludeSearch");
				store.setTiddlerTag(title,true,"excludeLists");
				store.setTiddlerTag(title,true,"tagglyExpression");
			}
		}

		// 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);
		// supposed to automagically don't let cols cycle up past the number of items
		// currently broken in some situations, eg when using an expression
		// lets fix it later when we rewrite for jquery
		// the columns thing should be jquery table manipulation probably
		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,isTagExpr) {
		switch(this.getTagglyOpt(title,"listMode")) {
			case "group":  return this.createTagglyListGrouped(place,title,isTagExpr); break;
			case "normal": return this.createTagglyListNormal(place,title,false,isTagExpr); break;
			case "commas": return this.createTagglyListNormal(place,title,true,isTagExpr); break;
			case "sitemap":return this.createTagglyListSiteMap(place,title,isTagExpr); break;
		}
	},

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

	getTiddlers: function(titleOrExpr,sortBy,isTagExpr) {
		return isTagExpr ? store.getTiddlersByTagExpr(titleOrExpr,sortBy) : store.getTaggedTiddlers(titleOrExpr,sortBy);
	},

	getExcerpt: function(inTiddlerTitle,title,indent) {
		if (!indent)
			indent = 1;

		var displayMode = this.getTagglyOpt(inTiddlerTitle,"excerpts");
		var t = store.getTiddler(title);

		if (t && displayMode == "excerpts") {
			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 (t && displayMode == "contents") {
			return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
		}
		else if (t && displayMode == "sliders") {
			return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
		}
		else if (t && displayMode == "descr") {
			var descr = store.getTiddlerSlice(title,'Description');
			return descr ? " {{excerpt{" + descr  + "}}}" : "";
		}
		else if (t && displayMode == "slices") {
			var result = "";
			var slices = store.calcAllSlices(title);
			for (var s in slices)
				result += "|%0|<nowiki>%1</nowiki>|\n".format([s,slices[s]]);
			return result ? "\n{{excerpt excerptIndent{\n" + result  + "}}}" : "";
		}
		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,isTagExpr) {

		var list = config.taggly.getTiddlers(title,this.getTagglyOpt(title,"sortBy"),isTagExpr);

		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,isTagExpr) {
		var sortBy = this.getTagglyOpt(title,"sortBy");
		var sortOrder = this.getTagglyOpt(title,"sortOrder");

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

		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,isTagExpr) {

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

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

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

		var childOutput = "";

		if (depth > this.config.siteMapDepthLimit)
			childOutput += indent + this.lingo.tooDeepMessage;
		else
			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,false);

		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,isTagExpr) {
		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"),isTagExpr);
		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 parsedParams = paramString.parseParams("tag",null,true);
				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);

				var tag = getParam(parsedParams,"tag");
				var expr = getParam(parsedParams,"expr");

				if (expr) {
					refreshContainer.setAttribute("isTagExpr","true");
					refreshContainer.setAttribute("title",expr);
					refreshContainer.setAttribute("showEmpty","true");
				}
				else {
					refreshContainer.setAttribute("isTagExpr","false");
					if (tag) {
        				refreshContainer.setAttribute("title",tag);
						refreshContainer.setAttribute("showEmpty","true");
					}
					else {
        				refreshContainer.setAttribute("title",tiddler.title);
						refreshContainer.setAttribute("showEmpty","false");
					}
				}
				this.refresh(refreshContainer);
			},

			refresh: function(place) {
				var title = place.getAttribute("title");
				var isTagExpr = place.getAttribute("isTagExpr") == "true";
				var showEmpty = place.getAttribute("showEmpty") == "true";
				removeChildren(place);
				addClass(place,"tagglyTagging");
				var countFound = config.taggly.getTiddlers(title,'title',isTagExpr).length
				if (countFound > 0 || showEmpty) {
					var lingo = config.taggly.lingo;
					config.taggly.createListControl(place,title,"hideState");
					if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
						createTiddlyElement(place,"span",null,"tagglyLabel",
								isTagExpr ? lingo.labels.exprLabel.format([title]) : 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,isTagExpr);
						if (countFound == 0 && showEmpty)
							createTiddlyElement(place,"div",null,"tagglyNoneFound",lingo.labels.noneFound);
					}
				}
			}
		}
	},

	// 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]]; }",
".excerptIndent { margin-left:4em; }",
"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; }",
".tagglyNoneFound { margin-left:2em; color:[[ColorPalette::TertiaryMid]]; font-size:90%; font-style:italic; }",
"/*}}}*/",
		""].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
// added + syntax to start open instead of closed

***/
//{{{
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[2] + " "+"\u00BB",lookaheadMatch[2],this.onClickSlider,"button sliderButton");
			var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
			panel.style.display = (lookaheadMatch[1] == '+' ? "block" : "none");
			wikify(lookaheadMatch[3],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;
	}
});

//}}}


[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]



''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''For sauce:''
3 cups orange juice 
1 carrot; chopped 
2 tablespoons chopped fresh cilantro 
2 tablespoons grated peeled fresh ginger 
2 large garlic cloves; sliced 
1 jalapeño chili; seeded,minced 
1 tablespoon ground cumin 
1 tablespoon Thai red curry paste 

''For pork:''
1/2 cup molasses 
1/2 cup reduced-sodium soy sauce 
1/4 cup Thai red curry base 
1 tablespoon grated peeled fresh ginger 
1 1/2 pounds pork tenderloin; trimmed 
1 tablespoon vegetable oil 
6 tablespoons (3/4 stick) chilled butter; cut into pieces
!Preparation
''Make sauce:''
Combine orange juice, carrot, cilantro, grated fresh ginger, garlic, minced jalapeño, ground cumin and Thai red curry base in heavy medium saucepan over medium-high heat. Boil mixture until carrot is very tender and liquid is reduced by half, stirring occasionally, about 12 minutes. Puree sauce in blender or processor in batches until smooth. Strain sauce and return to same saucepan. (Can be prepared 1 day ahead. Cover and refrigerate.)

''Make pork:''
Stir molasses, soy sauce, curry base and ginger in large glass baking dish. Add pork tenderloin and turn to coat. Cover and refrigerate at least 1 hour and up to 4 hours.

Preheat oven to 350°F. Remove pork from marinade; discard marinade. Heat oil in heavy large ovenproof skillet over medium-high heat. Add pork and cook until golden brown, about 3 minutes per side. Transfer skillet to oven and cook pork until thermometer inserted into thickest part registers 160°F, about 25 minutes. Transfer pork to platter. Tent with foil to keep warm.

Bring sauce to simmer. Remove from heat. Gradually add 6 tablespoons butter, whisking just until melted. Season to taste with salt and pepper.

Cut pork into 1-inch-thick slices. Serve with sauce.
!Notes
Bon Appétit
April 1996 
Goodfellow's, Minneapolis MN
http://www.epicurious.com/recipes/food/views/Thai-Spiced-Pork-Tenderloin-with-Orange-Curry-Sauce-1671
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

These truly chewy chocolate chip cookies are delicious served warm from the oven or cooled. To ensure a chewy texture, leave the cookies on the cookie sheet to cool. You can substitute white, milk chocolate, or peanut butter chips for the semi- or bittersweet chips called for in the recipe. In addition to chips, you can flavor the dough with one cup of nuts, raisins, or shredded coconut.


''Servings:'' Makes 1 1/2 dozen 3-inch cookies.
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 1/8	cups bleached all-purpose flour (about 10 1/2 ounces)
1/2	teaspoon table salt 
1/2	teaspoon baking soda 
12	tablespoons unsalted butter (1 1/2 sticks), melted and cooled slightly
1	cup brown sugar (light or dark), 7 ounces
1/2	cup granulated sugar (3 1/2 ounces)
1	large egg 
1	large egg yolk 
2	teaspoons vanilla extract 
1 - 2	cups chocolate chips or chunks (semi or bittersweet)
!Preparation
#Heat oven to 325 degrees. Adjust oven racks to upper- and lower-middle positions. Mix flour, salt, and baking soda together in medium bowl; set aside.
#Either by hand or with electric mixer, mix butter and sugars until thoroughly blended. Mix in egg, yolk, and vanilla. Add dry ingredients; mix until just combined. Stir in chips.
#Following illustrations below, form scant 1/4 cup dough into ball. Holding dough ball using fingertips of both hands, pull into two equal halves. Rotate halves ninety degrees and, with jagged surfaces exposed, join halves together at their base, again forming a single cookie, being careful not to smooth dough’s uneven surface. Place formed dough onto one of two parchment paper-lined 20-by-14-inch lipless cookie sheets, about nine dough balls per sheet. Smaller cookie sheets can be used, but fewer cookies can be baked at one time and baking time may need to be adjusted. (Dough can be refrigerated up to 2 days or frozen up to 1 month—shaped or not.)
#Bake, reversing cookie sheets’ positions halfway through baking, until cookies are light golden brown and outer edges start to harden yet centers are still soft and puffy, 15 to 18 minutes (start checking at 13 minutes). (Frozen dough requires an extra 1 to 2 minutes baking time.) Cool cookies on cookie sheets. Serve or store in airtight container.
!Notes
Cook's Illustrated, published January 1, 1996.  
http://www.cooksillustrated.com/recipes/detail.asp?docid=5769
[>img(auto,200px)[https://lh3.googleusercontent.com/-MLfhY-ysPKc/TiNf9NnvQNI/AAAAAAAAADM/dAcd2FUUOSY/ToastedAlmondTofuBurgers.jpgg]]



''Servings:'' 4 burgers
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 12-ounce package firm tofu, drained, patted dry, cut into 1-inch-thick slices

Nonstick vegetable oil spray
1/2 cup grated carrot
1/2 cup thinly sliced green onions
2 teaspoons minced peeled ginger
1 garlic clove, minced
1/2 cup almonds, toasted, finely chopped
1 large egg white, beaten to blend
4 teaspoons soy sauce
1 teaspoon oriental sesame oil
1 teaspoon sesame seeds, toasted

4 sesame seed buns, toasted
4 tomato slices
1 cup alfalfa sprouts
!Preparation
Wrap tofu in doubled dish towel. Place on work surface. Weigh down with a board topped with food cans or weights for 1 hour. Squeeze towel-wrapped tofu to extract as much liquid as possible from tofu. Transfer tofu to medium bowl. Using fork, mash into small pieces. 

Spray medium nonstick skillet with nonstick spray; place over medium heat. Add carrot, green onions, ginger and garlic; sauté until slightly softened, about 3 minutes. Cool. Mix carrot mixture, almonds, egg white, soy sauce, sesame oil and sesame seeds into tofu. Season with salt and pepper. Shape mixture into four 1/2-inch-thick patties. (Can be made 4 hours ahead. Cover and chill.) 

If grilling, spray grill rack with nonstick spray, then prepare barbecue (medium heat). If sautéing, spray large nonstick skillet with nonstick spray and heat over medium heat. Lightly spray patties on both sides with nonstick spray. Place patties on grill or in skillet and cook until golden brown and heated through, about three minutes per side. 

Place 1 burger on each bun bottom. Top each with 1 tomato slice, some sprouts and bun top and serve.
!Notes
Bon Appetit
July 1999
http://www.epicurious.com/recipes/food/views/TOASTED-ALMOND-TOFU-BURGERS-101831
/%
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|show/hide right sidebar (MainMenu)|

Usage: <<tiddler ToggleRightSidebar with: "label">>

Config settings:
	config.options.chkShowRightSidebar (true)
	config.options.txtToggleRightSideBarLabelShow (◄)
	config.options.txtToggleRightSideBarLabelHide (►)

%/<script label="$1" title="show/hide right sidebar content">
	var co=config.options;
	if (co.chkShowRightSidebar=='undefined') co.chkShowRightSidebar=true;
	co.chkShowRightSidebar=!co.chkShowRightSidebar;
	var sb=document.getElementById('sidebar'); if (!sb) return;
	sb.style.display=co.chkShowRightSidebar?'block':'none';
	document.getElementById('displayArea').style.marginRight=co.chkShowRightSidebar?'':'1em';
	saveOptionCookie('chkShowRightSidebar');
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (typeof(place)!='undefined' && '$1'=='$'+'1') {
		place.innerHTML=co.chkShowRightSidebar?labelHide:labelShow;
		place.title=(co.chkShowRightSidebar?'hide':'show')+' right sidebar';
	}
	var sm=document.getElementById('storyMenu'); if (sm) config.refreshers.content(sm);
</script><script>
	var co=config.options;
	if (co.chkShowRightSidebar=='undefined') co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar'); if (!sb) return;
	sb.style.display=co.chkShowRightSidebar?'block':'none';
	document.getElementById('displayArea').style.marginRight=co.chkShowRightSidebar?'':'1em';
	if ('$1'=='$'+'1') {
		var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
		var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
		place.lastChild.innerHTML=co.chkShowRightSidebar?labelHide:labelShow;
		place.lastChild.title=(co.chkShowRightSidebar?'hide':'show')+' right sidebar';
	}
</script>
/***
|Name:|ToggleTagPlugin|
|Description:|Makes a checkbox which toggles a tag in a tiddler|
|Version:|3.1.0 ($Rev: 4907 $)|
|Date:|$Date: 2008-05-13 03:15:46 +1000 (Tue, 13 May 2008) $|
|Source:|http://mptw.tiddlyspot.com/#ToggleTagPlugin|
|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)
* TouchMod flag - if non empty then touch the tiddlers mod date. Note, can set config.toggleTagAlwaysTouchModDate to always touch mod date
!!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
* Should convert to use named params
***/
//{{{

if (config.toggleTagAlwaysTouchModDate == undefined) config.toggleTagAlwaysTouchModDate = false;

merge(config.macros,{

	toggleTag: {

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

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			var tiddlerTitle = tiddler ? tiddler.title : '';
			var tag   = (params[0] && params[0] != '.') ? params[0] : "checked";
			var title = (params[1] && params[1] != '.') ? params[1] : tiddlerTitle;
			var defaultLabel = (title == tiddlerTitle ? this.shortLabel : this.longLabel);
			var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;
			var touchMod = (params[3] && params[3] != '.') ? params[3] : "";
			label = (label == '-' ? '' : label); // dash means no label
			var theTiddler = (title == tiddlerTitle ? 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;
				}
				if ((touchMod != "" || config.toggleTagAlwaysTouchModDate) && theTiddler)
						theTiddler.modified = new Date();
				store.setTiddlerTag(title,this.checked,tag);
				return true;
			});
		}
	}
});

//}}}

[>img(auto,200px)[https://lh4.googleusercontent.com/-O7KzMl_IqSg/UGj1GlLtU0I/AAAAAAAAAY4/5IpeQBSskTU/s595/tortilla_black_bean_casserole.jpg]]



''Servings:'' 8
''Active time:'' 15 minutes
''Total prep time:'' 45 minutes

!Ingredients
2 cups onion, chopped
1 1/3 cups green pepper, chopped
1 14 ounce) can stewed tomatoes
3/4 cup salsa
1/2 tablespoon garlic
2 tablespoons cumin
2 (15 ounce) cans black beans, drained
8 corn tortillas, divided
1 1/2 cups shredded vegan cheese, divided
!Preparation
#Preheat oven to 350 degrees F. In a large skillet over medium heat, combine first 6 ingredients (through cumin), bringing the mixture to a boil. Reduce heat and simmer uncovered for 5 minutes.
#Stir in beans. Spread 1/3 of the bean mixture over the bottom of a 13x9" pan. Top that with 1/2 the tortillas, overlapping as necessary and 1/2 the cheese.
#Add another 1/3 of the bean mixture, then remaining tortillas and bean mixture. Cover and bake for 30 minutes or until heated through.
#Sprinkle with remaining cheese and let stand for 10 minutes. Garnish with shredded lettuce and chopped tomatoes.

For more of a Mexican flair, add slices of avocado on top or your favorite guacamole. This is wonderful if you're in a south-of-the-border mood. Add a little Spanish rice and a glass of your favorite sangria for a complete and tasty meal.
!Notes
Source: http://www.vegweb.com/recipes/tortilla-black-bean-casserole

/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{

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

// 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)
window.showBackstage = true; // show backstage too

// 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(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}

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

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].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/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'WelcomeToTiddlyspot':[
 "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.org|http://tiddlywiki.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"),

'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")

});
//}}}
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Fish from the Mediterranean waters is put to a variety of uses in Tunisian cuisine, and a simple soup such as this one of the most common. It's flavored with an appealing blend of herbs, spices and citrus. //- Bon Appetit//


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
4 cups water 
1 lb potatoes; peeled,halved lengthwise,cut crosswise into 1 
2 medium tomatoes; peeled,quartered 
3 garlic cloves; chopped 
2 tbsp fresh mint; chopped 
1 1/2 tbsp fresh lemon juice 
1 tsp paprika 
1/2 tsp ground cumin 
1/4 tsp dried crushed red pepper 
1/3 cup cilantro or parsley; finely chopped (plus 
1 lb 1-inch-thick firm white fish fillets (such as cod; haddock or 
sea bass) 
3 tablespoons olive oil
!Preparation
Combine first 9 ingredients in large pot. Add 1/3 cup cilantro and bring to boil. Reduce heat, cover and simmer 20 minutes. Uncover and simmer 10 minutes. Add fish and olive oil and simmer until fish is cooked, about 10 minutes. Using back of spoon, break up fish into smaller pieces. Season soup to taste with salt and pepper. Ladle soup into bowls. Sprinkle with 1 tablespoon chopped cilantro and serve.
!Notes
Bon Appetit
May 1995
http://www.epicurious.com/recipes/food/views/Tunisian-Aromatic-Fish-Soup-with-Potatoes-321
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Although this recipe doesn't produce the familiar-looking red chili--it's more green than red--it does turn out a chili that has become one of our staff favorites. //- Gourmet//


''Servings:'' 6 
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 canned whole chipotle chilies in adobo* or 2 dried 
1 cup water; boiling hot if using 
2 pounds fresh tomatillos (available at Hispanic mar; drained 
2 large onions; chopped 
8 garlic cloves 
3 tablespoons vegetable oil 
2 tablespoons ground cumin 
4 pounds ground turkey 
2 cups chicken broth 
1 bay leaf 
1 1/2 teaspoons dried orégano; crumbled 
2 teaspoons salt; or to taste 
1 green bell pepper; chopped 
two 4-ounce cans mild green chilies; drained and chopped 
1 tablespoon cornmeal 
a 19-ounce can (about 2 cups) white beans; rinsed and drained 
1/2 cup chopped fresh coriander 
sour cream as an accompaniment if desired
!Preparation
If using the canned chipotle chilies, in a blender purée them with the water and reserve the purée. If using dried chipotle chilies, stem and seed them wearing rubber gloves, in a small bowl let them soak in the boiling-hot water for 20 minutes, and in a blender purée the mixture, reserving the purée.

In a large heavy kettle cook the onions and 5 of the garlic cloves, minced, in the oil over moderate heat, stirring, until the onions are softened, add the cumin, and cook the mixture, stirring, for 30 seconds. Add the turkey and cook the mixture, stirring and breaking up the lumps, until the turkey is no longer pink. Add the reserved chipotle purée, the reserved tomatillo purée, the broth, the bay leaf, the orégano, and the salt and simmer the mixture, uncovered, adding more water if necessary to keep the turkey barely covered, for 1 hour. Stir in the bell pepper, the canned green chilies, and the cornmeal and simmer the mixture, stirring occasionally, for 30 minutes. Stir in the white beans, the coriander, the remaining 2 garlic cloves, minced, and salt to taste, simmer the chili for 3 to 5 minutes, or until the beans are heated through, and discard the bay leaf. The chili may be frozen or made 3 days in advance, cooled, uncovered, and kept covered and chilled. Serve the chili with the sour cream.
!Notes
Gourmet
December 1992
http://www.epicurious.com/recipes/food/views/Turkey-Chipotle-Chili-11339
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 30/09/2012 21:40:23 | JeffLee | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . |
| 30/09/2012 21:40:30 | JeffLee | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . | ok | ok |
| 30/09/2012 21:46:25 | JeffLee | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . | ok |
| 30/09/2012 21:52:05 | JeffLee | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . | ok |
| 30/09/2012 21:56:24 | JeffLee | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . |
| 21/11/2012 13:47:50 | YourName | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . |
| 02/03/2013 16:21:04 | jeffklee | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . |
| 21/04/2013 15:52:21 | YourName | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . |
| 21/04/2013 15:52:23 | YourName | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . | ok | ok |
| 21/04/2013 16:02:50 | YourName | [[/|http://jeffscookbook.tiddlyspot.com/]] | [[store.cgi|http://jeffscookbook.tiddlyspot.com/store.cgi]] | . | [[index.html | http://jeffscookbook.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''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|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// 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
		if (!params) params = {};
		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}
				
			]);
	},
	options: [
		"txtUploadUserName",
		"pasUploadPassword",
		"txtUploadStoreUrl",
		"txtUploadDir",
		"txtUploadFilename",
		"txtUploadBackupDir",
		"chkUploadLog",
		"txtUploadLogMaxLine"		
	],
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opts.push();
			opt.option = "";
			n = this.options[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 = new 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,username,password,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 = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
		bidix.upload.httpUpload(rssUploadParams,rssString,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 == 404)
			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; ;charset=UTF-8; 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');


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


//}}}

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Everyone's favorite childhood dish gets a sophisticated twist with the addition of red bell peppers, celery and blue cheese. But never fear: The kid in you — and all the kids — will love it.  //- Bon Appetit//


''Servings:''12
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
2 tbsp butter 
3 large red bell peppers (about 1 1/2 pounds); cut into 1/2-inch pi 
5 celery stalks; chopped 
1 1/2 cups whipping cream 
1 1/2 cups half and half 
1 lb blue cheese; crumbled 
1 teaspoon celery seeds 
Cayenne pepper 
3 large egg yolks 
1/2 cup celery leaves; chopped 
1 lb penne 
3/4 cup penne; freshly grated
!Preparation
Melt butter in heavy large skillet over medium-high heat. Add bell peppers and celery and sauté until just beginning to soften, about 7 minutes. Remove from heat. Season with salt and pepper.

Combine cream, half and half and blue cheese in heavy medium saucepan. Stir over low heat until cheese melts. Remove from heat. Add celery seeds. Season sauce with cayenne, salt and pepper. Beat yolks in medium bowl to blend. Gradually whisk in half of cheese sauce. Return mixture to saucepan and whisk to blend. Add celery leaves.

Butter 13 3/4x10 1/2x2 3/4-inch (4-quart capacity) oval baking dish. Cook pasta in pot of boiling salted water until just tender but still firm to bite, stirring occasionally. Drain. Return to same pot. Add sauce and vegetables; stir to blend. Transfer to baking dish. (Can be made 1 day ahead. Cover; chill. Let stand at room temperature 1 hour before continuing.)

Preheat oven to 400°F. Sprinkle Parmesan over surface of pasta. Bake until pasta is heated through, sauce is bubbling and top is beginning to brown, about 25 minutes.
!Notes
Bon Appetit
December 1995
http://www.epicurious.com/recipes/food/views/Upscale-Macaroni-and-Cheese-975

[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Robyn Fuoco of Mainly Café and Bakery, Philadelphia, writes: "Although I don't have any formal culinary training, I've spent my entire career working as a chef. You could say the restaurant business just runs in the family. My grandfather had his own restaurant, my husband is a chef, and I'm co-owner of the Mainly Café and Bakery, where I also happen to be the pastry chef. After I've spent all day baking — and tasting — sweets, it's good to go home and make "real food" to eat. Because I'm busy, I like dinnertime to be organized. My secret is keeping the pantry well stocked with basics like olive oil, kosher salt, and a variety of pastas and beans."

''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1/4 cup olive oil
2 cups chopped onions
1 2/3 cups coarsely chopped red bell peppers (about 2 medium)
6 garlic cloves, chopped
2 tablespoons chili powder
2 teaspoons dried oregano
1 1/2 teaspoons ground cumin
1/2 teaspoon cayenne pepper
3 15- to 16-ounce cans black beans, drained, 1/2 cup liquid reserved
1 16-ounce can tomato sauce

Chopped fresh cilantro
Sour cream
Grated MontereyJack cheese
Chopped green onions 
!Preparation
Heat oil in heavy large pot over medium-high heat. Add onions, bell peppers, and garlic; sauté until onions soften, about 10 minutes. Mix in chili powder, oregano, cumin, and cayenne; stir 2 minutes. Mix in beans, 1/2 cup reserved bean liquid, and tomato sauce. Bring chili to boil, stirring occasionally. Reduce heat to medium-low and simmer until flavors blend and chili thickens, stirring occasionally, about 15 minutes. Season to taste with salt and pepper.

Ladle chili into bowls. Pass chopped cilantro, sour cream, grated cheese, and green onions separately. 
!Notes
Bon Appétit
September 2004
Robyn Fuoco
Too Busy to Cook?
Mainly Café and Bakery, Philadelphia, PA

http://www.epicurious.com/recipes/food/views/Vegetarian-Black-Bean-Chili-230632
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
[>img(auto,200px)[.https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]


''Servings:''
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 cup (1/2 lb) Crisco
2 cups sugar
2 eggs
1/2 cup milk
1 tsp salt
1 tsp nutmeg
2 tsp baking powder
1/2 lb Currants or small Raisins
5 cups flour 
!Preparation
Cream together Crisco and sugar. Add the eggs and milk. Then incorporate the dry ingredients with the moist and lastly add the currants.
Roll out on a floured board – about ¼” thick and cut with a round cookie cutter.
Bake on a grill or frying pan on top of the stove till lightly brown, turn and bake on other side.
!Notes
Mom says, "This recipe has been handed down through Mom’s side of the family. The first copy I have is called “Minnie Bell’s Fried Cakes”. Minnie Bell was a cousin of Jean’s mother Mimi (Helen) Igler’s mother, Libby Stanlick’s side of the family."
[>img(auto,200px)[https://lh5.googleusercontent.com/-dL8sX9k6zIA/TiNf9vrfBNI/AAAAAAAAADU/5gHFp1-GtS0/YellowRicePepperSpicyBlackBeanSalad.jpg]]

This would be nice with warm tortillas.


''Servings:'' 4
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
4 teaspoons ground cumin
1/4 cup fresh lime juice
2 1/2 tablespoons vegetable oil

1/2 teaspoon turmeric
2 cups water
1 cup basmati rice
1 teaspoon salt
1/2 cup thinly sliced green onions

1 15- to 16-ounce can black beans, rinsed, drained
1/2 cup chopped roasted red peppers from jar
1/2 cup chopped green bell pepper
1/3 cup chopped fresh cilantro
1 1/2 teaspoons minced chipotle chilies
!Preparation
Stir 3 teaspoons cumin in small dry skillet over medium heat just until fragrant, about 1 minute. Remove from heat. Whisk lime juice and oil into skillet.

Stir turmeric and remaining cumin in heavy medium saucepan over medium heat until fragrant, about 1 minute. Add 2 cups water, rice and salt; bring to boil. Reduce heat to low and cover; simmer until water is absorbed, about 15 minutes. Cool rice. Mix onions and half of dressing into rice. Season with salt and pepper.

Combine black beans, all peppers, cilantro, chipotle chilies, and remaining dressing in medium bowl. Toss to coat. Season with salt and pepper.

Mound bean mixture in center of platter. Surround with rice salad. 
!Notes
Per serving: calories, 284; total fat, 9 g; saturated fat, 1 g; cholesterol, 0

Bon Appétit
July 2001
Cooking for Health

http://www.epicurious.com/recipes/food/views/Yellow-Rice-Salad-with-Roasted-Peppers-and-Spicy-Black-Beans-105286
[>img(auto,200px)[https://lh3.googleusercontent.com/-nX6uMqTX8F4/TiNf93_oRpI/AAAAAAAAADY/X3-EZI61WBE/ZuchinniKofteWithBeetBulgurPilaf.jpg]]

For a substantial vegetarian spin on köfte(a kind of Middle Eastern meatball), we beefed up grated zucchini with fresh herbs and mashed chickpeas. The accompanying pilaf, which uses both beets and their greens, is brilliantly colored and gets a joyous crunch from slivered almonds.  //- Gourmet//


''Servings:'' 4
''Active time:'' 45 minutes
''Total prep time:'' 1 hour

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
''For köfte:''
1 lb zucchini (3 medium) 
2 garlic cloves 
1/2 cup packed flat-leaf parsley leaves 
1/2 cup packed cilantro sprigs 
1 cup rinsed and drained canned chickpeas 
3/4 teaspoon ground cumin 
1/2 teaspoon ground coriander 
1/2 cup plain fine dry bread crumbs 
About 4 cups vegetable oil for frying 

''For bulgar:''
1 medium onion; chopped 
2 garlic cloves; finely chopped 
2 tablespoons extra-virgin olive oil 
2 tablespoons unsalted butter 
2 1/4 cups bulgur 
1 lb medium beets with greens; beets peeled and dic,stems discarded,and greens coarsely 
4 cups water 
1/3 cup slivered almonds; toasted 

''For sauce:''
1 cup plain yogurt (preferably Greek) 
1 teaspoon minced garlic 
2 tablespoons chopped cilantro
!Preparation
''Make köfte:''
Coarsely grate zucchini in a food processor fitted with the medium shredding disk. Toss with 1 teaspoon salt in a colander. Let stand 10 minutes. 

Pulse garlic, parsley, and cilantro in food processor until finely chopped. 

Wrap zucchini in a kitchen towel (not terry cloth) and twist to wring out as much liquid as possible. 

''Mash chickpeas: ''
With a fork, then toss with zucchini, garlic mixture, spices, bread crumbs, and 1/4 teaspoon pepper in a large bowl. Roll 2-tablespoons portions into balls and chill köfte in a 4-sided sheet pan while making bulgur. 

''Make bulgur: ''
Cook onion and garlic in oil and butter in a deep 10-inch heavy skillet over medium heat, stirring occasionally, until golden brown, 5 to 7 minutes. Stir in bulgur, 1/2 teaspoon salt, and 1/8 teaspoon pepper and cook, stirring, until fragrant and a shade darker, about 4 minutes. 

Stir in beets (but not greens) and water and bring to a boil. Reduce heat to low and simmer, covered, until water is absorbed and beets are tender, about 20 minutes. Stir in greens and cook until just wilted, about 1 minute. Fluff bulgur with a fork, then sprinkle with almonds. 

''Fry köfte: ''
Heat 1 inch oil in a deep 12-inch heavy skillet over medium heat until it shimmers. Fry köfte in 2 batches, turning once, until golden brown, 2 to 3 minutes. Transfer to paper towels to drain. 

''Make sauce: ''
Stir together yogurt, garlic, cilantro, and 1/8 teaspoon salt. 

Serve warm köfte and bulgur with sauce.
!Notes
Gourmet
October 2008
http://www.epicurious.com/recipes/food/views/Zucchini-Kofte-with-Beet-Bulgur-Pilaf-350230
[>img(auto,200px)[https://lh5.googleusercontent.com/-x3COnL15a8g/TiNf7CBB5EI/AAAAAAAAACM/15MjAqg8BZc/kami23-kiss-the-cook-2598.png]]

Used for [[Roasted Butternut Squash and Caramelized Onion Tart]]


''Servings:'' 1 11-inch tart crust
''Active time:''
''Total prep time:''

[img[spot|./KrecipesPix/whitespot.png]]
!Ingredients
1 stick ( 1/2 cup) cold unsalted butter
1 1/4 cups all-purpose flour
1 teaspoon sugar
1/2 teaspoon salt 1/4 cup ice water
!Preparation
Cut butter into pieces. In a food processor blend flour, sugar, and salt until combined. Add butter and pulse until most of mixture resembles coarse meal with remainder in small (roughly pea-size) lumps. Add 2 tablespoons of water and pulse just until incorporated. Test mixture by gently squeezing a small handful: If it does not hold together, add enough remaining water, 1 tablespoon at a time, pulsing and testing, until mixture just forms a dough. Form dough into a disk. Chill dough, wrapped in plastic wrap, 30 minutes.
!Notes
Gourmet
November 1998
http://www.epicurious.com/recipes/food/views/Pastry-Dough-15749