Apple is loading ...

Requires Javascript.
相亲记 - 完美爱情使者
<!--{{{-->
<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>>
/***
|Name|CommentPlugin|
|Source|http://www.TiddlyTools.com/#CommentPlugin|
|Documentation|http://www.TiddlyTools.com/#CommentPluginInfo|
|Version|2.9.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|automatically insert formatted comments into tiddler content|
!!!!!Documentation
>see [[CommentPluginInfo]]
!!!!!Configuration
>see [[CommentPluginInfo]]
!!!!!Revisions
<<<
2009.04.10 [2.9.3] invoke autoSaveChanges() after adding a comment
| please see [[CommentPluginInfo]] for previous revision details |
2006.04.20 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.CommentPlugin= {major: 2, minor: 9, revision: 3, date: new Date(2009,4,10)};

config.macros.comment= {
	marker: '/%'+'comment'+'%/',
	fmt: "__''%subject%''__\n^^posted by %who% on %when%^^\n<<<\n%message%\n<<<\n",
	datefmt: 'DDD, MMM DDth, YYYY at hh12:0mm:0ss am',
	tags: '',
	reverse: false,
	handler: function(place,macroName,params,wikifier,paramstring,tiddler) {
		var span=createTiddlyElement(place,'span');
		var here=story.findContainingTiddler(place);
		if (here) var tid=here.getAttribute('tiddler');  // containing tiddler title
		span.setAttribute('here',tid);
		var target=(params[0]&&params[0].length&&params[0]!='here')?params[0]:tid;  // target title
		span.setAttribute('target',target);
		var overwrite=(params[1]&&params[1].toLowerCase()=='overwrite'); if (overwrite) params.shift();
		span.setAttribute('overwrite',overwrite?'true':'false');
		var reverse=(params[1]&&params[1].toLowerCase()=='reverse'); if (reverse) params.shift();
		span.setAttribute('reverse',(reverse||this.reverse)?'true':'false');
		var marker=this.marker;
		if (params[1]&&params[1].substr(0,7)=='marker:') {
			var marker='/%'+params[1].substr(7)+'%/';
			params.shift();
		}
		span.setAttribute('marker',marker);
		var tags=(params[1]&&params[1].length)?params[1]:this.tags; // target tags
		span.setAttribute('tags',tags);
		var fmt=(params[2]&&params[2].length)?params[2]:this.fmt; // output format
		span.setAttribute('fmt',fmt.unescapeLineBreaks());
		var datefmt=(params[3]&&params[3].length)?params[3]:this.datefmt; // date format
		span.setAttribute('datefmt',datefmt.unescapeLineBreaks());
		var html=this.html;
		html=html.replace(/%nosubject%/g,(fmt.indexOf('%subject%')==-1)?'none':'block');
		html=html.replace(/%nomessage%/g,(fmt.indexOf('%message%')==-1)?'none':'block');
		var subjtxt=''; var msgtxt='';
		html=html.replace(/%subjtxt%/g,subjtxt);
		html=html.replace(/%msgtxt%/g,msgtxt);
		span.innerHTML=html;
	},
	html: "<form style='display:inline;margin:0;padding:0;'>\
		<div style='display:%nosubject%'>\
		subject:<br>\
		<input type='text' name='subject' title='enter subject text' style='width:100%' value='%subjtxt%'>\
		</div>\
		<div style='display:%nomessage%'>\
		message:<br>\
		<textarea name='message' rows='7' title='enter message text' \
			style='width:100%'>%msgtxt%</textarea>\
		</div>\
		<center>\
		<i>Please enter your information and then press</i>\
		<input type='button' value='post' onclick='\
			var s=this.form.subject; var m=this.form.message;\
			if (\"%nosubject%\"!=\"none\" && !s.value.length)\
				{ alert(\"Please enter a subject\"); s.focus(); return false; }\
			if (\"%nomessage%\"!=\"none\" && !m.value.length)\
				{ alert(\"Please enter a message\"); m.focus(); return false; }\
			var here=this.form.parentNode.getAttribute(\"here\");\
			var reverse=this.form.parentNode.getAttribute(\"reverse\")==\"true\";\
			var target=this.form.parentNode.getAttribute(\"target\");\
			var marker=this.form.parentNode.getAttribute(\"marker\");\
			var tags=this.form.parentNode.getAttribute(\"tags\").readBracketedList();\
			var fmt=this.form.parentNode.getAttribute(\"fmt\");\
			var datefmt=this.form.parentNode.getAttribute(\"datefmt\");\
			var overwrite=this.form.parentNode.getAttribute(\"overwrite\")==\"true\";\
			config.macros.comment.addComment(here,reverse,target,tags,fmt,datefmt,\
				s.value,m.value,overwrite,marker);'>\
		</center>\
		</form>",
	addComment: function(here,reverse,target,newtags,fmt,datefmt,subject,message,overwrite,marker) {
		var UTC=new Date().convertToYYYYMMDDHHMMSSMMM();
		var rand=Math.random().toString();
		var who=config.options.txtUserName;
		var when=new Date().formatString(datefmt);
		target=target.replace(/%tiddler%/g,here);
		target=target.replace(/%UTC%/g,UTC);
		target=target.replace(/%random%/g,rand);
		target=target.replace(/%who%/g,who);
		target=target.replace(/%when%/g,when);
		target=target.replace(/%subject%/g,subject);
		var t=store.getTiddler(target);
		var text=t?t.text:'';
		var modifier=t?t.modifier:config.options.txtUserName;
		var modified=t?t.modified:new Date();
		var tags=t?t.tags:[];
		for(var i=0; i<newtags.length; i++) tags.pushUnique(newtags[i]);
		var fields=t?t.fields:{};
		var out=fmt;
		out=out.replace(/%tiddler%/g,here);
		out=out.replace(/%UTC%/g,UTC);
		out=out.replace(/%when%/g,when);
		out=out.replace(/%who%/g,who);
		out=out.replace(/%subject%/g,subject);
		out=out.replace(/%message%/g,message);
		var pos=text.indexOf(marker);
		if (pos==-1) pos=text.length; // no marker - insert at end
		else if (reverse) pos+=marker.length; // reverse order by inserting AFTER marker
		var newtxt=overwrite?out:(text.substr(0,pos)+out+text.substr(pos));
		store.saveTiddler(target,target,newtxt,modifier,modified,tags,fields);
		autoSaveChanges();
		if (document.getElementById(story.idPrefix+target))
			story.refreshTiddler(target,DEFAULT_VIEW_TEMPLATE,true);
		if (here!=target && document.getElementById(story.idPrefix+here))
			story.refreshTiddler(here,DEFAULT_VIEW_TEMPLATE,true);
	}
};
//}}}
[[《我的相亲记》]]
/***
|Name|DiscussionPlugin|
|Source|http://www.TiddlyTools.com/#DiscussionPlugin|
|Documentation|http://www.TiddlyTools.com/#DiscussionPluginInfo|
|Version|1.5.7|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|CommentPlugin|
|Description|display tabbed discussion summary with comment input form|
!!!!!Documentation
>see [[DiscussionPluginInfo]]
!!!!!Configuration
<<<
When installed, [[DiscussionPlugin]] can automatically modify the default shadow [[ViewTemplate]] so that all tiddlers will be rendered with two tabs: "Page", and "Discussion".  The "Page" tab displays the regular tiddler content, while the "Discussion" tab displays the summary list of comments as well as an input form to enter new comments.  You can enable/disable this action by setting/clearing the following checkbox:
><<option chkDiscussionTemplate>> Automatically modify default shadow [[ViewTemplate]]
Note: //''You must reload your document for changes to this option to take effect.''//  In addition, this option is only applied to the shadow [[ViewTemplate]].  If you are using a custom [[ViewTemplate]], you will need to manually alter that template to add the Page and Discussion tab display.

''Please see [[DiscussionPluginInfo]] for additional configuration options and instructions.''
<<<
!!!!!Revisions
<<<
2009.01.04 [1.5.7] in customized ViewTemplate, corrected 'tabs' macro to avoid error when viewing shadow tiddlers
| please see [[DiscussionPluginInfo]] for previous revision details |
2008.04.15 [1.0.0] initial prototype
<<<
!!!!!Code
***/
//{{{
version.extensions.DiscussionPlugin= {major: 1, minor: 5, revision: 7, date: new Date(2009,1,4)};

if (config.options.chkDiscussionTemplate===undefined)
	config.options.chkDiscussionTemplate=false;

config.macros.discussion= {
	reverse: // display order for summary list
		false,
	listfmt: // format for summary list items
		"#<<slider [[]] [[%tiddler%]] [[%subject%]] [[posted by %who% on %when%]]>>\n",
	tags: // tags for comment tiddlers
		"excludeLists",
	slices: // slice format included in comment tiddlers - used to create summary list display
		"/%\n|subject|%subject%|\n|byline|%who%|\n|date|%when%|\n%/",
	titlefmt: // format for dynamically generating comment tiddler title
		"_%UTC%%random%", // default: append UTC timestamp and random number
	commentfmt: // format for individual comment content
		"^^posted by %who% on %when%^^\n<<<\n%message%\n<<<\n",
	datefmt: // date format for comments
		"DDD, MMM DDth, YYYY at hh12:0mm:0ss am",
	handler: function(place,macroName,params,wikifier,paramstring,tiddler) {
		var here=story.findContainingTiddler(place);
		if (here) var tid=here.getAttribute("tiddler");  // containing tiddler title
		var listfmt=(params[0]&&params[0].length)?params[0]:this.listfmt;  // item format
		var reverse=(params[1]&&params[1].toLowerCase()=="reverse"); if (reverse) params.shift();
		var tags=params[1]?params[1]:this.tags;  // target tags
		if (!tags.readBracketedList().contains("comment")) tags+=" comment"; // must be tagged with "comment"
		var commentfmt=(params[2]&&params[2].length)?params[2]:this.commentfmt; // output format
		var datefmt=(params[3]&&params[3].length)?params[3]:this.datefmt; // date format
		var tids=store.getTaggedTiddlers("comment","created");
		if (reverse||this.reverse) tids=tids.reverse();
		var out=""; var count=0;
		for (var t=0; t<tids.length; t++) if (tids[t].title!=tid && tids[t].title.substr(0,tid.length)==tid) {
			count++;
			var title=tids[t].title;
			var subject=store.getTiddlerSlice(title,"subject");
			var byline=store.getTiddlerSlice(title,"byline");
			var when=store.getTiddlerSlice(title,"date");
			out+=listfmt;
			out=out.replace(/%tiddler%/g,title);
			out=out.replace(/%subject%/g,subject);
			out=out.replace(/%who%/g,byline);
			out=out.replace(/%when%/g,when);
		}
		out="!!!There "+(count==1?"is ":"are ")+count+" comment"+(count==1?"":"s")+":\n"+out;
		var next="%tiddler%"+this.titlefmt;
		out+="!!!Add a comment:\n";
		out+="<<comment "+next+" [["+tags+"]] [["+this.slices+commentfmt+"]] [["+datefmt+"]]>>";
		wikify(out,place);
	},
	countComments: function(tid,after) {
		var tids=store.getTaggedTiddlers("comment","created");
		var count=0;
		for (var t=0; t<tids.length; t++)
			if (tids[t].title!=tid && tids[t].title.substr(0,tid.length)==tid)
				if (!after||tid.modified>=after) count++;
		return count;
	}
};
//}}}

// // automatically add shadow tiddlers and templates for displaying page/discussion tabs
//{{{

// macro for rendering current tiddler content
config.macros.currentTiddler= {
	handler: function(place,macroName,params,wikifier,paramstring,tiddler) {
		var here=story.findContainingTiddler(place); if (!here) return;
		var txt=store.getTiddlerText(here.getAttribute("tiddler"),"");
		txt=txt.replace(/\<\<currentTiddler\>\>/g,""); // prevents infinite recursion!
		removeChildren(place); wikify(txt,createTiddlyElement(place,"div",null,"viewer"));
	}
};

// [[CurrentTiddler]] allows tab to show tiddler content
config.shadowTiddlers.CurrentTiddler="<<currentTiddler>>";

// [[DiscussionTiddler]] allows tab to show discussion panel
config.shadowTiddlers.DiscussionTiddler="<<discussion>>";

// [[NoDiscussionViewTemplate]] is an unmodified copy of the shadow [[ViewTemplate]]
config.shadowTiddlers.NoDiscussionViewTemplate=store.getTiddlerText("ViewTemplate");

// [[DiscussionViewTemplate]] is a copy of the current [[ViewTemplate]] where the 
// default viewer content ("view text wikified") is replaced with tabs for Page/Discussion
config.shadowTiddlers.DiscussionViewTemplate=store.getTiddlerText("ViewTemplate").replace(/view text wikified/,
	'tabs txtDiscussionTab Page Page CurrentTiddler {{var c=0; if(place) var h=story.findContainingTiddler(place); if(h) c=config.macros.discussion.countComments(h.getAttribute("tiddler")); "Discussion"+(c?" ("+c+")":"")}} Discussion DiscussionTiddler');

// optionally, automatically apply DiscussionViewTemplate to all tiddlers
if (config.options.chkDiscussionTemplate) config.shadowTiddlers.ViewTemplate="[[DiscussionViewTemplate]]";
//}}}
<!--{{{-->
<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>
<!--}}}-->
/***
|Name|FoldHeadingsPlugin|
|Source|http://www.TiddlyTools.com/#FoldHeadingsPlugin|
|Version|1.1.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|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.11.30 [1.1.2] corrected CSS 'text-weight' to 'font-weight'
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: 2, date: new Date(2009,11,30)};

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;font-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>>
使用此 TiddlyWiki 的空白模版之前,请先修改以下默认文章:
* SiteTitle 及 SiteSubtitle:网站的标题和副标题,显示于页面上方<br />(在保存变更后,将显示于浏览器视窗的标题列)。
* MainMenu:主菜单(通常在页面左侧)。
* DefaultTiddlers:包含一些文章的标题,可于进入TiddlyWiki 后开启。
请输入您的大名,作为所创建/ 编辑文章的署名:<<option txtUserName>>
/***
|Name|GridPlugin|
|Source|http://www.TiddlyTools.com/#GridPlugin|
|Documentation|http://www.TiddlyTools.com/#GridPluginInfo|
|Version|2.0.7|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Description|Display/edit slices, sections and fields in a grid (table) for a 'birds-eye' view of your document|
!!!!!Documentation
>see [[GridPluginInfo]]
!!!!!Revisions
<<<
2010.03.06 2.0.7 fixed setSection()
2009.09.26 2.0.6 fixed setSlice() for existing slices with empty values
|please see [[GridPluginInfo]] for additional revision details|
2007.01.30 0.0.1 started
<<<
!!!!!Code
***/
//{{{
version.extensions.GridPlugin= {major: 2, minor: 0, revision: 7, date: new Date(2010,3,6)};

config.macros.grid= {
	sizeSliceName: 'TiddlerSize', // fake slice to show # of bytes in tiddler 
	noColsMsg: '@@display:block;border:1px solid;there are no columns to display@@',
	showHeaders:'&#x25BA;&#x25BA;&#x25BA;',
	showHeadersTip:'show column headings',
	hideHeaders:'&#x25C4;&#x25C4;&#x25C4;',
	hideHeadersTip:'hide column headings',
	slicesRE: /(?:^\|\s*[\'\/]*~?(\w+)\:?[\'\/]*\s*\|\s*(.*?)\s*\|$)/gm,
	gridStyles: '.viewer .grid thead td, .grid thead td { background:transparent; }',
	init: function() { setStylesheet(this.gridStyles,'gridStyles'); },
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var edit=params.contains('edit') && !readOnly; // no editing if readOnly
		var wiki=params.contains('wikify');
		var inline=params.contains('inline');
		if (inline) var heads=true;
		var all=params.contains('all');
		params=paramString.parseParams('name',null,true,false,true); // for NAMED VALUES
		var filter=getParam(params,'filter',''); // core or MatchTagsPlugin tag filter syntax
		if (filter.length && !filter.startsWith('[tag[')) filter='[tag['+filter+']]';
		var tags=this.getList(getParam(params,'tags'),true); // older "match at least one tag" syntax
		if (tags.length) filter='[tag['+tags.join(']][tag[')+']]'+filter;
		var names=this.getList(getParam(params,'columns')); // slices/sections/fields to use as columns
		var clip=getParam(params,'clip',0); // 0=no clipping
		var width=getParam(params,'width','auto');
		var rc=this.getRowsAndCols(filter,names,all);
		if (!rc.cols.length) wikify(this.noColsMsg,place);
		else this.renderTable(place,rc.rows,rc.cols,inline,heads,wiki,edit,clip,width);
	},
	getList: function(t,gettags) {
		var items=(t||'').readBracketedList();
		for (var i=0;i<items.length;i++) { var item=items[i];
			// replace item with list based on item prefix:
			// +name  contents of tiddler (space-separated list)
			// @name  slices/tags,
			// @!name sections
			// @=name fields
			if ('@+'.indexOf(item.substr(0,1))!=-1) {
				var title=item.substr(1); var type=title.substr(0,1);
				if ('=!'.indexOf(type)!=-1) title=title.substr(1);
				if (title=='here')
					title=story.findContainingTiddler(place).getAttribute('tiddler');
				var tid=store.getTiddler(title); if (tid) {
					var list=[];
					if (item.substr(0,1)=='+') list=tid.text.readBracketedList();  // contents
					else if (gettags) list=tid.tags; // tags
					else if (type=='!') list=this.getSections(tid.title);  // sections
					else if (type=='=') list=this.getFields(tid.title); // fields
					else for (var s in this.getSlices(tid.title)) list.push(s);  // slices
					items.splice(i,1); // remove item
					for (var j=0;j<list.length;j++,i++) items.splice(i,0,list[j]); // add list
				}
			}
		}
		return items;
	},
	getRowsAndCols: function(filter,names,all) {
		var rows=[]; var cols=[]; // get rows (tiddlers) and columns (slices)
		var tiddlers=filter&&filter.length?store.filterTiddlers(filter):store.getTiddlers();
		for (i=0; i<tiddlers.length; i++) {
			var slices=this.getSlices(tiddlers[i].title);
			var include=false; for (var s in slices) { cols.pushUnique(s); include=true; }
			if (include||all) rows.push(tiddlers[i].title);
		}
		rows=rows.sort();
		// use specified list instead of collected slice names
		if (names.length) var cols=names;
		return {rows:rows,cols:cols};
	},
	renderTable: function(place,rows,cols,inline,heads,wiki,edit,clip,width) {
		var span=createTiddlyElement(place,'span')
		span.innerHTML=this.generateTable(rows,cols,inline,heads,wiki,edit,clip,width)
		// replace TD content with wikified elements
		var tds=span.getElementsByTagName('td');
		for (var t=0; t<tds.length; t++) {
			if (hasClass(tds[t],'wiki')) {
				var txt=getPlainText(tds[t]);
				if (hasClass(tds[t],'grid_heading')) txt='[['+txt+']]';
				removeChildren(tds[t]);
				wikify(txt,tds[t]);
			}
		}
	},
	generateTable: function(rows,cols,inline,heads,wiki,edit,clip,width) {
		var out= "<html><table class='sortable grid' style='border:0;padding:0;spacing:0;"
			+"border-collapse:collapse;width:"+width+"'>";

		// column headings
		out+=	 "<thead><tr style='border:0;vertical-align:bottom'>"
			+"<td style='text-align:right;border:0'>"
			+"<a href='javascript:;' style='font-size:80%;'"
			+"	title='"+(heads?this.hideHeadersTip:this.showHeadersTip)+"'"
			+"	onclick='return config.macros.grid.toggleHeaders("
			+"		this,event,"+(heads?"true":"false")+")'>"
			+(heads?this.hideHeaders:this.showHeaders)
			+"</a>"
			+"</td>";
		for (var i=0;i<cols.length;i++) {
			out+=	 "<td style='text-align:center;cursor:pointer;"
				+"	border:0;padding-left:2px;padding-right:2px;' "
				+"<span style='display:"+(heads?"block":"none")+"'>"
				+cols[i].replace(/^[=!]/,'')
				+"</span></td>";
		}
		out+="</tr></thead>";

		// row heading format ('fake' tiddler link)
		// %0=cell width, %1=tiddler name, %2='wiki' classname (optional), %3='inline' classname (optional)
		var head="<td style='text-align:right;border:0;padding-right:2px;white-space:nowrap;%0;'>"
			+"<a href='javascript:;' tid=\"%1\" class='grid_heading %2 %3' "
			+"onclick='story.displayTiddler("
			+"	this,this.getAttribute(\"tid\"));return false'>%1</a></td>";

		// row value format
		// %0=bgcolor, %1=cellwidth, %2=cell alignment, %3=tiddler name
		// %4=slice/section/field name, %5=tooltip, %6='wiki' classname (optional),
		// %7='inline' classname (optional), %8=cell content value
		var cell="<td style='background-color:%0;border:1px solid;%1;%2;' tid=\"%3\" ";
		if (edit) cell+="onclick='return config.macros.grid.editInPlace("
			+"this,event,this.getAttribute(\"tid\"),\"%4\");' ";
		cell+="title=\"%5\" class='grid_content %6 %7'>%8</td>";

		// generate rows
		for (var i=0;i<rows.length;i++) {
			var tiddlersrc=rows[i].replace(/"/g,"&#x22;");
			out+="<tr style='border:0;vertical-align:top'>";
			out+=head.format([inline?'width:1%':'',tiddlersrc,wiki?'wiki':'',inline?'inline':'']);
			for (var j=0;j<cols.length;j++) { var c=cols[j];
				var val=this.get(rows[i],c);
				var content="&nbsp;";
				if (val.length && inline) {
					content=val.htmlEncode();
					if (c=='=text'||clip) // truncate
						content=val.substr(0,clip||500)
							+(val.length>(clip||500)?"...":"");
					if (c=='=text') // format tiddler source
						content='<html><code style="line-height:100%">'
							+content.replace(/\n/g,'<br>')
							+'</code></html>';
				}
				var title=this.showName(tiddlersrc,c)+(!inline?'='+val:'');
				out+=cell.format([
					val.length&&!inline?'#999':'transparent', !inline?'width:1em;':'',
					inline&&!isNaN(parseFloat(val))?'text-align:right !important;':'',
					tiddlersrc, c, title, wiki?'wiki':'', inline?'inline':'', content]);
			}
			out+='</tr>';
		}
		out+="</table></html>";
		return out;
	},
	showName: function(tid,name) {
		if (name==this.sizeSliceName) var fmt='%0 - size (in bytes)'; // fake slice
		var fmt=(name.substr(0,1)=='=')?'%1@%0':(name.substr(0,1)=='!')?'%1##%0':'%0::%1';
		return fmt.format([tid,name.replace(/^[=!]/,'')]);
	},
	toggleHeaders: function(here,event,defOpen) {
		if (here.expanded==undefined) here.expanded=defOpen;
		var ex=here.expanded=!here.expanded; 
		here.innerHTML=ex?this.hideHeaders:this.showHeaders;
		here.title=ex?this.hideHeadersTip:this.showHeadersTip;
		var cells=here.parentNode.parentNode.getElementsByTagName('td');
		for (i=1; i<cells.length; i++) cells[i].firstChild.style.display=ex?'inline':'none';
		event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;
	},
	editInPlace: function(here,event,tid,name) {
		if (here.editing) return false; // already editing, don't re-init
		if (name==this.sizeSliceName) return false; // read-only fake slice
		var v=this.get(tid,name); // current value
		var lines=v.split('\n').length;
		var title=this.showName(tid,name);
		var style=lines>1?'font-size:90%;width:99%;':'font-size:100%;width:95%;line-height:100%;'
		var maxlines=Math.min(lines,config.options['txtMaxEditRows']); // for textarea
		var html=lines>1?'<textarea rows='+maxlines:'<input type="text"';
		html   +=' tid="'+tid.replace(/"/g,'&#x22;')+'"'
			+' name="'+name.replace(/"/g,'&#x22;')+'"'
			+' style="margin:0px;padding:1px 0px 1px 3px;border:0;'+style+'"'
			+' title="'+title+' (ENTER=submit, ESC=cancel)"'
			+' onblur="config.macros.grid.blur(this,event)"'
			+' onkeydown="config.macros.grid.keydown(this,event)"';
		html+=lines>1?'></textarea>':'>';
		here.editing=true;
		here.setAttribute('savedWidth',here.style.width);
		here.setAttribute('savedPadding',here.style.padding);
		here.setAttribute('savedColor',here.style.backgroundColor);
		if (!hasClass(here,'inline')) here.style.width='99%';
		here.style.padding='0px'; 
		here.style.backgroundColor='#fff';
		here.innerHTML=html;
		var ta=here.firstChild; ta.value=v; ta.focus(); ta.select();
		event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;
	},
	keydown: function(here,ev) { ev=ev||window.event;
		var tid=here.getAttribute('tid');
		var name=here.getAttribute('name');
		if (ev.keyCode==27) {
			var currval=this.get(tid,name);
			if (here.value==currval) { here.blur(); return false; }
			here.asking=true; // prevents blur handling during confirm()
			var discard=confirm('OK to discard changes to '+this.showName(tid,name)+'?');
			here.asking=false;
			if (discard) { here.value=currval; here.blur(); }
			return false;
		}
		else if (ev.keyCode==13 && !ev.ctrlKey) {
			this.set(tid,name,here.value);
			here.blur();
			return false;
		}
	},
	blur: function(here,ev) { ev=ev||window.event;
		if (here.asking) return false;
		var tid=here.getAttribute('tid');
		var name=here.getAttribute('name');
		var currval=this.get(tid,name);
		var msg=this.showName(tid,name)+' has changed... OK to save changes?';
		if (here.value!=currval && confirm(msg))
			{ this.set(tid,name,here.value); currval=this.get(tid,name); }
		var target=here.parentNode;
		target.editing=false;
		target.style.backgroundColor=target.getAttribute('savedColor');
		target.style.padding=target.getAttribute('savedPadding');
		target.style.width=target.getAttribute('savedWidth');
		if (name=='=text') currval='<html><code>'+currval.substr(0,500).replace(/\\n/g,'<br>')+'</code></html>';
		if (hasClass(target,'wiki')) { removeChildren(target); wikify(currval,target); }
		else target.innerHTML=hasClass(target,'inline')?currval:'&nbsp;';
	},
	get: function(tid,name) {
		if (name.substr(0,1)=='=') var v=store.getValue(tid,name.substr(1)); // field
		else if (name.substr(0,1)=='!') var v=store.getTiddlerText(tid+'##'+name.substr(1));  // section
		else if (name==this.sizeSliceName) var v=store.getTiddlerText(tid,'').length.toString();  // fake slice
		else var v=store.getTiddlerSlice(tid,name); // real slice
		return v||'';
	},
	set: function(tid,name,val) {
		if (val==this.get(tid,name)) return false; // unchanged... do nothing
		if (name.substr(0,1)=='=') // field
			{  name=name.substr(1); store.setValue(tid,name,val); }
		else if (name.substr(0,1)=='!') // section
			{  name=name.substr(1); this.setSection(tid,name,val); }
		else // slice
			{ this.setSlice(tid,name,val); }
		displayMessage(this.showName(tid,name)+' has been updated');
		return false;
	},
	setSection: function(tid,name,newval) {
		var t=store.getTiddler(tid); if (!t) { var t=new Tiddler(); t.text=''; }
		var oldval=this.get(tid,'!'+name).escapeRegExp();
		var pattern=new RegExp('(.*!{1,6}'+name+'\\n)'+oldval+'((?:\\n!{1,6}|$).*)');
		var newText=t.text.replace(pattern,'$1'+newval+'$2');
		var who=config.options.txtUserName; var when=new Date();
		if (config.options.chkForceMinorUpdate) { var who=t.modifier; var when=t.modified; }
		store.saveTiddler(tid,tid,newText,who,when,t.tags,t.fields);
		story.refreshTiddler(tid,null,true);
	},
	setSlice: function(tid,name,newval) {
		var t=store.getTiddler(tid); if (!t) { var t=new Tiddler(); t.text=''; }
		var oldval=this.get(tid,name)||'';
		var pattern="((?:^|\\n)\\|\\s*[\\'\\/]*~?(?:"
			+name.escapeRegExp()
			+")\\:?[\\'\\/]*\\s*\\|\\s*)(?:"
			+oldval.escapeRegExp()
			+")(\\s*\\|(?:\\n|$))";
		var match=t.text.match(new RegExp(pattern));
		if (match) {
			var pos=t.text.indexOf(match[0]);
			var newText=t.text.substr(0,pos)
				+match[1]+newval+match[2]
				+t.text.substr(pos+match[0].length);
		} else { // create new slice at start of tiddler or after last existing slice (if any)
			var match=t.text.match(this.slicesRE); if (match) var last=match[match.length-1];
			var pos=last?t.text.indexOf(last)+last.length+1:0; 
			var newText=t.text.substr(0,pos)+'|'+name+'|'+newval+'|\n'+t.text.substr(pos);
		}
		var who=config.options.txtUserName; var when=new Date();
		if (config.options.chkForceMinorUpdate) { var who=t.modifier; var when=t.modified; }
		store.saveTiddler(tid,tid,newText,who,when,t.tags,t.fields);
		story.refreshTiddler(tid,null,true);
	},
	getSlices: function(tid) {
		var slices = {};
		var text = store.getTiddlerText(tid,'');
		slices[this.sizeSliceName]=text.length.toString();  // fake slice
		this.slicesRE.lastIndex = 0;
		do {
			var m = this.slicesRE.exec(text);
			if (m) { if (m[1]) slices[m[1]] = m[2]; else slices[m[3]] = m[4]; }
		} while(m);
		return slices;
	},
	getSections: function(tid) {
		var s=[];
		var t=store.getTiddlerText(tid,'');
		var p=/(?:^|\n)!{1,6}([^\n]*)\n/gm;
		do { var m=p.exec(t); if (m) { s.push(m[1]); } } while(m);
		return s;
	},
	getFields: function(tid) {
		var t=store.getTiddler(tid); if (!t) return [];
		var fields=['=created','=modified','=modifier','=text','=tags'];
		for (var f in t.fields) fields.push('='+f);
		return fields;
	}
};
//}}}
/***
|Name|HTMLFormattingPlugin|
|Source|http://www.TiddlyTools.com/#HTMLFormattingPlugin|
|Documentation|http://www.TiddlyTools.com/#HTMLFormattingPluginInfo|
|Version|2.4.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|embed wiki syntax formatting inside of HTML content|
The ~HTMLFormatting plugin allows you to ''mix wiki-style formatting syntax within HTML formatted content'' by extending the action of the standard TiddlyWiki formatting handler.
!!!!!Documentation
>see [[HTMLFormattingPluginInfo]]
!!!!!Configuration
<<<
Use {{{<hide linebreaks>}}} within HTML content to wiki-style rendering of line breaks.  To //always// omit all line breaks from the rendered output, you can set this option:
><<option chkHTMLHideLinebreaks>> ignore all line breaks
which can also be 'hard coded' into your document by adding the following to a tiddler, tagged with <<tag systemConfig>>
>{{{config.options.chkHTMLHideLinebreaks=true;}}}
<<<
!!!!!Revisions
<<<
2010.05.07 2.4.1 added chkHTMLHideLinebreaks option
| see [[HTMLFormattingPluginInfo]] for additional revision details |
2005.06.26 1.0.0 Initial Release (as code adaptation - pre-dates TiddlyWiki plugin architecture!!)
<<<
!!!!!Code
***/
//{{{
version.extensions.HTMLFormattingPlugin= {major: 2, minor: 4, revision: 1, date: new Date(2010,5,7)};

// find the formatter for HTML and replace the handler
initHTMLFormatter();
function initHTMLFormatter()
{
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="html"; i++);
	if (i<config.formatters.length)	config.formatters[i].handler=function(w) {
		if (!this.lookaheadRegExp)  // fixup for TW2.0.x
			this.lookaheadRegExp = new RegExp(this.lookahead,"mg");
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var html=lookaheadMatch[1];
			// if <nowiki> is present, just let browser handle it!
			if (html.indexOf('<nowiki>')!=-1)
				createTiddlyElement(w.output,"span").innerHTML=html;
			else {
				// if <hide linebreaks> is present, or chkHTMLHideLinebreaks is set
				// suppress wiki-style literal handling of newlines
				if (config.options.chkHTMLHideLinebreaks||(html.indexOf('<hide linebreaks>')!=-1))
					html=html.replace(/\n/g,' ');
				// remove all \r's added by IE textarea and mask newlines and macro brackets
				html=html.replace(/\r/g,'').replace(/\n/g,'\\n').replace(/<</g,'%%(').replace(/>>/g,')%%');
				// create span, let browser parse HTML
				var e=createTiddlyElement(w.output,"span"); e.innerHTML=html;
				// then re-render text nodes as wiki-formatted content
				wikifyTextNodes(e,w);
			}
			w.nextMatch = this.lookaheadRegExp.lastIndex; // continue parsing
		}
	}
}

// wikify #text nodes that remain after HTML content is processed (pre-order recursion)
function wikifyTextNodes(theNode,w)
{
	function unmask(s) { return s.replace(/\%%\(/g,'<<').replace(/\)\%%/g,'>>').replace(/\\n/g,'\n'); }
	switch (theNode.nodeName.toLowerCase()) {
		case 'style': case 'option': case 'select':
			theNode.innerHTML=unmask(theNode.innerHTML);
			break;
		case 'textarea':
			theNode.value=unmask(theNode.value);
			break;
		case '#text':
			var txt=unmask(theNode.nodeValue);
			var newNode=createTiddlyElement(null,"span");
			theNode.parentNode.replaceChild(newNode,theNode);
			wikify(txt,newNode,highlightHack,w.tiddler);
			break;
		default:
			for (var i=0;i<theNode.childNodes.length;i++)
				wikifyTextNodes(theNode.childNodes.item(i),w); // recursion
			break;
	}
}
//}}}
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2009.04.11 [1.9.5] pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};

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

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

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

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
|[[岁月|http://s.click.taobao.com/t_1?i=qX906o3blNLP6g%3D%3D&p=mm_10954851_0_0&n=11]]|[[魅力|http://s.click.taobao.com/t_1?i=qz8ztU7rdDi%2FZw%3D%3D&p=mm_10954851_0_0&n=11]]|[[亲亲|http://s.click.taobao.com/t_1?i=qz8ztU7rdDi%2FZw%3D%3D&p=mm_10954851_0_0&n=11]]|
|[[瘦语|http://s.click.taobao.com/t_1?i=rWwJoOLE9ND95A%3D%3D&p=mm_10954851_0_0&n=11]]|[[胸语|http://s.click.taobao.com/t_1?i=qzq%2BeVb7l21yGA%3D%3D&p=mm_10954851_0_0&n=11]]|[[靓眼|http://s.click.taobao.com/t_1?i=qvVrbflJzCgaFw%3D%3D&p=mm_10954851_0_0&n=11]]|
!我的精神家园
分享爱
分享成长
分享对人生的思考

@@color(blue):《我的相亲记》@@
----
* [[第01次相亲]]
* [[第02次相亲]]
* [[第03次相亲]]
* [[第04次相亲]]
* [[第05次相亲]]
* [[第06次相亲]]
* [[第07次相亲]]
* [[第08次相亲]]
* [[第09次相亲]]
* [[第10次相亲]]
* [[第11次相亲]]
* [[第12次相亲]]
* [[第13次相亲]]
* [[第14次相亲]]
* [[第15次相亲]]
* [[第16次相亲]]
* [[第17次相亲]]
* [[第18次相亲]]
* [[第19次相亲]]
* [[第20次相亲]]
* [[第21次相亲]]
* [[第22次相亲]]
* [[第23次相亲]]
* [[第24次相亲]]
* [[第25次相亲]]
* [[第26次相亲]]
* [[第27次相亲]]
* [[第28次相亲]]
* [[第29次相亲]]
* [[第30次相亲]]
* [[第31次相亲]]
* [[第32次相亲]]
* [[第33次相亲]]
* [[第34次相亲]]
* [[第35次相亲]]
* [[第36次相亲]]
* [[第37次相亲]]
* [[第38次相亲]]
* [[第39次相亲]]
* [[第40次相亲]]
* [[第41次相亲]]

[[中文使用说明]]
版本:<<version>>

|[[鞋城|http://s.click.taobao.com/a/qXMXd9HbfYE=-10954851]]|[[百度|http://www.baidu.com]]|[[天涯|http://www.tianya.com]]|
|[[精品|http://s.click.taobao.com/a/qXMUJ4PUJoY=-10954851]]|[[搜狐|http://www.sohu.com]]|[[QQ|http://www.qq.com]]|
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->

<style type="text/css">#contentWrapper {display:none;}</style><div id="SplashScreen" style="border: 3px solid #ccc; display: block; text-align: center; width: 320px; margin: 100px auto; padding: 50px; color:#000; font-size: 28px; font-family:Tahoma; background-color:#eee;"><b>Apple</b> is loading<blink> ...</blink><br><br><span style="font-size: 14px; color:red;">Requires Javascript.</span></div>
/***
|''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"
	});
*/
//}}}
<<plugins>>
/***
|Name|PopupPreviewPlugin|
|Source|http://www.TiddlyTools.com/#PopupPreviewPlugin|
|Version|1.1.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|StickyPopupPlugin (optional, recommended)|
|Description|popup a formatted preview of a linked tiddler's content|
This plugin adds a custom 'shift-click' or mouseover handler to all tiddler links (or images with tiddler links) to display a popup with a fully-formatted preview of the linked tiddler's content.
!!!!!Usage
<<<
When you click the mouse on a preview-enhanced tiddler link while holding the SHIFT key, a popup will be displayed, containing the fully-formatted content of the linked tiddler, in a restricted size, scrolling area.  Note that, while you can //scroll// this preview display to //view// its contents, clicking anywhere (even within the preview popup) will automatically dismiss the popup display, making interaction with the preview content impossible.  To actually interact with the content of a tiddler, you should open it in the normal fashion (i.e, by clicking the tiddler link //without// holding the SHIFT key).
<<<
!!!!!Configuration
<<<
<<option chkPopupPreviews>> enable popup previews (shift-click)
{{{usage: <<option chkPopupPreviews>>}}}
<<option chkPopupPreviewMouseover>> show previews on mouseover (no click needed)
{{{usage: <<option chkPopupPreviewMouseover>>}}}
width of popup: <<option txtPopupPreviewWidth>> height of popup: <<option txtPopupPreviewHeight>>
//(width and height may be specified using any valid CSS units, e.g., "px", "em", "in", "cm", "%")//
{{{usage: <<option txtPopupPreviewWidth>> <<option txtPopupPreviewHeight>>}}}
<<<
!!!!!Revisions
<<<
2009.09.22 [1.1.0] added chkPopupPreviewMouseover option
2007.11.19 [1.0.0] fixed handling for imageLinks ('tiddlylink' attrib is on the *parentNode* of target image element)
2007.11.10 [0.5.0] alpha development - use with care
<<<
!!!!!Code
***/
//{{{
version.extensions.PopupPreviewPlugin= {major: 1, minor: 1, revision: 0, date: new Date(2009,9,22)};

var co=config.options; // abbrev
if (co.chkPopupPreviews===undefined) co.chkPopupPreviews=true;
if (co.txtPopupPreviewWidth==undefined) co.txtPopupPreviewWidth="50%";
if (co.txtPopupPreviewHeight==undefined) co.txtPopupPreviewHeight="10em";
if (co.chkPopupPreviewMouseover===undefined) co.txtPopupPreviewHeight=false;

if (window.popupPreview_createTiddlyLink===undefined) { // only once
window.popupPreview_createTiddlyLink=window.createTiddlyLink;
window.createTiddlyLink=function()
{
	var btn=this.popupPreview_createTiddlyLink.apply(this,arguments);
	var handler=config.options.chkPopupPreviewMouseover?'onmouseover':'onclick';
	btn.savedHandler=btn[handler];
	btn[handler]=function(e) {
		var co=config.options; // abbrev
		if (!e) var e=window.event; var theTarget=resolveTarget(e);
		if (!e.shiftKey&&!co.chkPopupPreviewMouseover || !co.chkPopupPreviews) 
			return this.savedHandler?this.savedHandler.apply(this,arguments):false;
		else { // show tiddler preview if enabled and SHIFT is pressed
			var tid=theTarget.getAttribute("tiddlylink");
			if (!tid) tid=theTarget.parentNode.getAttribute("tiddlylink"); // for "imageLink"
			var text=store.getTiddlerText(tid);
			if (text && text.length) {
				var popup = Popup.create(this,null,"sticky popup");
				popup.style.width=co.txtPopupPreviewWidth;
				popup.style.padding=".5em";
				var msg="%0 %1".format([tid,config.views.wikified.shadowModifier]);
				var tiddler=store.getTiddler(tid); if (tiddler) msg=tiddler.getSubtitle();
				wikify("@@display:block;font-size:80%;line-height:110%;"+msg+"@@",popup);
				var div=createTiddlyElement(popup,"DIV",null,"popupPreview viewer");
				div.style.overflow="auto"; 
				div.style.whiteSpace="normal";
				div.style[config.browser.isIE?'height':'maxHeight']=co.txtPopupPreviewHeight;
				wikify(text,div);
				Popup.show('bottom','left');
			}
			e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); return false;
		}
	}
	return btn;
}
}
//}}}
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal " YYYY年0MM月0DD日" "日志">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "偏好设置 »" "变更 TiddlyWiki 选项">>
----
Tags clound
----
<<cloud limit:10 systemConfig excludeMissing script>>
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

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


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

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
	Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
	this.SPM_coreDisplayTiddlers.apply(this,arguments);
	opt.chkBottomOfPageMode=saveBPM;
	opt.chkTopOfPageMode=saveTPM;
	opt.chkSinglePageMode=saveSPM;
}
//}}}
完美爱情使者
相亲记
/***

''Inspired by [[TiddlyPom|http://www.warwick.ac.uk/~tuspam/tiddlypom.html]]''

|Name|SplashScreenPlugin|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#SplashScreenPlugin|
|Version|0.21 |
|Requires|~TW2.08+|
!Description:
Provides a simple splash screen that is visible while the TW is loading.

!Installation
Copy the source text of this tiddler to your TW in a new tiddler, tag it with systemConfig and save and reload. The SplashScreen will now be installed and will be visible the next time you reload your TW.

!Customizing
Once the SplashScreen has been installed and you have reloaded your TW, the splash screen html will be present in the MarkupPreHead tiddler. You can edit it and customize to your needs.

!History
* 20-07-06 : version 0.21, modified to hide contentWrapper while SplashScreen is displayed.
* 26-06-06 : version 0.2, first release

!Code
***/
//{{{
window.old_lewcid_splash_restart=window.restart;

window.restart = function()
{   if (document.getElementById("SplashScreen"))
        document.getElementById("SplashScreen").style.display = "none";
      if (document.getElementById("contentWrapper"))
        document.getElementById("contentWrapper").style.display = "block";
    
    window.old_lewcid_splash_restart();
   
    if (splashScreenInstall)
       {if(config.options.chkAutoSave)
			{saveChanges();}
        displayMessage("TW SplashScreen has been installed, please save and refresh your TW.");
        }
}


var oldText = store.getTiddlerText("MarkupPreHead");
if (oldText.indexOf("SplashScreen")==-1)
   {var siteTitle = store.getTiddlerText("SiteTitle");
   var splasher='\n\n<style type="text/css">#contentWrapper {display:none;}</style><div id="SplashScreen" style="border: 3px solid #ccc; display: block; text-align: center; width: 320px; margin: 100px auto; padding: 50px; color:#000; font-size: 28px; font-family:Tahoma; background-color:#eee;"><b>'+siteTitle +'</b> is loading<blink> ...</blink><br><br><span style="font-size: 14px; color:red;">Requires Javascript.</span></div>';
   if (! store.tiddlerExists("MarkupPreHead"))
       {var myTiddler = store.createTiddler("MarkupPreHead");}
   else
      {var myTiddler = store.getTiddler("MarkupPreHead");}
      myTiddler.set(myTiddler.title,oldText+splasher,config.options.txtUserName,null,null);
      store.setDirty(true);
      var splashScreenInstall = true;
}
//}}}
<<allTags excludeLists>>
/***
|Name|TagCloudPlugin|
|Source|http://www.TiddlyTools.com/#TagCloudPlugin|
|Version|1.7.0|
|Author|Eric Shulman|
|Original Author|Clint Checketts|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|present a 'cloud' of tags (or links) using proportional font display|
!Usage
<<<
{{{
<<cloud type action:... limit:... tag tag tag ...>>
<<cloud type action:... limit:... +TiddlerName>>
<<cloud type action:... limit:... -TiddlerName>>
<<cloud type action:... limit:... =tagvalue>>
}}}
where:
* //type// is a keyword, one of:
** ''tags'' (default) - displays a cloud of tags, based on frequency of use
** ''links'' - displays a cloud of tiddlers, based on number of links //from// each tiddler
** ''references'' - displays a cloud of tiddlers, based on number of links //to// each tiddler
* ''action:popup'' (default) - clicking a cloud item shows a popup with links to related tiddlers<br>//or//<br> ''action:goto'' - clicking a cloud item immediately opens the tiddler corresponding to that item
* ''limit:N'' (optional) - restricts the cloud display to only show the N most popular tags/links
* ''tag tag tag...'' (or ''title title title'' if ''links''/''references'' is used)<br>shows all tags/links in the document //except// for those listed as macro parameters
* ''+TiddlerName''<br>show only tags/links read from a space-separated, bracketed list stored in a separate tiddler.
* ''-TiddlerName''<br>show all tags/links //except// those read from a space-separated, bracketed list stored in a separate tiddler.
* ''=tagvalue'' (//only if type=''tags''//)<br>shows only tags that are themselves tagged with the indicated tag value (i.e., ~TagglyTagging usage)
//note: for backward-compatibility, you can also use the macro {{{<<tagCloud ...>>}}} in place of {{{<<cloud ...>>}}}//
<<<
!Examples
<<<
//all tags excluding<<tag systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud systemConfig excludeMissing script>>}}}
{{groupbox{<<cloud systemConfig excludeMissing script>>}}}
//top 10 tags excluding<<tag systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud limit:10 systemConfig excludeMissing script>>}}}
{{groupbox{<<cloud limit:10 systemConfig excludeMissing script>>}}}
//tags listed in// [[FavoriteTags]]
{{{<<cloud +FavoriteTags>>}}}
{{groupbox{<<cloud +FavoriteTags>>}}}
//tags NOT listed in// [[FavoriteTags]]
{{{<<cloud -FavoriteTags>>}}}
{{groupbox{<<cloud -FavoriteTags>>}}}
//links to tiddlers tagged with 'package'//
{{{<<cloud action:goto =package>>}}}
{{groupbox{<<cloud action:goto =package>>}}}
//top 20 most referenced tiddlers//
{{{<<cloud references limit:20>>}}}
{{groupbox{<<cloud references limit:20>>}}}
//top 20 tiddlers that contain the most links//
{{{<<cloud links limit:20>>}}}
{{groupbox{<<cloud links limit:20>>}}}
<<<
!Revisions
<<<
2009.07.17 [1.7.0] added {{{-TiddlerName}}} parameter to exclude tags that are listed in the indicated tiddler
2009.02.26 [1.6.0] added {{{action:...}}} parameter to apply popup vs. goto action when clicking cloud items
2009.02.05 [1.5.0] added ability to show links or back-links (references) instead of tags and renamed macro to {{{<<cloud>>}}} to reflect more generalized usage.
2008.12.16 [1.4.2] corrected group calculation to prevent 'group=0' error
2008.12.16 [1.4.1] revised tag filtering so excluded tags don't affect calculations
2008.12.15 [1.4.0] added {{{limit:...}}} parameter to restrict the number of tags displayed to the top N most popular
2008.11.15 [1.3.0] added {{{+TiddlerName}}} parameter to include only tags that are listed in the indicated tiddler
2008.09.05 [1.2.0] added '=tagname' parameter to include only tags that are themselves tagged with the specified value (i.e., ~TagglyTagging usage)
2008.07.03 [1.1.0] added 'segments' property to macro object.  Extensive code cleanup
<<<
!Code
***/
//{{{
version.extensions.TagCloudPlugin= {major: 1, minor: 7 , revision: 0, date: new Date(2009,7,17)};
//Originally created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman
//Currently maintained and enhanced by Eric Shulman
//}}}
//{{{
config.macros.cloud = {
	tagstip: "%1 tiddlers tagged with '%0'",
	refslabel: " (%0 references)",
	refstip: "%1 tiddlers have links to '%0'",
	linkslabel: " (%0 links)",
	linkstip: "'%0' has links to %1 other tiddlers",
	groups: 9,
	init: function() {
		config.macros.tagCloud=config.macros.cloud; // for backward-compatibility
		config.shadowTiddlers.TagCloud='<<cloud>>';
		config.shadowTiddlers.StyleSheetTagCloud=
			'/*{{{*/\n'
			+'.tagCloud span {line-height: 3.5em; margin:3px;}\n'
			+'.tagCloud1{font-size: 80%;}\n'
			+'.tagCloud2{font-size: 100%;}\n'
			+'.tagCloud3{font-size: 120%;}\n'
			+'.tagCloud4{font-size: 140%;}\n'
			+'.tagCloud5{font-size: 160%;}\n'
			+'.tagCloud6{font-size: 180%;}\n'
			+'.tagCloud7{font-size: 200%;}\n'
			+'.tagCloud8{font-size: 220%;}\n'
			+'.tagCloud9{font-size: 240%;}\n'
			+'/*}}}*/\n';
		setStylesheet(store.getTiddlerText('StyleSheetTagCloud'),'tagCloudsStyles');
	},
	getLinks: function(tiddler) { // get list of links to existing tiddlers and shadows
		if (!tiddler.linksUpdated) tiddler.changed();
		var list=[]; for (var i=0; i<tiddler.links.length; i++) {
			var title=tiddler.links[i];
			if (store.isShadowTiddler(title)||store.tiddlerExists(title))
				list.push(title);
		}
		return list;
	},
	handler: function(place,macroName,params) {
		// unpack params
		var inc=[]; var ex=[]; var limit=0; var action='popup';
		var links=(params[0]&&params[0].toLowerCase()=='links'); if (links) params.shift();
		var refs=(params[0]&&params[0].toLowerCase()=='references'); if (refs) params.shift();
		if (params[0]&&params[0].substr(0,7).toLowerCase()=='action:')
			action=params.shift().substr(7).toLowerCase();
		if (params[0]&&params[0].substr(0,6).toLowerCase()=='limit:')
			limit=parseInt(params.shift().substr(6));
		while (params.length) {
			if (params[0].substr(0,1)=='+') { // read taglist from tiddler
				inc=inc.concat(store.getTiddlerText(params[0].substr(1),'').readBracketedList());
			} else if (params[0].substr(0,1)=='-') { // exclude taglist from tiddler
				ex=ex.concat(store.getTiddlerText(params[0].substr(1),'').readBracketedList());
			} else if (params[0].substr(0,1)=='=') { // get tag list using tagged tags
				var tagged=store.getTaggedTiddlers(params[0].substr(1));
				for (var t=0; t<tagged.length; t++) inc.push(tagged[t].title);
			} else ex.push(params[0]); // exclude params
			params.shift();
		}
		// get all items, include/exclude specific items
		var items=[];
		var list=(links||refs)?store.getTiddlers('title','excludeLists'):store.getTags();
		for (var t=0; t<list.length; t++) {
			var title=(links||refs)?list[t].title:list[t][0];
			if (links)	var count=this.getLinks(list[t]).length;
			else if (refs)	var count=store.getReferringTiddlers(title).length;
			else 		var count=list[t][1];
			if ((!inc.length||inc.contains(title))&&(!ex.length||!ex.contains(title)))
				items.push({ title:title, count:count });
		}
		if(!items.length) return;
		// sort by decending count, limit results (optional)
		items=items.sort(function(a,b){return(a.count==b.count)?0:(a.count>b.count?-1:1);});
		while (limit && items.length>limit) items.pop();
		// find min/max and group size
		var most=items[0].count;
		var least=items[items.length-1].count;
		var groupSize=(most-least+1)/this.groups;
		// sort by title and draw the cloud of items
		items=items.sort(function(a,b){return(a.title==b.title)?0:(a.title>b.title?1:-1);});
		var cloudWrapper = createTiddlyElement(place,'div',null,'tagCloud',null);
		for (var t=0; t<items.length; t++) {
			cloudWrapper.appendChild(document.createTextNode(' '));
			var group=Math.ceil((items[t].count-least)/groupSize)||1;
			var className='tagCloudtag tagCloud'+group;
			var tip=refs?this.refstip:links?this.linkstip:this.tagstip;
			tip=tip.format([items[t].title,items[t].count]);
			if (action=='goto') { // TAG/LINK/REFERENCES GOTO
				var btn=createTiddlyLink(cloudWrapper,items[t].title,true,className);
				btn.title=tip;
				btn.style.fontWeight='normal';
			} else if (!links&&!refs) { // TAG POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,onClickTag,className);
				btn.setAttribute('tag',items[t].title);
			} else { // LINK/REFERENCES POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,
					function(ev) { var e=ev||window.event; var cmt=config.macros.cloud;
						var popup = Popup.create(this);
						var title = this.getAttribute('tiddler');
						var count = this.getAttribute('count');
						var refs  = this.getAttribute('refs')=='T';
						var links = this.getAttribute('links')=='T';
						var label = (refs?cmt.refslabel:cmt.linkslabel).format([count]);
						createTiddlyLink(popup,title,true);
						createTiddlyText(popup,label);
						createTiddlyElement(popup,'hr');
						if (refs) {
							popup.setAttribute('tiddler',title);
							config.commands.references.handlePopup(popup,title);
						}
						if (links) {
							var tiddler = store.fetchTiddler(title);
							var links=config.macros.cloud.getLinks(tiddler);
							for(var i=0;i<links.length;i++)
								createTiddlyLink(createTiddlyElement(popup,'li'),
									links[i],true);
						}
						Popup.show();
						e.cancelBubble=true; if(e.stopPropagation) e.stopPropagation();
						return false;
					}, className);
				btn.setAttribute('tiddler',items[t].title);
				btn.setAttribute('count',items[t].count);
				btn.setAttribute('refs',refs?'T':'F');
				btn.setAttribute('links',links?'T':'F');
				btn.title=tip;
			}
		}
	}
};
//}}}
/***
|''Name:''|zh-HansTranslationPlugin|
|''Description:''|Translation of TiddlyWiki into Simply Chinese|
|''Source:''|http://tiddlywiki-zh.googlecode.com/svn/trunk/|
|''Subversion:''|http://svn.tiddlywiki.org/Trunk/association/locales/core/zh-Hans/locale.zh-Hans.js|
|''Author:''|BramChen (bram.chen (at) gmail (dot) com)|
|''Version:''|2.5.1|
|''Date:''|Jnu 22, 2009|
|''Comments:''|Please make comments at http://groups.google.com/group/TiddlyWiki-zh/|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.4.1|
***/

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

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

config.locale = 'zh-Hans'; // W3C language tag
config.options.txtFileSystemCharSet = 'GBK';

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

merge(config.tasks,{
	save: {text: "保存", tooltip: "保存变更至此 TiddlyWiki", action: saveChanges},
	sync: {text: "同步", tooltip: "将你的资料内容与外部服务器与文件同步", content: '<<sync>>'},
	importTask: {text: "导入", tooltip: "自其他文件或服务器导入文章或插件", content: '<<importTiddlers>>'},
	tweak: {text: "选项", tooltip: "改变此 TiddlyWiki 显示与行为设置", content: '<<options>>'},
	upgrade: {text: "更新", tooltip: "更新 TiddlyWiki 核心程序", content: '<<upgrade>>'},
	plugins: {text: "插件管理", tooltip: "管理已安装的插件", content: '<<plugins>>'}
});

merge(config.optionsDesc,{
	txtUserName: "编辑文章所使用之作者署名",
	chkRegExpSearch: "启用正则式查找",
	chkCaseSensitiveSearch: "查找时,区分大小写",
	chkIncrementalSearch: "随打即找搜寻",
	chkAnimate: "使用动画显示",
	chkSaveBackups: "保存变更前,保留备份文件",
	chkAutoSave: "自动保存变更",
	chkGenerateAnRssFeed: "保存变更时,也保存 RSS feed",
	chkSaveEmptyTemplate: "保存变更时,也保存空白模版",
	chkOpenInNewWindow: "于新窗口开启链接",
	chkToggleLinks: "点击已开启文章炼结时,将其关闭",
	chkHttpReadOnly: "非本机浏览文件时,隐藏编辑功能",
	chkForceMinorUpdate: "修改文章时,不变更作者名称与日期时间",
	chkConfirmDelete: "删除文章前须确认",
	chkInsertTabs: "使用 tab 键插入定位字符,而非跳至下一个栏位",
	txtBackupFolder: "存放备份文件的资料夹",
	txtMaxEditRows: "编辑模式中显示列数",
	txtTheme: "使用的布景名称",
	txtFileSystemCharSet: "指定保存文件所在之档案系统之字符集 (仅适用于 Firefox/Mozilla only)"});

// Messages
merge(config.messages,{
	customConfigError: "插件载入发生错误,详细请参考 PluginManager",
	pluginError: "发生错误: %0",
	pluginDisabled: "未执行,因标签设为 'systemConfigDisable'",
	pluginForced: "已执行,因标签设为 'systemConfigForce'",
	pluginVersionError: "未执行,插件需较新版本的 TiddlyWiki",
	nothingSelected: "尚未作任何选择,至少需选择一项",
	savedSnapshotError: "此 TiddlyWiki 未正确保存,详见 http://www.tiddlywiki.com/#Download",
	subtitleUnknown: "(未知)",
	undefinedTiddlerToolTip: "'%0' 尚无内容",
	shadowedTiddlerToolTip: "'%0' 尚无内容, 但已定义隐藏的默认值",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "外部链接至 %0",
	noTags: "未设置标签的文章",
	notFileUrlError: "须先将此 TiddlyWiki 存至本机文件,才可保存变更",
	cantSaveError: "无法保存变更。可能的原因有:\n- 你的浏览器不支持此保存功能(Firefox, Internet Explorer, Safari and Opera 经适当设定后可保存变更)\n- 也可能是你的 TiddlyWiki 文件名称包含不合法的字符所致。\n- 或是 TiddlyWiki 文件被改名或搬移。",
	invalidFileError: " '%0' 非有效之 TiddlyWiki 文件",
	backupSaved: "已保存备份",
	backupFailed: "无法保存备份",
	rssSaved: "RSS feed 已保存",
	rssFailed: "无法保存 RSS feed ",
	emptySaved: "已保存模版",
	emptyFailed: "无法保存模版",
	mainSaved: "主要的TiddlyWiki已保存",
	mainFailed: "无法保存主要 TiddlyWiki,所作的改变未保存",
	macroError: "宏 <<\%0>> 执行错误",
	macroErrorDetails: "执行宏 <<\%0>> 时,发生错误 :\n%1",
	missingMacro: "无此宏",
	overwriteWarning: "'%0' 已存在,[确定]覆盖之",
	unsavedChangesWarning: "注意! 尚未保存变更\n\n[确定]保存,或[取消]放弃保存?",
	confirmExit: "--------------------------------\n\nTiddlyWiki 以更改内容尚未保存,继续的话将丢失这些更动\n\n--------------------------------",
	saveInstructions: "SaveChanges",
	unsupportedTWFormat: "未支持此 TiddlyWiki 格式:'%0'",
	tiddlerSaveError: "保存文章 '%0' 时,发生错误。",
	tiddlerLoadError: "载入文章 '%0' 时,发生错误。",
	wrongSaveFormat: "无法使用格式 '%0' 保存,请使用标准格式存放",
	invalidFieldName: "无效的栏位名称:%0",
	fieldCannotBeChanged: "无法变更栏位:'%0'",
	loadingMissingTiddler: "正从服务器 '%1' 的:\n\n工作区 '%3' 中的 '%2' 撷取文章 '%0'",
	upgradeDone: "已更新至 %0 版\n\n点击 '确定' 重新载入更新后的 TiddlyWiki"});

merge(config.messages.messageClose,{
	text: "关闭",
	tooltip: "关闭此讯息"});

config.messages.backstage = {
	open: {text: "控制台", tooltip: "开启控制台执行编写工作"},
	close: {text: "关闭", tooltip: "关闭控制台"},
	prompt: "控制台:",
	decal: {
		edit: {text: "编辑", tooltip: "编辑 '%0'"}
	}
};

config.messages.listView = {
	tiddlerTooltip: "查看全文",
	previewUnavailable: "(无法预览)"
};

config.messages.dates.months = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
config.messages.dates.days = ["周日", "周一","周二", "周三", "周四", "周五", "周六"];
config.messages.dates.shortMonths = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"];
config.messages.dates.shortDays = ["日", "一","二", "三", "四", "五", "六"];
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["st","nd","rd","th","th","th","th","th","th","th",
		"th","th","th","th","th","th","th","th","th","th",
		"st","nd","rd","th","th","th","th","th","th","th",
		"st"];
config.messages.dates.am = "上午";
config.messages.dates.pm = "下午";

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

merge(config.views.wikified.tag,{
	labelNoTags: "未设标签",
	labelTags: "标签: ",
	openTag: "开启标签 '%0'",
	tooltip: "显示标签为 '%0' 的文章",
	openAllText: "开启以下所有文章",
	openAllTooltip: "开启以下所有文章",
	popupNone: "仅此文标签为 '%0'"});

merge(config.views.wikified,{
	defaultText: "",
	defaultModifier: "(未完成)",
	shadowModifier: "(默认)",
	dateFormat: "YYYY年0MM月0DD日",
	createdPrompt: "创建于"});

merge(config.views.editor,{
	tagPrompt: "设置标签之间以空白隔开,[[标签含空白时请使用双中括弧]],或点选现有之标签加入",
	defaultText: ""});

merge(config.views.editor.tagChooser,{
	text: "标签",
	tooltip: "点选现有之标签加至本文章",
	popupNone: "未设置标签",
	tagTooltip: "加入标签 '%0'"});

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

merge(config.macros.search,{
	label: " 查找",
	prompt: "搜索本 Wiki",
	accessKey: "F",
	successMsg: " %0 篇符合条件: %1",
	failureMsg: " 无符合条件: %0"});

merge(config.macros.tagging,{
	label: "引用标签:",
	labelNotTag: "无引用标签",
	tooltip: "列出标签为 '%0' 的文章"});

merge(config.macros.timeline,{
	dateFormat: "YYYY年0MM月0DD日"});

merge(config.macros.allTags,{
	tooltip: "显示文章- 标签为'%0'",
	noTags: "没有标签"});

config.macros.list.all.prompt = "依字母排序";
config.macros.list.missing.prompt = "被引用且内容空白的文章";
config.macros.list.orphans.prompt = "未被引用的文章";
config.macros.list.shadowed.prompt = "这些隐藏的文章已定义默认内容";
config.macros.list.touched.prompt = "自下载或添加后被修改过的文章"; 

merge(config.macros.closeAll,{
	label: "全部关闭",
	prompt: "关闭所有开启中的 tiddler (编辑中除外)"});

merge(config.macros.permaview,{
	label: "永久链接",
	prompt: "可存取现有开启之文章的链接位址"});

merge(config.macros.saveChanges,{
	label: "保存变更",
	prompt: "保存所有文章,生成新的版本",
	accessKey: "S"});

merge(config.macros.newTiddler,{
	label: "创建文章",
	prompt: "创建 tiddler",
	title: "创建文章",
	accessKey: "N"});

merge(config.macros.newJournal,{
	label: "创建日志",
	prompt: "创建 jounal",
	accessKey: "J"});

merge(config.macros.options,{
	wizardTitle: "增订的进阶选项",
	step1Title: "增订的选项保存于浏览器的 cookies",
	step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>显示未知选项</input>",
	unknownDescription: "//(未知)//",
	listViewTemplate: {
		columns: [
			{name: 'Option', field: 'option', title: "选项", type: 'String'},
			{name: 'Description', field: 'description', title: "说明", type: 'WikiText'},
			{name: 'Name', field: 'name', title: "名称", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'}
			]}
	});

merge(config.macros.plugins,{
	wizardTitle: "插件管理",
	step1Title: "- 已载入之插件",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	skippedText: "(此插件因刚加入,故尚未执行)",
	noPluginText: "未安装插件",
	confirmDeleteText: "确认是否删除所选插件:\n\n%0",
	removeLabel: "删除 'systemConfig' 标签",
	removePrompt: "删除 'systemConfig' 标签",
	deleteLabel: "删除",
	deletePrompt: "永远删除所选插件",
	listViewTemplate : {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "插件", type: 'Tiddler'},
			{name: 'Description', field: 'desc', title: "说明", type: 'String'},
			{name: 'Version', field: 'Version', title: "版本", type: 'String'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "大小", type: 'Size'},
			{name: 'Forced', field: 'forced', title: "强制执行", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "停用", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "已载入", type: 'Boolean', trueText: "是", falseText: "否"},
			{name: 'Startup Time', field: 'startupTime', title: "载入时间", type: 'String'},
			{name: 'Error', field: 'error', title: "载入状态", type: 'Boolean', trueText: "错误", falseText: "正常"},
			{name: 'Log', field: 'log', title: "记录", type: 'StringList'}
			],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'}
			]}
	});

merge(config.macros.toolbar,{
	moreLabel: "+",
	morePrompt: "显示更多工具命令",
	lessLabel: "-",
	lessPrompt: "隐藏部份工具命令",
	separator: "|"
	});

merge(config.macros.refreshDisplay,{
	label: "刷新",
	prompt: "刷新此 TiddlyWiki 显示"
	});

merge(config.macros.importTiddlers,{
	readOnlyWarning: "TiddlyWiki 于唯读模式下,不支持导入文章。请由本机(file://)开启 TiddlyWiki 文件",
	wizardTitle: "自其他档案或服务器汇入文章",
	step1Title: "步骤一:指定服务器或来源文件",
	step1Html: "指定服务器类型:<select name='selTypes'><option value=''>选取...</option></select><br>请输入网址或路径:<input type='text' size=50 name='txtPath'><br>...或选择来源文件:<input type='file' size=50 name='txtBrowse'><br><hr>...或选择指定的馈入来源:<select name='selFeeds'><option value=''>选取...</option></select>",
	openLabel: "开启",
	openPrompt: "开启文件或",
	openError: "读取来源文件时发生错误",
	statusOpenHost: "正与服务器建立连线",
	statusGetWorkspaceList: "正在取得可用之文章清单",
	errorGettingTiddlerList: "取得文章清单时发生错误,请点选“取消”后重试。",
	step2Title: "步骤二:选择工作区",
	step2Html: "输入工作区名称:<input type='text' size=50 name='txtWorkspace'><br>...或选择工作区:<select name='selWorkspace'><option value=''>选取...</option></select>",
	cancelLabel: "取消",
	cancelPrompt: "取消本次导入动作",
	statusOpenWorkspace: "正在开启工作区",
	statusGetTiddlerList: "正在取得可用之文章清单",
	step3Title: "步骤三:选择欲导入之文章",
	step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>保持这些文章与服务器链接,便于同步后续的变更。</input><br><input type='checkbox' name='chkSave'>保存此服务器的详细资讯于标签为 'systemServer' 的文章名为:</input> <input type='text' size=25 name='txtSaveTiddler'>", 
	importLabel: "导入",
	importPrompt: "导入所选文章",
	confirmOverwriteText: "确定要覆写这些文章:\n\n%0",
	step4Title: "步骤四:正在导入%0 篇文章",
	step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
	doneLabel: "完成",
	donePrompt: "关闭",
	statusDoingImport: "正在导入文章 ...",
	statusDoneImport: "所选文章已导入",
	systemServerNamePattern: "%2 位于 %1",
	systemServerNamePatternNoWorkspace: "%1",
	confirmOverwriteSaveTiddler: "此 tiddler '%0' 已经存在。点击“确定”以服务器上料覆写之,或“取消”不变更后离开",
	serverSaveTemplate: "|''Type:''|%0|\n|''网址:''|%1|\n|''工作区:''|%2|\n\n此文为自动产生纪录服务器之相关资讯。",
	serverSaveModifier: "(系统)",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "文章", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "大小", type: 'Size'},
			{name: 'Tags', field: 'tags', title: "标签", type: 'Tags'}
			],
		rowClasses: [
			]}
	});

merge(config.macros.upgrade,{
	wizardTitle: "更新 TiddlyWiki 核心程序",
	step1Title: "更新或修补此 TiddlyWiki 至最新版本",
	step1Html: "您将更新至最新版本的 TiddlyWiki 核心程序 (自 <a href='%0' class='externalLink' target='_blank'>%1</a>)。 在更新过程中,您的资料将被保留。<br><br>请注意:更新核心可能不相容于其他套件。若对更新的档案有问题,详见 <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
	errorCantUpgrade: "j无法更新此 TiddlyWiki. 您只能自本机端的 TiddlyWiki 文件执行更新程序",
	errorNotSaved: "执行更新之前,请先保存变更",
	step2Title: "确认更新步骤",
	step2Html_downgrade: "您的 TiddlyWiki 将自 %1 版降级至 %0版<br><br>不建议降级至较旧的版本。",
	step2Html_restore: "此 TiddlyWiki 核心已是最新版 (%0)。<br><br>您可以继续更新作业以确认核心程式未曾毁损。",
	step2Html_upgrade: "您的 TiddlyWiki 将自 %1 版更新至 %0 版",	upgradeLabel: "更新",
	upgradePrompt: "准备更新作业",
	statusPreparingBackup: "准备备份中",
	statusSavingBackup: "正在备份文件",
	errorSavingBackup: "备份文件时发生问题",
	statusLoadingCore: "核心程序载入中",
	errorLoadingCore: "载入核心程序时,发生错误",
	errorCoreFormat: "新版核心程序发生错误",
	statusSavingCore: "正在保存新版核心程序",
	statusReloadingCore: "新版核心程式载入中",
	startLabel: "开始",
	startPrompt: "开始更新作业",
	cancelLabel: "取消",
	cancelPrompt: "取消更新作业",
	step3Title: "已取消更新作业",
	step3Html: "您已取消更新作业"
	});

merge(config.macros.sync,{
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "文章", type: 'Tiddler'},
			{name: 'Server Type', field: 'serverType', title: "服务器类型", type: 'String'},
			{name: 'Server Host', field: 'serverHost', title: "服务器主机", type: 'String'},
			{name: 'Server Workspace', field: 'serverWorkspace', title: "服务器工作区", type: 'String'},
			{name: 'Status', field: 'status', title: "同步情形", type: 'String'},
			{name: 'Server URL', field: 'serverUrl', title: "服务器网址", text: "检视", type: 'Link'}
			],
		rowClasses: [
			],
		buttons: [
			{caption: "同步更新这些文章", name: 'sync'}
			]},
	wizardTitle: "将你的资料内容与外部服务器与文件同步",
	step1Title: "选择欲同步的文章",
	step1Html: '<input type="hidden" name="markList"></input>',
	syncLabel: "同步",
	syncPrompt: "同步更新这些文章",
	hasChanged: "已更动",
	hasNotChanged: "未更动",
	syncStatusList: {
		none: {text: "...", display:null, className:'notChanged'},
		changedServer: {text: "服务器资料已更动", display:null, className:'changedServer'},
		changedLocally: {text: "本机资料已更动", display:null, className:'changedLocally'},
		changedBoth: {text: "已同时更新本机与服务器上的资料", display:null, className:'changedBoth'},
		notFound: {text: "服务器无此资料", className:'notFound'},
		putToServer: {text: "已储存更新资料至服务器", display:null, className:'putToServer'},
		gotFromServer: {text: "已从服务器撷取更新资料", display:null, className:'gotFromServer'}
		}
	});

merge(config.macros.annotations,{
	});

merge(config.commands.closeTiddler,{
	text: "关闭",
	tooltip: "关闭本文"});

merge(config.commands.closeOthers,{
	text: "关闭其他",
	tooltip: "关闭其他文章"});

merge(config.commands.editTiddler,{
	text: "编辑",
	tooltip: "编辑本文",
	readOnlyText: "查阅",
	readOnlyTooltip: "查阅本文之原始内容"});

merge(config.commands.saveTiddler,{
	text: "完成",
	tooltip: "确定修改"});

merge(config.commands.cancelTiddler,{
	text: "取消",
	tooltip: "取消修改",
	warning: "确定取消对 '%0' 的修改吗?",
	readOnlyText: "完成",
	readOnlyTooltip: "返回正常显示模式"});

merge(config.commands.deleteTiddler,{
	text: "删除",
	tooltip: "删除文章",
	warning: "确定删除 '%0'?"});

merge(config.commands.permalink,{
	text: "永久链接",
	tooltip: "本文永久链接"});

merge(config.commands.references,{
	text: "引用",
	tooltip: "引用本文的文章",
	popupNone: "本文未被引用"});

merge(config.commands.jump,{
	text: "跳转",
	tooltip: "跳转至其他已开启的文章"});

merge(config.commands.syncing,{
	text: "同步",
	tooltip: "本文章与服务器或其他外部文件的同步资讯",
	currentlySyncing: "<div>同步类型:<span class='popupHighlight'>'%0'</span></"+"div><div>与服务器:<span class='popupHighlight'>%1 同步</span></"+"div><div>工作区:<span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
	notCurrentlySyncing: "无进行中的同步动作",
	captionUnSync: "停止同步此文章",
	chooseServer: "与其他服务器同步此文章:",
	currServerMarker: "\u25cf ",
	notCurrServerMarker: "  "});

merge(config.commands.fields,{
	text: "栏位",
	tooltip: "显示此文章的扩充资讯",
	emptyText: "此文章没有扩充栏位",
	listViewTemplate: {
		columns: [
			{name: 'Field', field: 'field', title: "扩充栏位", type: 'String'},
			{name: 'Value', field: 'value', title: "内容", type: 'String'}
			],
		rowClasses: [
			],
		buttons: [
			]}});

merge(config.shadowTiddlers,{
	DefaultTiddlers: "GettingStarted",
	GettingStarted: "使用此 TiddlyWiki 的空白模版之前,请先修改以下默认文章:\n* SiteTitle 及 SiteSubtitle:网站的标题和副标题,显示于页面上方<br />(在保存变更后,将显示于浏览器视窗的标题列)。\n* MainMenu:主菜单(通常在页面左侧)。\n* DefaultTiddlers:包含一些文章的标题,可于进入TiddlyWiki 后开启。\n请输入您的大名,作为所创建/ 编辑文章的署名:<<option txtUserName>>",
	MainMenu: "[[使用说明|GettingStarted]]\n\n\n版本:<<version>>",
	OptionsPanel: "这些设置将缓存于浏览器\n请签名<<option txtUserName>>\n(范例:WikiWord)\n\n<<option chkSaveBackups>> 保存备份\n<<option chkAutoSave>> 自动保存\n<<option chkRegExpSearch>> 正则式搜索\n<<option chkCaseSensitiveSearch>> 区分大小写搜索\n<<option chkAnimate>> 使用动画显示\n----\n[[进阶选项|AdvancedOptions]]",
	SiteTitle: "我的 TiddlyWiki",
	SiteSubtitle: "一个可重复使用的个人网页式笔记本",
	SiteUrl: 'http://www.tiddlywiki.com/',
	SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal " YYYY年0MM月0DD日" "日志">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "偏好设置 \u00bb" "变更 TiddlyWiki 选项">>',
	SideBarTabs: '<<tabs txtMainTab "最近更新" "依更新日期排序" TabTimeline "全部" "所有文章" TabAll "分类" "所有标签" TabTags "更多" "其他" TabMore>>',
	StyleSheet: '[[StyleSheetLocale]]',
	TabMore: '<<tabs txtMoreTab "未完成" "内容空白的文章" TabMoreMissing "未引用" "未被引用的文章" TabMoreOrphans "默认文章" "默认的影子文章" TabMoreShadowed>>'
});

merge(config.annotations,{
	AdvancedOptions: "此默认文章可以存取一些进阶选项。",
	ColorPalette: "此默认文章里的设定值,将决定 ~TiddlyWiki 使用者介面的配色。",
	DefaultTiddlers: "当 ~TiddlyWiki 在浏览器中开启时,此默认文章里列出的文章,将被自动显示。",
	EditTemplate: "此默认文章里的 HTML template 将决定文章进入编辑模式时的显示版面。",
	GettingStarted: "此默认文章提供基本的使用说明。",
	ImportTiddlers: "此默认文章提供存取导入中的文章。",
	MainMenu: "此默认文章的内容,为于屏幕左侧主菜单的内容",
	MarkupPreHead: "此文章的内容将加至 TiddlyWiki 文件的 <head> 段落的起始",
	MarkupPostHead: "此文章的内容将加至 TiddlyWiki 文件的 <head> 段落的最后",
	MarkupPreBody: "此文章的内容将加至 TiddlyWiki 文件的 <body> 段落的起始",
	MarkupPostBody: "此文章的内容将加至 TiddlyWiki 文件的 <body> 段落的最后,于 script 区块之后",
	OptionsPanel: "此默认文章的内容,为于屏幕右侧副菜单中的选项面板里的内容",
	PageTemplate: "此默认文章里的 HTML template 决定的 ~TiddlyWiki 主要的版面配置",
	PluginManager: "此默认文章提供存取插件管理员",
	SideBarOptions: "此默认文章的内容,为于屏幕右侧副菜单中选项面板里的内容",
	SideBarTabs: "此默认文章的内容,为于屏幕右侧副菜单中的页签面板里的内容",
	SiteSubtitle: "此默认文章的内容为页面的副标题",
	SiteTitle: "此默认文章的内容为页面的主标题",
	SiteUrl: "此默认文章的内容须设定为文件发布时的完整网址",
	StyleSheetColors: "此默认文章内含的 CSS 规则,为相关的页面元素的配色。''勿修改此文'',请于 StyleSheet 中作增修",
	StyleSheet: "此默认文章内容可包含 CSS 规则",
	StyleSheetLayout: "此默认文章内含的 CSS 规则,为相关的页面元素的版面配置。''勿修改此文'',请于 StyleSheet 中作增修",
	StyleSheetLocale: "此默认文章内含的 CSS 规则,可依翻译语系做适当调整",
	StyleSheetPrint: "此默认文章内含的 CSS 规则,用于列印时的样式",
	TabAll: "此默认文章的内容,为于屏幕右侧的“全部”页签的内容",
	TabMore: "此默认文章的内容,为于屏幕右侧的“更多”页签的内容",
	TabMoreMissing: "此默认文章的内容,为于屏幕右侧的“未完成”页签的内容",
	TabMoreOrphans: "此默认文章的内容,为于屏幕右侧的“未引用”页签的内容",
	TabMoreShadowed: "此默认文章的内容,为于屏幕右侧的“默认文章”页签的内容",
	TabTags: "此默认文章的内容,为于屏幕右侧的“分类”页签的内容",
	TabTimeline: "此默认文章的内容,为于屏幕右侧的“最近更新”页签的内容",
	ToolbarCommands: "此默认文章的内容,为显示于文章工具列之命令",
	ViewTemplate: "此默认文章里的 HTML template 决定文章显示的样子"
	});
//}}}
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com


  《我的相亲记》是一部现实版相亲手记,记录了作者自己在寻求美好的婚姻伴侣过程的种种趣闻和搞笑遭遇,真实,现代,同时《我的相亲记》也揭示了平常人在择偶相亲时需要考虑的各种因素和条件,能够帮助年轻人更加周全的考虑自己的求偶对象,找到完美的另一半。

  《我的相亲记》的最大特点就是真实,现代,以作者的亲身相亲经历为题材写就,是天天坐在办公室的白领们获得相亲经验的必备参考书。

  关于Apple网页版本的《我的相亲记》
    
  该网页版本的《我的相亲记》由IT爱好者''爱情王子''引用世界最顶尖的Jave+CSS+HTML语言写就,可以在任何计算机上运行,体积小,携带方便,可以拷贝到任何移动介质(比如硬盘,USB,手机)中随时随地阅读。

  当然,你也可以打包压缩后(约400k)通过邮件或Email发送给您的闺中好友或单身绝世好男,相信一定会让他们爱不释手,不读完不罢休!

  开始阅读 [[第01次相亲]] 或者右击另存为,即可下载本站全部内容

  @@bgcolor(yellow):友情链接@@  [[达丰论坛|http://gushiyuan.5d6d.com]]  [[达丰手机淘宝店|http://shop97284222.xintaonet.com/]]  

<html>
<table cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="width:290px;border: 1px solid #E6E6E6;"><tr><td rowspan="2" align="center"><div style="margin:5px auto; width: 80px;height:80px;"><a target="_blank" href="http://s.click.taobao.com/t_1?i=rEhGUhhpav%2BRrA%3D%3D&p=mm_10954851_0_0&n=12" style="width: 80px; margin:0px;padding:0px;height: 80px; overflow:hidden;"><img style="margin:0px;border:none;" src="http://image.taobao.com/bao/uploaded/http://img05.taobaocdn.com/bao/uploaded/i5/T1HFhwXotEXXbkp62b_124600.jpg_sum.jpg"></a></div><div class="clearing"></div></td><td colspan="2" ><a target="_blank" href="http://s.click.taobao.com/t_1?i=rEhGUhhpav%2BRrA%3D%3D&p=mm_10954851_0_0&n=12" style="height:40px;width:180px;margin:5px;line-height:20px;color:#0000FF">特价1350元!10.2寸玉玲珑迷你上网本 笔记本电脑N450 384显卡!</a></td></tr><tr><td nowrap="nowrap" > <span style="font-weight:600;margin:5px;line-height:30px;color:#CC0000;">1600.0元</span>&nbsp;</td><td nowrap="nowrap" width="100px" ><a target="_blank"href="http://s.click.taobao.com/t_1?i=rEhGUhhpav%2BRrA%3D%3D&p=mm_10954851_0_0&n=12"><img name="" style="margin:0px; pandding:0px;line-height:24px;vertical-align: text-bottom;border:none;" src="http://img.alimama.cn/images/tbk/cps/fgetccode_btn.gif"></a></td></tr></table>
</html>
  使用此 苹果移动式网页日记本 之前,请先修改以下默认项目:
* SiteTitle 及 SiteSubtitle:网站的标题和副标题,显示于页面上方<br />(在保存变更后,将显示于浏览器视窗的标题列)。
* MainMenu:主菜单(通常在页面左侧)。比如你现在看到的这个使用说明标题。SiteTitle就是Apple,SiteSubtitle就是“个人移动式网页日记本”。
* DefaultTiddlers:缺省页面,她包含一些文章的标题,可于进入这个“个人移动式网页日记本”后开启。

  如果你要新建/修改/ 编辑这个“个人移动式网页日记本”的任何文章的话,你需要在下面的方框中输入用户名,否则无法修改:<<option txtUserName>>
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  她是第一个给我打电话的女人,所以我对她的印象特别深。她说我的征婚启示写得太好了,简直就是一篇很美的散文诗。我客气地说小姐过奖了,那根本不算什么。接着,她用怀疑的心理问我征婚启事上说的那些是不是真的?我说全是真的,我可以用我的人格担保。她说这几年的很多征婚启事水份很重,见了面常常让对方大失所望,了解后让对方拔腿就跑。我没有否定她的说法,只肯定地说我的征婚启示的内容绝对真实,没有一点虚假成份,你若不信,欢迎考证。她说,如果真如你所说的,我还是想认识你,什么时候见个面好好谈谈。我笑着问她符不符合条件?她十分肯定地说,保证符合,而且比我要求的条件要好要高。她说她是四川某大学中文系二年级学生,十分爱好文学,并有好几篇散文问世。我忙夸她,不简单,很了不起,是张爱玲那样的才女。她似乎有些不好意思,好半天才说,如果我们在一起,一定会幸福的,因为我们志同道合,很有共同语言。我说肯定肯定。 
  我们谈了好一会儿才结束。我答应过几天跟她联系,咱们找个地方好好谈谈。她说好,从现在起我就盼望你给我打传呼。

  她既然是第一个给我打电话的女人,自然也就成了第一个我约会的女人。

  我是生平第一次跟女人约会,难免有些紧张,但更多的是憧憬,是幸福,是幻想,是神秘,是好奇,心里喜滋滋的,觉得真有意思。

  我是那天晚上给她打的传呼,她很快就回了,我拿起电话还没说"喂",她就说话了:"啊!李先生你终于给我打传呼了,我还以为你忘了呢?喂,你是不是跟我约会?"

  我想考验考验她,说:"我还没有作自我介绍,你怎么知道是我找你呢?"

  她嘻嘻一笑,说:"告诉你,我已经把你的电话号码雕刻在脑子里了,所以知道是你找我。"

  原来如此。看来她挺重视这事,或者说她对我很感兴趣。

  "喂,小姐,请问你明天有没有空?"

  "是不是约会?"

  "是的。"

  "明天是五四青年节,我要代表中文系参加校团委组织的一个文艺演出,我的节目是朗诵一首诗歌。请问李先生,你的约会时间是明天什么时候?我看有没有冲突。"

  "明天上午怎么样?"

  "不行,我们的演出就是明天上午……这样吧,我干脆放弃演出……"

  "这样恐怕不好,我们还是改天见面吧?"

  "不,就明天上午。演出没什么了不起,我今晚装个病就行了。"

  "这对你有没有什么影响?"

  "没什么影响。退一万步说,即使有影响,我也不怕,大不了挨几句批评。请问李先生,在哪里见面呢?"

  "随你的便,这也是我尊重你的一种表现。"

  "杜甫草堂怎么样?那里文化气氛很浓,而且景色也很美丽,梅园桶林,翠竹千竿,小桥流水,深幽小径,一切都充满了诗情画意,是我们约会的最佳去处。而且那里离你家也很近,你也方便。"

  "好,那就在草堂吧。"

  "具体在草堂的什么地方呢?是前门,还是后门?"

  "说实话;我还没去过草堂呢,不知道前门后门。小姐,随你便吧。"

  "那就在前门吧,上午9点正。"

  "好。喂,小姐,我们互不认识,怎么见面呢?"

  "这样最好,也最有意思,我们各自凭感觉认识,看谁的感觉最好。"

  "万一我的感觉不行呢,不是就错过了见面的机会了吗?"

  "嘻,你真笨,怎么会呢?难道你就不知道给我打传呼吗?"

  "对对对,打传呼可以找到你,但你一定要把传呼机随身带上。

  "便于你的感觉,我还是把我的一些特征简要告诉给你吧,我身高1.65米,皮肤白皙,戴一副近视眼镜,穿牛仔裤……好了,就这些,我不能说得太详细。记住,明天上午9点正,我们在草堂前门不见不散,风雨无阻。"

  小姐挂断了电话,她那甜甜的声音也自然在我耳边消失了,但余音缭绕,像银铃般的金属声久久回荡。

  那个夜晚我失眠了,显然是为她失眠。她思维敏捷,口才极好,还发表了不少散文,看来很有才气。这样的女孩,看得上我吗?我这种人,能配她吗?还有,从她跟我的约会方式来看,她是一个追求浪漫的女孩,这样的女孩,是不是太懂得浪漫了?相比之下,我是不是太落伍了?或者说太没有文化人的浪漫了?还有,她到底长得怎么样?是跟她的才气成正比呢,还是成反比?身体是胖,还是瘦?胸脯是丰满,还是干瘪?

  这一切都充满了神秘色彩,我只有一次又一次的想象。

  子夜时分,我感到天下雨了,渐渐沥沥的,是杜甫诗意里的那种雨,"随风潜入夜,润物细无声。"尽管这是一场知时节的好雨,但我不希望它下,希望它马上停下来,因为这样会影响我和她的约会。如果老天爷继续这样渐渐沥沥,明天她还会准时赴约吗?

  直到天麻麻亮时,我才进入梦乡。

  一觉醒来,天已大亮了,雨没有停,依然渐渐沥沥地下着。

  不好,肯定耽误了约会时间。我神经质地坐起来,忙看手表,只差10分钟就到9点了。我长长地出了口气,幸亏这里近,还来得及。不,也许她在那里等我了,我得迅速赶去,不然会给她留下一个坏印象。她离草堂这么远,都能准时赴约,我还有什么可解释的呢?

  我顾不得吃早餐,顾不得打扮自己,只洗了一下脸,就匆匆下楼了,连伞也顾不上带。本来,我可以步行去的,只需10分钟,但我没有,似乎已经来不及了,我毫不犹豫地叫了一辆出租车。

  尽管我坐的是现代化的交通工具,但还是迟了两分钟。

  草堂并没因雨而冷清,反而门庭若市,游人如织,他们打着花花绿绿的雨伞,或进进出出,或在门前留影,或站在一边等人。

  雨并不大,是那种缠绵得令人伤感的毛毛雨,飘飘拂拂的,像杜甫那忧国代民的眼泪。我站在雨中,微皱眉头,凭感觉寻找着她——一个戴近视眼镜和穿牛仔裤的女孩。

  我发现这种打扮的女孩有好几个,约会的那个她,到底是哪一个呢?我实在感觉不出来,更不敢上前逐个询问。我只好伫立雨中,耐心等待,并希望她把我感觉出来。如果她也实在感觉不出来,我准备过一会儿给她打传呼。

  突然,一朵美丽的红雨伞向我轻盈飘来,在我面前停下后,从伞里露出一张笑脸,看着我彬彬有礼地问:"请问先生,你是不是在杜甫花园住?"

  我一下明白她是谁了,眼镜和牛仔裤也随即撞入我的眼帘,是那么清纯,是那么朴素。

  "这么说,你就是那位小姐罗?"我不好意思地笑道。

  "是的。"她嫣然一笑,"还是我的感觉不错,把你感觉出来了。"

  我连忙点头:"对,你的感觉灵敏,我的感觉迟钝。"

  "不,是你没有认真观察。"

  "你很会说话,尽量原谅我。"

  我们买好门票,向门内走去。我一边走,一边暗叹:这确实是一个很不错的女孩。

  是的,她的确不错,超过了我的想象。那高挑的身材,那修长的双腿,那柔软的腰肢,那高耸的胸脯,那乌黑的长辫,无处不闪烁着青春的风彩,动人的魅力。她那张脸蛋也很美丽,是典型的瓜子脸。柳叶眉毛,希腊鼻子,樱桃小嘴,是那么楚楚动人。特别是那双黑珍珠似的大眼睛,在镜片里一眨一眨的,闪烁着聪慧之光。

  说实话,我的心被她搅动了,荡起阵阵涟漪。像她这么漂亮的女孩,我想任何一个男人见了都会心动的,除非他生理上有病。

  我们沿着一条鹅卵石铺成的小径,向林前深处走去。这里的确很美,古老的树木遮天蔽日,低矮的翠竹碧绿如玉,细雨中的荷花格外娇艳。偶尔一阵微风吹来,带着水光的枝叶滴略有声,如珠落玉盘。

  "唉,今天天公不作美,下雨了。"我无话找话说,想打破暂时的沉默。

  "下雨好呀,更有情趣。"她声音很美,跟她的人一样;也很甜,像是从蜜箱里发出的。

  "没想到这雨天,还有这么多人来游玩。"

  "也许是来领略《春夜喜雨》的意境。"

  "我还以为你今天不会来呢?"

  "我说过风雨无阻,不见不散,怎么不会来呢?我这人,向来说话算数。"

  "这环境太好了,怪不得杜甫能写出那么好的诗。"

  "哈哈……"她笑了,声音清脆悦耳,像百灵鸟在唱歌。

  "你笑什么?"我有些莫名其妙。

  "笑你说的这句话。"她笑得扭起腰来。

  "有什么好笑的呢?"我也忍不住笑了。

  好半天,她才忍住笑声说:"告诉你,安史之乱后,杜甫经过四年流亡生活,从同州经由绵州,才来到这不曾遭到战乱骚扰的、暂时还保持安静的西南富庶之乡——成都浇花溪畔。

  他身无分文,只有求亲告友,才在这里盖起了一座茅屋,作为暂时安居的栖身之所。环境哪有这么好。这些都是后来人培植的,经过了一代又一代。"

  如此一说,我才明白她嘲笑我的原因。

  "这么说,杜甫当年峋那座茅屋,肯定也早就不存在了。"

  "是的。别说茅屋,就是钢筋水泥楼,也经不起一千多年的风风雨雨。不过现在这里也有一座茅屋,那是现代人想象出来的。"

  蓦然之间,她发现我头上有了一层细小水珠。她立即将伞一举,柔声说:"你的头发都淋湿了,快进来吧,不然会感冒的。"

  我有些不好意思,没有走进伞里。

  她看出来了,不以为然地说:"这么大的人了,难道还害羞吗?要不就是男女授受不亲的封建思想在脑子里残余太深。"

  我嘿嘿一笑,什么也没说,依然和她保持着一定的距离,漫步向前。

  她忍不住一声嘲笑,然后向我靠近一步,用伞将我完全罩住。

  就在这一刹那,一种女人和香水的混合香味向我扑面而来,直往鼻孔里钻。我说了声"谢谢",感觉十分幸福,好像自己被她紧紧拥抱着。那红雨伞,就像是她的双唇。

  走了两步,她似乎灵感顿生,意味深长地说:"我们本来是生活在同一片蓝天之下的,现在却生活在一把红色雨伞里。你看,这世界又大又小,大得让我们素不相识,小得让我们彼此都能听到对方的心跳。"

  我由衷地赞叹道:"你不愧是个学中文的,联想力太丰富了,我简直有些望尘莫及。"

  "你别夸奖我,我只是随便说说。"

  "小姐,我还不知道你贵姓呢?"

  "姓高,名冰洁。"

  "这名字太好了,像一首诗,更像你这个人。"

  "我从不这么认为,名字只不过是一个人的代号而已。

  喂,李先生,我们今天谈得也不算少了,我忘了问你,你对我的感觉如何?"

  这是一个突如其来的问题,出乎我的意料,我连一点思想准备都没有,怎么回答呢?

  "感觉不错,比我想象的要好。"我如实回答。

  "真的吗?"她看着我,一副天真模样,十分可爱。

  "真的,完全是肺腑之言。"我微笑道。"高小姐,现在该我问你了,你对我的感觉如何呢?"

  "说真话,还是要我说假话?"

  "当然是真话。我这人最不喜欢假话。"

  "那就请你别怄气。"

  "不会,绝对不会。"

  "想我直言,你今我很失望,你并不像一个20来岁的小伙子,也并不英俊潇洒,反而很土气,像一件出土文物,也像一个农民企业家。"

  我被她的话震惊了,没想到她会如此坦诚。但我并不生气,因为她说的是真话。我心悦诚服地说:"你说得很对。"

  她做了一个漂亮的鬼脸,话锋一转,说:"不过我并不看重男人的年龄和外表,我很看重男人生命中最珍贵的东西……"

  我赶忙打断地她的话:"我身上有没有?"

  她说:"肯定有,如果没有的话,我早就走了。"

  我说:"你指的是什么?"

  她说:"无可奉告,只能意会不能言传。"

  时间过得真快,一晃就到了该吃午饭的时候。我肚子早饿了。看来"秀色可餐"是骗人的。我邀请她共进午餐,她没有拒绝,只说了声"谢谢"。

  我们在就近的一家很有名气的饭馆就餐,饭馆名字很长,叫老成都公馆菜——姑姑筵,很有意思的。出于礼貌和尊重,我叫她随便点菜,保证吃好。她拿着菜谱看了好久,才点了三菜一汤,说足以了。直到服务员把三菜一汤端上桌,我才发现都是一些很便宜的菜,只值10多元钱。这肯定不行。既然是我请客,那就要客人吃好吃饱,千万别丢我的面子,因为我是一个"有豪宅一套"的富翁。我立即叫服务拿来菜谱,豪爽地点了几个昂贵莱。

  我们像好朋友一样,一面吃一面拉家常,似乎是想作进一步的了解。我没有多说什么,只大概地讲了我苦苦追求文学的事。相比之下,她说得很多,讲她的家庭,讲她的人生,讲她的学业,还讲学校里的一些趣事。

  通过谈话,我终于明白她今天为什么为我如此节约的原因。原来,她是一个来自农村的大学生,家里很贫穷,现在读书全靠贷款。因为从小就受到经济的煎熬,所以懂得节约花钱。这是我没有想到的。要不是她亲自讲,我是无论如何也不会相信的,因为我很难从她那看起来很天真很愉快的外表里看到她心里的酸楚。

  饭后,我们没有马上离席,她在滔滔不绝地讲她最近构思的一篇散文。我看着她洗耳恭听,并不时地点点头。

  "李先生,你觉得怎么样?"

  "立意相当好,人情味也浓,挺感人的。"

  "你的评价给了我很大勇气,我一定把它写出来,然后再请你指点和批评。"

  "拜读一下是可以的,不敢指点和批评。"

  "李先生,我准备毕业后在成都找一份工作,你觉得怎么样?"

  "完全可以。成都是一个文化氛围很浓的城市,很适合你生存和发展。"

  "我的最终理想是当一个作家,也像你那样从事专业创作。"

  "很好,很好,到时候我们可以相互学习,相互勾通。"

  "你信不信我发表过多篇散文?信不信我是一个大学生?"

  "相信。怎么不相信呢?"

  "不过'多篇'这句话有水份,迄今为止,我只发表了四篇散文,四篇是不能说成'多篇'的。"

  "没什么,我可以理解。正如你所说的,现在的征婚启示都有水份。"

  "我怕你怀疑我,我今天把这些东西都带来了。既然带来了,我还是拿给你看看。我向来认为,人与人之间,不应该有半点虚伪,特别是……"

  她不说了,从随身携带的一个黑色人造革包里拿出她发表的散文和学生证递给我。我没有接,而且推了过去,说用不着看,我相信你,你是一个很诚实的女孩。

  走出饭馆,我准备与她分手了,因为我觉得我和她结婚毫不现实。可是她却一点也没有分手的意思。

  "李老师,现在又去哪里?"看得出,这句话她是鼓起勇气说的,面颊一阵阵发红。

  "我想回家了。你呢,是回学校?"我假装疲倦地伸了一个懒腰。

  "我想到你家去看看,不知你是拒绝还是允许。"她脸色一下红了,像喝了酒。

  "是不是想验证一下这一套豪宅?"我忍不住笑道。

  "不不不,是无聊,想打发下午的时间。"她说得轻描淡写。

  "如果不影响你的什么,如果你不戒备什么,欢迎光临。"

  来到我家,高冰洁的表情就像刘姥姥初进大观园,既感到震惊,又感到好奇。她坐在沙发上,一边抚摸沙发一边问我:"这是真皮沙发吧,是牛皮还是羊皮?"还没等我回答,她又盯着电视机说,"看来这是34英寸的彩电吧,好大哟,犹如看小电影。这茶几也很高档,一定是红木做的吧?哇!这地板好美哟,是花岗石还是大理石?好像是大理石,对,这花纹就像,花岗石好像没有花纹。大理石就是比花岗石好看,那花纹就像是水墨画。"

  我给她泡了一杯绿茶。她还没来得及喝就站了起来,说参观参观我的卧室、书房、卫生间、厨房。我自然陪着她,不仅仅是出于礼貌,而且也十分乐意,觉得她天真得非常可爱,就像淘气的小妹妹。

  "哇,你的卧室布置得太漂亮了,好温馨哟,我好像马上就有想睡觉的感觉……这间卧室也不错,但没有主卧温馨。哇,你这书房好气派哟,这书柜好高哟,我还从没见过这么高的书柜。你的书还不少呢,中外文学名著仿佛都有。这书桌好大,比我们学校校长用的那个还大……"

  参观完毕,我们来到客厅。我问她看不看电视?她说不看。又说看电视会影响我们聊天。

  "这客厅好大哟,简直像个舞厅。"

  "那你就跳一曲吧,我给你放音乐。"

  "你跟不跟我跳?"

  "我不会跳。"

  "是真的吗?这年头,不会跳舞的男人很少。"

  "我就是那少部分中的一个。"

  "你不会跳,我一个人跳没什么意思,还是聊聊天吧。"

  "你这房子好大哟,我们学校教授住的房子也没有这么大,更没有这么豪华。说实话,我到成都两年,还是第一次到这么豪华的家里来做客,所以感触很深……"

  "你又感触了什么?"

  "我在心里发誓,一定好好奋斗,争取将来在成都也有这么一套豪宅。"

  "你能实现,因为你年轻,又有学历。"

  "不过也不是那么容易。现在不好挣钱,我当家庭教师已经尝到过了。"

  "是的,现在远不如那些年好挣了。那些年,也就是改革开放开始那几年,钱相当好挣,很多人都发了财。"

  "……李老师,你家难道就只有你一个人?还有的人呢?"

  "只有我一个人。我无兄光弟,无姐无妹,父母都死了。"

  "那你太幸福了,一个人竟然拥有这么一套豪宅,怪不得你要征婚,原来是寂寞得无聊,想找个老婆作伴是不是?"

  我没有回答,不以为然地笑了笑。

  后来,我把话题转到了文学上,想听听她这个新生代文学青年对当代文学的理解,对当今文坛"炒作风"的看法,以及对金庸热的见解和感想。

  她的见解对我来说简直是耳目一新。她说,当代文学与现代文学相比,一个最大的变化是主题思想的变化。现代文学多数趋于说教,那就是特别强调主题思想,让读者从中学到什么。而当代文学的一个突出点,是让读者消遣。而且写法上也有很大的变化,那就是故事性强,节奏感快。她说当今文坛的"炒作风",是时代的必然产物,是文学走向衰落的有力见证,因为不炒作,读者就会不买帐。一部文学作品如果失去了读者,其经济效益和社会效益也就可想而知了。谈到金庸时,她说,金庸热的现象不足为奇,是因为中国人的文化素质太低了。一般文化素质很高的人,从不读金庸的小说,甚至连有关的电视剧都不看。那种成人童话,有什么看头呢?就像我们长大了,不再看安徒生童话一样。她说她比较赞同文学批论家何满子的观点,他说琼瑶和金庸不过是复活中国古代小说中最粉饰生活,最背离人生,主体人格最显弱,艺术结构最模式化。

  天渐渐黑下来,客厅里的光线也愈来愈暗。

  "时间不早了,"高冰洁慢慢站起来说,"我该离开了,还要回去赶晚自习,今天的谈话就到此为止吧,咱们改天再聊。"

  "晚饭吃了走吧,很快,冰箱里什么东西都有,拿出来煮就是了。"我真心实意地挽留她。

  "不,学习还是重要。"她说得很坚决。

  我起身送她,准备把她送到花园的大门口,然后再叫辆出租车。

  她走了几步,恍然记起什么似的,突然转过头看着我:"还有件重要事情差点忘了……"

  "什么事?"我立即驻足。

  她眼睛若有所思地眨巴着,久久不说一句话。过了好一会儿,她才一字一句地说:"李老师,我被你录取了吗?"

  我无可奈何地摇摇头,长叹一声说:"你是一个好女孩,可是你不适合做我的妻子。"

  "为什么?"

  "毫不现实,因为我需要一个马上可以结婚的女人。你也知道,我的年龄也实在不算小了。"

  "难道你就不可以耐心地等我两年吗?"

  "等是可以的,但我不知道两年后我是不是能够如愿以偿。"

  "绝对能够如愿以偿,不信我可以写血书。"

  "可我却是个现实主义者。"

  "两年后的事也可以在现在变成现实啊,我每个周末都回来,要不,两三天回来一次。"

  "不,我坚决不同意。"

  一阵沉默。

  一阵良久的沉默。

  "李老师,要是我现在给你做情人呢?"

  "我依然不同意。我不希望我游戏人生,更不希望你游戏人生,因为游戏人生就是游戏自己,游戏自己就是玩火烧身……"我还没说完,她就扭头走了,"砰"的一声关上我的门。我好像还有什么话要对她说,赶忙出门追她。她很快就下楼了,朝大门气冲冲地走去。

  "冰洁,你等等……"我心里似乎有种失落感,双腿迈得格外快。

  可是她连头也没回。

  当我追到大门口时,她却乘坐一辆出租车走了。门口的保安告诉我,她在伤心地流泪。

  多么好的女孩,像一朵云那样从我身边飘走了,我只有在心里默默为她祝福:一路走好。默默为她祈祷:上帝保佑。

  继续阅读 [[第02次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  她是一个地地道道的中国人,却有着一个日本女人的名字:山田惠子。她承认这不是她的真名,是她自己给自己取的,觉得日本女人的名字好玩,也真好听,所以就取了。她说人们都叫她惠子,从不叫她的真名,好像惠子就是她的真名。 
  但她心里明白,惠子不是她的真名,只不过是她的另一个代号。

  一个名字,在电话里呼叨这么久,我真有些不解。

  惠子说她是经营服装生意的,在繁华的青年路有一个黄金口岸,批发兼零售,生意一直很好。

  惠子还说她很有钱,是个典型的富姐。正是因为自己有了钱,她才不敢轻易接受男人们赤裸裸地求爱,显然,他们都是盯着她的钱来的。她说,真正的爱情,是应该排除物欲和肉欲的,像柏拉图式的恋爱。如果实在排不除,也应该在物质上男女平等。作为一个女人,她是不愿花钱养一个不能创造财富的男人,尽管这个男人英俊待洒,雄性十足,比伟哥还伟哥。

  惠子约我下午6点见面,因为那时她才有空。还有,六,有六六大顺的意思。她说她真诚的希望她的婚姻大事从6点开始,颂顺利利步入那渴望已久的甜蜜洞房。

  下午6点,我准时来缘生缘大茶楼。这地方是她选择的。

  她说她很喜欢线生绿三个字。

  大茶楼座落在府南河边,风景很美,碧水,绿树,草坪,小桥,高楼。

  惠子也很难时。她是打的来的,一下车我就迎了上去。

  她的头上的确戴着一顶白色贝蕾帽。她是特意给我戴的,便于识别。

  看来惠子很有社交才能,我还没有握手的意思,她就把手伸了过来,一把紧紧握住我的手说:"你好你好,真是今生有缘。"

  我赶忙回应:"你也好,惠子小姐。"

  她微微一笑:"我们上楼吧,但愿这茶楼给我们带来好运。"

  我立即点头:"但愿如此。"

  说实话,惠子长得很美,她特别性感。但给我的感觉有点不舒服,就像在一道昂贵的工艺莱里吃了条毛毛虫,它卡在喉咙里,想吐吐不出,想吞吞不进。

  她那张脸蛋本来就是够漂亮的,她却要涂脂抹粉,而且又搞得太浓,像是从脂粉堆里钻出来的,跟舞台上的演员差不多。为什么不"清水出芙蓉,天然去雕饰"呢?也许她根本就不懂。我想。

  再就是她的乳房丰满得惊人,圆鼓鼓的,好像一不小心就要从她那开得很低的领口里蹦跳出来。实际上,她那不是丰满了,而是雍肿的代名词。这说明一个问题,任何东西都应有一个限度,包括人们公认了的美,一旦超过了这个限度,再美的东西也不美了,甚至感到恶心。

  另外,她的衣着她叫人看不顺眼,那黑色羊皮超短裙实在是太短了,短得让人一眼就能看到腿根。我想,也许她是想显示自己的双腿,因为它太美了,是那么白皙,是那么修长,是那么匀称,是那么丰腴,简直就是魔鬼之腿。

  我们来到临河的一个雅座间,她一个优雅手势,叫我"请坐"。我刚坐下,她就说话了:"今天我请客,因为我是老板。"

  "这怎么行呢?是我约的你呀!"我忙说。

  "我已说过,我是老板。"她微微笑道,"你们文人靠爬格子挣两个钱,还是挺辛苦的,今天你就别客气了。如果今后还有机会的话,下次你请我吧,我保证不客气。"

  "好好好,我听你的。"

  话音刚落,一个服务员走了进来,是个小伙子,很有礼貌地问:"请问先生小姐,你们喝什么茶?"

  我正打算问他有什么条,惠子却说话了:"来两杯特级龙井绿茶。"

  小伙子说:"这茶很昂贵,扣元一杯……"

  惠子有些不耐烦了:"50元就50元嘛。你是不是以为我没钱,告诉你,小伙子,就是500元一杯我也喝得起。"

  小伙子立即意识到自己的话惹怒了她,忙说:"小姐,我不是这个意思,你理解错了……"

  惠子更加不耐烦了,右手一挥:"去去去,快去给我们端来吧,别说那么多了。"

  小伙子悻悻而去。

  惠子从随身携带的挎包里掏出一包红塔山,问我会不会抽烟?我说我有。她点燃一支,深吸几口,好像才把刚才的不愉快驱走。我也点燃了一支。我没想到她会抽烟。从她抽烟的姿式和手指上的黄色来看,她抽了好几年了,而且烟瘾不小。

  茶端来了,很香很香,犹如惠子身上的法国古龙香水。

  她把怀里的挎包放在茶几上,架起二郎腿,开始跟我谈话。都是她询问我,我-一回答。

  谈兴正浓时,她挎包里的手机响了。她打开手机问是谁?

  当她知道是难后,语气一下亲切起来,说她也很想他(她),真的,都好久不见了。现在不行,现在她正踉一个朋友在喝茶聊天,以后再说,随时联系,她的手机整天开着。

  惠子通完电话,继续着刚才的话题:"你那房子花了多少钱?"

  "40多万,包括装修。"

  "那你现在还有多少现金?"

  "没有多少了,只是够喝稀饭。"

  "这么说,你还没有我的钱多。"

  "肯定。我怎么能跟你比呢,你是老板啊。"

  她忍不住笑了。

  她把烟蒂放进烟灰缸,喝了一口茶,正准备继续问下去时,手机又响了。

  或许是怕我听到,或许是因找在场感到不方便,这次她没有坐在那里与人通话,而站起来到门外去讲。

  我越来越怀疑她的身份,总觉得她不像个老板。那她又是干什么的呢?我百思不得其解。

  大约过了五分钟,她才回到桌边,抱怨道:"这些朋友真烦,问我有没有空,若有空的话,就去打麻将。唉!尽是一些无聊的事儿。"

  她似乎说干了嘴,咕噜咕噜的把那碗茶喝完了,我马上给她斟满。她点燃一支烟,又开始言归正传了。

  "说实话,我对你还是挺感兴趣的。看得出来,你是个干事业的人,而且胸有大志。这样的男人,我是最敬佩的。"

  "我也很敬佩你,惠子小姐,你是女中豪杰啊!"

  "谢谢你的抬举。女中豪杰谈不上,混饭吃而已,青年路像我这样的女老板多如牛毛。"

  "但她们不一定有你能干,财富也不一定赶得上你。"

  "对,你说得很对,事实也的确如此。不过,我比她们要累,因为她们几乎都是两口子,而我只是一个人,所以,我想放弃经商,找个宁静的港湾歇歇,不知你那港湾要不要我这只船停靠?也不知我们的缘是否还能生缘?"

  "现在还说不清楚,因为爱情不是嫖客和妓女的关系,它需要时间去慢慢了解,需要真爱从心底涌起。"

  说到这里,她的手机又响了。不知怎的,她像没有听见,就让它响,连接的意思也没有。她只说了声真烦,然后开始喝茶,抽烟。直到手机不再鸣叫,她才完尔一笑,看着我饶有兴趣的地问:"你这把年纪了,真的还没结婚?"

  我嘿嘿一笑:"难道你还不相信?"

  她点点头:"是的。肯定只有傻子才会相信。我不相信你为了事业而牺牲了结婚。"

  我说:"既然你不相信,那我的解释也就是多余的,只好不解释了。"

  她若有所思地点点头,自言自语地说:"真有意思,天下竟有这种人,为了事业万不要老婆。哼,真是大千世界无奇不有。"

  我喝了一口茶说:"这有什么奇怪的呢?天下这样的人很多嘛,岂止我一个。"

  她笑道:"不过在现实生活中,我好像还是第一次听说。

  喂,李先生,没有老婆的日子寂不寂寞?没有老婆的夜晚难不难熬?"

  我说:"肯定寂寞,也肯定难熬。不过习惯成自然,渐渐地就不感到寂寞和难熬了。"

  她说:"婚姻实际上只是一个合法的形式。你至今还没结婚,是不能证明你从没过过性生活。李先生,你肯定有情妇"我说:"没有没有,绝对没有,我敢向上帝保证。"

  她说:"你别隐瞒吧,我很了解男人那容易冲动的生理现象,不,说错了,我只能说我很了解男人的寂寞和孤独。一个男人有情妇,这是很正常的事,生活需要嘛。很多有妻之夫都有情妇,何况你一个单身汉。其实,这些都是可以理解的,并不是什么大不了的事。"

  我说:"我知道这些,可是我不能违心地说我有啊,因为那是自欺欺人。"

  她笑道:"这么说,你还是个老处男、童子身哟?"

  我底气很足地说:"完全可以这样说。"

  "鬼才相信。"

  "不信我也没办法。"

  "可我有办法,我要亲自检查。"

  "可以可以。"

  "今天晚上我就要检查,也顺便到你家去看看,你同意吗?"

  "同意。"

  我并不把她说的话当真,以为她是在开玩笑。通过谈话我发现,她也喜欢开玩笑,而且也很老练,是个见过很多世面的女子,性格极其开朗,像个女强人。也许她就是一个女强人。找想。

  看得出来,惠子也是很爱美的人。谈话间,她掏出一根丝绸手绢不时修饰着红艳艳的双唇,力求保持原样。

  天渐渐黑下来。河边的路灯亮了。一对对情侣在悠闲地散步。

  我说:"该吃晚饭了。惠子小姐,你想吃什么,今晚我作东,一定让你吃好。"

  她说:"在哪儿吃呢?"

  我说:"你选择吧。"

  她说:"我不想在街上吃馆子了,这些年做生意,老是吃馆子,都把我吃腻了。我想到你家去吃一顿家常饭,你不会拒绝吧?"

  我神经一下紧张起来,似乎害怕她去检查我的童子身,好半天没有回答。

  惠子好像看出了我的紧张,噗嗤一声笑道:"你别紧张,我不会检查你的生命之根。那是开玩笑,你别当真,我又不是医生,怎么检查呢?"

  我敢忙掩饰:"不不不,我是在想今天晚上吃什么。"

  她说:"随便什么都行。好,就这样决定了。我去趟卫生间,然后就离开这里。"

  也许是贝蕾帽的帽沿遮挡了光线,她把它揭下来,挂在衣架上,又在包里拿出纸,上卫生间去了。

  不戴贝蕾帽的她,我觉得更漂亮,就像电视剧《还珠格格》里的某位影星。

  一晃坐了两个小时,我微微感到有些疲倦。我慢慢站起来,长长地伸了个懒腰。

  唉呀!不好了,我的手把惠子的皮包碰到桌下了,把包里的东西全倒了出来。我赶忙弯腰去拣。完全是出于一种好奇,我一边拣一边看,想知道是些什么东西。

  除了一个钱夹,一小包手纸,一个化妆盒,一瓶法国古龙香水外,我还捡到了两样令我震惊的东西——一包开了封的避孕套和一个洗阴器。

  那避孕套和洗阴器,像一种无声的语言,在向我默默告诉惠子的身份和职业。

  我浑身一阵颤抖,认为幸亏发现得早,要不……

  那个皮包,实际上是她心里的秘密,可我一不小心把她捅破了,让我恍然大悟。原来,惠子竟是这样一个人。

  "千万别与这种人来往!"我一边告诫自己,一边把她的皮包放回原处,然后匆匆格了,像躲避瘟神一样,似乎再不赶快离开,我就会染上艾滋病。

  说实话,我也非常气愤,心里有一种被欺骗的感觉,还有一种被侮辱的感觉。

  害怕惠子给我打电话,所以我很晚才回家,一直在府南河边走走停停,停停走走,并非欣赏夜景。

  回家还没坐上两分钟,电话就响了。凭直觉,一定是惠子打来的。我不想去接,就让它响。

  片刻后,我又否定了我的直觉,也许是其他女人打来的。

  这几天,不断有应征者打来电话询问有关事宜,只是没有开初那几天多了。

  正是由于这种猜测,我才拿起了电话。

  "喂,请问你是谁呀?找哪位?"我的声音十分平静。

  "我是惠子,就找你个东西!"惠子愤怒地吼道,好像要从耳机里钻出来一口把我吃了。

  "你个东西太不像话了,怎么扔下我走了呢?嗯?你是不是个人?还有没有人性?喂,你怎么不回答呢?"

  "我有点急事,来不及给你打招呼……"

  "呸!你是撤谎。喂,你知不知道,老娘现在还等在这里呢,等得好苦好苦,一连给你家打了好多次电话。喂,你还来不来?"

  "夜这么深了……"

  "那我就到你家来……"

  "别来了,你来我也不会给你开门。"

  "为什么?"

  "最好是问你自己。"

  "这是什么意思?你是不是有神经病?难道我们的事就这样算了吗?"

  "就这样算了,因为我不配你,惠子小姐。"

  "呸!你得说出真正的理由,否则我不会放过你的。"

  "好吧。我怀疑你的身份,是你皮包里的避孕套和洗阴器告诉给我的。"

  "哟,原来才是为这个。你是把老娘看成妓女了?告诉你,那是我帮一夫妇买的,避孕套是男的用,洗阴器是女的用"别解释了,我不想听这些。"

  "你这个人他妈的太没修养了,也太无道德了,怎么背着我翻一个女人的包呢?你知不知道你侵犯了我的人权?侵犯我的隐私?嗯?老娘要告你!"

  "美国政府常常标榜自己十分重视人权,要告你就告到美国去吧。"

  "你真是他妈个无奈……"

  接着是一连串脏话,我实在听不下去了,愤怒地挂断了电话。可是她很快又打来了,我却再也没去接,就看它响到什么时候。

  继续阅读[[第03次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  电话一拨就通。 
  "喂,请问找谁?"一个女人甜甜的声音在我耳边响起,异常温柔,像从浪漫的被窝里发出的,让我心施摇荡。

  "我找你,小姐,你的电话号码是不是6006237?"我试探地问,害怕打错了。

  "你没有打错。请问先生你是谁?"她的声音更甜了,甜得让人发酥。

  "我是征婚的李先生……"

  "哦,原来才是李先生。我还以为你不会与我联系了呢?

  喂,李先生,你是不是约我见面?"

  "正是此意,不知小姐意下如何,是否肯赏脸?"

  "我不能马上回答你,我要问你一些问题后才能作决定。"

  "那你应问吧,我一定老实回答。"

  "好。李先生,我姓梅,梅花的梅,人们都叫我梅小姐,你也就这以叫吧。老实告诉你,我有梅花的性格,那就是不畏严寒,不惧风霜,不怕冰雪,依然傲然开放,并发出淡淡的幽香,给冬天注入春的活力。可是遗憾的是,我不像梅花那么美丽,甚至还不如三月的萝卜花。为此,我想问李先生,你的择偶条件是不是首先强调的外貌美?如果一个女人外貌不美,却才华出众,能干异常,会不会打动你的心?换句话说,你会不会把她发展成你的妻子?"

  我毫不犹豫的回答:"外貌美仅仅是一方面,不是最重要的,最重要的是温柔。善良、贤慧、重感情,具有中国妇女传统的美德。这些我已在征婚启示上说清楚了。如果这个女人像你说的那样,外貌不怎么美丽,或者说长得十分意外,但能干异常,我也会选择的,因为外貌的美丽是短暂的,它会随着无情时间的流逝而变老变形,就像花朵,一旦错过花期就会枯萎一样。"

  梅小姐大加赞赏:"你说得太棒了,不愧是个作家。事实也的确如此,无情岁月可以改变一切,唯有爱你的人的那颗心却无法改变,反而会随着时间的流逝变得更真更纯,如陈年老窖,越久越香。李先生,我要告诉你,你千万别被女人的美丽蒙住了自己的眼睛。记得苏霍姆林斯基说过这样一句话:花儿第一眼看来是美丽而迷人的,但它却可能藏有毒素。还有一句格言,它说美的容貌不一定就赋有美的灵魂,粗糙的贝壳却可能孕育着珍珠。"'我也立即附合:"还有一句格言说得更好:善良的心肠比美丽的外衣更加重要,纯洁的灵魂比成套的高级家具更加可贵,勤劳的双手比金钱和地位更有价值。"

  有关这方面的话题我们探讨了很久才结束。梅小姐约我翌日上午10点见面,地点在太平洋咖啡屋。我不知道此地,她不厌其烦地给我说了一遍又一遍,直到我完全记住为止。

  她说她手里会拿两朵玫瑰花,我一看就会认出来。

  我按时赴约,在太平洋咖啡屋外耐心恭候。

  开初我是坐在那里等。等了好一会儿后,我开始踱步,一边踱步一边看表,心里有点发慌,埋怨她怎么还不来。我很想跟她联系,问问情况,可是她没有BP机,也无手机。我给她家里打了好几次电话,可是一直没人接。

  时间过得真快,一晃就到了12点。我多了整整两个小时,也不见两朵玫瑰花粉搬来迟。

  我并不怎么失望,反正我还有的是小姐约会,不过心里很不是滋味,有一种被捉弄被欺骗的感觉,觉得她有些不可思议。是啊,答应跟别人约会,却又不按时赴约,让别人苦苦等待两小时,太不讲信用了,她太没修养了。

  也许她是个神经病人!我想。

  我在街上胡乱地吃了一碗刀削面,然后就匆匆回家了。

  坐在按发上,心里那种被捉弄被欺骗的感觉越来越浓,渐渐变成一种怒气,很想对她大骂一顿,骂她个狗血淋头。

  电话通了。

  梅小姐一听是我的声音,忙说对不起对不起,今天让你等久了。声肯还是那么甜,让我怒气顿消。

  "你怎么不按时赴约呢?"我开门见山,完全是质问的口气。

  "谁说我没按时赴约?"梅小姐反问道。

  "那你在哪里?我怎么没见到你呢?"

  "我一直坐在咖啡屋外的一株夹竹桃树下……"

  "你不是说在门口见面吗?"

  "可是我实在没有那个勇气。"

  "为什么?近在咫尺怎么不见面呢?"

  "因为我长得很丑。我怕你看不上我,免得我伤心流泪,所以不打算见你"。

  "我不是跟你讲过吗?我并不很看重女人的外貌。"

  "可是我不相信你的话,因为男人在这方面几乎都爱说谎,往往嘴上不在乎,其实心里非常在乎。"

  "我也许不是你说的那种男人。"

  "也许。但愿如此。"

  "那我们还见不见面?"

  "我看就算了,因为我这人有自知之明,对没有希望的事从不报什么幻想。李先生,今天的事望你理解。最后祝你找个称心如意的妻子,拜拜。"

  梅小姐说完,就挂断了电话。

  继续阅读[[第4次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  竹小姐自称是个医生,5年前毕业于成都中医药大学,是学妇产科的。毕业后,她被分配到市妇幼保健院工作,主要是接生。两年后,她因一次医疗事故被迫辞职,当了个体医生。 

  我问她是一次什么样的医疗事故?她总是避而不答,说往事不堪回首,反正她是应该负一定责任的。

  我问她现在后悔呢?

  她说世界上没有人卖后悔药,所以她不后悔。还说,即使后悔,也不起什么作用,还不如勇敢的面对现实。接着她说她现在活得很好,一是非常自由,二是经济收入也不错。

  说到这里,她十分得意地笑道:"真是太自由了,整天无拘无束,没有人来管你,想休息就休息,想工作就工作,想打麻将就打麻将,而且收入还相当可观,每月纯赚两三千元,比在市妇幼保健院工作强两三倍。"

  我有些怀疑地问:"每月真的能赚这么多钱片竹小姐不以为然地笑道:"我哄你干什么?告诉你,每月仅给打工仔们打胎、引产,就能赚一两千元,然后再治疗一些性病,就非常可观了。告诉你,最有意思的是治疗性病,这些年搞改革开放,卖淫嫖娼现象愈演愈烈,从而成了性病滋生。

  繁衍的一种主要渠道。现在,性病患者越来越多。但说句老实话,大多数性病患者都是很轻的,并不严重。性病,通常是指梅毒、淋病、花柳病、软体下瘠、淋巴肉芽肿等,目前在我国发现的基本上是淋病。相比之下,淋病是很好医治的,但治愈后仍有复发或重新感染的可能。由于患者往往不懂医学,或者说不懂性病,所以我常常利用这点去掏他们腰包的钱。由于性病属于个人隐私,他们似乎也不在乎花钱,出手十分大方,常常是医生要多少患者就给多少。在治疗过程中,我常常把病情说得非常严重,说这病再不医治,可能会转为艾滋病,十天半月就会要命。或者说这病若不加紧治疗,生殖器就会渐渐萎缩,最终失去性功能,这辈子别再想寻欢作乐。告诉你,有些性病几十元就能治好,我却要收好几百元,甚至上千元……"

  我忍不住打断她的话:"你有点像有搞诈骗。"

  竹小姐却满不在乎地说:"这是非常正道的职业,怎么会说成是搞诈骗呢?如果你一定认为我是在搞诈骗,那么所有的医院都是在搞诈骗了。李先生,你的观点显然不对。我是靠我的智慧去挣钱,不欺不诈,不渝不抢,有正而八经的营业执照……"

  我笑道:"这么说,你是在心安理得地挣钱罗?"

  分小姐回答:"比起那些贪官污吏,她的确是在心安理得地挣钱,而且也花得心安理得。"

  竹小姐谈了很多才言归正传,她说明天没时间约会,上午有个打工仔要来做人流,已经怀孕两个多月了,下午有个性病患者要来就诊。她说这是挣钱的机会,决不能放过。进一步解释说,现在挣钱相当难,一旦有机会就要抓住。

  她提出明天晚上8点到我家来见面。我却婉拒了,说这样恐怕不好。她问是不是觉得孤男寡女的?我毫不掩饰,说是这样。她却轻描淡写地说,我一个女人都不在乎,你一个男人在乎什么?而且又是正当往来。

  想想也是。

  我只好答应了她。

  竹小姐是个非常守时的人,8点正准时按响了我家的11铃。

  门开了,我首先闻到了她身上散发的那种幽幽体香。是那种成熟女人特有的香味,很香很香,如八月桂花。

  竹小姐长相一般,也就是说不丑也不美,但很有气质,是女人常有的那种高贵和矜持。她约莫30岁,身体发育得十分匀称,凸凹得非常合理。她衣着朴素,上穿一件白色体恤,下穿一条黑色短裙,显得别有一番风韵。

  "李先生,"竹小姐环视一眼客厅说,"我还以为你是在吹牛呢,没想到你果真有一套豪宅,看来还挺宽敞,多大面积?

  儿室见厅?"

  我一边请她入座,一边回答:"一百五六十个平方,四室两厅两卫。看来,你到我家是醉翁之意不在酒。"

  竹小姐抿嘴一笑:"是的,有这方面的意思,毕竟耳听为虚。"

  我忍不住说:"我这人从不说谎,也从不夸大其辞,是怎么就是怎么。"

  竹小姐轻轻坐在沙发上,随便架起二郎腿,看着我的眼睛说:"我十分喜欢你这样的人。我最讨厌吹牛的男人,比如大陆首骗牟其中,他吹牛不打草稿,两度被评为中国改革风云人物,还荣登中国《财富》超级富豪榜。他的截断雅鲁藏布江的设想,现在想来真是可笑,简直就是个成人童话。"

  "请问竹小姐,你是喝茶还是喝饮料?"

  "有咖啡吗?"

  "对不起,没有那洋玩意,我从来就没喝过。"

  "告诉你,现在喝咖啡是一种时尚,就像女人喜欢隆胸一样。"

  "可是我不是一个追赶时尚的人。在我看来,茶要比咖啡好,因为它是中国人的传统。"

  "既然如此,那你就给我泡一杯茶吧,最好是绿茶,最好是毛峰。"

  "可以可以。"

  茶泡好了,我们开始聊天——西部大开发、性病、沿海经济走向、当代文学、俄罗斯总统竞选、台湾局势、中印关系、柏拉图和他的精神恋爱、艾滋病的曼延……

  竹小姐饶有兴趣地聊着,不慌不忙地,好像是在故意拖延时间。

  一晃10点多了,她仍在津津有味地聊着,一点儿也没走的意思。我无可奈何,只好陪着她聊。显然,我的话没有以前多了,只是偶尔出于礼貌应合两句,成了真正的配角。但我并不讨厌她积觉得她有些罗嗦,婆婆妈妈的,跟喜欢唠叨的老太婆没什么两样。

  大约11点后,她才话锋一转,开始进入正题,一本正经地问:"李先生,你是生于哪一年?"

  我如实回答:"1958年,今年整整42岁了。"

  竹小姐说:"这么大把年纪了,你真的还没结过婚?"

  我说:"真的,我从不撒谎。"

  竹小姐说:"没有女人的夜晚真难熬啊,这些年你是怎么度过的?"

  我说:"难熬是有点难熬,但久而久之也就习惯,习惯成自然,渐渐也就不觉得了。"

  竹小姐说:"在那些难熬的夜晚里,你想不想女人?"

  我说:"不想,因为想也是别想,何苦呢?"

  竹小姐说:"没有结婚的男人,并不等于他没有性生活史。

  请问李先生,你有过吗?"

  我说:"从没有过。说句心里话,我至今也不知道女人是什么味儿。"

  竹小姐说:"我不相信你的话,也不相信天下还有这样的男人。"

  我说:"信不信全由你。"

  竹小姐说:"你做过遗精的梦没有?"

  我说:"做过,好像每月要做一两次。"

  竹小姐说:"女人味儿并不神秘,就跟你做的那些梦一样。"

  我不好意思地笑道:"我不知道。"

  竹小姐的表情却非常严肃:"你真的没有性生活史?"

  我有点不耐烦了:"信不信由你,说多了没用。"

  一阵沉默。

  竹小姐微整柳眉,显然是在沉思什么。良久,她才认真地问找:"称是不是生理上有毛病?"

  我嘿嘿一笑:"胡说。"

  竹小姐决不罢休,继续问道:"你是不是性冷淡患者?"

  我依然一笑:"胡说。"

  竹小姐大有打破沙锅问到底的意思,继续说:"你是不是见了女人没什么冲动,那东西连一点反应也没有。它即使有反应,是不是举而不坚?是不是勃起无力?"

  我的脸一阵发红,不好意思地说:"你别问了好不好?我觉得自己已经无地自容了,恨不得一头钻进地缝。"

  竹小姐哈哈一笑:"我还从没见过像你这样害羞的男人。

  其实,性是一个神秘而永恒的话题,也是一个享受生活的话题,我们不必谈性色变。据找初步了解,你也许是肾亏引起的。常言道,十个男人九个亏。如今,肾亏几乎是成年男性共有的隐私,一个不愿启齿的话题,因而世无能无疑更是男性身上最沉重的枷锁,人人避之唯恐不及……"

  我有些不耐烦了,打断地的话说:"你别再说了,我真的没病,一切正常得好。"

  竹小姐似乎没有听见,继续说:"要么你就是前列腺炎引起的。步入中年,很多男人会出现尿频、尿急、小便无力、余沥不尽等症状。可千万别轻视这些症状,因为这属于前列腺炎。

  前列腺炎不是大病,也不是什么小病,但它直接会引起阳痿、早泄、免疫功能下降……"

  我根本就没心思听她讲话,不耐烦已经变成了讨厌。我点燃一支烟,向阳台走去,板着一副冷森的面孔。

  她自讨没趣,随即追到阳台上,看着我有些不解地说:"你怎么可以这样呢?我都是为你好啊。说实话,我即使同意嫁给你,也不希望你是个阳康患者。"

  我有些没好气地说:"我已经给你说过多次了,我生理正常得很,根本没什么毛病。"

  她扫了一眼迷蒙的夜空,看着我无奈地说:"可是,口说无凭呀!我怎么相信呢?你又再三否认你没有性生活史。"

  "那你到底要怎么样?"我的声音很大。

  "我想亲自检验。"竹小姐坚决地说。

  "怎么个检验法?"

  "我要与你同床共枕。"

  "好,我同意。"

  不知是出于一种什么心理,我就这样慷慨地答应了。

  我怎么也没想到世界上会有竹小姐这样开放、浪漫的女人。

  她的确很开放很浪漫,简直令我瞠目结舌。她叫我跟她一起洗鸳鸯澡。我坚决不同意,说那样太羞人了,实在不好意思。她笑骂我错变了男人,说一个大男人怎么会像女人那样羞羞答答的呢?我什么也没说,只感到脸一阵阵发热。

  她再一次邀请我洗鸳鸯澡,说这样很浪漫很刺激很幸福很欢乐,还可以亲自把我包皮里的污垢洗干净。我依然说不,说自己长的手,不需你洗。

  她见我顽固到了极点,也就不再坚持,吩咐我一定要用香皂把包皮翻来复去洗干净,然后就进了浴室。

  我坐在客厅里一边悠然抽烟,一边静听她洗澡的淋浴声,心里感到十分幸福。像这样送上口的肉,我平生还是第一次遇到,哪有不吃的道理。如果不吃,在她眼里,我肯定生理上就有毛病了。

  烟雾氛红袅袅地升腾着,犹如我十分活跃的思绪。我的思绪的确很活跃,在男女之事上发挥着丰富的想象,如一只精力充沛的蜜蜂,在五颜六色的鲜花丛中飞来飞去。

  不一会儿,浴室里的水声没有了,取而代之的是她的歌声。她是在哼,听不出是什么词儿,但能感到她心情十分舒畅。

  浴室的门开了,我敏感的感觉到她向我走来了,迈着轻盈的脚步,面带一丝甜甜的笑容。

  她的确是在向我一步一步靠近。当我抬起头来时,她已经站在我的面前了,只穿了一条巴掌大的三角裤,只戴了一副十分精美的乳罩,整个胭体洋溢着无穷无尽的青春活力;肌肤如美玉般纯净,在柔和的灯光下烟烟生辉;面颊如玫瑰般红润,那明亮的双眸,犹如两地盈盈秋水;那十分丰腴的三角区,闪烁着黑珍珠的光泽,是那么美丽,是那么诱人。

  "怎么样,够性感吧?"竹小姐完全是一副娇羞模样。

  "你太美了,竹小姐,我简直不敢相信这是现实,一切恍若梦中。"我有些魂不守舍地说。

  "快去洗澡吧,然后我带你一起畅游爱河。"

  "好,马上就去。"

  "一定要把包皮翻来复去洗干净。"

  "好,一定听你的。"

  说实话,我已经没有心思洗澡了,洗澡只不过是一种形式。我的心思全部集中在了竹小姐的身上,她那动人的洞体总是在我眼前晃来晃去,在我脑子闪闪烁烁。我体内沉积多年的原始蛮力,被她搅动得火烧火燎,搅动得神魂颠倒,搅动得难以控制。

  我匆匆洗完澡,穿一条内裤走出浴室。我发现她把客厅的灯关上了,正在卧室严然妻子那样耐心地等待着我。

  我兴致勃勃地来到卧室。她侧躺在席梦思上,装模作样地看着一张报纸。她发现我来了,放下报纸笑道:"这么快,洗干净没有?"

  我会心地一笑:"洗干净了,你可以检查。"

  "不用检查,我相信你的话。"竹小姐声音异常温柔,接着还随便做了一个风情万秆的姿式,一副欲睡未睡的样子,像一只美丽的波斯猫。

  我心里一阵激动,有些迫不及待了。"叭"的一声,我关掉了电灯。

  "怎么关灯呢?关灯多没意思。"竹小姐娇声娇气地说。

  "我可不好意思。'峨尴尬地笑道。

  "看来你不懂得浪漫,更不懂得享受生活。"

  "也许。"

  "如果我能成为你的妻子的话,今后要好好培养。"

  "好。"

  我摸上了床,但不好意思靠近她,坐在一边面对黑夜静听自己的心跳。那心十分激动地跳着,显得有些紧张。

  她侧躺在一边一动也不动,甚至连一句话也不说,仿佛是在等待着我的主动,可我怎么也主动不起来。生平第一次与女人相处得那么近,我心里除了激动和紧张外,再就是幸福和慌张。我幸福得昏昏欲睡,慌张得不知所措。

  一阵良久的沉默。

  她终于说话了:"你坐着干什么?快躺下睡觉。这么大的男人了,还害羞,真是没出息。"声音依然温柔,像是用气流发出的。

  我也终于鼓起勇气说:"好吧,听你的。"

  我刚刚躺下去,她就把身子侧了过来,将一条大腿放在我的身上。不一会儿,一只柔若无骨的手也伸了过来,在我那结实的胸膛上轻轻抚摸着。她说:"你这胸脯还算宽厚,女人累了,或者受伤了,靠在上面一定有一种宽慰感和安全感。"

  我没有理她,全身心地体验着一种从未有过的幸福感觉,感到她的腿和手柔滑如绸,细腻如水;感到她的气息给人一种春天的温柔;感到自己的心跳格外热烈,浑身一阵阵燥热;感到自己最敏感的器官在充血,在膨胀,在蠢蠢欲动……

  竹小姐的手在我胸膛上抚摸一阵后,慢慢地向下滑去,一边滑一边说:"我要检查你是否是阳痿患者。"说完,那只手水蛇般地游到我的敏感处,抓住那东西轻轻玩弄着。就在这一瞬间,我全身一阵颤抖,幸福得差点大喊大叫。

  "看来你生理上没有什么毛病。"竹小姐那只手一点也没停止玩弄。"实践是检验真理的唯一标准。这话永远有道理。"

  "是的,永远有道理。"我神经质的重复着。

  "喂,你别搞颠倒了,这事应该是你主动,我被动。"竹小姐将我的一只手拿过去,放在她那丰满的乳房上。

  一股电流顿时袭遍全身,我感到她没有戴乳罩,乳房高耸而富有弹性,乳头硬硬的,像那美丽的红樱桃。

  我那幸福的手随她的意识在双乳之间尽情游览,像一个饥渴的观光者。她似乎觉得不够尽兴,又领着手向下滑去。

  她说那是一个十分美丽的地方,比九寨沟还美丽,有山有水,有草有溶洞,气候适宜,天天都是春天,时时都有鲜花开放。

  她把那地方描述得太美了,简直是用的诗的语言。但我没有感觉到,只感到那里一片柔软,一片潮湿,如一股巨大的暖流穿透我的手心,穿透我的心脏,令我骚动不安,令我口干舌燥,令我四肢有力。

  完全是一种本能的驱使,我猛地侧身,张开双臂,一把将她紧紧抱住。那张渴求多年的嘴,不顾一切地吻着她,是那么猴急,是那么贪婪,如久旱的禾苗遇到了甘霖。竹小姐极力配合着我,将我的身子摆正,像一张被子那样紧紧覆盖着她。

  "快,我有些忍不住了……"竹小姐那细嫩的双臂将我紧紧缠往,双腿像花瓣那样在渐渐张开。

  我完全进入了激情状态。但由于是第一次与女人作爱,总显得紧张和慌乱。她感觉到了这一点,耐心地引导我,耐心地配合我。可我那东西有些不听使唤,像一个盲人那样找不到目标,只感到四周全是光滑的墙壁。她忍不住笑了,笑得娇格格的。她鼓励我别紧张别慌乱,全身放松些,不会找不到目标。

  终于,我找到了目标,整个身体立刻变成了一条光滑的鱼,向一个温暖幸福的地方一头扎了进去。可是令人遗憾的是,鱼儿还没有来得及愉快地畅游,就像皮球那样泄气了,紧绷的神经也随即一下极驰了,全身像散了架。

  "唉!真扫兴,简直是大煞风景。"竹小姐的语气里有着明显的不满,并毫不客气地把我从她身上推了下来。

  我不知说什么才好,只感到心里有些遗憾。

  竹小姐呻吟一声,接着哀叹一声,然后坐起来寻找内裤和乳罩。她说:"没想到你生理上具有毛病。怪不得42岁了还没结婚。"

  "我没有毛病,肯定这是紧张和慌乱所致。"我显然不同意她的说法。

  "幸亏检验,要不,跟你结婚我会后悔一辈子的。"她一边穿戴,一边平静地说。

  我不再说什么,点燃一支烟,意识流地体验着刚才那种幸福感受。虽然那幸福感觉只是一瞬间,但它足够我回味一生,因为那毕竟是我生平第一次与女人作爱,比遗精比手建更有快感。

  竹小姐穿戴完毕后,下了床,向客厅走去。我没有理她,不知她去干什么。

  不一会儿,她回来了,站在卧室的门边说:"李先生,我走了,祝你好运。"

  我一跃而起,想去挽留她。走到门口时;才发现自己赤身裸体,于是赶忙寻找西裤。就在这当儿,竹小姐开门走了。我望着她那十分苗条的背影,心里很不是滋味。

  那一夜,我彻底失眠了。我不知道自己的生理到底有没有毛病。

  继续阅读[[第5次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  那天晚上,我正要打电话与娜娜相约见面时间。她却给我打来了电话,开口就问我定下没有?我还没来得及回答,她又说话了,说如果这事定了下来,她就死了那条心;如果还没有定一来,她就要靠实力与那些女人竞争一番。
 
  我如实回答,目前还没有钟意的,所以至今也没有定下来。她不以为然地一笑,说看来自己还有一线希望。接着问我什么时候咱们找个地方谈谈?我说随便,我每天都有空时间,随时奉陪。她有些迫不及待地说明天见面行不行?我说行。她问地点呢?我说随你决定。她有些为难地说这个地方不好选择,因为她要向我敞开心扉,让我看到一个真实的娜娜。她说有很多地方不适合。

  既然如此,我就不好再说什么了。

  娜娜犹豫了好一会儿,才说,这样吧,我到你家里来怎么样?

  我十分果断的回答,行,我为什么如此爽快的答应,老实说,是因为我在竹医生身上尝到了女人的滋味,我希望娜娜也像竹医生那样开放和浪漫,同时我也想再一次证实一下自己生理到底有没有毛病,好好证实,决不紧张和慌乱。

  在我的期盼中,娜娜像一朵白云那样轻轻飘到我的客厅。

  她个子高挑,身材苗条,五官端正,面带一丝微笑。她穿一袭超短裙,领口开得很低,丰满的浮沟清晰可见,是那么白皙,是那么性感,十分诱人。然而最诱人的,好像是她的腰肢和屁股。那腰肢柔软如柳枝,那屁股丰腴得似一朵花蕾。

  说句心里话,她给我的印像是很不错的。现在,只是需要作进一步了解。

  娜娜喝了一口白开水,笑着说,说来有缘,我是个不爱看报纸的人,那天却鬼使神差买了一份,打开一看,就被你的征婚启示吸引住了,你说这是不是缘份?

  也许是吧。我说。

  我认为肯定是。她说。

  也许。我嘿嘿一笑。

  娜娜放下杯子,一扫脸上的微笑,略显严肃地说,我相信你的征婚启示.更相信你这个人。我觉得作为一个征婚者,真诚是最重要的,看来你做到了这一点,所以我对你有一种敬佩之感,因为现在这社会真诚的人毕竟不多。

  我若有所思地点点头。

  娜娜接着说,我认为人应该真诚才对,爱情更应该真诚,如果爱情搀杂着虚伪,其后果是不堪设想的,犹如假酒,人喝了是有害健康有害生命的。

  我由衷地佩服她的观点,说,你说得很对,非常正确。

  娜娜说,正因如此,我才决定向你坦诚自己,告诉你一个真实的我。绝对真实,无半点虚构,我敢用我的人格担保。说实话,这些都是我的隐私,要不是为了爱情,我是绝对不会向人诉说的,宁愿把它深深埋在心底,让岁月无声无息的风化,让自己无声无息的吞饮。

  下面就是娜娜讲的隐私。我知道她是为爱情而讲,所以找听得特别认真。

  我今年24岁,从小在大巴山的一个小城长大。由于我喜欢跳舞,初中毕业后,我顺利地考进了成都市的一所艺术学校,专学跳舞。门岁那年,我毕业了,自费生不包分配,我又不想回家乡,只好带着撞憬带着无奈走向社会。完全是为了生存,我不得不到舞厅混饭吃。并不是陆人跳舞,而是单独表演,我会跳维吾尔族舞。藏族舞、朝鲜族舞、彝族舞、傣族舞,还会跳迪斯科、探戈、伦巴、华尔兹。我不但会跳,而且还跳得非常好,深受人们的欢迎。

  那个舞厅自从有了我的存在后,生意越来越好,老板完全把我当成了一颗摇钱树,薪水一加再加,还担心找另寻高技。

  渐渐地,老板的胃口越来越大,赚钱的欲望也越来越高涨,竟然叫我穿十分透明、薄如蝉翼的服装表演,他说这样跳舞顾客会更多,还说成都现在都兴这样。

  那等于是变相的卖肉,我怎么也不同意。老板也没别的办法,只好减薪,借故说生意不好。

  减薪无所谓,只要不丢失自己的人格。可是不久,不知是老板的善意报复,还是顾客的春情萌动,却有不少人叫我伴舞,开初是邀请,后来就是威胁,说不给面子后果自负。

  我一个外地弱女子,只好在恐惧中顺应他们。可是他们几乎都是醉翁之意不在酒,而在我的脸蛋,我的胸脯,我的柳腰,我的屁股,我……他们时不时地摸我一下,捏我一把,或者干脆把我楼得特别紧,叫我有怒不敢发,还要强装笑颜。

  我产生了离开这里的心,可是老板又不给我发工资,我又不想把血汗钱白白扔给他。我只好度日如年。我只好忍气吞声。我只好耐心等待,等待老板发工资,一旦工资发了,我就走。

  就是在我这段人生的非常时期,我遇到了一个好人。他是以舞客的身份出现的,彬彬有礼的请我跳舞。我看他好像没什么坏心眼,也就爽快的答应了。

  我做梦也没想到,这个平凡的中年男人竟是某歌舞团的团长。他是在跳舞中小声告诉给我的,说他在旁观察了好久,觉得我的舞姿跟我的长相一样美丽动人,所以想跟我跳一曲顺便也了解了解。

  这是一手很有艺术修养的团长,他用诗的语言对我的长相和我的舞姿作了十分精彩的描述。他说,你的身材极其苗条,白色蝙蝠衫和黑色健美裤把身上的线条勾勒得栩栩如生,美丽超然。那一头技撒着的黑发,如同一条瀑布从头上倾泻下来,轻柔地覆盖在笔直柔软的背上,美丽极了。最动人的还是你那张魅力非凡的漂亮脸蛋,柳叶眉毛,黑珍珠似的眼睛,桃红色的面颊,红润润的双唇。你的气质也很美,近乎冷漠,亦像是高傲,给人一种超凡脱俗之感,神圣得不可侵犯。

  你的舞姿也是美丽动人的。那柔软的腰肢,那轻灵的双腿,那飘然的玉臂,无不透出一种舞蹈演员的素质。无论是扭腰,还是摆臂,或者是抬腿,动作都是那么合谐,那么自然,让人想起仙鹤展翅,天鹅戏水,也让人产生这样的幻觉:你就是那个跳孔雀舞的南国丽人杨丽萍。

  团长赞美完毕,问我愿不愿意到他的歌舞团工作,待遇不比这里差,而且社会地位也比这里强。我没有丝毫犹豫,忙说愿意愿意。我心里十分高兴,像喝了蜜糖,因为这是我做梦也没想到的事。显然,歌舞团的档次肯定要比舞厅高,而且又适应我的发展。如果继续在舞厅呆下去,我的前途肯定会一片黑暗。

  从此,我就成了歌舞团中的一员。由于我各方面的条件都不错,团长十分器重我,每次演出都安排我上场,渐渐地,我成了主要演员,一曲跳完后,常常赢得观众们的热烈掌声。

  团长对我太好了,不仅关心我的工作,还关心我的生活,经常给我买衣服、买皮鞋,仅一个月时间,我的床下各式各样的皮鞋就摆了八九双,同仁们取笑我,能开鞋店了。

  团长如此关心我,我从心底生感激。为了表示感谢,我悄悄买来毛线,真心实意地为他织了件毛衣,没想到他一穿上就不下身,风趣地说真温暖,犹如我的双手在时时刻刻地抚摩。

  我听了心里乐滋滋的。

  一天,他邀请我去吃肯德鸡,我没有拒绝,而且还刻意地打扮了一番,给人一种楚楚动人的感觉。

  我俩在一间雅座坐定,他拿出一个十分精美的小盒子,从里面取出一条黄灿灿的金项链,往我脖子上戴。戴好后,又用手摸了摸我的脖子,见我没有反对,又顺势摸了摸乳沟。我的心紧张得够够直跳,并伴随着一阵阵甜蜜。我的脸不再是发红了,而是发热发烫。

  从那以后,只要晚上没有演出任务,他就约我偷偷去舞厅,他轻轻地搂着我,我轻轻地依偎在他怀里,感到十分幸福,心里格外舒畅。渐渐地,他离不开我了。说实话,我也离不开他,常有一日不见如隔三秋之感。那些日子,和他在一起,是我生活中最重要的内容。对于他来说,也是如此。

  我们每次从舞厅出来,站在半明半暗的路灯下,沉默无语好半天,才各自挪动脚步。我心里总是一阵难过,泪水夺眶而出,返回身又扑过他的怀里。他紧紧地抱住我,温柔地抚摸着我的长发,轻轻地叫我别难过。

  慢慢地,我俩的舞姿变了,再不是手挽着手,而是相互搂抱着,让两颗快要燃烧的心紧紧贴在一起。

  终于,我俩走进了宾馆,幸福地睡在了一起,一点也没顾忌少女最宝贵的东西,完全是心甘情愿。他摆出各种姿态表示喜欢我,我感到幸福极了,因为被人爱着的那种感受十分美好。

  任何事情有了第一次后,第二次第三次就不可避免了,事实上也避免不了,特别是男人和女人都是一团火的时候。从那以后,我俩经常偷偷同居,享受不是夫妻的夫妻生活。

  多少个失眠之夜里,我想我的身份,他的处境。我是一个吃艺术饭的打工妹,没什么地位,凭什么和团长相爱呢?团长是有妇之夫,还有孩子,又没有离婚的意思,我只不过是他的小蜜。这样下去,是不会有什么结果的。可是我明知这些,却执迷不悟,依然深深地爱着他,陷进情感的漩涡里不能自拔。

  随着感情的进一步发展,我和他越来越不顾忌什么了,进进出出都是形影不离,甚至在大庭广众的场合,也常常用眼神来传递我们互爱的情感,惹得好几个姐妹既羡慕我,又嫉妒我,背地里说我的坏话,还经常低毁我。我对此毫不在乎,在情感上继续我行我素。我乐意干的事,谁也阻挡不了。人生就要活得风流快活,不管他人说东道西。与此同时,我也没有与他结婚的指望了。我很信奉有首流行歌曲,说不在乎天长地久,只在乎曾经拥有。是的,一个人的生命都不会天长地久,何必要在乎婚姻的天长地久呢?何况天长地久的婚姻并不可取,因为那是十分可悲的,不管是男方还是女方。

  话虽这么说,但我一直生活在矛盾之中,很想摆脱那种小蜜生活,可是无论如何也摆脱不了,就像卷进了一个漩涡里,想浮出水面,却又甘愿沉溺。

  直到我看了你的征婚启示,我的观念才来了一个一百八十度的大转弯,我必须离开他,自己拯救自己。如果再这样下去,我会越陷越深的,最终是有害无益,因为我牺牲,或者说我奉献的不仅仅是肉体,而是美好的青春年华。我必须悬崖勒马。我决不能拿自己的宝贵青春与人开一个很低级的玩笑。

  我准备离开他,离开歌舞团,找一个像你这样靠得住的男人结婚,生子,操持家务,过一种正常女人的正经生活。

  我今天是专门来向你表白我的心迹,不知李先生意下如何?如果你拒绝的话,我会十分痛苦的,如一条丧家之犬,不知何处是路,不知哪儿是家。我的美好希望,也会像肥皂泡那样破灭。

  听完娜娜的故事,我陷入在深深的沉思之中,久久没有表态,也实在是不好表态。

  "李先生,你怎么不说话呢?"娜娜忧郁地望着我,目光里充满了憧憬。

  "我完全是被你的坦诚感动了,。我没想到你会如此坦诚。"这是唐塞,但也是我的心里话,我真佩服她的坦诚。

  "如此坦诚是不是不好?"

  "不,我认为这是一种非常可贵的表现。现在像你这样坦诚的人,实在是太少太少了,恐怕拿起放大镜也难找到几个。"

  "那你对我有没有那个意思?"

  "我也坦诚地说,有是有,只是兴趣不大。"

  "为什么?"

  "因为你给那个团长当了五六年的情妇,这一点我实在不能容忍。时间太长了,长得让我产生一种肉麻之感,就像吞了一只绿头苍蝇。"

  "看来这是我坦诚得过头了造成的,你说对不对?"

  "不。我还有一种担心,担心我们结婚后,你依然偷偷跟那个团长往来,因为你们的感情实在太深。"

  "这一点请你绝对放心,一旦我有了心上人,我就和他一刀两断,因为这直接关系到我家庭的幸福和安宁。"

  我不再说什么,点燃一支烟若有所思地抽着,微蹙眉头,像是在考虑问题。

  娜娜也不再说话,眼睛看着一个地方发愣,发呆,被浓浓的沮丧笼罩着。

  大约过了三分钟,她才回过神来问:"李先生,这件事你的兴趣到底有多大?"

  我老老实实地说:"兴趣恐怕只有百分之五。"

  娜娜一下站起来,很不高兴地说:"那我就只有告辞了。

  祝你找到如意妻子。拜拜。"

  我礼貌地站起来,生硬地说:"拜拜。"

  继续阅读[[第6次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  小咪不是成都女孩,而是正而八经的重庆妹子,北京师范大学毕业,在重庆一所名牌中学教书,已经教了四年了,教的是语文。 
  她举止端庄,衣着朴素,脸上也没有化妆品的痕迹,看上去十分自然他格外清纯,像个教师。

  小咪害怕我怀疑她的身份,同时也想证实自己的身份,从小挎包里掏出毕业证和工作证给我看。我相信她,根本就没有接过来看,只扫了一眼,说用不着。

  望着面前这个漂亮的山城妹子,我心里特别感动,因为她是坐了一个通夜的火车来成都与我见面的。由此可以看出,她是真诚的,也是慎重的。要不,她不会大老远赶来与我见面。

  小咪爱笑,是那种娇羞的笑,很美丽动人,红润的面颊掀起两个小酒窝,像一朵盛开的鲜花。

  我们在一个茶馆里一边品茗一边聊天。

  小咪说:"我的真实名字不叫小咪,小咪是别人取的,因为我经常面带一丝笑咪咪。"

  我说:"小咪这名字很好听,非常顺耳,又十分好记,像香港影星的名字。"

  小咪问我去过重庆没有。我说没有。她说重庆被划为直辖市后,这几年变化很大,特别是市中区、朝天门那一带。她话锋一转,说尽管重庆很美丽,也尽管重庆是她的家乡,但她并不喜欢。我问为什么?她说主要原因是交通不方便,不像成都,自行车可以到处穿行。还有一个原因是,重庆由于是工业城市,空气质量一直不好,是全国数得上的空气污染城市。

  我笑着说,那么多人都不在乎这些,你何必在乎呢?她说,她是一个追求生活质量的人,所以有些在乎。我问她,你觉得成都怎么样?她果断的回答很好,是她的梦中城市。她说当年要不是考上北京师范大学,她就有可能到成都读书。接着,她大谈成都的好处,说交通十分方便,文化氛围浓厚,气候适宜,空气质量好,休闲场所众多,最适合居家过日子。她坦言道,她想找个对象在成都,然后把家也安在成都。她有些害羞地说,这次来应征,就有这方面的意思,只是不知我们有没有缘。

  她相信缘份这东西,更欣赏那句"有缘千里来相会,无缘对面不相识"。

  我顺水推舟,问:"你觉得我怎么样?"

  小咪微微一笑,说:"除了年龄大了点外,各方面还可以。"

  我问:"年龄大是不是主要障碍"?

  小咪说:"不是,我反而认为年龄大点好,会给人一种父亲般的关爱。李先生,你认为我怎么样?符不符合你的征婚条件?"

  我说:"非常符合,我也非常满意,只是隐隐觉得有些不现实。"

  小咪眉毛一蹙:"怎么不现实呢?"

  我说:"你能调到成都来吗?如果调不来,就意味着两地分居。"

  小咪不以为然的一笑,说:"这个问题太好解决了,我可以辞职,到成都随便找个什么工作都行,我相信我一定能找一个适合我自己的工作。"

  我点点头:"这样也行。"

  小咪嫣然一笑:"不是也行,而是绝对能行。我一个大学本科生,不可能找不到一个工作。"

  不知不觉到了吃午饭的时间。为了表示我对她的敬重和爱慕,特地带她去了一家豪华餐馆,好好为她接风洗尘。

  我们点了很多菜,一边吃一边畅所欲言。也许是她是学中文的,我又是文学爱好者,所以我们的共同语言很多,谈得十分投机,不时放下筷子听对方的精辟论述,大多数时间是我在洗耳恭听,她在滔滔不绝。她不愧是个教师,很有演讲才能,文思敏捷不说,而且口齿十分伶俐,并不时用手比划着,动作极其自然。如果好好培养,她一定会成为一个演讲家。我想。

  这顿饭吃的时间有点长,将近两个小时。我们走出餐馆大门,她问我长途汽车在哪里赶?我摇头说不知道。想了想问她是不是走成渝高速公路?她说是。我很抱歉地说还是不知道,成都的汽车站实在是太多了。

  "你要马上回重庆?"我突然意识到这个问题。

  "有这个想法。"小咪平静地说。

  "你也不到我的家去考察考察吗?万一我是个吹牛大王呢。"我有意挽留她。

  "既然来了,我也很想到你家去坐坐,不是考察,而是随便看看。喂,李先生,你觉得我有没有这个必要?"

  "既然来了,我看就有这个必要。"

  "……"小咪开始犹豫起来,一会儿看天,一会儿看街上的人流,一副心事重重的样子。

  "是不是时间不允许,你要赶回去上课?"

  "不,老实告诉你,我请了两天假。"

  "是不是不放心我,害怕我对你非礼?"

  "说句心里话,有一点儿,因为我这人把女人的贞操看得比生命还贵重。"

  "这一点请你绝对放心,我是有理智有修养的男人。如果我碰你,你就去打110好了,就说你遇到了流氓。"

  小咪忍不住笑道:"你说得太严重了。我相信你是个有理智有修养的男人。"

  我点点头说:"相信就好。"

  小咪爽快地说:"既来之,则安之,那我就到你家去看看吧,明天晚上回重庆。"

  面对我的豪宅,我以为小咪也会像大学生高冰治那样感到震惊和感到好奇,可她脸上没有那些表情,一切显得无动于衷,好像她家比我家更豪华,我的豪宅根本就算不了什么。

  这时我才恍然发现,她脸上并没有未造世事的纯真,她也并非是一块未经雕凿的噗玉,她很老练,老练得让我揣测,让找羡慕,觉得与她的实际年龄成反比。显然,她是个经历过大风大浪的女人。

  也许是少年老成。我想。并但愿如此。从某种意义上讲,我不喜欢这样老练的女人,因为女人太老练了不是一件好事。这是生活告诉给我的,并非我的精辟论证。

  小咪坐在沙发上,一边喝茶,一边漫不经心地与我谈话,问这里的人文环境怎么样?交通是否方便?治安好不好?物业管理好不好?有没有小学校?购物方不方便?

  我-一作答,一副很认真的样子。

  她表示满意,说这是个较为理想的居家之地。接着夸我很有眼光,买了一个很不错的环境。她说,现代人的居家理念应该彻底改变,不应该停留在!日的思维模式上,只图可以住人,而不图周围的环境。其实,住家周围的环境是非常重要的,它直接影响生活质量。上海人那种"宁要市区一张床,不要郊外一套房"的陈旧观念应该彻底摒弃。在美国和英国,很多富人都不住在市区,而是住在郊外,因为郊外自然风光好,又宁静,空气也新鲜。

  我对她的见解表示佩服。只不过当初买房子的时候,我没有考虑那么多。也就是说,我还没有多少现代人的居家理念。

  小咪似乎说干了嘴,喝了一小口水,问我:"你的户口在成都吗?"

  我说:"没有,还在老家大巴山。"

  小咪说:"这可是个严重问题,因为它直接关系到小孩今后上学读书。如果我的户口在成都,当然就不存在这个问题。"

  我说:"这个问题很好解决,到时给小孩买个户口就行了。

  根据成都市的有关规定,像我这样大的房子,可以办理三个户口。"

  小咪说:"拿钱买吗?"

  我说:"是的,只是换汤不换药,不叫买户口,而是叫城市建设费,每人一万五千元。"

  小咪说:"这么多,太吓人了。"

  我说:"这是自愿,市政府并不强调你买。也就是说你可买可不买,根据自己的需要。"

  小咪说:"如果我们能够有缘生活在一起,你买我的户口就行了,孩子将来可以直接上在我的户上,从而可以节约一笔钱。"

  我说:"完全可以。"

  小昧说:"你的户口用不着买,可惜那笔钱了。"

  我说:"是的,没有那个必要。"

  那天晚上,小咪没有去住旅馆,而是住在我的家里。她提出过去住旅馆。我说没有那个必要,这里有地方住,何必去花钱呢?她没有立即表态,似乎担心我对她非礼。我好像看出了这点,再一次说叫她放心,我是个有理智有修养的人。如此一说,她才取消了去住旅馆的念头,爽朗地答应就住在这里。

  她说,就卫生方面来说,旅馆肯定没有这里卫生。我说肯定肯定。

  那天晚上,我们没有发生什么故事,不过我心里却一直希望,希望她也能像竹医生那样开放,那样来检验我的生理。小咪却十分警惕,连澡也没洗,或者害怕我偷看,似乎害怕我撞入浴室。

  她是看完"晚间新闻"后去睡觉的,临走时给我道了一声晚安,并祝我做一个好梦。我说了声谢谢,不敢正眼看她的背影,害怕她在那一瞬间看出我眼里的不纯洁,因为我清楚的知道,我的眼睛在情欲的驱使下,在渐渐充血,在渐渐变形,就像饥饿的鹰隼看见了小鸡。这比喻有些夸张,也有些丑化,但我想不出更恰当的比喻,反正那时我有些心怵不正,有些想入非gE.小咪的确很警惕,我发现她进房后闩死了门。似乎还嫌不够,又反锁了。似乎还觉得不安全,又将床头灯开了个通宵。

  我一夜失眠,一方面希望她像竹医生那样,一方面觉得自己受了侮辱。不过我理解她,倘若我是她,也许也会像她那样警惕,因为她说过,她是个把贞操看得比生命还贵重的女人。

  这样的女人做妻子,当然是最好不过了。她能做我的妻子吗?

  我想还是能,也希望能。说实话,我很喜欢她。这种喜欢并不排出肉欲。我相信一种说法,说成年男人的情爱往往是肉欲的。

  翌日早晨,她比我起来得早。待我起床时,她早已洗漱完毕,坐在客厅看《女友》了——她随身携带的一本杂志。

  "早上好!"她礼貌地对我招呼。

  "你也早上好。"我笑着回应。

  "昨晚睡好没有?"

  "睡得真香,一觉睡到大天亮。你呢?"

  "也很好,睡得跟死猪一样。"

  "我这人有个坏习惯,开灯才睡得着觉,关了灯反而睡不着。"

  "这的确是个坏习惯,因为开灯睡觉对人的身体不好,这话好像是一个科学家说的。"

  "对,有这种说法,可是我已经无可救药了。"

  "不要紧,科学家有些夸大其辞,比如抽烟,科学家说烟里面有一百种致癌物,抽一支缩短寿命五分钟,抽一包等于照十次X光的放射量。邓小平烟痛那么大,还活了观多岁呢。"

  "你就不知道了,邓小平抽的是特制香烟,尼古丁含量很少很少。"

  "也许。我还是第一次听说。"

  我们上街吃了早餐,然后就在小区里慢慢转悠,像情侣那样,靠得很近。她说这里环境的确不错,绿化也很好。

  晚上,她要离开成都了,有些恋恋不舍。我也有同感。

  她说,时间过得真快,"柔情似水,佳期如梦"。

  我说,"相见时难,别亦难"。

  她说,"两情若是长久时,又岂在朝朝暮暮?"

  我说,"燕子楼空,佳人何在?空锁楼中燕。"

  她说,"但愿人长久,千里共蝉娟"。

  我说,你不愧是个教师,古典文学还算深厚。

  她说,你不愧是个作家,肚里还有点墨水。

  我说,我们的事,你看怎么办?

  她说,我很喜欢你,没什么意见,只是想回去征求一下父母,因为他们毕竟送我读了那么多书,这些事不征求他们不好。

  我说,万一他们对我有意见呢?

  她说,我能正确对待,因为我毕竟有自己独立的思想,我会自作主张的。

  我说,有你这句话就行了。

  她说,父母亲也许要来看看。

  我说,欢迎光临寒舍,欢迎指导工作。

  她笑了,很甜很甜,很美很美,给我留下了深刻的印象,像一座雕塑。

  我亲自送她到火车站,又亲自送到站台。直到火车要开了,我们才依依不舍地分了手。

  她引用了李清照的《凤凰台上亿吹萧》中的一句"生怕离怀别苦,多少事,欲说还休。"我引用了沈宇的《武阳送别》中的一句:"送君肠断秋江水,一去东流何回归。"

  小咪是个很懂礼节的女孩,她一回到重庆,就给我打来电话,叫我放心,她安全到达,一路非常顺利。

  那时天已麻麻亮了,我望着迷迷蒙蒙的窗帘,迷迷糊糊地说,只要安全到达,我就放心了。乘车坐船,七分安全三分危险,总是叫人提心吊胆的。

  小咪说那好,我就不打扰你了,你还可以睡一两个小时的觉,拜拜。

  我也赶忙说再见。刚说完她就挂断了电话。我再也睡不着了,一遍遍读她,认真地读,很吸引人,越谈越陶醉。我想,如果不出什么意外,她是我的妻子无疑了。我很喜欢她,不仅仅是她的美丽,她的学历,更重要的是她的人格魅力,那人格魅力具体表现在,她把自己的贞操看得比生命还贵重。特别是在今天这个人欲横流的世界里,这一点是非常金贵的。另外,女人的贞洁常常与她的外貌是紧紧联系在一起的,生活这本大书告诉我们,最漂亮的女人,也是最丑陋的女人,因为她们往往与风流和放荡挂钩;最丑陋的女人,恰恰就是最漂亮的女人,因为她们往往与纯洁挂勾。就像自然界的花朵,最鲜艳的,最容易格蜂引蝶;最朴素的,却在那里默默无闻,好像被蜂蝶们遗忘了。漂亮的小咪与风流和放荡无缘,与纯洁挂勾,这是我敬佩的又一个原因。

  读着读着,仿佛小咪就在我的枕边,就在我的唇边。我想,那一天绝对不会遥远,因为我们都是这么大的人了,不可能像小青年那样恋爱好几年。

  心里有了小咪后,我就再没与其他女人约会见面了,觉得没有那个必要。在我看来,自己不是皇帝选妃子,多多益善,因为我最终只是决定一个,看多了不仅眼花绦乱,而且还心猿意马,这山望着那山高,是有害无益的。

  过了两天,也就是周五的晚上,小咪给我打来电话,说她昨天已向父母汇报了,他们基本上没什么意见,只是想来具体看看我这个人,我的家。她解释说,婚姻是件大事,做父母若不来看看心里总是放心不下。我说没什么,完全可以理解。

  她说明天是双休日,她准备陪父母亲来怎么样?我说我那天已向你说过,欢迎光临寒舍,欢迎指导工作。我问你们是坐火车来还是坐汽车来,到时我好去车站迎接。她说他们有可能是坐汽车来,坐汽车比坐火车快些,我也用不着去车站迎接,到时他们会打个的过来。我说这样也行。

  我不知道重庆每天有多少次客车到成都,怕他们明天一早就到,所以那天晚上我一连忙了好几个钟头,把地板拖得干干净净,把客具擦得一尘不染,把卫生间粉饰得香气扑鼻,把厨房收拾得井井有条。我要让他们一眼看出我喜欢整洁的优良作风,看出我的能干,看出我家的温馨。

  生平第一次与自己即将成为现实的岳父岳母见面,心里不免有些紧张。尽管我有豪宅一套,还有数十万存款,但我毕竟是个没有见过多少世面的农民,而小咪的父母亲,却是正而入经的城市人,说不定还是高级知识分子,说不定还是个七品芝麻官。

  翌日一早,他们并没有来。

  他们是中午来的,一行七个人,简直出乎我的意料,完全可以称作一个考察团了。看来,他们非常重视这事。

  小咪向我-一作了介绍。原来,除了她父母亲外,还有自己的一个亲哥哥,一个亲表姐,两个好朋友(当然是女性)。小咪说,他们都是来给我当参谋的,因为婚姻毕竟是人生的大事,不像买一件衣服那么简单。

  我满脸笑容,一边欢迎他们的到来,一边亲切地问他们吃午饭没有?

  小咪有点反客为主,说,我们一下车就打的过来,哪里顾得上吃饭呢?

  我说没吃就请到街上去吃。

  小咪的父亲说,歇一会儿吧,喝几口水再去。

  如此一说,我才记起忘了给他们泡茶,于是赶快行动。小咪笑咪咪地协助我。

  茶喝好后,我们才向街上走去。在一个很有档次的餐馆里,我为他们接风洗尘。我很阔气,点的尽是一些很有档次的莱,什么甲鱼,什么龙虾,都是我从未吃过的。喝的酒也很高档,白酒是五粮液,啤酒是青岛啤酒,饮料是椰子汁。

  这是该花钱的时候了,我毫不吝啬。

  吃完饭买单,简直把我吓了一跳,一共九百多元。不过我表情十分镇静,完全是一副大款模样,毫在不乎。

  走出餐馆,他们中有人提出去逛逛杜甫草堂。我表示同意,说这里很近。于是我们以散步的形式向草堂走去。当然是我买11票,每人20元。

  他们好像是第一次游草堂,游得特别认真,也游得十分慢。游完后,已是吃晚饭的时间了。我问他们晚上吃什么?

  他们意见不统一,有人说去吃麦当劳,有人说随便吃点什么都行,有人说去吃套餐,有人则主张吃火锅。经过一番争论,他们决定吃火锅。照他们的话说,仔细品尝一下成都火锅,看到底是成都的火锅好吃还是重庆的火锅好吃。

  这一比较,又花了我近四百元钱。仅仅半天时间,花了我一千多,真是吓人。不过我只是在心里惋惜罢了,表面上依然是一副大款模样。

  晚上,他们好在没有提出去住宾馆,要不我又要花去一笔。他们就住在我家里,把我挤得没地方,只好睡在沙发上。

  我以为那天晚上他们会以摆龙门阵的方式对我进行考察,结果没有,而是随便地聊天,你一句,我一段,像老太婆那样唠叨着。我庆幸地想,也许我被他们通过了,觉得很不错。

  临睡前,小咪像一缕温柔的春风那样,轻盈地飘到我的沙发前,小声说:"我爸妈他们明天一早要去峨嵋山旅游,你去不去?"

  "他们不觉得累吗?休息一天再去吧。"我真诚地说。

  "没时间了,因为明天晚上他们得赶回重庆周一上班。"小咪声音极其温柔。

  "哦,原来如此,那就去吧。"

  "你去不去呢?"

  "我能不去吗?我不去能行吗?"

  "看来你真是个好女婿。"。

  "喂,他们对我的印象怎么样?"

  "印象很好,感觉也很好,都夸我有眼光。"

  "真的?"

  "难道我还骗你吗?傻瓜,好好睡吧,我们明天去爬峨嵋山。"

  小咪伸出右手,在我的面颊上轻轻拍了几下,然后像一阵风那样走了。我心里甜滋滋的,觉得十分幸福,特别是我的面颊,好像幸福得到了极点,那温柔的感觉也一直印在心里。

  旅游峨嵋山,自然又是我作东。说句心里话,我是硬着头皮作东,因为不作东实在说不过去。

  这一天他们游得十分愉快。可我的心境跟他们不一样,我是表面上愉快,心里却非常难受,因为这一天我花了近两千元。虽然我花的钱并不是我辛苦挣的,是我继承的遗产,但像这种大手大脚的花销,我是十分心痛的,因为那是我生父一分一分积攒而成的,凝聚着不少血汗。

  小咪回重庆后,仿佛失踪了,一连好几天也不给我来电话。

  我觉得有些不对,忙与她联系。是她母亲接的电话,很客气,成都之行,首先感谢我的盛情款待。我说没什么,欢迎你们再来成都作客。我问那天返渝顺利吗?她说谢谢我的关心,那天很顺利。我问小咪在不在家,我有话对她讲。她说小咪中午一般都在学校,只有晚上才回家。你有什么事,晚上打来吧。我说行。正准备挂断电话,她又说,小咪近段时间特别忙,没给你打电话,很对不起。我说没什么,不必客气。

  晚上,我没有给小咪打电话,有意叫她给我打过来,我想她一定知道我找她的事。可是我耐心地等到11点,也不见她给我打过来。我猜想她母亲也许没有转告她,或许她还没有回家。如果她母亲转告了她,我想她是一定会给我打电话的。

  看来,我只有硬着头皮打过去了。

  一听声音,我就知道是小咪。与此同时,她也听出了我的声音。

  "哦,李大哥,你好,很对不起,近来我一直很忙,没给你打电话,望原谅和理解。"

  "没什么,你不必客气。"

  "晚上我一回家,母亲就给我讲了,说你找我。我准备晚饭后给你打过来,没想到忘了,真是对不起。"

  "喂,小咪,我一直在盼望你的佳音呢,到底怎么样?"

  "什么'到底怎么样'?"

  "你们的考察结果。"

  "哦,原来才是这个。李大哥,直言告诉你吧,情况很不妙,主要是我父母亲有意见,他们嫌你年龄太大了,差不多是我父亲的年龄。我不好说什么,因为脖子拧不过大腿。这也是我没有给你打电话的主要原因。"

  "你不是说你毕竟有自己的独立思想,会自作主张吗?"

  "这事说起来容易,做起来可难啊,简直是难以上青天。

  给你讲,为这事这几天我一直跟他们赌气。"

  "看来,我们的事最终会是一场无言的结局。"

  "你必须作好这方面的准备。李大哥,你想开些吧,天涯何处无芳草?我没什么了不起,像这样的女孩多如牛毛。凭你的条件和能力,我相信你一定能找一个各方面都强过我的女人,真的,你也必须自信,决不能自卑……"

  "别说了别说了,我心里很难受。回首悲凉,都成梦幻。"

  我很气愤地挂断了电话,木然地坐在沙发上发愣。

  继续阅读[[第7次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  我没有想到,珊珊是个做事非常认真的姑娘。那天在电话里,她将她的个人简历详细地告诉了我,我也为此作了相当长的记录,以供参考。没想到几天后,她又给我寄了一份"个人简历",是用电脑打印出来的,非常正规,也十分详细,就像工作档案里的"个人简历"。 

  下面,就是珊珊的个人简历——我的名字叫姗姗,1970年10月,我诞生在大凉山一个贫穷之家,父母亲均为地道农民,老实巴交,勤劳勇敢,憨厚朴素。我排行老大,下有两兄一抹,均在读书,分别读中学和小学。我的父母亲很伟大,并不重男轻女,从小就送我读书,一直到高中毕业。

  19岁那年参加高考,我因5分之差而落榜,又没钱走委培之路,只好含泪回农村,帮助父亲耕田种地,帮助母亲喂猪养鸡。尽管我们起早贪黑,勤俭持家,但家里依然贫穷,一来因为家底本来就薄,二来因为种庄稼没搞头,三来因为家里开销大。无奈之下,我只好外出打工,跟村里的几个姐妹去了成都。

  我最先在一个私人皮鞋厂打工,学做皮鞋,只国待遇太低,一年后不得不另谋出路,在一家饭馆帮工,既当招待员又当服务员。收入还勉勉强强,只是太累了,常常是从早上6点干到晚上12点。这且不说,吃的东西还特别差劲。老板为了节约,常常叫我们吃残汤剩饭,有时吃得我发呕。鼓足勇气干了一年半,我实在受不了,只好辞职,到一个度假村给客人端茶递水。干了三天,老板见我长得颇有几分姿色,安排我到餐馆当迎宾小姐。后来固我与老板娘发生了几句争执,老板又把我安排到歌舞厅,其名是招待员,其实是三陪女。为了保住自己的纯洁,我坚决不干,因为我知道三陪女是走向堕落的一道门槛,是走向深渊的一个陷阶。我只好再次辞职。

  我没有再找工作了,觉得没什么意思。我开始摆地摊,在荷花池市场批发一些小玩意来卖,虽然赚钱艰辛,但毕竟是自己的一份事业,而且还非常自由,不看别人的脸色吃饭,也没有淫荡的男人挑逗我。

  一连摆了两年地摊,我也多少有了点积蓄,于是,我在荷花池批发市场租了一个小摊位,当起了老板。这几年生意很难做,但我觉得总比摆地摊强,不仅仅是地位强,经济收入也如此。

  ——这就是我的事业方面。

  现在该谈谈爱情方面了。我在成都先后耍了三个男朋友,都是他们主动追求我。前两个是打工仔,我觉得很不现实,耍了一段时间就分手了。后一个是成都市民,条件还不错,长相也将就,还有住房一套。来往了几次,我发现他是个游手好闲、不务正业的人,而且还离过婚,是妻子嫌他而离婚的。这种人,条件再好我也不会同意,我只好提出分手。

  眼下,又有一个成都人狂热地追求我,可我对他没多少好感,尽管他条件不错。这个小伙子好像是个好色这徒,我第二次到他家玩的时候,他竟然对我动手动脚,说我太美了,美得让他欲火难禁。他妈的,实在令人肉麻。

  李先生,我对你很感兴趣,不知你有没有这个意思,若有,请给我打传呼联系,我殷切地盼望着。

  不知是姗姗的这种应征方式感动了我,还是她的人格,或者说她的复杂经历感动了我,反正我给她打了个传呼,有点情不自禁,也有点身不由己,还有点好奇。

  姗姗很快就回了传呼,一到很高兴很亲切的样子。

  "李先生,我还以为你对我没有兴趣呢,没想到……啊,我真是太幸福了,简直是世界上最幸福的人。"

  "你太会讲话了,也许我会令你大失所望的。"

  "不会不会,绝对不会润为我把你的姓婚启示一连看了十几遍,现在都能背诵,我相信它的真实性,绝对相信。"

  "你不能太相信了,因为现在许多征婚息示都有不少水份,一旦拧干,就原形毕露。"

  "你的征婚启示没有水份,这不仅仅是我的直觉告诉给我的……"

  "还有谁告诉你?"

  "给你说实话吧,我来杜甫花园亲自考察过,你确实有一套豪宅,大约一百五十几个平方吧?"

  "你真的来过"?

  "难道我还遍你吗?告诉你,你的豪宅是坐南朝北,左边就是清水河,河边有翠竹有垂柳有草坪,绿油油的,很美。"

  "看来你的确来过。喂,姗姗小姐,你见过我吗?"

  "见过,印象还可以,只是有点吹牛,因为我无论如何也看不出你征婚启示上说的'英俊潇洒,活力四射,像20来岁的小伙了'。"

  "嘿嘿,不吹点牛,谁上勾呢?总不致于打一辈子光棍吧?"

  "征婚启示吹点牛是允许的,就像纪实文学允许有一点虚构一样,只要吹牛不要吹得过头,我是完全可以理解的,人不为己,天诛地灭。"

  "谢谢你的理解。"

  "喂,我想向你请教一个问题,你征婚启示中的'具有中国妇女传统美德的未婚女性'这句话我有些不解,不知道中国妇女传统美德到底是指的什么……"

  "这个问题很好回答,那就是温柔、善良、贤慧、重情专一。

  能上厅堂能下厨房……"

  "你这不是征婚启示里的话吗?"

  "是的,在那里面我已讲过了,难道你没看出来?"

  "看出来了,只是觉得与后面的'具有中国妇女传统美德'有些重复,不合乎语法。"

  "也许有一点儿。"

  "还有,你怎么识别未婚女性?"

  "这是一个非常棘手的问题,我还从没考虑过。"

  "这么说来,你对未婚二字还没作过研究?"

  "是的。"

  "那你的未婚是指的什么?"

  "没有结过婚的女性。"

  "没有结过婚,但有过性生活史,这种女性算不算未婚?

  这种女性你娶不娶?"

  "肯定不娶,我娶的是没有性生活史的女性。"

  "你怎么识别?"

  "这个不好说。"

  "你是不是自有一套核验的办法,或者到医院进行婚前检查?"

  "无可奉告。"

  "假若有一个性生活史很长的女性,想蒙骗你,把破裂的处女膜找医生修复好,你是否有能力检验和鉴赏?"

  "姗姗小姐,请你另找话题吧。"

  "好,我知道你不好回答,那就不探讨这个问题吧。不过还有一个重要问题需要请教,你征婚启示中的'经济状况十分良好'到底是个什么概念?因为你说得很模糊,我需要作进一步了解,这一点对我来说十分重要。"

  这个不好说明,只能让人意会。

  "我估计你肯定有存款,到底有多少就不得而知了,你能不能具体透露一下?"

  "你到底是嫁给我,还是嫁给我的存款?"

  "两者都行,因为现代女人都很讲究实惠,女人重感情的年代早已过去了,因为感情不能解决温饱。"

  "照你的说法,现在男女之间没有真感情罗?"

  "怎么没有呢?只是少得可怜。现在的女人找对象,几乎都与物质生活挂勾,谁也不愿意跟一个英俊滞洒的男人结婚后天天喝稀饭。"

  "你说的有点道理。不过请你放心,绝对放心,你嫁给我不会天天喝稀饭,保证天天吃干饭天天有肉吃。"

  '喂,你到底有多少存款?老实告诉我吧,我很想知道。"

  "不行,绝对不行。"

  "既然不行,那我就只有忍痛割爱——放弃你了。"

  "放弃就放弃吧,没什么,东方不亮西方亮,总之不能当和尚。"

  '好,再见。"

  姗姗说完,重重地挂断了电话。

  我怒气顿生,很想打传呼把她大骂一顿,因为她太庸俗了,庸俗得让我忍无可忍。

  继续阅读[[第8次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  这是一个阳光明媚的星期天。 

  我刚吃完早餐,门铃就响了,一段美丽的乐曲清脆悦耳。

  我刚到这个城市居住,没什么亲朋好友,是谁呢?

  我像众多城里人那样警惕,并不马上开门,而是大声问一句:"是谁?你找谁呀?"

  从门缝挤进一个温柔的声音:"是我,丫丫小姐,找李先生呀。"

  我知道丫丫其人,只是还未谋面,她是我征婚启示的应征者。

  大城市的社会治安差,具说经常有人在大白天入室抢劫。

  尽管我听到的是一个年轻女子的声音,但我仍然放心不小,担心是男人冒充。我把目光贴在门上的猫眼上,十分警惕地观察看来人,直到看清是个女子,才放心大胆地开了门。

  "你真是丫丫小姐吗?"我半开玩笑地问。

  "我是个普通之人,该不会有人来冒充我吧。"丫丫满脸笑容。

  美丽的晨曦中,我有意无意地打量她,发现她跟晨曦一样美丽。她白皙皮肤、高挑身材、水灵灵的大眼,还有一张没有完全脱去青春少女清纯的面庞。

  "请到屋里坐吧,丫丫小姐。"我热情招呼。

  "谢谢。"丫丁一甩乌黑长发,一步跨了进来。

  丫丫坐在沙发上,环视四周一眼,夸赞道:"装修得还不错,给人一种家的温馨之感。"

  我面带微笑说:"我最反对把家装修得像酒吧那样,太难看了,也太无情调。"

  她点头一笑:"我也有同感。这叫心有灵犀一点通,或者叫英雄所见略同。"

  "你喝什么?"

  '它开水吧。"

  "听说白开水能美容对吗?"

  "我也听说过,只是不知到底是不是真的,好像还有点科学道理。"

  "那你就多喝一些吧,你会越来越年轻,越来越漂亮。"

  "照你的说法,我现在不年轻,也不漂亮是不是?"

  "不是这个意思,你完全理解错了……"

  我不向她作进一步解释,忙去给她倒开水,又恭恭敬敬地放在茶几上。她说了声谢谢,脸上浮现一丝甜甜的笑容。

  我们开始聊天。

  我说:"我们不是昨晚约好今天下午3点钟在府南河彩虹桥见面吗?你怎么一大早就摸上门来了?是不是想搞突然袭击?"

  丫丫说:"你是不是不欢迎我?不欢迎的话我就马上走。"

  我说:"不是这个意思,我只是随便说说,觉得好奇,想知道其中的原因。"

  丫丫说:"老实告诉你吧,是见你的心切,所以才登门拜访。"

  我说:"那你感觉怎么样?对我有兴趣吗?"

  丫丁说:"要是没有兴趣,我就不会登门拜访了。"

  我说:"那你现在的感觉呢?也就是第六感官怎么样?"

  丁丁说:"还可以。"

  我说:"我比你大16岁,你在不在乎这个?"

  丫丫说:"要是在乎这个,我就不会登门拜访了。爱情是感情的产物,是感情的结晶,年龄问题根本就不算什么。"

  我说:"你不怕别人说你嫁了个老头儿?"

  丫丁说:"走自己的路,让别人去说吧,管那么多干什么?

  肯定有人会说那些话,但没有谁敢当面说,只敢在背后议论,这种人只能算狗熊。"

  我说:"如果你真有这种勇气,我是很佩服的。"

  丫丫说:"请相信我。人家18岁的少女都可以嫁给五六十岁的老头儿,你大我16岁算个啥,根本就不算个啥。喂,李先生,谈了这么多,该我问你了,你对我的感觉怎么样?"

  我说:"可以,只是还需作进一步了解,我还不知道你的人生经历呢?"

  接着,丫丫开始谈她的人生经历,一副十分认真的样子。

  她说,她是贵州贵阳人,出生在一个贫寒之家,父亲是个铁路工人,母亲是个扫马路的清洁工。4年前,她毕业于四川师范大学,被分配到贵州一个偏僻山区教书。那地方她去考察过,不仅偏僻,而且十分落后和贫穷,教师连工资都发不起,常常要拖大半年。地方财政实行包干制,经济紧张得很。最终她放弃了,在成都闯荡,现在一家私营饲料公司,任销售经理,每月工资大约1000元,包括奖金。

  她说,自己有着不幸的身世。这些年为了谋生挣钱,她在成都四处闯荡,不知撞见过多少张冷漠的面孔,遭遇过多少蔑视和欺负,常常被撞得头破血流、鼻青脸肿。正是有了这些不幸经历,她才为自己下了一个十分悲壮的赌注:找一位有父爱关怀、有住房前经济实力的男人结为伴侣,一定要在成都立足……

  不知是她的美丽打动了我,还是她的屈折经历感动了我,我竟对她有了一见钟情的感觉。我想,这也许就是人们通常说的缘份。还有个也许,那就是我对肉欲的渴求。

  我对丫丫还有个好感,那就是她不讲排场,不讲奢侈,懂得节约。从某种意义上讲,这是中国妇女的传统美德,这种美德应该发扬光大。

  我本来请她上街去吃午饭,她却再三拒绝了,一再反问我是不是钱多,花不完了?我说这是一种礼节,一顿饭花不了几个钱。她说没有那个必要,在家做就行了,反正她会做饭。接着说,到街上去吃,不仅花钱,而且也不卫生。她说,你别认为自己有点积蓄,就可以随便花。告诉你,你钱再多,如果不从节约这个角度出发,会很快花光的。钱啊,当节约就要节约,能节约一点就算一点,当然当开支也要开支,一句话,钱要用在刀刃上,因为挣钱太不容易了。

  实际上,这也是我花钱的主张。在我看来,她的这些话比情话还好听,比情话还动人。

  于是,我们上街买菜,像一对恋人那样依偎在一起,她紧紧地挽着我的一只胳膊。

  菜买回来后,她有意在我面前露一手,一再叫我别插手,坐在客厅等待就行了。

  丫丫是个很能干的姑娘,不一会儿,她就把饭菜做好了,三菜一场,味道十分可口,让我吃得津津有味,也让我由衷地夸她好手艺好手艺。

  我问她是不是从小跟母亲学的?

  她说不是,而是受到一句话的启发。她曾经看过一本书,一位导师说,烹调是家庭通向幸福的桥梁。从此,她就对烹调产生了兴趣,希望能让丈夫和孩子胃口大开,餐餐吃好。

  我夸她真是一位好姑娘,如果你能给我做妻子,简直就是我的福气。

  她说那一天不会太遥远,也许近在飓尺。

  我说但愿如此。

  遥远的地平线上,晚霞满天。一轮失去金光的夕阳,在五彩缤纷的云层中,欲落未落。

  该是吃晚饭的时候了,丫丫还没有走的意思,我散步在小区的林荫之中,天南海北地闲聊着。

  忽然,丫丫问我晚上吃什么,她好去做。我说随便,你吃什么我就吃什么。她说她想吃水饺。我说那就吃水饺吧。她说她做的水饺非常好吃,保证我胃口大开,半斤下肚。我说你说得我都快要流馋涎了,那我们快去买韭菜吧。

  像中午一样,丫丫依然不让我插手,叫我在客厅看电视。

  我说不,自己动手,丰衣足食,怎么能老是吃现成呢?我麻脚挽手,要与她合作。她却硬把我推到客厅,说今后你做,她决不反对。

  她做的是正宗北方水饺,的确很好吃,比专门的水饺店的味道还要好,我真的吃了半斤。看着我一副狼吞虎咽的样子,她忍不住笑了,很开心很得意很自豪。

  天渐渐黑下来,她好像仍没有走的意思。这正是我所希望的,心里一阵暗自高兴。如果她今晚在这儿住宿,会有没有浪漫故事发生呢?我不知道,只是心里希望有。如果实在没有,我也不会怎么遗憾,因为路还长。不过我估计不会有浪漫故事发生,因为她给人一种文静之感,性格也很内向,不像竹医生那么开放。

  快到深夜了,我们仍没有睡觉的意思,一边看电视,一边无精打彩地聊天。直到她睡意来临,接连打了几个哈欠,才说想睡觉了。我说你去睡吧,睡那间小卧室。

  丫丫站起来,正准备挪步时,裤兜里的传呼机响了。她拿出一看,自言自语地说,父亲打来的。这么晚了,有什么事?

  又对我说,我回个长途行吗?贵阳老家。我忙说可以可以。

  原来是她母亲病了,得的是急病,于今日上午住院治疗。

  她父亲找她的意思是叫她明天电汇5000元钱回去,母亲急需。她父亲好像还说,她母亲的病很严重,仿佛随时都有生命危险。

  丁丫打完电话,脸色急得一片苍白,眼泪也情不自禁地流了出来。她哽咽地说:"天啊,我到哪去找5000元钱啊,找每月的工资只够我用,公司的效益又不好,最多借给我几百元我赶忙安慰她:"你别急,慢慢想办法……"

  丫丫失望地说:"我没有办法可想啊。天啊,找到哪里去找5000元钱呢?"

  我说:"你可以找你的朋友借吧。"

  她抹了一把泪水说:"我的朋友都是些穷朋友,他们没有钱呀。5000元,这不是一笔小数目啊!"

  看着她那着急。伤心的样子,怜悯之心油然而生,我很想借给她5000元钱,可是又觉得关系还没到位,不能随便答应,因为那毕竟不是一笔小数目。

  丫丫倒是灵机一动,一把抹干泪水,望着我可伶兮兮地说:"李大哥,你能不能帮我一下忙,借给我5000元。如果你看得上我,这笔钱我就不还,权当你的彩礼;如果你看不上我,我下月一定还你,想方设法一定凑够。李大哥,请你救救我母亲的命吧,她才50岁啊,我不能没有她……"

  "……"我一阵犹豫,不知如何是好,眉头锁得紧紧的。

  就在这时,丫丫一步上前,一把楼住我的脖子,泪眼模糊地说:"李大哥,请你救救我母亲的命吧,救人一命,胜造七级浮屠。李大哥,为了让你相信我,我可以先向你奉献女人最珍贵的东西……"

  她轻轻解开衣服上的纽扣,又轻轻解下乳罩,顿时,两只雪白而丰满的乳房便呈现在我眼前……

  这是我万万没有想到的,同时也被她的精神所感动,忙说:"你千万别这样,我怎么会乘人之危呢?这样吧,5000元就算我给你的彩礼,明天你回贵阳。为了抢时间,你乘飞机回去。"

  "李大哥,你对我太好了,我怎么也忘不了你……"

  丫丫紧紧搂住我的脖子,将头靠在我的肩上。我感到她的乳房紧紧地贴在我的胸上,温温软软的,很舒服,但我却没有一点情欲。

  丫丫答应我回贵阳后给我打电话,可是两天了也不见她的音信。我想,她一定是太忙了,或者太伤心了。

  既然我和丫丫已确定了那种关系,她的母亲也就是我的母亲,那我就有责任有义务关心她的病情。于是,两天后的那个晚上,我找出丫丫给我留下的电话号码,给贵阳——她的家打了个电话。可是一连打了好多次,对方都说我打错了,这是公用电话。

  莫非是丫丫写错了号码?

  我又给丫丫打了好几次传呼,她却一次也没回。她用的是摩托罗拉中文传呼机,全国漫游,不可能没有收到。

  于是,我对丫丫产生了怀疑。那个夜晚,我失眠了。

  第二天,为了进一步证实,我又找出丫丫给我留下的名片,给她的所在单位——那家私营饲料公司打电话。

  令人遗憾和气愤的是,他们根本就不知道丫丫这个人。

  整个公司百多人,也没有一个毕业于四川师范大学的贵阳籍女孩。

  直到这时,我才彻底明白,自己不但被丫丫玩弄了感情,而且还骗走了5000元钱。最重要的是,她的手段极其高明,做得天衣无缝,一直把我蒙在鼓里。

  继续阅读[[第9次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  不知何故,她无论如何也不把她的真实名字告诉我,自称A小姐,并叫我也这么叫。 

  A小姐说她28岁,未婚,在市政机关工作,四川大学毕业。我问她具体干的是什么工作?她有点保密,不愿回答,只说反正不是清洁工,也不是打杂的。她神秘兮兮地说,现在我们只是意向性地谈谈,如果有机会有缘份见面,再进行深谈长谈,也顺便把她的工作告诉我,保证我吓一跳。

  如此一说,她的工作显得更加神秘了。甚至连她本人也有了几分神秘色彩。

  接着,她谈起了自己的长相。她说她虽然28岁了,但岁月的苍桑还没有光临她,依然青春四射,美丽动人。她说她完全符合我的征婚条件,而且还多才多艺,琴棋书画样样精通,唱歌跳舞也是好手,唯一缺点是不想做一个非常世俗的女人,所以至今也不会打麻将,尽管全国上下一片麻,处处都是麻将声。

  她说,总之,她的长相是决不会令我失望的,在市政机关工作,代表市政形象,一般都有几分姿色,没有一个丑的。

  这种说法很新鲜,我还是第一次听到。照她这种说法,仿佛在市政机关工作的女性,几乎全是美女组成。

  谈完自己的长相,她直截了当地问我,感不感兴趣?心动不动?心痒不痒?

  我实话相告,你是屹今为止最令我感兴趣的一个,有点心动,但心里并不发痒。你对我呢,A小姐?

  她说,要是对你没有兴趣,我就不会给你打电话了。接着进一步阐述,你对我不仅有兴趣,而且还有吸引力。

  我说我也有同感,什么时候见个面吧?

  A小姐说行,并期待着那一天。

  我问她如何联系?

  她说她家里有电话,办公室也有电话,自己既有手机又有传呼,你干脆给我打手机吧。接着把手机号码告诉了我。

  现在,该是我主动与她联系的时候了。我想约她见面谈谈。

  我是下午给她打的手机,说明了我的意思。A小姐似乎想节约通话费,又好像是这边有人不便说,匆匆说了几句就关机了。完全是打的官腔,或者说是一副公事公办的样子。她说她现在有点事,很忙,晚上她给我打过来。

  晚上,我很想给她打手机,但最终没有,想考验考验她,是否把这事放在心上。如果她不打来电话,我好像也就没心思与她见面了。

  直到夜深了,她才打来电话,仿佛那时才想起这事。

  A小姐说:"我现在在家里,夜深人静了,好说这些话,我也想与你进一步探讨探讨。今下午我的确很忙,对不起。"

  我说:"没什么,A小姐不必客气。A小姐我打算最近与你见面谈谈。"

  A小姐说:"可以,不过我想今晚先在电话里跟你详细谈谈,然后再根据谈话结果约定见面时间。"

  我说:"行,照你的办。"

  A小姐说:"你都42岁了,正而八经的中年人了,怎么要找一个30岁以下的女人结婚呢?是不是老牛想吃嫩草?"

  我说:"大女人10多岁,也不算很大嘛,还有大20多岁30多岁的呢。"

  A小姐说:"你不能跟别人相比,花有十样红,人有各不同,何况人比人比死人,人比人气死人。你是有知识文化的人,应该根据男女自身的生理规律来考虑这件事,因为男女年龄悬殊太大,各自的生理需求也就有了强弱之分,你是否能满足她?你如果说行,那么到了50岁60岁的时候呢?那时她正是如粮似虎的黄金年龄,你还能满足她吗?如果不能,她就会红杏出墙。这样的事,生活中太多了,举不胜举。"

  我说:"我没有考虑那么远,也没有考虑那么周密。不过你说的虽然有点恐怖,但还是很有道理。"

  A小姐说:"这就叫话丑理端。我认为,你应该找一位年龄相当的,最多不超过五岁。"

  我说:"那个年龄的女人,哪还有未婚的呢?一般都是离过婚的,而且有儿有女,后遗证很多。"

  A小姐说:"你说得太绝对了。告诉你,那个年龄还有末婚的,只是你没发现罢了,比如我……"

  我说:"你不是才28岁吗?"

  A小姐说:"那是我骗你的,其实我38岁了。"

  我说:"还没结婚?"

  A小姐说:"是的。但坦白地说,我也不是什么老处女。

  也就是说,有过性生活的历史,而且这种历史有时还在发展。"

  我说:"我很佩服你的坦诚。其实这也是人之常情,我完全能够理解。孟子说过,食色性也。"

  A小姐说:"理解就好,我还以为你不能理解呢。李先生,我想向你简要谈谈我至今未婚的原因,以便你了解,不知你愿不愿意听?"

  我说:"愿意听,请讲吧。"

  A小姐说:"在我读大学的时候,便开始了初恋,是我鼓起勇气追求的他。他是我的同班同学,也非常喜欢我,我们可以说一拍即合。他是来自农村的,用钱很紧张,相比之下,我要宽余得多。为此,我常常给他钱花,有时还节衣省食。毕业那年的一个晚上,在他苦苦哀求下,我将自己的身体献给了他,他万分激动,一再发誓今生今世我们永不分离,白头到老一辈子。这些豪言壮语他不知说过多少次了,我相信他,一点儿也不怀疑。从此,我们在学校附件租了一间房子,秘密同居了。

  照他的话说,好好享受享受最后的学校生活,好好品尝品尝初恋的美好滋味。毕业后,我们天各一方,我被留在了成都,他却分配到了昆明。我们是在秋天分的手,那天秋雨绵绵,丝丝缕缕的,犹如我们的缠绵情丝。他又说了一番豪言壮语,并叫我等他,一两年后他保证调到成都,如调不来,他就辞职,为爱情辞职,他觉得千值万值。

  "他去昆明后,给我写了一封信,除谈工作外,就是叙的别离之苦。以后就再也没给我写信,我并不生气,以为他工作很忙。

  "那年临近春节,我有机会去昆明出差,便悄然摸到他的单位,想给他一个惊喜,没想到他却当了陈世美,正与局长的一个千金打得火热。这是他的一个同事告诉我的,我并不相信,跑到他的办公室去看,没想到局长的千金正坐在他的怀里享受异性的爱抚。我被惊得膛目结舌,简直不敢相信自己的眼睛。好半天,直到他发现我时,我才回过神来,慌忙地离开,像躲避瘟疫一样。

  "这就是我的初恋,他不要良心,最终抛弃了我,实在令我伤心。我用真心换来的竟是这种结果,怎不令我伤心呢?从此,我赌咒发誓,这辈子再也不谈恋爱,也不再结婚,永远独身主义。"

  我说:"A小姐,我觉得你完全没有这个必要,你这是自己与自己较劲,何必为一个负心汉牺牲自己的七情六欲呢?"

  A小姐说:"你不愧是个高级知识分子,说得很对,我有时也这么想,只是令人遗憾的是,我醒悟得太唤了,错过了女人最美的季节。"

  我说:"不晚,才38岁,少妇年龄,更具勉力,完全是一种成熟美。"

  A小姐说:"也许。李先生,你是不是觉得我有点老了,不符合你的征婚条件?"

  我说:"没有这种感觉,反而觉得你这个年龄更合适,当然是从生理学这个角度出发。末妻双方年龄悬殊太大,的确有红杏出墙的可能。"

  A小姐说:"几年前,我有过结婚的念头,后来却被单身惬意的生活吸引,认为结婚只是形式主义,况且不结婚才没有后顾之忧。"

  我说:"那是负心汉把你害了的结果。"

  A小姐说:"我有时也这么认为。现在倒想结婚了,却年龄又大了,很难找到自己的如意郎君,倒是一些离了婚的男人对我唾涎三尺,可我又看不起他们,与他们结婚,我还不如独身呢。"

  我说:"你的观点很正确。"

  A小姐说:"你有过性生活的历史吗?"

  我说:"没有。真的。"

  A小姐说:"你想不想体验性生活的乐趣?"

  我说:"肯定想,要是不想的话,我就不会花钱登征婚启示了。"

  A小姐说:"如果你愿意,我可以为你提供一段时间的服务,当然是免费提供,不像妓女那样收费。生活一段时间,如果我们彼此都觉得两人结婚后会幸福,那么就结婚,如果没有这种感觉,那么就分手。李先生,你觉得怎么样,表个态吧?"

  这是我做梦也没想到的问题,所以连一点思想准备都没有,怎么回答呢?同时我还害怕她是骗子,那种既骗感情又骗财物的骗子。对于我来说,感情骗了无所谓,关键是钱财,因为那是我先父一分一分积攒的,来之不易啊。

  我说:"A小姐,请让我考虑一下吧,考虑好了给你打手机。"

  A小姐有些不高兴了,生气地说:"这点小事都优柔寡断的,还算个男子汉吗?好了,我们的谈话就到此为止,请你今后不要再给我打手机,否则我告你对我进行性骚扰!"

  继续阅读[[第10次相亲]]
  作者:吴太尚 编辑:爱情王子
  网站:http://www.jianshenshouji.com

  有关娟娟小姐的个人简历,我在本子上是这样记录的——娟娟,芳龄对岁,大学文化,自称非常漂亮,而且气质也佳,身材苗条得鹤立鸡群,现在某宾馆服务台工作,这几年一直被宾馆当作形象大使,常常参加一些礼仪活动。
 
  追求她的人很多,除一些年龄相当的青年外,还有不少厂长经理,但她没看起一个,所以至今仍是独身。

  联系传呼:126-1234567那天晚上,我给娟娟打了个传呼,她很快就回了,开口就问是谁打的传呼?我立即自报家门。她没有听懂,叫我说名字,李先生太多了,她认识好几个李先生。我只好说我是刊登征婚启示的那个李先生。她的声音一下变了,不再直来直去,柔和地娇唤道,原来才是你哟李先生,这么久都不与我联系,是不是确定了?我说没有确定,所以才与你联系。又说这几天为了赶写一篇东西,我一直很忙,一般都写到晚上12点。

  她似乎有些心痛,关心地说,你别写得太久了,千万要注意身体,爱惜身体,因为只有身体才是真正属于你自己的。

  那语气就像是自己的妻子,我忙说谢谢。随即话锋一转,问她明天是否有空?我想约她见面谈谈。

  她立即来了兴趣,问是不是谈婚姻方面的事?

  我说是。又说,我约你出来,除了这事还能谈什么呢?

  她说她明天要上班。犹豫了一阵后,又说,她干脆明天请一天假。接着问我见面时间,见面地点。

  我说我还对成都不怎么熟悉,你决定吧。

  于是,她决定明日上午9点,在望江楼公园的门口见面。

  我问她有什么标志。她十分自信地说,门口不管有多少人,最漂亮的那个女孩就是她,好找得很,一眼就能看出。

  那个夜晚,我特别兴奋,因为我明天就要和一个非常漂亮的女孩见面了。我不知道她如何漂亮,只好想象,弄得一个个美丽的影视明星在我脑子里走马灯似地转着,致使我彻底失眠了。

  由于娟娟是最漂亮的女人,所以我也就格外打扮了一番,给头发打了许多摩丝,又梳成自己喜欢的形状——三七分,然后再用电吹风吹干0我特地穿了一套灰色西服,它虽然不是名牌,也不是很昂贵,但是新的。皮鞋还是原先那双,但被我擦得锃亮锃亮,能照得出人影。

  完全是心情激动的原因,我八点半就乘坐一辆出租车赶到了望江楼公园的门口。游人并不多,倒是摆摊的不少。四周没有什么漂亮女孩。我估计娟娟还没有到。

  快到9点时,一辆三轮车驶到门口停下了。帘子一掀,一个美丽女孩轻轻走下了车。

  凭直觉,我估计她有可能就是娟娟小姐。

  我简直被她的绝色容貌惊呆了。她面如凝脂,眼似珍珠,秀丽的鼻子长得轮廓分明,两片小嘴红润鲜艳。她用一块白丝巾束起秀发,一条黑亮亮的马尾巴沉甸甸地垂在背后,给她本来就很苗条的身材,增添了无限的魅力,显得更加切娜,更加亭亭玉立。她上穿一件白色体恤衫,下穿一条黑色超短裙,把一条柔嫩的娇躯勾勒得楚楚动人。胸脯丰满而高挺,充满了诱惑和活力。两条白生生的大腿,修长得令人赞叹。

  看着看着,我感到她是一朵洁白的郁金香,是那么纯洁,是那么高雅,是那么娇秀,是那么妩媚,又是那么朴素。美,是一种造化,天下芙委众生,孰不爱美呢?不过对于她来说,造物主似乎显得特别钟情,也十分慷慨,容貌、身段、气质,无处不透出一个大美人的风采和韵味。她似乎昭示了巴蜀之地的风光水色,钟灵流秀,如盖花闭月,似沉鱼落雁。

  娟娟小姐似乎没有发现我,她斜靠在一株树上,目光平静地望着清澈的锦江,好像在欣赏景色。直到我硬着头皮上前试探,她才转过头来,嫣然一笑,说自己就是娟娟,你的眼光不错。说完伸出右手,要和我握手。我不懂她的意思,好半天才神经质的反应过来,握住她的手说,你好,娟娟小姐。

  我们向公园走去。距离较远,因为我不敢向她靠近,有些自卑,感到她是典型的阳春白雪,自己是正宗的下里巴人。

  望江楼公园景致非常。不必说那古色古香的望江楼、崇丽阁、濯锦楼对诗楼,也不必说那肃然起敬的薛涛墓薛涛井,单就一丛丛竹子,就会让人陶醉,让人呕歌,让人留恋忘返。

  一丛紧挨着一丛,形成一片绿色天幕,人行其中,倍感凉爽,倍感惬意,似乎就在画中走。再加之回塘曲槛,叠蟑层峦,烟迷翠黛,朱栏画槛,这里便更美了。

  我们在绿荫深处的一张石桌前坐了下来,她从挎包里拿出一张报纸打开,铺在石桌上,然后又拿出花生、向日葵,又拿出两瓶矿泉水,一瓶递给我,一瓶留给自己。

  "我怎么没想起买这些呢?"我有些不好意思。

  "男人一般不会吃零食,所以想不起。"娟娟的声音十分温柔。

  "我们如果再有机会见面,我一定买,买很多很多。"我满脸微笑。

  娟娟噗嗤一声笑了,很甜很娇很醉很开心。

  "你笑什么?这样开心。"

  "我笑你把我当小孩看了,那种爱吃零食的小孩。"

  "我可没那个意思。"

  "这就叫说者无心,听者有意。感觉怎么样?李先生。"

  "你是指这里的环境吗?"

  "不,是我给你的感觉,也就是印象。"

  "你太美了,美得让我高不可攀,美得让我自惭形秽,美得让我感到你是梦中女孩……"

  "很多男&