[[23People|http://www.23people.com]]\n每月可免费上传30张图片,总量空间无限。
[[DoNews 365Key|http://365key.com]]\nDoNews 推出的在线书签服务。\n可以保存网页快照,输出显示的选项较丰富。能够较快地响应用户提出的实用需求。\n无法获取被屏蔽网站的网页快照,时常出现错误信息。
[[7-Zip|http://www.7-zip.org/]]\n7-Zip 是一种高压缩率的文件压缩工具,基于 GNU LGPL 协议的免费软件。\n\n[img[http://www.7-zip.org/7zfm.png]]
[[91files|http://www.91files.com/]]\n单个文件不大于100M。
[[AJAX Tutorial|http://www.w3schools.com/ajax/default.asp]]
[[AVG Anti Virus|http://free.grisoft.com/]]\n来自捷克的免费杀毒软件。
[[Aardvark|http://karmatics.com/aardvark/]]\n可以对页面元素进行很方便的操作。
[[Absolute Uninstaller|http://www.glarysoft.com/au.html]]\n速度很快的卸载工具。
[[Abstract Fonts|http://abstractfonts.com/]]\n有上万个免费字体下载。\n\n[img[http://abstractfonts.com/img/af.png]]
[[Access Flickr!|https://addons.mozilla.org/en-US/firefox/addon/4286]]\n用于突破封锁,查看 [[Flickr]] 图片
[[Adblock|https://addons.mozilla.org/firefox/10/]]\n用于阻止广告弹出窗口,支持正则表达式和导入导出拦截规则。
[[Adobe Air|http://labs.adobe.com/downloads/air.html]]
<<option chkGenerateAnRssFeed>> GenerateAnRssFeed\n<<option chkOpenInNewWindow>> OpenLinksInNewWindow\n<<option chkSaveEmptyTemplate>> SaveEmptyTemplate\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n^^(override with Control or other modifier key)^^\n<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP\n<<option chkForceMinorUpdate>> Treat edits as MinorChanges by preserving date and time\n^^(override with Shift key when clicking 'done' or by pressing Ctrl-Shift-Enter^^\n<<option chkConfirmDelete>> ConfirmBeforeDeleting\nMaximum number of lines in a tiddler edit box: <<option txtMaxEditRows>>\nFolder name for backup files: <<option txtBackupFolder>>\n
[[AkelPad|http://akelpad.sourceforge.net/en/index.php]]\n\n以快速小巧为目标的开源编辑器。
config.options.chkHttpReadOnly = false;\n
[[Amazon|http://www.amazon.com/]]\n最大的网上书店。
[[Anothr|http://www.anothr.com/]]
[[AntiVir|http://www.free-av.com/]]\n来自德国的免费杀毒软件。
[[Apophysis|http://www.apophysis.org/]]\n分形图形编辑器。
[[Auto Context|https://addons.mozilla.org/en-US/firefox/addon/5714]]\n\n选择文本之后,自动出现菜单,方便进行快捷操作。
[[AutoHotkey|http://www.autohotkey.com/]]\nFree Mouse and Keyboard Macro Program with Hotkeys and AutoText
[[Avast!|http://www.avast.com/]]\n来自捷克的免费杀毒软件。
[[Bababian|http://www.bababian.com/]]\n仿 [[Flickr]] 的国内图片存储服务,每月提供50MB 的上传流量。
[[AltaVista Babel Fish Translation|http://world.altavista.com]]\n英、法与中、日、韩、德、荷、西、意、葡、俄、希腊互译
[[Backword|http://gneheix.googlepages.com/backword]]\n\n快捷的收集网页中的陌生词汇及其出现的场合信息,帮助学习英语。
[[Becky!|http://www.rimarts.co.jp/]]\n身材小巧、功能强大、支持插件的老牌邮件客户端。付费软件。
[[Better Gmail|http://lifehacker.com/software/gmail/lifehacker-code-better-gmail-firefox-extension-251923.php]]\n收集诸多 [[Gmail]] 的 [[Greasemonkey]] 脚本汇总而制成的一个扩展,用于增强、美化、完善 Gmail。
/***\n|Name|BigThemePack|\n|Created by|SimonBaird & SaqImtiaz|\n|Location|http://simonbaird.com/mptw/#BigThemePack|\n|Version|0.1.1|\n|Requires|SelectThemePlugin|\n!Uninstallation Notes:\n*Make sure that you set your theme as default or none, before deleting the theme pack.\n\n!Usage:\n<<themeSelect style 'Select Theme'>>\n\n***/\n//{{{\nif (!config.themes) config.themes = [];\n//}}}\n/***\n!!~MonkyMind themes\nThe following themes were created by Robert Lindsay from http://www.monkymind.org/\n***/\n//{{{\n\nconfig.shadowTiddlers.Blueberry2StyleSheet = "<!--- [[Blueberry 2|StyleSheet]] with ideas shamesslessly taken from (and suggested by) Simon Baird, Clint Checketts and Christine Hodges --->\sn\sn/*{{{*/\sn.headerForeground { display: none;}\sn#sidebar {width: 171px; background: #e7ecee;border-left: solid 2px #8895bb;border-top: solid 2px #97a8d2;}\sn#sidebarTabs .tabContents {width: 158px; background: #dce1e3;font-weight: bold; color: #333 ;}\sn#sidebarOptions input { border: solid 2px #8895bb; }\sn#sidebarOptions .sliderPanel { background: #eee;}\sn#sidebarOptions a {;border: none;}\sn#sidebarOptions .sliderPanel a {border: none;color: #00005a;}\sn#displayArea {background: #fff;margin: 1em 15.7em 0em 1em;border-left: solid 2px #8895bb;}\sn.viewer {line-height: 1.4em;padding-bottom: 1em;border-bottom:solid 1px #dedede;}\sn.viewer th, thead td {background: #00009d;border: 1px solid #666;color: #fff;}\sn.title {color: #000}\snh1,h2,h3,h4,h5 {color: #fff;background: #00009d;}\sna{ color: #00005a;}\sna:hover{ background: #00009d; color: #fff;font-weight: bold;}\sn.externalLink { text-decoration: underline; color: #000083;}\snbody { background: #97a8d2;}\sn.popup { background: #04b; border: 1px solid #04b;}\sn.popup li a:hover {background: #dedede;color: #000083;border: none;}\sn.popup li.disabled {color: #000;}\sn.button:hover {color: #fff;background: #00009d;\sn border: 1px solid #dedede;}\sn#topMenu { background: transparent; padding: 6px;margin-left: -5px;border-bottom: solid 3px #00005a}\sn#topMenu .button, #topMenu .tiddlyLink, tiddlyLinkExisting, #topMenu .externalLink\sn{\sn color: #fff;\sn text-align: center;\sn font-weight: bold;\sn font-size: 1.1em;\sn text-decoration: none;\sn letter-spacing: 1.5px;\sn background: transparent;\sn border-right: solid 1px #fff;\sn padding: 5px 15px 6px 15px;\sn}\sn#topMenu a:hover {\sn color: #fff;\sn background: #00009d;\sn border: solid 1px #db4;\sn}\sn#topMenu br {display: none; padding-right: 1em;}\sn\sn\sn/*}}}*/";\n\nconfig.shadowTiddlers.Blueberry2PageTemplate = "<!--- More ideas shamesslessly begged, borrowed or stolen from..... Simon Baird, Clint Checketts and Christine Hodges :)) --->\sn<!--{{{-->\sn<div class='header' macro=\s"gradient vert #00005a #0000ad\s">\sn <div id='topMenu'>\sn <span refresh='content' tiddler='SiteTitle'></span><span refresh='content' tiddler='MainMenu'></span></div>\sn </div>\sn</div> \sn<div id='sidebar'>\sn <div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\sn</div>\sn<div id='displayArea'>\sn <div id='messageArea'></div>\sn <div id='tiddlerDisplay'></div>\sn</div>\sn<!--}}}-->\sn";\n\nconfig.themes.push("Blueberry2");\n\n\nconfig.shadowTiddlers.NoBerry2StyleSheet = "<!--- The default TW colours with modified layout. Ideas shamesslessly taken from (and suggested by) Simon Baird, Clint Checketts and Christine Hodges --->\sn\sn/*{{{*/\sn.headerForeground { display: none;}\sn#sidebar {width: 170px; }\sn#sidebarTabs .tabContents {width: 158px; }\sn#displayArea {background: #fff;margin: 1em 15.7em 0em 1em;}\sn#topMenu { background: transparent; padding: 6px;margin-left: -5px; border-bottom: solid 3px #0457ce;}\sn#topMenu .button, #topMenu .tiddlyLink, tiddlyLinkExisting, #topMenu .externalLink\sn{\sn color: #fff;\sn text-align: center;\sn font-weight: bold;\sn font-size: 1.1em;\sn text-decoration: none;\sn letter-spacing: 1.5px;\sn background: transparent;\sn border-right: solid 1px #fff;\sn padding: 5px 15px 8px 15px;\sn}\sn#topMenu a:hover {\sn color: #fff;\sn background: #18f;\sn}\sn#topMenu br {display: none; padding-right: 1em;}\sn\sn\sn/*}}}*/";\n\nconfig.shadowTiddlers.NoBerry2PageTemplate = "<!--- More ideas shamesslessly begged, borrowed or stolen from..... Simon Baird, Clint Checketts and Christine Hodges :)) --->\sn<!--{{{-->\sn<div class='header' macro=\s"gradient vert #04b #18f\s">\sn <div id='topMenu'>\sn <span refresh='content' tiddler='SiteTitle'></span><span refresh='content' tiddler='MainMenu'></span></div>\sn </div>\sn</div> \sn<div id='sidebar'>\sn <div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\sn</div>\sn<div id='displayArea'>\sn <div id='messageArea'></div>\sn <div id='tiddlerDisplay'></div>\sn</div>\sn<!--}}}-->\sn";\n\nconfig.themes.push("NoBerry2");\n\n//}}}\n/***\n!!Clint's Themes\nThe themes were created by Clint Checketts from http://www.checkettsweb.com/\nThe original GTD theme was created by Nathan Bowers from http://snapgrid.com/\n***/\n//{{{\n\n\nconfig.shadowTiddlers.GTDStyleSheet = "/***\sn!Calendar CSS\sn***/\sn/*{{{*/\sn.calendar{\sn border-bottom: 1px solid #550000;\sn}\sn\sn.viewer .calendar{\sn width: 220px;\sn}\sn\sn#mainMenu .calendar{\sn font-size: 8px;\sn cursor: pointer;\sn width: 100%;\sn border: 0;\sn border-collapse: collapse;\sn}\sn\sn#mainMenu .calendar .button{\sn border: 0;\sn}\sn\sn#mainMenu .calendar td{\sn font-size: 8pt;\sn padding: 0;\sn background: #fff;\sn border: 0;\sn}\sn\sn#mainMenu .calendar a{\sn margin: 0;\sn color: #000;\sn background: transparent;\sn}\sn\sn#mainMenu .calendar a:hover{\sn color: #000;\sn background: transparent;\sn}\sn\sn#mainMenu .calendarMonthname,\sn#mainMenu .calendar .calendarMonthTitle td a{\sn color: #fff;\sn}\sn\sn#mainMenu .calendarDaysOfWeek td{\sn background: #500;\sn color: #fff;\sn}\sn\sn/*}}}*/\sn\sn/***\sn!GTD Style\sn\sn!Generic rules /%==================================================================== %/\sn***/\sn/*{{{*/\snbody {\sn background: #464646 url('http://shared.snapgrid.com/images/tiddlywiki/bodygradient.png') repeat-x top fixed;\sn color: #000;\sn font: .82em/1.25em 'Bitstream Vera Sans', Verdana, Helvetica, Arial, sans-serif;\sn/*'Lucida Sans Unicode', 'Lucida Grande','Trebuchet MS', */\sn}\sn/*}}}*/\sn/***\sn!Header rules /%====================================================================== %/\sn***/\sn/*{{{*/\sn#contentWrapper\sn{\sn margin: 0 auto;\snwidth: 59em;\snposition: relative;\sn}\sn\sn#header\sn{\sn color: #fff;\sn padding: 1.5em 1em .6em 0;\sn}\sn\sn#siteTitle {\sn\sn font-size: 2.3em;\sn margin: 0;\sn}\sn\sn#siteSubtitle {\sn font-size: 1em;\sn padding-left: .8em;;\sn}\sn\sn#titleLine{\sn background: transparent;\sn padding: 0;\sn}\sn\sn#titleLine a {\sn color: #cf6;\sn background: transparent;\sn}\sn/*}}}*/\sn\sn\sn\sn\sn\sn\sn\sn\sn\sn/***\sn!Sidebar rules /%====================================================================== %/\sn***/\sn/*{{{*/\sn#sidebar{\sn left: 0;\snwidth: 18em;\sn margin: .9em .9em 0 0;\sn color: #000;\sn background: transparent;\sn}\sn/*}}}*/\sn/***\sn!Main menu rules /%=================================================================== %/\sn***/\sn/*{{{*/\sn#mainMenu{\sn position: static;\sn width: auto;\sn\sn background: #600;\sn border-right: 3px solid #500;\snpadding: 0;\sn text-align: left;\sn font-size: 1em;\sn}\sn\sn#mainMenu h1{\sn padding: 0;\sn margin: 0;\sn font-size: 1em;\sn font-weight: normal;\sn}\sn\sn#mainMenu ul{\sn padding: 0;\sn margin: 0;\sn list-style: none;\sn}\sn\sn#mainMenu h1 a,\sn#mainMenu li a,\sn#mainMenu li a.button{\sn display: block;\sn padding: 0 5px 0 10px;\snborder: 0;\sn border-bottom: 1px solid #500;\sn border-top: 1px solid #900;\snmargin: 0;\sn}\sn\sn#mainMenu a,\sn#mainMenu a.button{\sn height: 22px;\snheight: 1.83em;\sn line-height: 22px;\sn color: #fff;\sn background: #700;\snmargin-left: 1em;\sn}\sn\sn#mainMenu a:hover,\sn#mainMenu a.button:hover {\sn background: #b00;\sn color: #fff;\sn}\sn/*}}}*/\sn/***\sn!Sidebar options rules /%============================================================ %/\sn***/\sn/*{{{*/\sn#sidebarOptions {\sn background: #eeb;\sn border-right: 3px solid #bb8;\sn color: #B4C675;\sn padding: .5em 0;\sn}\sn\sn#sidebarOptions a {\sn color: #700;\sn margin: .2em .8em;\sn padding: 0;\sn border: 0;\sn}\sn\sn#sidebarOptions a:hover, #sidebarOptions a:active {\sn color: #fff;\sn background: #700;\sn border: 0;\sn}\sn\sn#sidebarOptions input{\sn margin: 2px 10px;\sn border: 1px inset #333;\snpadding: 0;\sn}\sn\sn#sidebarOptions .sliderPanel {\sn background: #fff;\sn color: #000;\sn padding: 5px 10px;\sn font-size: .9em;\sn}\sn\sn#sidebarOptions .sliderPanel a{\sn font-weight: normal;\sn margin: 0;\sn}\sn\sn#sidebarOptions .sliderPanel a:link,#sidebarOptions .sliderPanel a:visited {\sn color: #700;\sn}\sn\sn#sidebarOptions .sliderPanel a:hover,#sidebarOptions .sliderPanel a:active {\sn color: #fff;\sn background: #700;\sn}\sn/*}}}*/\sn/***\sn!Sidebar tabs rules /%===================================================================== %/\sn***/\sn/*{{{*/\sn#sidebarTabs {\sn background: transparent;\sn border-right: 3px solid #740;\sn border-bottom: 3px solid #520;\sn border: 0;\sn padding: 0;\sn}\sn\sn#contentWrapper #sidebarTabs a,\sn#contentWrapper #displayArea .tabContents a{\sn color: #fff;\sn}\sn\sn#contentWrapper #sidebarTabs a:hover,\sn#contentWrapper #displayArea .tabContents a:hover {\sn background: #000;\sn color: #fff;\sn}\sn\sn#contentWrapper #sidebarTabs a:active,\sn#contentWrapper #displayArea .tabContents a:active{\sn color: #000;\sn}\sn\sn\sn\sn#contentWrapper .tabSelected {\sn background: #960;\sn}\sn\sn#contentWrapper .tabUnselected{\sn background: #660;\sn}\sn\sn#contentWrapper #sidebar .tabset{\sn background: #eeb;\sn border-right: 3px solid #bb8;\sn padding: 0 0 0 .75em;\sn}\sn\sn#contentWrapper .tabContents{\snfont-size: .95em;\snbackground: #960;\snborder:0;\sn border-right: 3px solid #740;\sn border-bottom: 3px solid #520;\sn padding: .75em;\sn}\sn\sn#contentWrapper .tabContents{\sn width: auto;\sn}\sn\sn#contentWrapper #sidebarTabs .tabContents .tabset,\sn#contentWrapper .tabContents .tabset{\sn border: 0;\sn padding: 0;\sn background: transparent;\sn}\sn\sn#contentWrapper .tabContents .tabSelected,\sn#contentWrapper .tabContents .tabContents {\sn background: #700;\sn border: 0;\sn}\sn\sn#contentWrapper .tabContents .tabUnselected {\sn background: #440;\sn}\sn\sn#contentWrapper .tabset a {\sn color: #fff;\sn padding: .2em .7em;\sn margin: 0 .17em 0 0;\sn height: 2em;\snposition: static;\sn}\sn\sn#contentWrapper .tabset a:hover {\sn background: #000;\sn color: #fff;\sn}\sn\sn#contentWrapper .tabset a:active {\sn color: #000;\sn}\sn\sn#contentWrapper .tabContents ul{\sn margin: 0;\sn padding: 0;\sn list-style: none;\sn}\sn\sn#contentWrapper .tabContents .tabContents ul{\sn color: #eeb;\sn}\sn\sn.tabContents ul a,\sn.tabContents ul .button{\sn color: #fff;\sn display: block;\sn padding: .1em 0 .1em .7em;\sn background: transparent;\sn border: 0;\sn}\sn\sn.tabContents ul a:hover {\sn color: #fff;\sn background: #000;\sn}\sn/*}}}*/\sn/***\sn!License panel rules /%==================================================================== %/\sn***/\sn/*{{{*/\sn#licensePanel {\sn padding: 0px 1em;\sn font-size: .9em;\sn}\sn\sn#licensePanel a {\sn color: #960;\sn display: block;\sn margin-top: .9em;\sn}\sn\sn#licensePanel a:hover {\sn color: #fff;\sn background: transparent;\sn}\sn/*}}}*/\sn/***\sn!Popup rules /%================================================================= %/\sn***/\sn/*{{{*/\sn.popup {\sn font-size: .8em;\sn padding: 0em;\sn background: #333;\sn border: 1px solid #000;\sn}\sn\sn.popup hr {\sn margin: 1px 0 0 0;\sn visibility: hidden;\sn}\sn\sn.popup li.disabled {\sn color: #666;\sn}\sn\sn.popup li a,\sn.popup li a:visited{\sn color: #000;\sn border: .1em outset #cf6;\sn background: #cf6;\sn}\sn\sn.popup li a:hover {\snborder: .1em outset #cf6;\sn background: #ef9;\sn color: #000;\sn}\sn/*}}}*/\sn/***\sn!Message area rules /%================================================================= %/\sn***/\sn/*{{{*/\sn#messageArea{\sn font-size: .9em;\sn padding: .4em;\sn background: #FFE72F;\sn border-right: .25em solid #da1;\sn border-bottom: .25em solid #a80;\sn\snposition: fixed;\sn top: 10px;\sn right: 10px;\sn color: #000;\sn}\sn\sn#contentWrapper #messageArea a{\sn color: #00e;\sn text-decoration: none;\sn}\sn\sn#contentWrapper #messageArea a:hover{\sn color: #00e;\sn text-decoration: underline;\sn background: transparent;\sn}\sn\sn#contentWrapper #messageArea .messageToolbar a.button{\sn border: 1px solid #da1;\sn}\sn\sn#contentWrapper #messageArea .messageToolbar a.button:hover{\sn color: #00e;\sn text-decoration: none;\sn border: 1px solid #000;\sn background: #fff;\sn}\sn\sn\sn\sn/*}}}*/\sn/***\sn!Tiddler display rules /%================================================================== %/\sn***/\sn/*{{{*/\sn#displayArea {\sn width: 39.75em;\sn margin: 0 0 0 17em;\sn}\sn\sn.tiddler {\sn margin: 0 0 .9em 0;\sn padding: 0 1em;\sn border-right: .25em solid #aaa;\sn border-bottom: .25em solid #555;\sn background: #fff;\sn}\sn\sn.title {\sn font-size: 1.5em;\sn font-weight: bold;\sn color: #900;\sn}\sn\sn.toolbar {\sn font-size: .8em;\sn padding: .5em 0;\sn}\sn\sn.toolbar .button{\sn padding: .1em .3em;\sn color: #000;\sn\sn border: .1em outset #cf6;\sn background: #cf6;\snmargin: .1em;\sn}\sn\sn.toolbar .button:hover {\sn background: #ef9;\sn color: #000;\sn}\sn\sn.toolbar .button:active {\sn background: #ff0;\sn}\sn\sn/*}}}*/\sn/***\sn!Viewer rules /% ------------------------------------------------------------------------------------------ %/\sn***/\sn/*{{{*/\sn.viewer {\sn line-height: 1.4em;\sn font-size: 1em;\sn}\sn\sn.viewer a:link, .viewer a:visited {\sn color: #15b;\sn}\sn\sn.viewer a:hover {\sn color: #fff;\sn background: #000;\sn}\sn\sn.viewer .button{\sn background: transparent;\sn border-top: 1px solid #eee;\sn border-left: 1px solid #eee;\sn border-bottom: 1px solid #000;\sn border-right: 1px solid #000;\sn}\sn\sn.viewer .button:hover{\sn background: #eee;\sn color: #000;\sn}\sn\sn.viewer .button:active{\sn background: #ccc;\sn border-bottom: 1px solid #eee;\sn border-right: 1px solid #eee;\sn border-top: 1px solid #111;\sn border-left: 1px solid #111;\sn}\sn\sn\sn.viewer blockquote {\sn border-left: 3px solid #777;\sn margin: .3em;\sn padding: .3em;\sn}\sn\sn.viewer pre{\sn background: #fefefe;\sn border: 1px solid #f1f1f1;\sn}\sn\sn.viewer pre, .viewer code{\sn color: #000;\sn}\sn\sn.viewer ul {\sn padding-left: 30px;\sn}\sn\sn.viewer ol {\sn padding-left: 30px;\sn}\snul{\snlist-style-type: asquare;\sn}\snol{ \sn list-style-type: decimal;\sn}\sn\snol ol{ \sn list-style-type: lower-alpha;\sn}\sn\snol ol ol{ \sn list-style-type: lower-roman;\sn}\sn\sn.viewer ul, .viewer ol, .viewer p {\sn margin: .0;\sn}\sn\sn.viewer li {\sn margin: .2em 0;\sn}\sn\snh1,h2,h3,h4,h5,h6 {\sn color: #000;\sn font-weight: bold;\sn background: #eee;\sn padding: 2px 10px;\sn margin: 5px 0;\sn}\sn\sn.viewer h1 {font-size: 1.3em;}\sn.viewer h2 {font-size: 1.2em;}\sn.viewer h3 {font-size: 1.1em;}\sn.viewer h4 {font-size: 1em;}\sn.viewer h5 { font-size: .9em;}\sn.viewer h6 { font-size: .8em;}\sn\sn.viewer table {\sn border: 2px solid #303030;\sn font-size: 11px;\sn margin: 10px 0;\sn}\sn\sn.viewer th, .viewer thead td{\sn color: #000;\sn background: #eee;\sn border: 1px solid #aaa;\sn padding: 0 3px;\sn}\sn\sn.viewer td {\sn border: 1px solid #aaa;\sn padding: 0 3px;\sn}\sn\sn.viewer caption {\sn padding: 3px;\sn}\sn\sn.viewer hr {\sn border: none;\sn border-top: dotted 1px #777;\sn height: 1px;\sn color: #777;\sn margin: 7px 0;\sn}\sn\sn.viewer\sn{\sn margin: .5em 0 0 0;\sn padding: .5em 0;\sn border-top: 1px solid #ccc;\sn}\sn\sn.highlight {\sn color: #000;\sn background: #ffe72f;\sn}\sn/*}}}*/\sn/***\sn!Editor rules /% ----------------------------------------------------------------------------------------- %/\sn***/\sn/*{{{*/\sn.editor {\sn font-size: .8em;\sn color: #402C74;\sn padding: .3em 0;\sn}\sn\sn.editor input, .editor textarea {\sn font: 1.1em/130% 'Andale Mono', 'Monaco', 'Lucida Console', 'Courier New', monospace;\sn margin: 0;\sn border: 1px inset #333;\sn padding: 2px 0;\sn}\sn\sn.editor textarea {\sn height: 42em;\sn width: 100%;\sn}\sn\sninput:focus, textarea:focus\sn{\sn background: #ffe;\sn border: 1px solid #000;\sn}\sn.footer\sn{\sn padding: .5em 0;\sn margin: .5em 0;\sn border-top: 1px solid #ddd;\sn color: #555;\sn text-align: center; \sn}\sn/*}}}*/\sn/***\sn!IE Display hacks /% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%/\sn***/\sn/*{{{*/\snbody{\sn _text-align: center;\sn}\sn\sn#contentWrapper\sn{\sn/* _width: 770px; CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */\sn _text-align: left; /* CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */ \sn}\sn\sn#messageArea{\sn _position: absolute;\sn}\sn/*}}}*/";\n\nconfig.shadowTiddlers.GTDPageTemplate = "<!---\sn| Name:|GTDTWPlusPageTemplate|\sn| Source:|http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm#StyleSheet|\sn| Author:|ClintChecketts|\sn--->\sn<!--{{{-->\sn<div id='header'>\sn<div id='titleLine'>\sn<span id='siteTitle' refresh='content' tiddler='SiteTitle'></span>\sn<span id='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn</div>\sn<div id='sidebar'>\sn<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\sn<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div><div id=\s"licensePanel\s">\sn<a rel=\s"license\s" href=\s"http://shared.snapgrid.com/gtd_tiddlywiki.html#RevisionHistory\s" target=\s"_new\s">GTDTW Version <span macro=\s"version\s"></span></a>\sn<a rel=\s"license\s" href=\s"http://www.tiddlywiki.com\s" target=\s"_new\s">\snTiddlyWiki is published by Jeremy Ruston at Osmosoft under a BSD open source license</a>\sn<a rel=\s"license\s" href=\s"http://snapgrid.com\s" target=\s"_new\s">GTD TiddlyWiki is a modification by Nathan Bowers at Snapgrid under the same license terms.</a>\sn<a rel=\s"license\s" href=\s"http://davidco.com\s" target=\s"_new\s">\s"Getting Things Done\s" is &#169; David Allen at Davidco. Davidco has no affiliation with TiddlyWiki or GTD TiddlyWiki.</a></div></div>\sn<div id='displayArea'>\sn<div id='messageArea'></div>\sn<div id='tiddlerDisplay'></div>\sn<!--}}}-->";\n\nconfig.themes.push("GTD");\n\n\nconfig.shadowTiddlers.DevFireStyleSheet = "/***\sn!Devfire\snStyle by Clint Checketts (http://www.checkettsweb.com) for TiddlyWiki 2.0\snInspired by the GLP'd Darkfire Wordpress skin.\sn\sn!Sections in this Tiddler:\sn*Generic rules\sn*Links styles\sn*Header\sn*Main menu\sn*Sidebar\sn**Sidebar options\sn**Sidebar tabs\sn*Message area\sn*Popup\sn*Tabs\sn*Tiddler display\sn**Viewer\sn**Editor\sn*Misc. rules\sn!Generic rules /% ============================================================= %/\sn***/\sn/*{{{*/\snbody {\snbackground-color: #000;\sn}\sn/*}}}*/\sn/***\sn!Link styles /% ============================================================= %/\sn***/\sn/*{{{*/\sna,\sna.button,\sn#mainMenu a.button,\sn#sidebarOptions .sliderPanel a{\sn color: #ffbf00;\sn border: 0;\sn}\sn\sna:hover,\sna.button:hover,\sn#mainMenu a.button:hover,\sn#sidebarOptions .sliderPanel a:hover\sn#sidebarOptions .sliderPanel a:active{\sn color: #ff7f00;\sn border: 0;\sn border-bottom: #ff7f00 1px dashed;\sn background: transparent;\sn text-decoration: none;\sn}\sn\sn#displayArea .button.highlight{\sn color: #ffbf00;\sn background: #4c4c4c;\sn}\sn/*}}}*/\sn/***\sn!Header styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn.header{\sn border-bottom: 2px solid #ffbf00;\sn color: #fff;\sn}\sn\sn.headerForeground a {\sn color: #fff;\sn}\sn\sn.header a:hover {\sn border-bottom: 1px dashed #fff;\sn}\sn/*}}}*/\sn/***\sn!Main menu styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#mainMenu {color: #fff;}\sn#mainMenu h1{\sn font-size: 1.1em;\sn}\sn#mainMenu li,#mainMenu ul{\sn list-style: none;\sn margin: 0;\sn padding: 0;\sn}\sn/*}}}*/\sn/***\sn!Sidebar styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#sidebar {\sn right: 0;\sn color: #fff;\sn border: 2px solid #ffbf00;\sn border-width: 0 0 2px 2px;\sn}\sn#sidebarOptions {\sn background-color: #4c4c4c;\sn padding: 0;\sn}\sn\sn#sidebarOptions a{\sn margin: 0;\sn color: #ffbf00;\sn border: 0;\sn}\sn#sidebarOptions a:hover {\sn color: #4c4c4c;\sn background-color: #ffbf00;\sn\sn}\sn\sn#sidebarOptions a:active {\sn color: #ffbf00;\sn background-color: transparent;\sn}\sn\sn#sidebarOptions .sliderPanel {\sn background-color: #333;\sn margin: 0;\sn}\sn\sn#sidebarTabs {background-color: #4c4c4c;}\sn#sidebarTabs .tabSelected {\sn padding: 3px 3px;\sn cursor: default;\sn color: #ffbf00;\sn background-color: #666;\sn}\sn#sidebarTabs .tabUnselected {\sn color: #ffbf00;\sn background-color: #5f5f5f;\sn padding: 0 4px;\sn}\sn\sn#sidebarTabs .tabUnselected:hover,\sn#sidebarTabs .tabContents {\sn background-color: #666;\sn}\sn\sn.listTitle{color: #FFF;}\sn#sidebarTabs .tabContents a{\sn color: #ffbf00;\sn}\sn\sn#sidebarTabs .tabContents a:hover{\sn color: #ff7f00;\sn background: transparent;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabSelected,\sn#sidebarTabs .txtMoreTab .tab:hover,\sn#sidebarTabs .txtMoreTab .tabContents{\sn color: #ffbf00;\sn background: #4c4c4c;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabUnselected {\sn color: #ffbf00;\sn background: #5f5f5f;\sn}\sn\sn.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}\sn.tab.tabUnselected {background-color: #666;}\sn.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}\sn.tabContents {\sn background-color: #4c4c4c;\sn border: 0;\sn}\sn.tabContents .tabContents{background: #666;}\sn.tabContents .tabSelected{background: #666;}\sn.tabContents .tabUnselected{background: #5f5f5f;}\sn.tabContents .tab:hover{background: #666;}\sn/*}}}*/\sn/***\sn!Message area styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}\sn#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}\sn#messageArea a:hover {color: #ff7f00;}\sn#messageArea a:active {color: #ff7f00;}\sn#messageArea .messageToolbar a{\sn border: 1px solid #ffbf00;\sn background: #4c4c4c;\sn}\sn/*}}}*/\sn/***\sn!Popup styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}\sn#popup a {color: #ffbf00; }\sn#popup a:hover { background: transparent; color: #ff7f00; border: 0;}\sn#popup hr {color: #ffbf00; background: #ffbf00;}\sn/*}}}*/\sn/***\sn!Tiddler Display styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn.title{color: #fff;}\snh1, h2, h3, h4, h5 {\sn color: #fff;\sn background-color: transparent;\sn border-bottom: 1px solid #333;\sn}\sn\sn.subtitle{\sn color: #666;\sn}\sn\sn.viewer {color: #fff; }\sn\sn.viewer table{background: #666; color: #fff;}\sn\sn.viewer th {background-color: #996; color: #fff;}\sn\sn.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00;}\sn\sn.viewer hr {color: #666;}\sn\sn.tiddler .button {color: #4c4c4c;}\sn.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}\sn.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}\sn\sn.toolbar {\sn color: #4c4c4c;\sn}\sn\sn.toolbar a.button,\sn.editorFooter a{\sn border: 0;\sn}\sn\sn.footer {\sn color: #ddd;\sn}\sn\sn.selectedTiddler .footer {\sn color: #888;\sn}\sn\sn.highlight, .marked {\sn color: #000;\sn background-color: #ffe72f;\sn}\sn.editorFooter {\sn color: #aaa;\sn}\sn\sn.tab{\sn-moz-border-radius-topleft: 3px;\sn-moz-border-radius-topright: 3px;\sn}\sn\sn.tagging,\sn.tagged{\sn background: #4c4c4c;\sn border: 1px solid #4c4c4c; \sn}\sn\sn.selected .tagging,\sn.selected .tagged{\sn background: #000;\sn border: 1px solid #ffbf00;\sn}\sn\sn.tagging .listTitle,\sn.tagged .listTitle{\sn color: #fff;\sn}\sn\sn.tagging .button,\sn.tagged .button{\sn color: #ffbf00;\sn border: 0;\sn padding: 0;\sn}\sn\sn.tagging .button:hover,\sn.tagged .button:hover{\snbackground: transparent;\sn}\sn/*}}}*//***\sn!Devfire\snStyle by Clint Checketts (http://www.checkettsweb.com) for TiddlyWiki 2.0\snInspired by the GLP'd Darkfire Wordpress skin.\sn\sn!Sections in this Tiddler:\sn*Generic rules\sn*Links styles\sn*Header\sn*Main menu\sn*Sidebar\sn**Sidebar options\sn**Sidebar tabs\sn*Message area\sn*Popup\sn*Tabs\sn*Tiddler display\sn**Viewer\sn**Editor\sn*Misc. rules\sn!Generic rules /% ============================================================= %/\sn***/\sn/*{{{*/\snbody {\snbackground-color: #000;\sn}\sn/*}}}*/\sn/***\sn!Link styles /% ============================================================= %/\sn***/\sn/*{{{*/\sna,\sna.button,\sn#mainMenu a.button,\sn#sidebarOptions .sliderPanel a{\sn color: #ffbf00;\sn border: 0;\sn}\sn\sna:hover,\sna.button:hover,\sn#mainMenu a.button:hover,\sn#sidebarOptions .sliderPanel a:hover\sn#sidebarOptions .sliderPanel a:active{\sn color: #ff7f00;\sn border: 0;\sn border-bottom: #ff7f00 1px dashed;\sn background: transparent;\sn text-decoration: none;\sn}\sn\sn#displayArea .button.highlight{\sn color: #ffbf00;\sn background: #4c4c4c;\sn}\sn/*}}}*/\sn/***\sn!Header styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn.header{\sn border-bottom: 2px solid #ffbf00;\sn color: #fff;\sn}\sn\sn.headerForeground a {\sn color: #fff;\sn}\sn\sn.header a:hover {\sn border-bottom: 1px dashed #fff;\sn}\sn/*}}}*/\sn/***\sn!Main menu styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#mainMenu {color: #fff;}\sn#mainMenu h1{\sn font-size: 1.1em;\sn}\sn#mainMenu li,#mainMenu ul{\sn list-style: none;\sn margin: 0;\sn padding: 0;\sn}\sn/*}}}*/\sn/***\sn!Sidebar styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#sidebar {\sn right: 0;\sn color: #fff;\sn border: 2px solid #ffbf00;\sn border-width: 0 0 2px 2px;\sn}\sn#sidebarOptions {\sn background-color: #4c4c4c;\sn padding: 0;\sn}\sn\sn#sidebarOptions a{\sn margin: 0;\sn color: #ffbf00;\sn border: 0;\sn}\sn#sidebarOptions a:hover {\sn color: #4c4c4c;\sn background-color: #ffbf00;\sn\sn}\sn\sn#sidebarOptions a:active {\sn color: #ffbf00;\sn background-color: transparent;\sn}\sn\sn#sidebarOptions .sliderPanel {\sn background-color: #333;\sn margin: 0;\sn}\sn\sn#sidebarTabs {background-color: #4c4c4c;}\sn#sidebarTabs .tabSelected {\sn padding: 3px 3px;\sn cursor: default;\sn color: #ffbf00;\sn background-color: #666;\sn}\sn#sidebarTabs .tabUnselected {\sn color: #ffbf00;\sn background-color: #5f5f5f;\sn padding: 0 4px;\sn}\sn\sn#sidebarTabs .tabUnselected:hover,\sn#sidebarTabs .tabContents {\sn background-color: #666;\sn}\sn\sn.listTitle{color: #FFF;}\sn#sidebarTabs .tabContents a{\sn color: #ffbf00;\sn}\sn\sn#sidebarTabs .tabContents a:hover{\sn color: #ff7f00;\sn background: transparent;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabSelected,\sn#sidebarTabs .txtMoreTab .tab:hover,\sn#sidebarTabs .txtMoreTab .tabContents{\sn color: #ffbf00;\sn background: #4c4c4c;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabUnselected {\sn color: #ffbf00;\sn background: #5f5f5f;\sn}\sn\sn.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}\sn.tab.tabUnselected {background-color: #666;}\sn.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}\sn.tabContents {\sn background-color: #4c4c4c;\sn border: 0;\sn}\sn.tabContents .tabContents{background: #666;}\sn.tabContents .tabSelected{background: #666;}\sn.tabContents .tabUnselected{background: #5f5f5f;}\sn.tabContents .tab:hover{background: #666;}\sn/*}}}*/\sn/***\sn!Message area styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}\sn#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}\sn#messageArea a:hover {color: #ff7f00;}\sn#messageArea a:active {color: #ff7f00;}\sn#messageArea .messageToolbar a{\sn border: 1px solid #ffbf00;\sn background: #4c4c4c;\sn}\sn/*}}}*/\sn/***\sn!Popup styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn#popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}\sn#popup li.disabled{color: #ffbf00;}\sn\sn#popup a {color: #ffbf00; }\sn#popup a:hover { background: transparent; color: #ff7f00; border: 0;}\sn#popup hr {color: #ffbf00; background: #ffbf00;}\sn/*}}}*/\sn/***\sn!Tiddler Display styles /% ============================================================= %/\sn***/\sn/*{{{*/\sn.title{color: #fff;}\snh1, h2, h3, h4, h5 {\sn color: #fff;\sn background-color: transparent;\sn border-bottom: 1px solid #333;\sn}\sn\sn.subtitle{\sn color: #666;\sn}\sn\sn.viewer {color: #fff; }\sn\sn.viewer table{background: #666; color: #fff;}\sn\sn.viewer th {background-color: #996; color: #fff;}\sn\sn.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00}\sn\sn.viewer hr {color: #666;}\sn\sn.tiddler .button {color: #4c4c4c;}\sn.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}\sn.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}\sn\sn.toolbar {\sn color: #4c4c4c;\sn}\sn\sn.toolbar a.button,\sn.editorFooter a{\sn border: 0;\sn}\sn\sn.footer {\sn color: #ddd;\sn}\sn\sn.selectedTiddler .footer {\sn color: #888;\sn}\sn\sn.highlight, .marked {\sn color: #000;\sn background-color: #ffe72f;\sn}\sn.editorFooter {\sn color: #aaa;\sn}\sn\sn.tab{\sn-moz-border-radius-topleft: 3px;\sn-moz-border-radius-topright: 3px;\sn}\sn\sn.tagging,\sn.tagged{\sn background: #4c4c4c;\sn border: 1px solid #4c4c4c; \sn}\sn\sn.selected .tagging,\sn.selected .tagged{\sn background: #000;\sn border: 1px solid #ffbf00;\sn}\sn\sn.tagging .listTitle,\sn.tagged .listTitle{\sn color: #fff;\sn}\sn\sn.tagging .button,\sn.tagged .button{\sn color: #ffbf00;\sn border: 0;\sn padding: 0;\sn}\sn\sn.tagging .button:hover,\sn.tagged .button:hover{\snbackground: transparent;\sn}\sn\sn.cascade {\sn background: #4c4c4c;\sn color: #ddd;\sn border: 1px solid #ffbf00;\sn}\sn/*}}}*/";\n\nconfig.shadowTiddlers.DevFirePageTemplate = "<div class='header' macro='gradient vert #390108 #900'>\sn<div class='headerShadow'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn<div class='headerForeground'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn</div>\sn<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\sn<div id='sidebar'>\sn<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\sn</div>\sn<div id='displayArea'>\sn<div id='messageArea'></div>\sn<div id='tiddlerDisplay'></div>\sn</div>";\n\nconfig.themes.push("DevFire");\n\n\nconfig.shadowTiddlers.ClassicBrownStyleSheet = "[[TagglyTaggingStyles]]\sn\sn/***\sn!TiddlyWiki Classic Color Scheme\snDesigned by Jeremy Ruston\sn\snTo use this color scheme copy the [[ClassicTiddlyWiki]] contents into a tiddler and name it 'StyleSheet' also grab the [[ClassicTemplate]] and copy its contents into a tiddler named 'PageTemplate'.\sn\sn!Colors Used\sn*@@bgcolor(#630):color(#fff): #630@@\sn*@@bgcolor(#930): #930@@\sn*@@bgcolor(#996633): #963@@\sn*@@bgcolor(#c90): #c90@@\sn*@@bgcolor(#cf6): #cf6@@\sn*@@bgcolor(#cc9): #cc9@@\sn*@@bgcolor(#ba9): #ba9@@\sn*@@bgcolor(#996): #996@@\sn*@@bgcolor(#300):color(#fff): #300@@\sn*@@bgcolor(#000000):color(#fff): #000@@\sn*@@bgcolor(#666): #666@@\sn*@@bgcolor(#888): #888@@\sn*@@bgcolor(#aaa): #aaa@@\sn*@@bgcolor(#ddd): #ddd@@\sn*@@bgcolor(#eee): #eee@@\sn*@@bgcolor(#ffffff): #fff@@\sn*@@bgcolor(#f00): #f00@@\sn*@@bgcolor(#ff3): #ff3@@\sn!Generic Rules /%==============================================%/\sn***/\sn/*{{{*/\snbody {\sn background: #fff;\sn color: #000;\sn}\sn\sna{\sn color: #963;\sn}\sn\sna:hover{\sn background: #963;\sn color: #fff;\sn}\sn\sna img{\sn border: 0;\sn}\sn\snh1,h2,h3,h4,h5 {\sn background: #cc9;\sn}\sn/*}}}*/\sn/***\sn!Header /%==================================================%/\sn***/\sn/*{{{*/\sn.header{\sn background: #300;\sn}\sn\sn.titleLine {\sn color: #fff;\sn padding: 5em 0em 1em .5em;\sn}\sn\sn.titleLine a {\sn color: #cf6;\sn}\sn\sn.titleLine a:hover {\sn background: transparent;\sn}\sn/*}}}*/\sn/***\sn!Main Menu /%=================================================%/\sn***/\sn/*{{{*/\sn#mainMenu .button {\sn color: #930;\sn}\sn\sn#mainMenu .button:hover {\sn color: #cf6;\sn background: #930;\sn}\sn\sn#mainMenu li{\sn list-style: none;\sn}\sn/*}}}*/\sn/***\sn!Sidebar options /%=================================================%/\sn~TiddlyLinks and buttons are treated identically in the sidebar and slider panel\sn***/\sn/*{{{*/\sn#sidebar {\sn background: #c90;\sn right: 0;\sn}\sn\sn#sidebarOptions a{\sn color: #930;\sn border: 0;\sn margin: 0;\sn padding: .25em .5em;\sn}\sn\sn#sidebarOptions a:hover {\sn color: #cf6;\sn background: #930;\sn}\sn\sn#sidebarOptions a:active {\sn color: #930;\sn background: #cf6;\sn}\sn\sn#sidebarOptions .sliderPanel {\sn background: #eea;\sn margin: 0;\sn}\sn\sn#sidebarOptions .sliderPanel a {\sn color: #930;\sn}\sn\sn#sidebarOptions .sliderPanel a:hover {\sn color: #cf6;\sn background: #930;\sn}\sn\sn#sidebarOptions .sliderPanel a:active {\sn color: #930;\sn background: #cf6;\sn}\sn/*}}}*/\sn/***\sn!Sidebar tabs /%=================================================%/\sn***/\sn/*{{{*/\sn.tabSelected,.tabContents {\sn background: #eea;\sn border: 0;\sn}\sn\sn.tabUnselected {\sn background: #c90;\sn}\sn\sn#sidebarTabs {\sn background: #c90;\sn}\sn\sn#sidebarTabs .tabSelected{\sn color: #cf6;\sn background: #963;\sn}\sn\sn#sidebarTabs .tabUnselected {\sn color: #cf6;\sn background: #930;\sn}\sn\sn#sidebarTabs .tabContents{\sn background: #963;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabSelected,\sn#sidebarTabs .txtMoreTab .tabSelected:hover{\sn background: #930;\sn color: #cf6;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabUnselected,\sn#sidebarTabs .txtMoreTab .tabUnselected:hover{\sn background: #300;\sn color: #cf6;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabContents {\sn background: #930;\sn}\sn\sn#sidebarTabs .tabContents a {\sn color: #cf6;\sn border: 0;\sn}\sn\sn#sidebarTabs .button.highlight,\sn#sidebarTabs .tabContents a:hover {\sn background: #cf6;\sn color: #300;\sn}\sn/*}}}*/\sn/***\sn!Message Area /%=================================================%/\sn***/\sn/*{{{*/\sn#messageArea {\sn background: #930;\sn color: #fff;\sn}\sn\sn#messageArea a:link, #messageArea a:visited {\sn color: #c90;\sn}\sn\sn#messageArea a:hover {\sn color: #963;\sn background: transparent;\sn}\sn\sn#messageArea a:active {\sn color: #fff;\sn}\sn/*}}}*/\sn/***\sn!Popup /%=================================================%/\sn***/\sn/*{{{*/\sn.popup {\sn background: #eea;\sn border: 1px solid #930;\sn}\sn\sn.popup hr {\sn color: #963;\sn background: #963;\sn border-bottom: 1px;\sn}\sn\sn.popup li.disabled {\sn color: #ba9;\sn}\sn\sn.popup li a, .popup li a:visited {\sn color: #300;\sn}\sn\sn.popup li a:hover {\sn background: #930;\sn color: #eea;\sn}\sn/*}}}*/\sn/***\sn!Tiddler Display /%=================================================%/\sn***/\sn/*{{{*/\sn.tiddler .button {\sn color: #930;\sn}\sn\sn.tiddler .button:hover {\sn color: #cf6;\sn background: #930;\sn}\sn\sn.tiddler .button:active {\sn color: #fff;\sn background: #c90;\sn}\sn\sn.shadow .title {\sn color: #888;\sn}\sn\sn.title {\sn color: #422;\sn}\sn\sn.subtitle {\sn color: #866;\sn}\sn\sn.toolbar {\sn color: #aaa;\sn}\sn\sn.toolbar a,\sn.toolbar a:hover{\sn border: 0;\sn}\sn\sn.tagging, .tagged {\sn border: 1px solid #fff;\sn background-color: #ffc;\sn}\sn\sn.selected .tagging, .selected .tagged {\sn border: 1px solid #aa6;\sn background-color: #ffc;\sn}\sn\sn.tagging .listTitle, .tagged .listTitle {\sncolor: #999999;\sn}\sn\sn.footer {\sn color: #ddd;\sn}\sn\sn.selected .footer {\sn color: #888;\sn}\sn\sn.sparkline {\sn background: #eea;\sn border: 0;\sn}\sn\sn.sparktick {\sn background: #930;\sn}\sn\sn.errorButton {\sn color: #ff0;\sn background: #f00;\sn}\sn\sn.zoomer {\sn color: #963;\sn border: 1px solid #963;\sn}\sn/*}}}*/\sn/***\sn''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\sn***/\sn/*{{{*/\sn.viewer .button {\sn background: #c90;\sn color: #300;\sn border-right: 1px solid #300;\sn border-bottom: 1px solid #300;\sn}\sn\sn.viewer .button:hover {\sn background: #eea;\sn color: #c90;\sn}\sn\sn.viewer .imageLink{\sn background: transparent;\sn}\sn\sn.viewer blockquote {\sn border-left: 3px solid #666;\sn}\sn\sn.viewer table {\sn border: 2px solid #303030;\sn}\sn\sn.viewer th, thead td {\sn background: #996;\sn border: 1px solid #606060;\sn color: #fff;\sn}\sn\sn.viewer td, .viewer tr {\sn border: 1px solid #606060;\sn}\sn\sn.viewer pre {\sn border: 1px solid #963;\sn background: #eea;\sn}\sn\sn.viewer code {\sn color: #630;\sn}\sn\sn.viewer hr {\sn border: 0;\sn border-top: dashed 1px #606060;\sn color: #666;\sn}\sn\sn.highlight, .marked {\sn background: #ff3;\sn}\sn/*}}}*/\sn/***\sn''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\sn***/\sn/*{{{*/\sn.editor input {\sn border: 1px solid #000;\sn}\sn\sn.editor textarea {\sn border: 1px solid #000;\sn width: 100%;\sn}\sn\sn.editorFooter {\sn color: #aaa;\sn}\sn\sn.editorFooter a {\sn color: #930;\sn}\sn\sn.editorFooter a:hover {\sn color: #cf6;\sn background: #930;\sn}\sn\sn.editorFooter a:active {\sn color: #fff;\sn background: #c90;\sn}\sn/*}}}*/";\n\nconfig.shadowTiddlers.ClassicBrownPageTemplate = "<div class='header'>\sn<div class='titleLine'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn</div>\sn<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\sn<div id='sidebar'>\sn<div macro='gradient vert #ffffff #cc9900'>\sn<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn</div>\sn<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\sn</div>\sn<div id='displayArea'>\sn<div id='messageArea'></div>\sn<div id='tiddlerDisplay'></div>\sn</div>";\n\nconfig.themes.push("ClassicBrown");\n//}}}\n/***\n!~MonkeyPirateTiddlyWiki Themes\nCreated by Simon Baird from http://simonbaird.com/mptw/\n***/\n//{{{\n\n// couple of extra bits\nconfig.shadowTiddlers.HorizontalMainMenuStyles = "/***\snTo use, add {{{[[HorizontalMainMenuStyles]]}}} to your StyleSheet tiddler, or you can just paste the CSS in directly. See also HorizontalMainMenu and PageTemplate.\sn***/\sn/*{{{*/\sn\sn#topMenu br {display:none; }\sn#topMenu { background: #39a; }\sn#topMenu { padding:2px; }\sn#topMenu .button, #topMenu .tiddlyLink {\sn margin-left:0.5em; margin-right:0.5em;\sn padding-left:3px; padding-right:3px;\sn color:white; font-size:115%;\sn}\sn#topMenu .button:hover, #topMenu .tiddlyLink:hover { background:#178;}\sn\sn#displayArea { margin: 1em 15.7em 0em 1em; } /* so we use the freed up space */\sn\sn/* just in case want some QuickOpenTags in your topMenu */\sn#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }\sn#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }\sn#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }\sn\sn\sn/*}}}*/";\n\nconfig.shadowTiddlers.SideBarWhiteAndGrey = "/***\snThis CSS by DaveBirss.\sn***/\sn/*{{{*/\sn\sn.tabSelected {\sn background: #fff;\sn}\sn\sn.tabUnselected {\sn background: #eee;\sn}\sn\sn#sidebar {\sn color: #000;\sn background: transparent; \sn}\sn\sn#sidebarOptions {\sn background: #fff;\sn}\sn\sn#sidebarOptions .button {\sn color: #999;\sn}\sn\sn#sidebarOptions .button:hover {\sn color: #000;\sn background: #fff;\sn border-color:white;\sn}\sn\sn#sidebarOptions .button:active {\sn color: #000;\sn background: #fff;\sn}\sn\sn#sidebarOptions .sliderPanel {\sn background: transparent;\sn}\sn\sn#sidebarOptions .sliderPanel A {\sn color: #999;\sn}\sn\sn#sidebarOptions .sliderPanel A:hover {\sn color: #000;\sn background: #fff;\sn}\sn\sn#sidebarOptions .sliderPanel A:active {\sn color: #000;\sn background: #fff;\sn}\sn\sn.sidebarSubHeading {\sn color: #000;\sn}\sn\sn#sidebarTabs {`\sn background: #fff\sn}\sn\sn#sidebarTabs .tabSelected {\sn color: #000;\sn background: #fff;\sn border-top: solid 1px #ccc;\sn border-left: solid 1px #ccc;\sn border-right: solid 1px #ccc;\sn border-bottom: none;\sn}\sn\sn#sidebarTabs .tabUnselected {\sn color: #999;\sn background: #eee;\sn border-top: solid 1px #ccc;\sn border-left: solid 1px #ccc;\sn border-right: solid 1px #ccc;\sn border-bottom: none;\sn}\sn\sn#sidebarTabs .tabContents {\sn background: #fff;\sn}\sn\sn\sn#sidebarTabs .txtMoreTab .tabSelected {\sn background: #fff;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabUnselected {\sn background: #eee;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabContents {\sn background: #fff;\sn}\sn\sn#sidebarTabs .tabContents .tiddlyLink {\sn color: #999;\sn}\sn\sn#sidebarTabs .tabContents .tiddlyLink:hover {\sn background: #fff;\sn color: #000;\sn}\sn\sn#sidebarTabs .tabContents {\sn color: #000;\sn}\sn\sn#sidebarTabs .button {\sn color: #666;\sn}\sn\sn#sidebarTabs .tabContents .button:hover {\sn color: #000;\sn background: #fff;\sn}\sn\sn\sn/*}}}*/";\n\n\nconfig.shadowTiddlers.MPTWStyleSheet = "/***\snCosmetic fixes that probably should be included in a future TW...\sn***/\sn/*{{{*/\sn.viewer .listTitle { list-style-type:none; margin-left:-2em; }\sn.editorFooter .button { padding-top: 0px; padding-bottom:0px; }\sn/*}}}*/\sn/***\snImportant stuff. See TagglyTaggingStyles and HorizontalMainMenuStyles\sn***/\sn/*{{{*/\sn[[TagglyTaggingStyles]]\sn[[HorizontalMainMenuStyles]]\sn/*}}}*/\sn/***\snClint's fix for weird IE behaviours\sn***/\sn/*{{{*/\snbody {position:static;}\sn.tagClear{margin-top:1em;clear:both;}\sn/*}}}*/\sn/***\snJust colours, fonts, tweaks etc. See SideBarWhiteAndGrey\sn***/\sn/*{{{*/\snbody {background:#eee; /* font-size:103%; */}\sna{ color: #069; }\sna:hover{ background: #069; color: #fff; }\sn.popup { background: #178; border: 1px solid #069; }\sn.headerForeground a { color: #6fc;}\sn.headerShadow { left: 2px; top: 2px; }\sn.title { padding:0px; margin:0px; }\sn.siteSubtitle { padding:0px; margin:0px; padding-left:1.5em; }\sn.subtitle { font-size:90%; color:#ccc; padding-left:0.25em; }\snh1,h2,h3,h4,h5 { color: #000; background: transparent; }\sn.title {color:black; font-size:2em;}\sn.shadow .title {color:#999; }\sn.viewer pre { background-color:#f8f8ff; border-color:#ddf; }\sn.viewer { padding-top:0px; }\sn.editor textarea { font-family:monospace; }\sn#sidebarOptions { border:1px #ccc solid; }\sn.tiddler {\sn border-bottom:1px solid #ccc; border-right:1px solid #ccc; padding-bottom:1em; margin-bottom:1em; \sn background:#fff; padding-right:1.5em; }\sn#messageArea { background-color:#bde; border-color:#8ab; border-width:4px; border-style:dotted; font-size:90%; }\sn#messageArea .button { text-decoration:none; font-weight:bold; background:transparent; border:0px; }\sn#messageArea .button:hover {background: #acd; }\sn[[SideBarWhiteAndGrey]]\sn\sn.viewer td {vertical-align:top;}\sn\sn.viewer table.noBorder {border-style:none;}\sn.viewer table.noBorder td {border-style:none;}\sn.viewer table.threeCol td {width:33%;}\sn\sn#adsense {\sn margin: 1em 15.7em 0em 1em; border:1px solid #ddd;\sn background:#f8f8f8; text-align:center;margin-bottom:1em;overflow:hidden;padding:0.5em;} \sn\sn.sliderPanel { margin-left: 2em; }\sn\sn.viewer th { background:#ddd; color:black; }\sn/*}}}*/\sn/*{{{*/\sn/* for testing clint's new formatter. eg {{red{asdfaf}}} */\sn.red { color:white; background:red; display:block; padding:1em; } \sn\sn/* FF doesn't need this. but IE seems to want to make first one white */\sn.txtMainTab .tabset { background:#eee; }\sn.txtMoreTab .tabset { background:transparent; }\sn\sn.faq ol li { padding-top:1em; font-size:120%; }\sn.faq ol ul li { padding-top:0px; font-size:100%; }\sn\sn/*}}}*/\sn";\n\nconfig.shadowTiddlers.MPTWPageTemplate = "<!---\snI've just tweaked my gradient colours and the topMenu bit. See HorizontalMainMenu.\sn--->\sn<!--{{{-->\sn<div class='header' macro='gradient vert #000 #069'>\sn<div class='headerShadow'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn<div class='headerForeground'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn<div id='topMenu' refresh='content' tiddler='MainMenu'></div>\sn</div>\sn<div id='sidebar'>\sn<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\sn</div>\sn<div id='displayArea'>\sn<div id='messageArea'></div>\sn<div id='tiddlerDisplay'></div>\sn</div>\sn<!--}}}-->\sn";\n\nconfig.themes.push("MPTW");\n\n\nconfig.shadowTiddlers.MPTWCurvesStyleSheet = "/*{{{*/\sn[[MPTWStyleSheet]]\sn.tiddler { -moz-border-radius: 2em;}\sn.button { -moz-border-radius: 1em;}\sn#sidebarOptions { -moz-border-radius: 0 0 1em 1em;}\sn.tab { -moz-border-radius: 1em 1em 0 0;}\sn.tabContents { -moz-border-radius: 1em 1em 0 0;}\sn/*}}}*/";\n\nconfig.shadowTiddlers.MPTWCurvesPageTemplate = config.shadowTiddlers.MPTWPageTemplate;\n\nconfig.themes.push("MPTWCurves");\n\n//}}}\n/***\n!~GTDd3\nCreated by Tomo (Tom Otvos) from http://www.dcubed.ca\n(Based on the original GTD theme by Nathan Bowers at http://snapgrid.com)\n***/\n//{{{\nconfig.shadowTiddlers.GTDd3PageTemplate = "<div class='header'>\sn<div class='headerShadow'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn<div class='headerForeground'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn</div>\sn<div id='mainMenu' refresh='content' tiddler='MainMenu' force='true'></div>\sn<div id='sidebar'>\sn<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\sn</div>\sn<div id='displayArea'>\sn<div id='messageArea'></div>\sn<div id='tiddlerDisplay'></div>\sn</div>";\n\nconfig.shadowTiddlers.GTDd3StyleSheet = "/***\sn!GTD specific styles\sn***/\sn\sn/*{{{*/\sn\sn/* the tagging popup really gets in the way so push it off to the side */\sn.tagging { float: right; }\sn\sn/* this unbullets actions in the actionList macro */\snul.gtdActionList { list-style-type: none; }\snli.gtdActionListProject, li.gtdActionListContext { margin-top: 1.0em; }\sn\sn.gtdCompletedActionItem { text-decoration: line-through; }\sn.gtdNextActionItem { border-bottom: 1px solid red; }\sn\sn/*}}}*/\sn\sn/***\sn!Imported 3x5 printing styles\sn//adapted from the work of Clint Checketts, http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm //\sn***/\sn\sn/*{{{*/\sn\sn@media print {\sn#mainMenu, #sidebar, #messageArea {display: none !important;}\sn#displayArea {margin: 1em 1em 0em 1em;}\sn\sn\sn/* LAYOUT ELEMENTS ========================================================== */\sn*\sn{\sn margin: 0;\sn padding: 0;\sn}\sn\sn#contentWrapper\sn{\sn margin: 0;\sn width: 100%;\sn position: static;\sn}\sn\snbody {\sn background: #fff;\sn color: #000;\sn font-size: 6.2pt;\sn font-family: \s"Lucida Grande\s", \s"Bitstream Vera Sans\s", Helvetica, Verdana, Arial, sans-serif;\sn}\sn\snimg {\sn max-width: 2.2in;\sn max-height: 4.3in;\sn}\sn\sn#header, #side_container, #storeArea, #copyright, #floater, #messageArea, .save_accesskey, .site_description, #saveTest, .toolbar, .header, .footer, .tagging, .tagged\sn{\sn display: none;\sn}\sn\sn#tiddlerDisplay, #displayArea\sn{\sn display: inline;\sn}\sn\sn.tiddler {\sn margin: 0 0 2em 0;\sn border-top: 1px solid #000;\sn page-break-before: always;\sn}\sn\sn.tiddler:first-child {\sn page-break-before: ;\sn}\sn\sn.title {\sn font-size: 1.6em;\sn font-weight: bold;\sn margin-bottom: .3em;\sn padding: .2em 0;\sn border-bottom: 1px dotted #000;\sn}\sn\snp, blockquote, ul, li, ol, dt, dd, dl, table\sn{\sn margin: 0 0 .3em 0;\sn}\sn\snh1, h2, h3, h4, h5, h6\sn{\sn margin: .2em 0;\sn} \sn\snh1\sn{\sn font-size: 1.5em;\sn}\sn\snh2\sn{\sn font-size: 1.3em;\sn}\sn\snh3\sn{\sn font-size: 1.25em;\sn}\sn\snh4\sn{\sn font-size: 1.15em;\sn}\sn\snh5\sn{\sn font-size: 1.1em;\sn}\sn\snblockquote\sn{\sn margin: .6em;\sn padding-left: .6em;\sn border-left: 1px solid #ccc;\sn}\sn\snul\sn{\sn list-style-type: circle;\sn}\sn\snli\sn{\sn margin: .1em 0 .1em 2em;\sn line-height: 1.4em; \sn}\sn\sntable\sn{\sn border-collapse: collapse;\sn font-size: 1em;\sn}\sn\sntd, th\sn{\sn border: 1px solid #999;\sn padding: .2em;\sn}\sn\snhr {\sn border: none;\sn border-top: dotted 1px #777;\sn height: 1px;\sn color: #777;\sn margin: .6em 0;\sn}\sn}\sn/*}}}*/\sn\sn/***\sn!Imported styles for calendar plugin\sn***/\sn\sn/*{{{*/\sn.calendar{\sn border-bottom: 1px solid #550000;\sn}\sn\sn.viewer .calendar{\sn width: 220px;\sn}\sn\sn#mainMenu .calendar{\sn font-size: 8px;\sn cursor: pointer;\sn width: 100%;\sn border: 0;\sn border-collapse: collapse;\sn}\sn\sn#mainMenu .calendar .button{\sn border: 0;\sn}\sn\sn#mainMenu .calendar td{\sn font-size: 8pt;\sn padding: 0;\sn background: #fff;\sn border: 0;\sn}\sn\sn#mainMenu .calendar a{\sn margin: 0;\sn color: #000;\sn background: transparent;\sn}\sn\sn#mainMenu .calendar a:hover{\sn color: #000;\sn background: transparent;\sn}\sn\sn#mainMenu .calendarMonthname,\sn#mainMenu .calendar .calendarMonthTitle td a{\sn color: #fff;\sn}\sn\sn#mainMenu .calendarDaysOfWeek td{\sn background: #500;\sn color: #fff;\sn}\sn/*}}}*/\sn\sn\sn/***\sn!Layout Rules /%==============================================%/\sn***/\sn/*{{{*/\sn\snbody { position: static; }\sn\sn.headerForeground, .headerShadow {\sn padding-top: 1em;\sn}\sn\sn.tiddler {\sn margin: 0 0 0.9em 0;\sn padding-bottom: 1em;\sn}\sn\sn#mainMenu {\sn width: 16em;\sn font-size: 1em;\sn text-align: left;\sn}\sn\sn#mainMenu * {\sn font-size: 1em;\sn font-weight: normal;\sn padding: 0; margin: 0; border: 0;\sn}\sn\sn#mainMenu ul {\sn list-style: none;\sn margin-bottom: 10px;\sn}\sn\sn#mainMenu li {\sn text-indent: 1em;\sn}\sn\sn#mainMenu a.button, #mainMenu a.tiddlyLink, #mainMenu a.externalLink {\sn display: block; margin: 0;\sn}\sn\sn#displayArea {\sn margin-left: 19em;\sn}\sn\sn/*}}}*/\sn\sn/***\sn!Colors Used\sn*@@bgcolor(#8cf): #8cf - Background blue@@\sn*@@bgcolor(#18f): #18f - Top blue@@\sn*@@bgcolor(#04b): #04b - Mid blue@@\sn*@@bgcolor(#014):color(#fff): #014 - Bottom blue@@\sn*@@bgcolor(#ffc): #ffc - Bright yellow@@\sn*@@bgcolor(#fe8): #fe8 - Highlight yellow@@\sn*@@bgcolor(#db4): #db4 - Background yellow@@\sn*@@bgcolor(#841): #841 - Border yellow@@\sn*@@bgcolor(#703):color(#fff): #703 - Title red@@\sn*@@bgcolor(#866): #866 - Subtitle grey@@\sn!Generic Rules /%==============================================%/\sn***/\sn/*{{{*/\snbody {\sn background: #464646;\sn color: #000;\sn}\sn\sna{\sn color: #04b;\sn}\sn\sna:hover{\sn background: #04b;\sn color: #fff;\sn}\sn\sna img{\sn border: 0;\sn}\sn\snh1,h2,h3,h4,h5 {\sn color: #000;\sn background: #eee;\sn}\sn\sn.button {\sn color: #014;\sn border: 1px solid #fff;\sn}\sn\sn.button:hover {\sn color: #014;\sn background: #fe8;\sn border-color: #db4;\sn}\sn\sn.button:active {\sn color: #fff;\sn background: #db4;\sn border: 1px solid #841;\sn}\sn\sn/*}}}*/\sn/***\sn!Header /%==================================================%/\sn***/\sn/*{{{*/\sn.header {\sn background: #000;\sn}\sn\sn.headerShadow {\sn color: #000;\sn}\sn\sn.headerShadow a {\sn font-weight: normal;\sn color: #000;\sn}\sn\sn.headerForeground {\sn color: #cf6;\sn}\sn\sn.headerForeground a {\sn font-weight: normal;\sn color: #cf6;\sn}\sn\sn/* ??? what is up when you specify a site title colour in IE ??? */\sn/* .siteTitle { color: red; } */\sn\sn/*}}}*/\sn/***\sn!General tabs /%=================================================%/\sn***/\sn/*{{{*/\sn\sn.tabSelected {\sn color: #fff;\sn background: #960;\sn border: none;\sn}\sn\sn.tabUnselected {\sn color: #fff;\sn background: #660;\sn}\sn\sn.tabContents {\sn color: #004;\sn background: #960;\sn border: none;\sn}\sn\sn.tabContents .button, .tabContents a {\sn border: none;\sn color: #fff;\sn}\sn\sn.tabContents a:hover, .tabset a:hover {\sn background: #000;\sn}\sn\sn/* make nested tab areas look different */\sn.tabContents .tabSelected, .tabContents .tabContents {\sn background: #700;\sn color: #fff;\sn}\sn\sn.tabContents .tabContents {\sn color: #eeb;\sn}\sn\sn/*}}}*/\sn/***\sn!Main Menu /%=================================================%/\sn***/\sn/*{{{*/\sn#mainMenu {\sn background: #700;\sn color: #fff;\sn border-right: 3px solid #500;\sn}\sn\sn#mainMenu * {\sn color: #fff;\sn}\sn\sn#mainMenu a.button, #mainMenu a.tiddlyLink, #mainMenu a.externalLink {\sn border: none;\sn border-bottom: 1px solid #500;\sn border-top: 1px solid #900;\sn}\sn\sn#mainMenu a:hover,\sn#mainMenu a.button:hover {\sn background-color: #b00;\sn color: #fff;\sn}\sn\sn/*}}}*/\sn/***\sn!Sidebar options /%=================================================%/\sn~TiddlyLinks and buttons are treated identically in the sidebar and slider panel\sn***/\sn/*{{{*/\sn#sidebar {\sn color: #000;\sn background: #eeb;\sn border-right: 3px solid #bb8;\sn border-bottom: 3px solid #520;\sn}\sn\sn#sidebarOptions input {\sn border: 1px solid #04b;\sn}\sn\sn#sidebarOptions .sliderPanel {\sn background: #fff;\sn}\sn\sn#sidebarOptions .sliderPanel a {\sn border: none;\sn color: #700;\sn}\sn\sn#sidebarOptions .sliderPanel a:hover {\sn color: #fff;\sn background: #700;\sn}\sn\sn#sidebarOptions .sliderPanel a:active {\sn color: #700;\sn background: #fff;\sn}\sn\sn#sidebarOptions a {\sn color: #700;\sn border: none;\sn}\sn\sn#sidebarOptions a:hover, #sidebarOptions a:active {\sn color: #fff;\sn background: #700;\sn}\sn\sn/*}}}*/\sn/***\sn!Message Area /%=================================================%/\sn***/\sn/*{{{*/\sn#messageArea {\sn border-right: 3px solid #da1;\sn border-bottom: 3px solid #a80;\sn background: #ffe72f;\sn color: #014;\sn}\sn\sn#messageArea .button {\sn padding: 0.2em 0.2em 0.2em 0.2em;\sn color: #014;\sn background: #fff;\sn}\sn\sn/*}}}*/\sn/***\sn!Popup /%=================================================%/\sn***/\sn/*{{{*/\sn.popup {\sn background: #333;\sn border: none;\sn}\sn\sn.popup hr {\sn color: #000;\sn}\sn\sn.popup li.disabled {\sn color: #666;\sn background: #cf6;\sn}\sn\sn.popup li a, .popup li a:visited {\sn color: #000;\sn border: 1px outset #cf6;\sn background: #cf6;\sn}\sn\sn.popup li a:hover {\sn color: #000;\sn border: 1px outset #cf6;\sn background: #ef9;\sn}\sn/*}}}*/\sn/***\sn!Tiddler Display /%=================================================%/\sn***/\sn/*{{{*/\sn.tiddler {\sn background: #fff;\sn border-right: 3px solid #aaa;\sn border-bottom: 3px solid #555;\sn}\sn\sn.tiddler .defaultCommand {\sn font-weight: bold;\sn}\sn\sn.shadow .title {\sn color: #866;\sn}\sn\sn.title {\sn color: #900;\sn}\sn\sn.subtitle {\sn color: #866;\sn}\sn\sn.toolbar {\sn color: #000;\sn}\sn\sn.toolbar .button {\sn background: #cf6;\sn border: 1px outset #cf6;\sn}\sn\sn.toolbar .button:hover {\sn background: #ef9;\sn}\sn\sn.tagging, .tagged {\sn border: 1px solid #eee;\sn background-color: #eee;\sn}\sn\sn.selected .tagging, .selected .tagged {\sn background-color: #ddd;\sn border: 1px solid #bbb;\sn}\sn\sn.tagging .listTitle, .tagged .listTitle {\sn color: #014;\sn}\sn\sn.tagging .button, .tagged .button {\sn border: none;\sn}\sn\sn.footer {\sn color: #ddd;\sn}\sn\sn.selected .footer {\sn color: #888;\sn}\sn\sn.sparkline {\sn background: #8cf;\sn border: 0;\sn}\sn\sn.sparktick {\sn background: #014;\sn}\sn\sn.errorButton {\sn color: #ff0;\sn background: #f00;\sn}\sn\sn.cascade {\sn background: #eef;\sn color: #aac;\sn border: 1px solid #aac;\sn}\sn\sn.imageLink, #displayArea .imageLink {\sn background: transparent;\sn}\sn\sn/*}}}*/\sn/***\sn''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\sn***/\sn/*{{{*/\sn\sn.viewer .listTitle {list-style-type: none; margin-left: -2em;}\sn\sn.viewer .button {\sn border: 1px solid #db4;\sn}\sn\sn.viewer blockquote {\sn border-left: 3px solid #666;\sn}\sn\sn.viewer table {\sn border: 2px solid #333;\sn}\sn\sn.viewer th, thead td {\sn background: #db4;\sn border: 1px solid #666;\sn color: #fff;\sn}\sn\sn.viewer td, .viewer tr {\sn border: 1px solid #666;\sn}\sn\sn.viewer pre {\sn border: 1px solid #fe8;\sn background: #ffc;\sn}\sn\sn.viewer code {\sn color: #703;\sn}\sn\sn.viewer hr {\sn border: 0;\sn border-top: dashed 1px #666;\sn color: #666;\sn}\sn\sn.highlight, .marked {\sn background: #fe8;\sn}\sn/*}}}*/\sn/***\sn''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\sn***/\sn/*{{{*/\sn.editor input {\sn border: 1px solid #04b;\sn}\sn\sn.editor textarea {\sn border: 1px solid #04b;\sn width: 100%;\sn}\sn\sn.editorFooter {\sn color: #aaa;\sn}\sn\sn/*}}}*/\sn/***\sn!Personal preferences\sn***/\sn\sn/*{{{*/\sn/* not required, but the menu looks a whole lot nicer flushed left */\sn#mainMenu { text-align: left; }\sn/* make input fields in viewer (options) show up in correct size */\sn.viewer input { font-size: 0.9em; }\sn/*}}}*/\sn";\n\nconfig.themes.push("GTDd3");\n\n\n//}}}\n\n
[[BitComet|http://www.bitcomet.com/]]\nA powerful C++ BitTorrent Client\nBitComet是基于BitTorrent协议的高效p2p文件分享免费软件(俗称BT下载客户端),支持多任务下载,文件有选择的下载;磁盘缓存,减小对硬盘的损伤;只需一个监听端口,方便手工防火墙和NAT/Router配置;在WindowsXP下能自动配置支持Upnp的NAT和XP防火墙,续传做种免扫描,速度限制等多项实用功能,以及自然方便的使用界面。
[[BitComet]]\n[[uTorrent]]
[[Blogger.com]]\n[[BlogSome]]\n[[ModBlog]]\n[[Twitter]]\n[[Weblogs.us]]\n[[WordPress.com]]\n[[更多 Blog 服务|http://del.icio.us/calon/BlogService]]
[[BlogSome|http://www.blogsome.com]]\n提供开放部分功能的 WordPress。\n可以编辑 CSS 和首页代码,可以上传文件,不能够上传插件和主题,只能在 BSP 已经安装的插件和主题中选择。如果觉得某一款插件很实用,可以在它的论坛中推荐,可能会增加到选择列表中。\n发生过中国大陆无法访问的情况。
[[Google Blogger|http://www.blogger.com]]\n属于 [[Google]] 的 blog 服务,功能较为简单,可以通过 FTP 发布到其他站点。\n目前中国大陆无法正常访问,只能注册帐号。
[[Bloglines|http://bloglines.com]]\n最大的 Feed 订阅服务站点。
[[Box.net|https://www.box.net/]]\n免费用户有1G 的存储空间,每个文件体积不超过10MB。
[[CLCL|http://www.nakka.com/soft/clcl/index_eng.html]]\n免费、开源的剪贴板工具。\n\n# All clipboard formats are supported.\n# Template can be registered.\n# Pop-up menu is displayed by "Alt+C."\n# Menu can be customized.\n# Item is paste automatically.\n# Picture is displayed on a menu.\n# Tool tip is displayed on a menu.\n# The format to leave and the format to save can be set up.\n# The ignored window can be set up.\n# The paste key for every window can be set up.\n# Function is extensible with plug-in.\n# freeware\n\n[img[http://www.nakka.com/soft/clcl/clcl_menu_eng.png]]
[[Cascading Style Sheets (CSS)|http://www.w3.org/Style/CSS/]]\n[[CSS Tutorial|http://www.w3schools.com/css/default.asp]]
查无此人
[[Championship Manager]]\n曾经是世界上最好的足球经理模拟游戏。
[[ChatZilla!|http://www.hacksrus.com/~ginda/chatzilla/]]\nIRC 客户端
[[ClamWin|http://www.clamwin.com/]]\n\n免费的定期查毒杀毒软件,没有按访问即时查毒功能。
Close Combat\n以第二次世界大战为背景的最佳连排级即时战术游戏。
[[CnBeta|http://www.cnbeta.com/]]\nFor Your Eyes Only
[[CoLT|http://www.borngeek.com/firefox/colt/]]\n\n按照指定格式快速复制链接的相关信息。
[[Colorful Tabs|https://addons.mozilla.org/firefox/1368/]]\n把标签变成彩色的,更易辨认和区分。
[[ComicsViewer|http://www.comicer.com/stronghorse/software/html/ComicsViewer.htm]]\n适合阅读漫画的工具。
[[Comodo|http://www.personalfirewall.comodo.com/]]\n\n提供免费版本的专业级别防火墙工具,个人用户免费。
[[Counter Strike|http://www.counter-strike.net/]]\n基于 Half-Life 开发出来的一个 Mod,重视团队合作的第一人称射击游戏。
[[Crimson Editor|http://www.crimsoneditor.com/]]\n\n[img[http://www.crimsoneditor.com/images/overview.gif]]
[[DTXMania|http://www.donburi.to/~from/dtxmania/]]\n免费的打鼓、吉他模拟游戏
[[DaFont|http://www.dafont.com/]]\n有数千个免费字体下载。搜索和预览功能很实用。\n\n[img[http://www.dafont.com/img/dafont.gif]]
[[Deamon Tools|http://www.daemon-tools.cc/]]\n免费的虚拟光驱工具。
[[Del.icio.us|http://del.icio.us]]\n最佳的在线共享书签网站之一。\n收藏内容质量高,界面简洁,创新意识强,由于开放了接口,扩展应用丰富。\n无法保存网页快照。\n\n[img[http://images.del.icio.us/static/img/help/saving-postui.jpg]]\n\n[[帮助页面|http://del.icio.us/help/]]\n\n[[Firefox 扩展|http://del.icio.us/help/firefox/extension]]
[[Dexpot|http://www.dexpot.de/]]\n功能超强的免费多桌面管理工具。
[[Dia|http://dia-installer.sourceforge.net/]]\n免费的流程图绘制工具。
[[Dict.CN|http://dict.cn/]]
[[Digg|http://digg.com/]]\nDigg is a technology news website that employs non-hierarchical editorial control. With digg, users submit stories for review, but rather than allowing an editor to decide which stories go on the homepage, the users do.
[[Diigo|http://www.diigo.com/]]\nThe name "Diigo" is an abbreviation for "Digest of Internet Information, Groups and Other stuff."\n\nDiigo (dee'go) is about "Social Annotation". By combining social bookmarking, clippings, in situ annotation, tagging, full-text search, easy sharing and interactions, Diigo offers a powerful personal tool and a rich social platform for knowledge users, and in the process, turns the entire web into a writable, participatory and interactive media.\n\n[img[http://www.diigo.com/images/socialAnnotate.gif]]\n\n[[Diigo Toolbar|http://www.diigo.com/tools]]
[[Doom|http://www.idsoftware.com/games/doom/]]\n[[id Software]] 于1993年10月8日,在 DOS 系统下推出的一款具有里程碑意义的第一人称射击游戏。这个系列的核心制作者是 John Carmack 和 John Romero。
[[DownThemAll!|https://addons.mozilla.org/firefox/201/]]\n提供下载页面内所有链接的选项,有下载管理器,能够多线程下载。
[[Download Statusbar|http://downloadstatusbar.mozdev.org/]]\n在新增的状态栏中显示和管理下载项目。
[[Drag de Go|https://addons.mozilla.org/en-US/firefox/addon/2918]]\n[img[https://addons.mozilla.org/en-US/firefox/images/addon_preview/2918/1]]\n根据拖拽方向指定相应操作的扩展。
[[Drop.io|http://drop.io/]]\n\n提供100M 限时空间,速度较快。
[[EPSnap|http://www.epsnap.com/]]\n\n简单易用且功能强大的抓屏工具,支持多种屏幕抓取方式,没有自带编辑功能。
[[Easy-Go!|http://ajax.forever.kz/]]\n命令行快速启动工具,与 TypeAndRun 各有千秋。
[[EditGrid|http://www.editgrid.com/home]]\n非常优秀的在线电子表格服务。
[[EmEditor|http://www.emeditor.com/]]\n功能强大、界面美观的文本编辑器,对 Unicode、亚洲双字节文字的支持非常好。有免费版本。\n特色功能是脚本编辑、搜索结果和语法高亮、多功能托盘图标等。\n\n[img[http://www.emeditor.com/images/html_e.gif]]\n\n[img[http://www.emeditor.com/images/emeditor_search.gif]]
[[中文、日文互译|http://www.excite.co.jp/world/chinese]]
[[Executor|http://www.executor.dk/]]\n功能强大的命令行快速启动工具。
[[FileZilla]]\nSmartFTP\nWinSCP
[[FastStone Screen Capture|http://www.faststone.org/FSCaptureDetail.htm]]\n免费而功能强大的截屏软件。\n5.3版本为最后的免费版本。\n\n[img[http://www.faststone.org/Images/FSCaptureScreenShot.gif]]
[[Anothr]]\n[[Bloglines]]\n[[Google Reader]]\n[[NewsGator]]\n[[Rojo]]\n[[RssFwd]]\n[[抓虾]]\n
[[FeedDemon]]\n[[GreatNews]]
[[FeedDemon|http://www.newsgator.com/Individuals/FeedDemon/Default.aspx]]\n\n老牌 Feed 订阅、管理工具,目前已经免费。支持与 NewsGator 在线阅读服务同步。
[[FileZilla|http://filezilla.sourceforge.net/]]\n免费的 FTP 服务端、客户端软件。\n\n[img[http://filezilla.sourceforge.net/images/screenshot.gif]]
[[FindAndRunRobot!|http://www.donationcoder.com/Software/Mouser/findrun/index.html]]\n功能强大、支持插件的快速启动工具。
[[Firebug|http://getfirebug.com/]]\n\n功能强大的网页设计工具。
[[Brushed]]\n[[Geek]]\n[[GNOME]]\n[[GNOME Firefox]]\n[[iFox]]\n[[INpact Light Blue]]\n[[Le Breeze]]\n[[Modern Pinball]]\n[[Mostly Crystal]]\n[[Mozilla.org]]\n[[Qute]]\n[[rein]]\n[[Ubuntu Human Theme]]\n[[Whitehart]]\n[[更多主题|https://addons.mozilla.org/firefox/themes]]
[[Aardvark]]\n[[Access Flickr!]]\n[[Adblock]]\n[[Auto Context]]\n[[Autofill Forms]]\n[[Backword]]\n[[Better Gmail]]\n[[ChatZilla!]]\n[[Colorful Tabs]]\n[[CoLT]]\n[[Del.icio.us]]\n[[Diigo Toolbar|Diigo]]\n[[Download Statusbar]]\n[[DownThemAll!]]\n[[Drag de Go]]\n[[Easy DragToGo]]\n[[Firebug]]\n[[Flashblock]]\n[[FlashGot]]\n[[FootieFox]]\nFoxyProxy\n[[gladder]]\n[[Gmail Manager]]\n[[Greasemonkey]]\n[[IE Tab]]\n[[IExif for Firefox]]\n[[Image Zoom]]\n[[InFormEnter]]\n[[It's All Text!]]\n[[Long Titles]]\n[[Menu Editor]]\nNextPlease\n[[Nightly Tester Tools]]\nPageAddict\n[[Pearl Crescent Page Saver]]\n[[Personal Menu]]\n[[Personas for Firefox]]\n[[Read it Later]]\n[[Save Image in Folder]]\n[[Save Session]]\n[[Session Manager]]\n[[ScrapBook]]\n[[Show Image]]\n[[Show Picture]]\n[[Split Browser]]\n[[Status Buttons]]\n[[Stylish]]\n[[Super DragAndGo]]\n[[Tab History]]\n[[Tab Mix Lite CE]]\n[[Tab Mix Plus]]\n[[Taboo]]\n[[TabRenamizer]]\n[[Tiny Menu]]\n[[TinyUrl Creator]]\n[[TwitterFox]]\nUnMHT\n[[Vimperator]]\n[[Web Developer]]\n[[xyzProxy]]\n[[更多扩展收藏|http://del.icio.us/calon/firefox+extension]]\n[[更多官方扩展|https://addons.mozilla.org/firefox/extensions]]\n
[[FlashGot|http://www.flashgot.net/]]
[[Flashblock|http://flashblock.mozdev.org/]]\n暂时停止 Flash 动画下载,经过用户允许之后才开始载入。
[[Flashget|http://www.amazesoft.com/]]
[[Flickr|http://flickr.com]]\n对免费用户的服务包括:无限上传空间,每月10MB 上传限额,不鼓励上传截图,不允许引用图片作网站 logo 和 banner。\n\n[[相关的服务、工具、扩展、脚本|http://del.icio.us/calon/flickr]]
[[Flickr and WebImager|http://phpspot.net/php/flickr/]]\n功能包括:截图、打开指定的图片文件、上传、旋转、变换大小、调用画图板修改、增加鼠标指针图像。\n\n[img[Flickr and WebImager|http://phpspot.net/php/flickr/img/captured.jpg]]
[[Foobar2000|http://www.foobar2000.org/]]\n占用资源少、音质好、界面风格简单的音乐播放器。\n\n[img[http://www.foobar2000.org/screenshots/main-simple.png]]
[[Football Manager|http://www.footballmanager.net/]]\n[[SI Games]] 制作的目前最好的足球经理模拟游戏。
[[FootieFox|https://addons.mozilla.org/firefox/725/]]
[[Foxit Reader|http://www.foxitsoftware.com/pdf/rd_intro.php]]\n轻便小巧的免费 PDF 文件阅读工具。
[[Foxmail|http://www.foxmail.com.cn/]]\n免费邮件客户端。
[[FoxyProxy|http://foxyproxy.mozdev.org/]]\n\n可以自己设置详细规则的代理扩展,支持针对指定页面应用代理。
[[FreeDOS|http://www.freedos.org/]]
[[FreeMind|http://freemind.sourceforge.net/wiki/index.php/Main_Page]]\n基于 Java 的免费脑图工具。
[[Fs2You|http://www.fs2you.com/]]\n\n通过邮件上传文件的限制较少的存储服务。
[[Furl|http://furl.net]]\n在线共享书签网站,支持保存网页快照,但对一些中文页面支持不佳。
[[GIMP|http://www.gimp.org/]]\nThe GNU Image Manipulation Program,符合 GNU 协议的跨平台图象处理程序。\n\n[img[http://www.gimp.org/screenshots/windowsxp_screenshot1_thumb.jpg]]\n[[原图|http://www.gimp.org/screenshots/windowsxp_screenshot1.png]]
[[GNOME|https://addons.mozilla.org/firefox/3814/]]
[[GNOME Firefox|https://addons.mozilla.org/firefox/3774/]]
[[GNU Wget|http://www.gnu.org/software/wget/]]
ToDoList
[[Remember The Milk]]
[[Geek|https://addons.mozilla.org/firefox/2702/]]\n简洁朴素的灰色调主题。\n\n[img[https://addons.mozilla.org/images/previews/geek-2.jpg]]
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:\n* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)\n* MainMenu: The menu (usually on the left)\n* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened\n* [[tiddlyspotControls|tiddlyspotControls]]\nYou'll also need to enter your username for signing your edits: <<option txtUserName>>
[[Gliffy|http://gliffy.com/]]\n用 Flash 实现的流程图在线服务。
[[Google Gmail|http://mail.google.com]]\n[[Google]] 的邮箱服务。不断增长的邮箱空间,不断改进的功能。集成 [[Google Talk]]。\n\n[[注册页面|http://mail.google.com/mail/signup]]
[[Gmail Manager|https://addons.mozilla.org/en-US/firefox/addon/1320]]\n\n管理多个 [[Gmail]] 帐号的工具。
[[GmailThis!|javascript:popw='';Q='';x=document;y=window;if(x.selection) {Q=x.selection.createRange().text;}else if (y.getSelection) {Q=y.getSelection();}else if (x.getSelection) {Q=x.getSelection();}popw = y.open('https://mail.google.com/mail?view=cm&tf=0&to=&su=' + encodeURIComponent(document.title) + '&body=' + encodeURIComponent(Q) + escape(location.href),'gmailForm','scrollbars=yes,width=680,height=510,top=175,left=75,status=no,resizable=yes');if (!document.all) T = setTimeout('popw.focus()',50);void(0);]]
[[Google|http://www.google.com/]]\n以搜索引擎业务为核心的 IT 公司。
[[Google Desktop|http://desktop.google.com/]]\n快速搜索您的计算机,查找电子邮件、网络历史记录及文件\n在您桌面的任何位置查看新闻、图片及其他内容\n添加 Google 小工具,自定义您的桌面和补充工具栏\n\n[img[http://desktop.google.com/zh/images/homepage.gif]]
[[Google Docs and Spreadsheets|http://docs.google.com/]]\nGoogle 的在线文档和电子表格服务。
[[Google Earth|http://earth.google.com/]]\n查看全球各地卫星图片的工具,足不出户即可环游地球。\n\n[img[http://earth.google.com/images/whole.jpg]]
[[Google Groups|http://groups.google.com]]
[[Google Picasa|http://picasa.google.com/]]\n\n[img[http://picasa.google.com/assets/screenshot.jpg]]
[[Google Picasa Web Album|http://picasaweb.google.com/]]\nGoogle Picasa 免费网络相册,提供1G 存储空间。
[[Google Reader|http://reader.google.com/]]\nGoogle 的在线 Feed 订阅服务,可以方便地在网页上分享 feed 条目。
[[Google Talk|http://talk.google.com/]]\n功能实用、界面美观清爽、设计贴心的即时通讯软件,支持 Jabber/XMPP 协议,可以与 MSN Messenger、Yahoo! Messenger、所有支持 Jabber 协议的即时通讯软件互通。\n\n[img[http://www.google.com/talk/images/client.gif]]
[[Greasemonkey|http://greasemonkey.mozdev.org/]]\n通过脚本为 [[Firefox]] 增加功能。\n\n专用脚本站点:\n[[UserScripts|http://userscripts.org/]]
[[GreatNews|http://www.curiostudio.com/]]\n中文界面的 Feed 订阅工具。\n\n 1. 速度超快,特别针对大量频道同步更新而设计。\n 2. 下载资料保存到本地,以前的新闻不会因网站更新而丢失。\n 3. 支持所有主流 RSS 协议,对国内各种非标准的中文 rss feed 兼容性特好。\n 4. 可订制关键字自动加亮 \n 5. 可给新闻加标签 (GMail 的 Label)\n 6. 可灵活的和 Bloglines.com 集成\n 7. RSS Feed Auto Discovery (用内建浏览器时自动识别网页上的 RSS feed)\n 8. 频道浏览统计\n 9. 查找功能\n 10. 100% Unicode 内核,支持多国语言同屏显示\n 11. 内建浏览器,自动拦截弹出窗口\n 12. 绿色软件800KB,免安装,展开直接使用\n\n[img[http://www.curiostudio.com/homepage2-small.jpg]]
[[HyperText Markup Language (HTML)|http://www.w3.org/MarkUp/]]\n[[HTML Tutorial|http://www.w3.org/MarkUp/]]
version.extensions.HTMLFormatting = {major: 2, minor: 1, revision: 4, date: new Date(2006,9,10)};\n\n// find the formatter for HTML and replace the handler\ninitHTMLFormatter();\nfunction initHTMLFormatter()\n{\n for (var i=0; i<config.formatters.length && config.formatters[i].name!="html"; i++);\n if (i<config.formatters.length) config.formatters[i].handler=function(w) {\n if (!this.lookaheadRegExp) // fixup for TW2.0.x\n this.lookaheadRegExp = new RegExp(this.lookahead,"mg");\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source)\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {\n var html=lookaheadMatch[1];\n // optionally suppress wiki-style literal handling of newlines\n // strip any carriage returns added by Internet Explorer's textarea edit field\n // encode newlines as \sn so Internet Explorer's HTML parser won't eat them\n // encode macro brackets (<< and >>) so HTML parser won't eat them\n if (html.indexOf('<hide linebreaks>')!=-1) html=html.replace(regexpNewLine,' ');\n html=html.replace(regexpCarriageReturn,'');\n html=html.replace(regexpNewLine,'\s\sn');\n html=html.replace(/<</g,'%%(').replace(/>>/g,')%%');\n // create span to hold HTML\n // parse HTML and normalize the results\n // walk node tree and call wikify() on each text node\n var e = createTiddlyElement(w.output,"span");\n e.innerHTML=html;\n e.normalize(); \n wikifyTextNodes(e);\n // advance to next parse position\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n }\n }\n}\n\n// wikify text nodes remaining after HTML content is processed (pre-order recursion)\nfunction wikifyTextNodes(theNode)\n{\n // textarea node doesn't get wikified, just decoded... \n if (theNode.nodeName.toLowerCase()=='textarea')\n theNode.value=theNode.value.replace(/\s%%\s(/g,'<<').replace(/\s)\s%%/g,'>>').replace(regexpBackSlashEn,'\sn');\n else for (var i=0;i<theNode.childNodes.length;i++) {\n var theChild=theNode.childNodes.item(i);\n if (theChild.nodeName.toLowerCase()=='option') continue;\n if (theChild.nodeName.toLowerCase()=='select') continue;\n wikifyTextNodes(theChild);\n if (theChild.nodeName=='#text') {\n var txt=theChild.nodeValue;\n // decode macro brackets and newlines\n txt=txt.replace(/\s%%\s(/g,'<<').replace(/\s)\s%%/g,'>>').replace(regexpBackSlashEn,'\sn');\n // replace text node with wikified() span\n var newNode=createTiddlyElement(null,"span");\n theNode.replaceChild(newNode,theChild);\n wikify(txt,newNode);\n }\n }\n}
[[HotRun|http://journeyboy.blog.sohu.com/79386735.html]]\n小巧的快速启动工具,支持通配符。
[[HowStuffWorks|http://www.howstuffworks.com/]]\nLearn How Everything Works!
To upload a TiddlyWiki on your web server :\n\n#Import all tiddlers tagged with Upload from http://TiddlyWiki.bidix.info/#Upload\n#Install UploadPlugin //as usual//\n#Configure and upload [[store.php]] on your webserver\n#set a {{{<<upload>>}}} button for example in your SideBarOptions\n#Set UploadOptions in conformity with [[store.php]]\n#click on <<upload>> button\n
[[IE Tab|http://ietab.mozdev.org/]]\n暂时使用 IE 打开不兼容 [[Firefox]] 的页面。可以设置指定站点或页面只用 IE 打开。
[[IExif|http://www.opanda.com/cn/iexif/index.html]]\n\n查看数码相片Exif / GPS / IPTC信息的专业级工具软件。
[[IExif for Firefox|http://www.opanda.com/cn/iexif/iexif_firefox.htm]]\n\n快速查看照片的 Exif 信息。
[[IMDB|http://www.imdb.com/]]\n全球最大的电影数据库。
[[IZArc|http://www.izarc.org/]]
[[Image Zoom|https://addons.mozilla.org/firefox/139/]]\n快速缩放网页上的图片。
/***\n''Import Tiddlers Plugin for TiddlyWiki version 1.2.x, 2.0 and 2.1beta''\n^^author: Eric Shulman - ELS Design Studios\nsource: http://www.TiddlyTools.com/#ImportTiddlersPlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\nWhen many people share and edit copies of the same TiddlyWiki document, the ability to quickly collect all these changes back into a single, updated document that can then be redistributed to the entire group is very important. This plugin lets you selectively combine tiddlers from any two TiddlyWiki documents. It can also be very useful when moving your own tiddlers from document to document (e.g., when upgrading to the latest version of TiddlyWiki, or 'pre-loading' your favorite stylesheets into a new 'empty' TiddlyWiki document.)\n\n!!!!!Interactive interface\n<<<\n{{{<<importTiddlers>>}}}\ncreates "import tiddlers" link. click to show/hide import control panel\n\n{{{<<importTiddlers inline>>}}}\ncreates import control panel directly in tiddler content\n\n<<importTiddlers inline>>\n\nPress ''[browse]'' to select a TiddlyWiki document file to import. You can also type in the path/filename or a remote document URL (starting with http://)and press ''[open]''. //Note: There may be some delay to permit the browser time to access and load the document before updating the listbox with the titles of all tiddlers that are available to be imported.//\n\nSelect one or more titles from the listbox (hold CTRL or SHIFT while clicking to add/remove the highlight from individual list items). You can press ''[select all]'' to quickly highlight all tiddler titles in the list. Use the ''[-]'', ''[+]'', or ''[=]'' links to adjust the listbox size so you can view more (or less) tiddler titles at one time. When you have chosen the tiddlers you want to import and entered any extra tags, press ''[import]'' to begin copying them to the current TiddlyWiki document.\n\n''select: all, new, changes, or differences''\n\nYou can click on ''all'', ''new'', ''changes'', or ''differences'' to automatically select a subset of tiddlers from the list. This makes it very quick and easy to find and import just the updated tiddlers you are interested in:\n>''"all"'' selects ALL tiddlers from the import source document, even if they have not been changed.\n>''"new"'' selects only tiddlers that are found in the import source document, but do not yet exist in the destination document\n>''"changes"'' selects only tiddlers that exist in both documents but that are newer in the source document\n>''"differences"'' selects all new and existing tiddlers that are different from the destination document (even if destination tiddler is newer)\n\n''Import Tagging:''\n\nTiddlers that have been imported can be automatically tagged, so they will be easier to find later on, after they have been added to your document. New tags are entered into the "add tags" input field, and then //added// to the existing tags for each tiddler as it is imported.\n\n''Skip, Rename, Merge, or Replace:''\n\nWhen importing a tiddler whose title is identical to one that already exists, the import process pauses and the tiddler title is displayed in an input field, along with four push buttons: ''[skip]'', ''[rename]'', ''[merge]'' and ''[replace]''.\n\nTo bypass importing this tiddler, press ''[skip]''. To import the tiddler with a different name (so that both the tiddlers will exist when the import is done), enter a new title in the input field and then press ''[rename]''. Press ''[merge]'' to combine the content from both tiddlers into a single tiddler. Press ''[replace]'' to overwrite the existing tiddler with the imported one, discarding the previous tiddler content.\n\n//Note: if both the title ''and'' modification date/////time match, the imported tiddler is assumed to be identical to the existing one, and will be automatically skipped (i.e., not imported) without asking.//\n\n''Import Report History''\n\nWhen tiddlers are imported, a report is generated into ImportedTiddlers, indicating when the latest import was performed, the number of tiddlers successfully imported, from what location, and by whom. It also includes a list with the title, date and author of each tiddler that was imported.\n\nWhen the import process is completed, the ImportedTiddlers report is automatically displayed for your review. If more tiddlers are subsequently imported, a new report is //added// to ImportedTiddlers, above the previous report (i.e., at the top of the tiddler), so that a reverse-chronological history of imports is maintained.\n\nIf a cumulative record is not desired, the ImportedTiddlers report may be deleted at any time. A new ImportedTiddlers report will be created the next time tiddlers are imported.\n\nNote: You can prevent the ImportedTiddlers report from being generated for any given import activity by clearing the "create a report" checkbox before beginning the import processing.\n\n<<<\n!!!!!non-interactive 'load tiddlers' macro\n<<<\nUseful for automated installation/update of plugins and other tiddler content.\n\n{{{<<loadTiddlers "label:load tiddlers from %0" http://www.tiddlytools.com/example.html confirm>>}}}\n<<loadTiddlers "label:load tiddlers from %0" http://www.tiddlytools.com/example.html confirm>>\n\nSyntax:\n{{{<<loadTiddlers label:text prompt:text filter source quiet confirm>>}}}\n\n''label:text'' and ''prompt:text''\n>defines link text and tooltip (prompt) that can be clicked to trigger the load tiddler processing. If a label is NOT provided, then no link is created and loadTiddlers() is executed whenever the containing tiddler is rendered.\n''filter'' (optional) determines which tiddlers will be automatically selected for importing. Use one of the following keywords:\n>''"all"'' retrieves ALL tiddlers from the import source document, even if they have not been changed.\n>''"new"'' retrieves only tiddlers that are found in the import source document, but do not yet exist in the destination document\n>''"changes"'' retrieves only tiddlers that exist in both documents for which the import source tiddler is newer than the existing tiddler\n>''"updates"'' retrieves both ''new'' and ''changed'' tiddlers (this is the default action when none is specified)\n>''"tiddler:~TiddlerName"'' retrieves only the specific tiddler named in the parameter.\n>''"tag:text"'' retrieves only the tiddlers tagged with the indicated text.\n''source'' (required) is the location of the imported document. It can be either a local document path/filename in whatever format your system requires, or a remote web location (starting with "http://" or "https://")\n>use the keyword ''ask'' to prompt for a source location whenever the macro is invoked\n''"quiet"'' (optional)\n>supresses all status message during the import processing (e.g., "opening local file...", "found NN tiddlers..." etc). Note that if ANY tiddlers are actualy imported, a final information message will still be displayed (along with the ImportedTiddlers report), even when 'quiet' is specified. This ensures that changes to your document cannot occur without any visible indication at all.\n''"confirm"'' (optional)\n>adds interactive confirmation. A browser message box (OK/Cancel) is displayed for each tiddler that will be imported, so that you can manually bypass any tiddlers that you do not want to import.\n<<<\n!!!!!Installation\n<<<\ncopy/paste the following tiddlers into your document:\n''ImportTiddlersPlugin'' (tagged with <<tag systemConfig>>)\n\ncreate/edit ''SideBarOptions'': (sidebar menu items) \n^^Add "< < ImportTiddlers > >" macro^^\n\n''Quick Installation Tip #1:''\nIf you are using an unmodified version of TiddlyWiki (core release version <<version>>), you can get a new, empty TiddlyWiki with the Import Tiddlers plugin pre-installed (''[[download from here|TW+ImportExport.html]]''), and then simply import all your content from your old document into this new, empty document.\n<<<\n!!!!!Revision History\n<<<\n''2006.04.18 [3.0.4]''\nin loadTiddlers.handler, fixed parsing of "prompt:" param. Also, corrected parameters mismatch in loadTiddlers() callback function definition (order of params was wrong, resulting in filters NOT being applied)\n''2006.04.12 [3.0.3]''\nmoved many display messages to macro properties for easier L10N translations via 'lingo' definitions.\n''2006.04.12 [3.0.2]''\nadditional refactoring of 'core candidate' code. Proposed API now defines "loadRemoteFile()" for XMLHttpRequest processing with built in fallback for handling local filesystem access, and readTiddlersFromHTML() to process the resulting source HTML content.\n''2006.04.04 [3.0.1]''\nin refreshImportList(), when using [by tags], tiddlers without tags are now included in a new "untagged" psuedo-tag list section\n''2006.04.04 [3.0.0]''\nSeparate non-interactive {{{<<importTiddlers...>>}}} macro functionality for incorporation into TW2.1 core and renamed as {{{<<loadTiddlers>>}}} macro. New parameters for loadTiddlers: ''label:text'' and ''prompt:text'' for link creation, ''ask'' for filename/URL, ''tag:text'' for filtering, "confirm" for accept/reject of individual inbound tiddlers. Also, ImportedTiddlers report generator output has been simplified and "importReplace/importPublic" tags and associated "force" param (which were rarely, if ever, used) has been dropped.\n''2006.03.30 [2.9.1]''\nwhen extracting store area from remote URL, look for "</body>" instead of "</body>\sn</html>" so it will match even if the "\sn" is absent from the source.\n''2006.03.30 [2.9.0]''\nadded optional 'force' macro param. When present, autoImportTiddlers() bypasses the checks for importPublic and importReplace. Based on a request from Tom Otvos.\n''2006.03.28 [2.8.1]''\nin loadImportFile(), added checks to see if 'netscape' and 'x.overrideMimeType()' are defined (IE does *not* define these values, so we bypass this code)\nAlso, when extracting store area from remote URL, explicitly look for "</body>\sn</html>" to exclude any extra content that may have been added to the end of the file by hosting environments such as GeoCities. Thanks to Tom Otvos for finding these bugs and suggesting some fixes.\n''2006.02.21 [2.8.0]''\nadded support for "tiddler:TiddlerName" filtering parameter in auto-import processing\n''2006.02.21 [2.7.1]''\nClean up layout problems with IE. (Use tables for alignment instead of SPANs styled with float:left and float:right)\n''2006.02.21 [2.7.0]''\nAdded "local file" and "web server" radio buttons for selecting dynamic import source controls in ImportPanel. Default file control is replaced with URL text input field when "web server" is selected. Default remote document URL is defined in SiteURL tiddler. Also, added option for prepending SiteProxy URL as prefix to remote URL to mask cross-domain document access (requires compatible server-side script)\n''2006.02.17 [2.6.0]''\nRemoved "differences only" listbox display mode, replaced with selection filter 'presets': all/new/changes/differences. Also fixed initialization handling for "add new tags" so that checkbox state is correctly tracked when panel is first displayed.\n''2006.02.16 [2.5.4]''\nadded checkbox options to control "import remote tags" and "keep existing tags" behavior, in addition to existing "add new tags" functionality.\n''2006.02.14 [2.5.3]''\nFF1501 corrected unintended global 't' (loop index) in importReport() and autoImportTiddlers()\n''2006.02.10 [2.5.2]''\ncorrected unintended global variable in importReport().\n''2006.02.05 [2.5.1]''\nmoved globals from window.* to config.macros.importTiddlers.* to avoid FireFox 1.5.0.1 crash bug when referencing globals\n''2006.01.18 [2.5.0]''\nadded checkbox for "create a report". Default is to create/update the ImportedTiddlers report. Clear the checkbox to skip this step.\n''2006.01.15 [2.4.1]''\nadded "importPublic" tag and inverted default so that auto sharing is NOT done unless tagged with importPublic\n''2006.01.15 [2.4.0]''\nAdded support for tagging individual tiddlers with importSkip, importReplace, and/or importPrivate to control which tiddlers can be overwritten or shared with others when using auto-import macro syntax. Defaults are to SKIP overwriting existing tiddlers with imported tiddlers, and ALLOW your tiddlers to be auto-imported by others.\n''2006.01.15 [2.3.2]''\nAdded "ask" parameter to confirm each tiddler before importing (for use with auto-importing)\n''2006.01.15 [2.3.1]''\nStrip TW core scripts from import source content and load just the storeArea into the hidden IFRAME. Makes loading more efficient by reducing the document size and by preventing the import document from executing its TW initialization (including plugins). Seems to resolve the "Found 0 tiddlers" problem. Also, when importing local documents, use convertUTF8ToUnicode() to convert the file contents so support international characters sets.\n''2006.01.12 [2.3.0]''\nReorganized code to use callback function for loading import files to support event-driven I/O via an ASYNCHRONOUS XMLHttpRequest. Let's processing continue while waiting for remote hosts to respond to URL requests. Added non-interactive 'batch' macro mode, using parameters to specify which tiddlers to import, and from what document source. Improved error messages and diagnostics, plus an optional 'quiet' switch for batch mode to eliminate //most// feedback.\n''2006.01.11 [2.2.0]''\nAdded "[by tags]" to list of tiddlers, based on code submitted by BradleyMeck\n''2006.01.09 [2.1.1]''\nWhen a URL is typed in, and then the "open" button is pressed, it generates both an onChange event for the file input and a click event for open button. This results in multiple XMLHttpRequest()'s which seem to jam things up quite a bit. I removed the onChange handling for file input field. To open a file (local or URL), you must now explicitly press the "open" button in the control panel.\n''2006.01.08 [2.1.0]''\nIMPORT FROM ANYWHERE!!! re-write getImportedTiddlers() logic to either read a local file (using local I/O), OR... read a remote file, using a combination of XML and an iframe to permit cross-domain reading of DOM elements. Adapted from example code and techniques courtesy of Jonny LeRoy.\n''2006.01.06 [2.0.2]''\nWhen refreshing list contents, fixed check for tiddlerExists() when "show differences only" is selected, so that imported tiddlers that don't exist in the current file will be recognized as differences and included in the list.\n''2006.01.04 [2.0.1]''\nWhen "show differences only" is NOT checked, import all tiddlers that have been selected even when they have a matching title and date.\n''2005.12.27 [2.0.0]''\nUpdate for TW2.0\nDefer initial panel creation and only register a notification function when panel first is created\n''2005.12.22 [1.3.1]''\ntweak formatting in importReport() and add 'discard report' link to output\n''2005.12.03 [1.3.0]''\nDynamically create/remove importPanel as needed to ensure only one instance of interface elements exists, even if there are multiple instances of macro embedding. Also, dynamically create/recreate importFrame each time an external TW document is loaded for importation (reduces DOM overhead and ensures a 'fresh' frame for each document)\n''2005.11.29 [1.2.1]''\nfixed formatting of 'detail info' in importReport()\n''2005.11.11 [1.2.0]''\nadded 'inline' param to embed controls in a tiddler\n''2005.11.09 [1.1.0]''\nonly load HTML and CSS the first time the macro handler is called. Allows for redundant placement of the macro without creating multiple instances of controls with the same ID's.\n''2005.10.25 [1.0.5]''\nfixed typo in importReport() that prevented reports from being generated\n''2005.10.09 [1.0.4]''\ncombined documentation with plugin code instead of using separate tiddlers\n''2005.08.05 [1.0.3]''\nmoved CSS and HTML definitions into plugin code instead of using separate tiddlers\n''2005.07.27 [1.0.2]''\ncore update 1.2.29: custom overlayStyleSheet() replaced with new core setStylesheet()\n''2005.07.23 [1.0.1]''\nadded parameter checks and corrected addNotification() usage\n''2005.07.20 [1.0.0]''\nInitial Release\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]\n<<<\n!!!!!Code\n***/\n// // ''MACRO DEFINITION''\n//{{{\n// Version\nversion.extensions.importTiddlers = {major: 3, minor: 0, revision: 4, date: new Date(2006,4,18)};\n\n// IE needs explicit global scoping for functions/vars called from browser events\nwindow.onClickImportButton=onClickImportButton;\nwindow.refreshImportList=refreshImportList;\n\n// default cookie/option values\nif (!config.options.chkImportReport) config.options.chkImportReport=true;\n\nconfig.macros.importTiddlers = { };\nconfig.macros.importTiddlers = {\n label: "import tiddlers",\n prompt: "Copy tiddlers from another document",\n foundMsg: "Found %0 tiddlers in %1",\n countMsg: "%0 tiddlers selected for import",\n importedMsg: "Imported %0 of %1 tiddlers from %2",\n src: "", // path/filename or URL of document to import (retrieved from SiteUrl tiddler)\n proxy: "", // URL for remote proxy script (retrieved from SiteProxy tiddler)\n useProxy: false, // use specific proxy script in front of remote URL\n inbound: null, // hash-indexed array of tiddlers from other document\n newTags: "", // text of tags added to imported tiddlers\n addTags: true, // add new tags to imported tiddlers\n listsize: 8, // # of lines to show in imported tiddler list\n importTags: true, // include tags from remote source document when importing a tiddler\n keepTags: true, // retain existing tags when replacing a tiddler\n index: 0, // current processing index in import list\n sort: "" // sort order for imported tiddler listbox\n};\n\nconfig.macros.importTiddlers.handler = function(place,macroName,params) {\n if (!config.macros.loadTiddlers.handler)\n { alert("importTiddlers error: this plugin requires LoadTiddlersPlugin or TiddlyWiki 2.1+"); return; }\n if (!params[0]) // LINK TO FLOATING PANEL\n createTiddlyButton(place,this.label,this.prompt,onClickImportMenu);\n else if (params[0]=="inline") {// // INLINE TIDDLER CONTENT\n createImportPanel(place);\n document.getElementById("importPanel").style.position="static";\n document.getElementById("importPanel").style.display="block";\n }\n else config.macros.loadTiddlers.handler(place,macroName,params); // FALLBACK: PASS TO LOADTIDDLERS\n}\n//}}}\n\n// // ''INTERFACE DEFINITION''\n\n// // Handle link click to create/show/hide control panel\n//{{{\nfunction onClickImportMenu(e)\n{\n if (!e) var e = window.event;\n var parent=resolveTarget(e).parentNode;\n var panel = document.getElementById("importPanel");\n if (panel==undefined || panel.parentNode!=parent)\n panel=createImportPanel(parent);\n var isOpen = panel.style.display=="block";\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,"none"));\n else\n panel.style.display = isOpen ? "none" : "block" ;\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return(false);\n}\n//}}}\n\n// // Create control panel: HTML, CSS, register for notification\n//{{{\nfunction createImportPanel(place) {\n var panel=document.getElementById("importPanel");\n if (panel) { panel.parentNode.removeChild(panel); }\n setStylesheet(config.macros.importTiddlers.css,"importTiddlers");\n panel=createTiddlyElement(place,"span","importPanel",null,null)\n panel.innerHTML=config.macros.importTiddlers.html;\n store.addNotification(null,refreshImportList); // refresh listbox after every tiddler change\n refreshImportList();\n var siteURL=store.getTiddlerText("SiteUrl"); if (!siteURL) siteURL="";\n document.getElementById("importSourceURL").value=siteURL;\n config.macros.importTiddlers.src=siteURL;\n var siteProxy=store.getTiddlerText("SiteProxy"); if (!siteProxy) siteProxy="SiteProxy";\n document.getElementById("importSiteProxy").value=siteProxy;\n config.macros.importTiddlers.proxy=siteProxy;\n return panel;\n}\n//}}}\n\n// // CSS\n//{{{\nconfig.macros.importTiddlers.css = '\s\n#importPanel {\s\n display: none; position:absolute; z-index:11; width:35em; right:105%; top:3em;\s\n background-color: #eee; color:#000; font-size: 8pt; line-height:110%;\s\n border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\s\n padding: 0.5em; margin:0em; -moz-border-radius:1em;\s\n}\s\n#importPanel a, #importPanel td a { color:#009; display:inline; margin:0px; padding:1px; }\s\n#importPanel table { width:100%; border:0px; padding:0px; margin:0px; font-size:8pt; line-height:110%; background:transparent; }\s\n#importPanel tr { border:0px;padding:0px;margin:0px; background:transparent; }\s\n#importPanel td { color:#000; border:0px;padding:0px;margin:0px; background:transparent; }\s\n#importPanel select { width:98%;margin:0px;font-size:8pt;line-height:110%;}\s\n#importPanel input { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}\s\n#importPanel .box { border:1px solid black; padding:3px; margin-bottom:5px; background:#f8f8f8; -moz-border-radius:5px;}\s\n#importPanel .topline { border-top:2px solid black; padding-top:3px; margin-bottom:5px; }\s\n#importPanel .rad { width:auto; }\s\n#importPanel .chk { width:auto; margin:1px;border:0; }\s\n#importPanel .btn { width:auto; }\s\n#importPanel .btn1 { width:98%; }\s\n#importPanel .btn2 { width:48%; }\s\n#importPanel .btn3 { width:32%; }\s\n#importPanel .btn4 { width:24%; }\s\n#importPanel .btn5 { width:19%; }\s\n#importPanel .importButton { padding: 0em; margin: 0px; font-size:8pt; }\s\n#importPanel .importListButton { padding:0em 0.25em 0em 0.25em; color: #000000; display:inline }\s\n#importCollisionPanel { display:none; margin:0.5em 0em 0em 0em; }\s\n';\n//}}}\n\n// // HTML \n//{{{\nconfig.macros.importTiddlers.html = '\s\n<!-- source and report -->\s\n<table><tr><td align=left>\s\n import from\s\n <input type="radio" class="rad" name="importFrom" value="file" CHECKED\s\n onClick="document.getElementById(\s'importLocalPanel\s').style.display=this.checked?\s'block\s':\s'none\s';\s\n document.getElementById(\s'importHTTPPanel\s').style.display=!this.checked?\s'block\s':\s'none\s'"> local file\s\n <input type="radio" class="rad" name="importFrom" value="http"\s\n onClick="document.getElementById(\s'importLocalPanel\s').style.display=!this.checked?\s'block\s':\s'none\s';\s\n document.getElementById(\s'importHTTPPanel\s').style.display=this.checked?\s'block\s':\s'none\s'"> web server\s\n</td><td align=right>\s\n <input type=checkbox class="chk" id="chkImportReport" checked\s\n onClick="config.options[\s'chkImportReport\s']=this.checked;"> create a report\s\n</td></tr></table>\s\n<!-- import from local file -->\s\n<div id="importLocalPanel" style="display:block;margin-bottom:5px;margin-top:5px;padding-top:3px;border-top:1px solid #999">\s\nlocal document path/filename:<br>\s\n<input type="file" id="fileImportSource" size=57 style="width:100%"\s\n onKeyUp="config.macros.importTiddlers.src=this.value"\s\n onChange="config.macros.importTiddlers.src=this.value;">\s\n</div><!--panel-->\s\n\s\n<!-- import from http server -->\s\n<div id="importHTTPPanel" style="display:none;margin-bottom:5px;margin-top:5px;padding-top:3px;border-top:1px solid #999">\s\n<table><tr><td align=left>\s\n remote document URL:<br>\s\n</td><td align=right>\s\n <input type="checkbox" class="chk" id="importUseProxy"\s\n onClick="config.macros.importTiddlers.useProxy=this.checked;\s\n document.getElementById(\s'importSiteProxy\s').style.display=this.checked?\s'block\s':\s'none\s'"> use a proxy script\s\n</td></tr></table>\s\n<input type="text" id="importSiteProxy" style="display:none;margin-bottom:1px" onfocus="this.select()" value="SiteProxy"\s\n onKeyUp="config.macros.importTiddlers.proxy=this.value"\s\n onChange="config.macros.importTiddlers.proxy=this.value;">\s\n<input type="text" id="importSourceURL" onfocus="this.select()" value="SiteUrl"\s\n onKeyUp="config.macros.importTiddlers.src=this.value"\s\n onChange="config.macros.importTiddlers.src=this.value;">\s\n</div><!--panel-->\s\n\s\n<table><tr><td align=left>\s\n select:\s\n <a href="JavaScript:;" id="importSelectAll"\s\n onclick="onClickImportButton(this)" title="select all tiddlers">\s\n &nbsp;all&nbsp;</a>\s\n <a href="JavaScript:;" id="importSelectNew"\s\n onclick="onClickImportButton(this)" title="select tiddlers not already in destination document">\s\n &nbsp;added&nbsp;</a> \s\n <a href="JavaScript:;" id="importSelectChanges"\s\n onclick="onClickImportButton(this)" title="select tiddlers that have been updated in source document">\s\n &nbsp;changes&nbsp;</a> \s\n <a href="JavaScript:;" id="importSelectDifferences"\s\n onclick="onClickImportButton(this)" title="select tiddlers that have been added or are different from existing tiddlers">\s\n &nbsp;differences&nbsp;</a> \s\n <a href="JavaScript:;" id="importToggleFilter"\s\n onclick="onClickImportButton(this)" title="show/hide selection filter">\s\n &nbsp;filter&nbsp;</a> \s\n</td><td align=right>\s\n <a href="JavaScript:;" id="importListSmaller"\s\n onclick="onClickImportButton(this)" title="reduce list size">\s\n &nbsp;&#150;&nbsp;</a>\s\n <a href="JavaScript:;" id="importListLarger"\s\n onclick="onClickImportButton(this)" title="increase list size">\s\n &nbsp;+&nbsp;</a>\s\n <a href="JavaScript:;" id="importListMaximize"\s\n onclick="onClickImportButton(this)" title="maximize/restore list size">\s\n &nbsp;=&nbsp;</a>\s\n</td></tr></table>\s\n<select id="importList" size=8 multiple\s\n onchange="setTimeout(\s'refreshImportList(\s'+this.selectedIndex+\s')\s',1)">\s\n <!-- NOTE: delay refresh so list is updated AFTER onchange event is handled -->\s\n</select>\s\n<input type=checkbox class="chk" id="chkAddTags" checked\s\n onClick="config.macros.importTiddlers.addTags=this.checked;">add new tags &nbsp;\s\n<input type=checkbox class="chk" id="chkImportTags" checked\s\n onClick="config.macros.importTiddlers.importTags=this.checked;">import source tags &nbsp;\s\n<input type=checkbox class="chk" id="chkKeepTags" checked\s\n onClick="config.macros.importTiddlers.keepTags=this.checked;">keep existing tags<br>\s\n<input type=text id="txtNewTags" size=15 onKeyUp="config.macros.importTiddlers.newTags=this.value" autocomplete=off>\s\n<div align=center>\s\n <input type=button id="importOpen" class="importButton" style="width:32%" value="open"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importStart" class="importButton" style="width:32%" value="import"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importClose" class="importButton" style="width:32%" value="close"\s\n onclick="onClickImportButton(this)">\s\n</div>\s\n<div id="importCollisionPanel">\s\n tiddler already exists:\s\n <input type=text id="importNewTitle" size=15 autocomplete=off">\s\n <div align=center>\s\n <input type=button id="importSkip" class="importButton" style="width:23%" value="skip"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importRename" class="importButton" style="width:23%" value="rename"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importMerge" class="importButton" style="width:23%" value="merge"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importReplace" class="importButton" style="width:23%" value="replace"\s\n onclick="onClickImportButton(this)">\s\n </div>\s\n</div>\s\n';\n//}}}\n\n// // Control interactions\n//{{{\nfunction onClickImportButton(which)\n{\n // DEBUG alert(which.id);\n var theList = document.getElementById('importList');\n if (!theList) return;\n var thePanel = document.getElementById('importPanel');\n var theCollisionPanel = document.getElementById('importCollisionPanel');\n var theNewTitle = document.getElementById('importNewTitle');\n var count=0;\n switch (which.id)\n {\n case 'fileImportSource':\n case 'importOpen': // load import source into hidden frame\n importReport(); // if an import was in progress, generate a report\n config.macros.importTiddlers.inbound=null; // clear the imported tiddler buffer\n refreshImportList(); // reset/resize the listbox\n if (config.macros.importTiddlers.src=="") break;\n // Load document into hidden iframe so we can read it's DOM and fill the list\n loadRemoteFile(config.macros.importTiddlers.src, function(src,txt) {\n var tiddlers = readTiddlersFromHTML(txt);\n var count=tiddlers?tiddlers.length:0;\n displayMessage(config.macros.importTiddlers.foundMsg.format([count,src]));\n config.macros.importTiddlers.inbound=tiddlers;\n window.refreshImportList(0);\n });\n break;\n case 'importSelectAll': // select all tiddler list items (i.e., not headings)\n importReport(); // if an import was in progress, generate a report\n for (var t=0,count=0; t < theList.options.length; t++) {\n if (theList.options[t].value=="") continue;\n theList.options[t].selected=true;\n count++;\n }\n clearMessage(); displayMessage(config.macros.importTiddlers.countMsg.format([count]));\n break;\n case 'importSelectNew': // select tiddlers not in current document\n importReport(); // if an import was in progress, generate a report\n for (var t=0,count=0; t < theList.options.length; t++) {\n theList.options[t].selected=false;\n if (theList.options[t].value=="") continue;\n theList.options[t].selected=!store.tiddlerExists(theList.options[t].value);\n count+=theList.options[t].selected?1:0;\n }\n clearMessage(); displayMessage(config.macros.importTiddlers.countMsg.format([count]));\n break;\n case 'importSelectChanges': // select tiddlers that are updated from existing tiddlers\n importReport(); // if an import was in progress, generate a report\n for (var t=0,count=0; t < theList.options.length; t++) {\n theList.options[t].selected=false;\n if (theList.options[t].value==""||!store.tiddlerExists(theList.options[t].value)) continue;\n for (var i=0; i<config.macros.importTiddlers.inbound.length; i++) // find matching inbound tiddler\n { var inbound=config.macros.importTiddlers.inbound[i]; if (inbound.title==theList.options[t].value) break; }\n theList.options[t].selected=(inbound.modified-store.getTiddler(theList.options[t].value).modified>0); // updated tiddler\n count+=theList.options[t].selected?1:0;\n }\n clearMessage(); displayMessage(config.macros.importTiddlers.countMsg.format([count]));\n break;\n case 'importSelectDifferences': // select tiddlers that are new or different from existing tiddlers\n importReport(); // if an import was in progress, generate a report\n for (var t=0,count=0; t < theList.options.length; t++) {\n theList.options[t].selected=false;\n if (theList.options[t].value=="") continue;\n if (!store.tiddlerExists(theList.options[t].value)) { theList.options[t].selected=true; count++; continue; }\n for (var i=0; i<config.macros.importTiddlers.inbound.length; i++) // find matching inbound tiddler\n { var inbound=config.macros.importTiddlers.inbound[i]; if (inbound.title==theList.options[t].value) break; }\n theList.options[t].selected=(inbound.modified-store.getTiddler(theList.options[t].value).modified!=0); // changed tiddler\n count+=theList.options[t].selected?1:0;\n }\n clearMessage(); displayMessage(config.macros.importTiddlers.countMsg.format([count]));\n break;\n case 'importToggleFilter': // show/hide filter\n case 'importFilter': // apply filter\n alert("coming soon!");\n break;\n case 'importStart': // initiate the import processing\n importReport(); // if an import was in progress, generate a report\n config.macros.importTiddlers.index=0;\n config.macros.importTiddlers.index=importTiddlers(0);\n importStopped();\n break;\n case 'importClose': // unload imported tiddlers or hide the import control panel\n // if imported tiddlers not loaded, close the import control panel\n if (!config.macros.importTiddlers.inbound) { thePanel.style.display='none'; break; }\n importReport(); // if an import was in progress, generate a report\n config.macros.importTiddlers.inbound=null; // clear the imported tiddler buffer\n refreshImportList(); // reset/resize the listbox\n break;\n case 'importSkip': // don't import the tiddler\n var theItem = theList.options[config.macros.importTiddlers.index];\n for (var j=0;j<config.macros.importTiddlers.inbound.length;j++)\n if (config.macros.importTiddlers.inbound[j].title==theItem.value) break;\n var theImported = config.macros.importTiddlers.inbound[j];\n theImported.status='skipped after asking'; // mark item as skipped\n theCollisionPanel.style.display='none';\n config.macros.importTiddlers.index=importTiddlers(config.macros.importTiddlers.index+1); // resume with NEXT item\n importStopped();\n break;\n case 'importRename': // change name of imported tiddler\n var theItem = theList.options[config.macros.importTiddlers.index];\n for (var j=0;j<config.macros.importTiddlers.inbound.length;j++)\n if (config.macros.importTiddlers.inbound[j].title==theItem.value) break;\n var theImported = config.macros.importTiddlers.inbound[j];\n theImported.status = 'renamed from '+theImported.title; // mark item as renamed\n theImported.set(theNewTitle.value,null,null,null,null); // change the tiddler title\n theItem.value = theNewTitle.value; // change the listbox item text\n theItem.text = theNewTitle.value; // change the listbox item text\n theCollisionPanel.style.display='none';\n config.macros.importTiddlers.index=importTiddlers(config.macros.importTiddlers.index); // resume with THIS item\n importStopped();\n break;\n case 'importMerge': // join existing and imported tiddler content\n var theItem = theList.options[config.macros.importTiddlers.index];\n for (var j=0;j<config.macros.importTiddlers.inbound.length;j++)\n if (config.macros.importTiddlers.inbound[j].title==theItem.value) break;\n var theImported = config.macros.importTiddlers.inbound[j];\n var theExisting = store.getTiddler(theItem.value);\n var theText = theExisting.text+'\sn----\sn^^merged from: ';\n theText +='[['+config.macros.importTiddlers.src+'#'+theItem.value+'|'+config.macros.importTiddlers.src+'#'+theItem.value+']]^^\sn';\n theText +='^^'+theImported.modified.toLocaleString()+' by '+theImported.modifier+'^^\sn'+theImported.text;\n var theDate = new Date();\n var theTags = theExisting.getTags()+' '+theImported.getTags();\n theImported.set(null,theText,null,theDate,theTags);\n theImported.status = 'merged with '+theExisting.title; // mark item as merged\n theImported.status += ' - '+theExisting.modified.formatString("MM/DD/YYYY 0hh:0mm:0ss");\n theImported.status += ' by '+theExisting.modifier;\n theCollisionPanel.style.display='none';\n config.macros.importTiddlers.index=importTiddlers(config.macros.importTiddlers.index); // resume with this item\n importStopped();\n break;\n case 'importReplace': // substitute imported tiddler for existing tiddler\n var theItem = theList.options[config.macros.importTiddlers.index];\n for (var j=0;j<config.macros.importTiddlers.inbound.length;j++)\n if (config.macros.importTiddlers.inbound[j].title==theItem.value) break;\n var theImported = config.macros.importTiddlers.inbound[j];\n var theExisting = store.getTiddler(theItem.value);\n theImported.status = 'replaces '+theExisting.title; // mark item for replace\n theImported.status += ' - '+theExisting.modified.formatString("MM/DD/YYYY 0hh:0mm:0ss");\n theImported.status += ' by '+theExisting.modifier;\n theCollisionPanel.style.display='none';\n config.macros.importTiddlers.index=importTiddlers(config.macros.importTiddlers.index); // resume with THIS item\n importStopped();\n break;\n case 'importListSmaller': // decrease current listbox size, minimum=5\n if (theList.options.length==1) break;\n theList.size-=(theList.size>5)?1:0;\n config.macros.importTiddlers.listsize=theList.size;\n break;\n case 'importListLarger': // increase current listbox size, maximum=number of items in list\n if (theList.options.length==1) break;\n theList.size+=(theList.size<theList.options.length)?1:0;\n config.macros.importTiddlers.listsize=theList.size;\n break;\n case 'importListMaximize': // toggle listbox size between current and maximum\n if (theList.options.length==1) break;\n theList.size=(theList.size==theList.options.length)?config.macros.importTiddlers.listsize:theList.options.length;\n break;\n }\n}\n//}}}\n\n// // refresh listbox\n//{{{\nfunction refreshImportList(selectedIndex)\n{\n var theList = document.getElementById("importList");\n if (!theList) return;\n // if nothing to show, reset list content and size\n if (!config.macros.importTiddlers.inbound) \n {\n while (theList.length > 0) { theList.options[0] = null; }\n theList.options[0]=new Option('please open a document...',"",false,false);\n theList.size=config.macros.importTiddlers.listsize;\n return;\n }\n // get the sort order\n if (!selectedIndex) selectedIndex=0;\n if (selectedIndex==0) config.macros.importTiddlers.sort='title'; // heading\n if (selectedIndex==1) config.macros.importTiddlers.sort='title';\n if (selectedIndex==2) config.macros.importTiddlers.sort='modified';\n if (selectedIndex==3) config.macros.importTiddlers.sort='tags';\n if (selectedIndex>3) {\n // display selected tiddler count\n for (var t=0,count=0; t < theList.options.length; t++) count+=(theList.options[t].selected&&theList.options[t].value!="")?1:0;\n clearMessage(); displayMessage(config.macros.importTiddlers.countMsg.format([count]));\n return; // no refresh needed\n }\n\n // get the alphasorted list of tiddlers (optionally, filter out unchanged tiddlers)\n var tiddlers=config.macros.importTiddlers.inbound;\n tiddlers.sort(function (a,b) {if(a['title'] == b['title']) return(0); else return (a['title'] < b['title']) ? -1 : +1; });\n // clear current list contents\n while (theList.length > 0) { theList.options[0] = null; }\n // add heading and control items to list\n var i=0;\n var indent=String.fromCharCode(160)+String.fromCharCode(160);\n theList.options[i++]=new Option(tiddlers.length+' tiddler'+((tiddlers.length!=1)?'s are':' is')+' in the document',"",false,false);\n theList.options[i++]=new Option(((config.macros.importTiddlers.sort=="title" )?">":indent)+' [by title]',"",false,false);\n theList.options[i++]=new Option(((config.macros.importTiddlers.sort=="modified")?">":indent)+' [by date]',"",false,false);\n theList.options[i++]=new Option(((config.macros.importTiddlers.sort=="tags")?">":indent)+' [by tags]',"",false,false);\n // output the tiddler list\n switch(config.macros.importTiddlers.sort)\n {\n case "title":\n for(var t = 0; t < tiddlers.length; t++)\n theList.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title,false,false);\n break;\n case "modified":\n // sort descending for newest date first\n tiddlers.sort(function (a,b) {if(a['modified'] == b['modified']) return(0); else return (a['modified'] > b['modified']) ? -1 : +1; });\n var lastSection = "";\n for(var t = 0; t < tiddlers.length; t++) {\n var tiddler = tiddlers[t];\n var theSection = tiddler.modified.toLocaleDateString();\n if (theSection != lastSection) {\n theList.options[i++] = new Option(theSection,"",false,false);\n lastSection = theSection;\n }\n theList.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title,false,false);\n }\n break;\n case "tags":\n var theTitles = {}; // all tiddler titles, hash indexed by tag value\n var theTags = new Array();\n for(var t=0; t<tiddlers.length; t++) {\n var title=tiddlers[t].title;\n var tags=tiddlers[t].tags;\n if (!tags || !tags.length) {\n if (theTitles["untagged"]==undefined) { theTags.push("untagged"); theTitles["untagged"]=new Array(); }\n theTitles["untagged"].push(title);\n }\n else for(var s=0; s<tags.length; s++) {\n if (theTitles[tags[s]]==undefined) { theTags.push(tags[s]); theTitles[tags[s]]=new Array(); }\n theTitles[tags[s]].push(title);\n }\n }\n theTags.sort();\n for(var tagindex=0; tagindex<theTags.length; tagindex++) {\n var theTag=theTags[tagindex];\n theList.options[i++]=new Option(theTag,"",false,false);\n for(var t=0; t<theTitles[theTag].length; t++)\n theList.options[i++]=new Option(indent+indent+theTitles[theTag][t],theTitles[theTag][t],false,false);\n }\n break;\n }\n theList.selectedIndex=selectedIndex; // select current control item\n if (theList.size<config.macros.importTiddlers.listsize) theList.size=config.macros.importTiddlers.listsize;\n if (theList.size>theList.options.length) theList.size=theList.options.length;\n}\n//}}}\n\n// // re-entrant processing for handling import with interactive collision prompting\n//{{{\nfunction importTiddlers(startIndex)\n{\n if (!config.macros.importTiddlers.inbound) return -1;\n\n var theList = document.getElementById('importList');\n if (!theList) return;\n var t;\n // if starting new import, reset import status flags\n if (startIndex==0)\n for (var t=0;t<config.macros.importTiddlers.inbound.length;t++)\n config.macros.importTiddlers.inbound[t].status="";\n for (var i=startIndex; i<theList.options.length; i++)\n {\n // if list item is not selected or is a heading (i.e., has no value), skip it\n if ((!theList.options[i].selected) || ((t=theList.options[i].value)==""))\n continue;\n for (var j=0;j<config.macros.importTiddlers.inbound.length;j++)\n if (config.macros.importTiddlers.inbound[j].title==t) break;\n var theImported = config.macros.importTiddlers.inbound[j];\n var theExisting = store.getTiddler(theImported.title);\n // avoid redundant import for tiddlers that are listed multiple times (when 'by tags')\n if (theImported.status=="added")\n continue;\n // don't import the "ImportedTiddlers" history from the other document...\n if (theImported.title=='ImportedTiddlers')\n continue;\n // if tiddler exists and import not marked for replace or merge, stop importing\n if (theExisting && (theImported.status.substr(0,7)!="replace") && (theImported.status.substr(0,5)!="merge"))\n return i;\n // assemble tags (remote + existing + added)\n var newTags = "";\n if (config.macros.importTiddlers.importTags)\n newTags+=theImported.getTags() // import remote tags\n if (config.macros.importTiddlers.keepTags && theExisting)\n newTags+=" "+theExisting.getTags(); // keep existing tags\n if (config.macros.importTiddlers.addTags && config.macros.importTiddlers.newTags.trim().length)\n newTags+=" "+config.macros.importTiddlers.newTags; // add new tags\n theImported.set(null,null,null,null,newTags.trim());\n // set the status to 'added' (if not already set by the 'ask the user' UI)\n theImported.status=(theImported.status=="")?'added':theImported.status;\n // do the import!\n store.addTiddler(theImported);\n store.setDirty(true);\n }\n return(-1); // signals that we really finished the entire list\n}\n//}}}\n\n//{{{\nfunction importStopped()\n{\n var theList = document.getElementById('importList');\n var theNewTitle = document.getElementById('importNewTitle');\n if (!theList) return;\n if (config.macros.importTiddlers.index==-1)\n importReport(); // import finished... generate the report\n else\n {\n // DEBUG alert('import stopped at: '+config.macros.importTiddlers.index);\n // import collision... show the collision panel and set the title edit field\n document.getElementById('importCollisionPanel').style.display='block';\n theNewTitle.value=theList.options[config.macros.importTiddlers.index].value;\n }\n}\n//}}}\n\n// // ''REPORT GENERATOR''\n//{{{\nfunction importReport(quiet)\n{\n if (!config.macros.importTiddlers.inbound) return;\n // DEBUG alert('importReport: start');\n\n // if import was not completed, the collision panel will still be open... close it now.\n var panel=document.getElementById('importCollisionPanel'); if (panel) panel.style.display='none';\n\n // get the alphasorted list of tiddlers\n var tiddlers = config.macros.importTiddlers.inbound;\n // gather the statistics\n var count=0;\n for (var t=0; t<tiddlers.length; t++)\n if (tiddlers[t].status && tiddlers[t].status.trim().length && tiddlers[t].status.substr(0,7)!="skipped") count++;\n\n // generate a report\n if (count && config.options.chkImportReport) {\n // get/create the report tiddler\n var theReport = store.getTiddler('ImportedTiddlers');\n if (!theReport) { theReport= new Tiddler(); theReport.title = 'ImportedTiddlers'; theReport.text = ""; }\n // format the report content\n var now = new Date();\n var newText = "On "+now.toLocaleString()+", "+config.options.txtUserName\n newText +=" imported "+count+" tiddler"+(count==1?"":"s")+" from\sn[["+config.macros.importTiddlers.src+"|"+config.macros.importTiddlers.src+"]]:\sn";\n if (config.macros.importTiddlers.addTags && config.macros.importTiddlers.newTags.trim().length)\n newText += "imported tiddlers were tagged with: \s""+config.macros.importTiddlers.newTags+"\s"\sn";\n newText += "<<<\sn";\n for (var t=0; t<tiddlers.length; t++) if (tiddlers[t].status) newText += "#[["+tiddlers[t].title+"]] - "+tiddlers[t].status+"\sn";\n newText += "<<<\sn";\n newText += "<html><input type=\s"button\s" href=\s"javascript:;\s" ";\n newText += "onclick=\s"story.closeTiddler('"+theReport.title+"'); store.deleteTiddler('"+theReport.title+"');\s" ";\n newText += "value=\s"discard report\s"></html>";\n // update the ImportedTiddlers content and show the tiddler\n theReport.text = newText+((theReport.text!="")?'\sn----\sn':"")+theReport.text;\n theReport.modifier = config.options.txtUserName;\n theReport.modified = new Date();\n store.addTiddler(theReport);\n if (!quiet) { story.displayTiddler(null,theReport.title,1,null,null,false); story.refreshTiddler(theReport.title,1,true); }\n }\n\n // reset status flags\n for (var t=0; t<config.macros.importTiddlers.inbound.length; t++) config.macros.importTiddlers.inbound[t].status="";\n\n // refresh display if tiddlers have been loaded\n if (count) { store.setDirty(true); store.notifyAll(); }\n\n // always show final message when tiddlers were actually loaded\n if (count) displayMessage(config.macros.importTiddlers.importedMsg.format([count,tiddlers.length,config.macros.importTiddlers.src]));\n}\n//}}}\n\n/***\n!!!!!TW 2.1beta Core Code Candidate\n//The following section is a preliminary 'code candidate' for incorporation of non-interactive 'load tiddlers' functionality into TW2.1beta. //\n***/\n//{{{\n// default cookie/option values\nif (!config.options.chkImportReport) config.options.chkImportReport=true;\n\nconfig.macros.loadTiddlers = {\n label: "",\n prompt: "add/update tiddlers from '%0'",\n askMsg: "Please enter a local path/filename or a remote URL",\n openMsg: "Opening %0",\n openErrMsg: "Could not open %0 - error=%1",\n readMsg: "Read %0 bytes from %1",\n foundMsg: "Found %0 tiddlers in %1",\n loadedMsg: "Loaded %0 of %1 tiddlers from %2"\n};\n\nconfig.macros.loadTiddlers.handler = function(place,macroName,params) {\n var label=(params[0] && params[0].substr(0,6)=='label:')?params.shift().substr(6):this.label;\n var prompt=(params[0] && params[0].substr(0,7)=='prompt:')?params.shift().substr(7):this.prompt;\n var filter="updates";\n if (params[0] && (params[0]=='all' || params[0]=='new' || params[0]=='changes' || params[0]=='updates'\n || params[0].substr(0,8)=='tiddler:' || params[0].substr(0,4)=='tag:'))\n filter=params.shift();\n var src=params.shift(); if (!src || !src.length) return; // filename is required\n var quiet=(params[0]=="quiet"); if (quiet) params.shift();\n var ask=(params[0]=="confirm"); if (ask) params.shift();\n if (label.trim().length) {\n // link triggers load tiddlers from another file/URL and then applies filtering rules to add/replace tiddlers in the store\n createTiddlyButton(place,label.format([src]),prompt.format([src]), function() {\n if (src=="ask") src=prompt(config.macros.loadTiddlers.askMsg);\n loadRemoteFile(src,loadTiddlers,quiet,ask,filter);\n })\n }\n else {\n // load tiddlers from another file/URL and then apply filtering rules to add/replace tiddlers in the store\n if (src=="ask") src=prompt(config.macros.loadTiddlers.askMsg);\n loadRemoteFile(src,loadTiddlers,quiet,ask,filter);\n }\n}\n\nfunction loadTiddlers(src,html,quiet,ask,filter)\n{\n var tiddlers = readTiddlersFromHTML(html);\n var count=tiddlers?tiddlers.length:0;\n if (!quiet) displayMessage(config.macros.loadTiddlers.foundMsg.format([count,src]));\n var count=0;\n if (tiddlers) for (var t=0;t<tiddlers.length;t++) {\n var theInbound = tiddlers[t];\n var theExisting = store.getTiddler(theInbound.title);\n if (theInbound.title=='ImportedTiddlers')\n continue; // skip "ImportedTiddlers" history from the other document...\n\n // apply the all/new/changes/updates filter (if any)\n if (filter && filter!="all") {\n if ((filter=="new") && theExisting) // skip existing tiddlers\n continue;\n if ((filter=="changes") && !theExisting) // skip new tiddlers\n continue;\n if ((filter.substr(0,4)=="tag:") && theInbound.tags.find(filter.substr(4))==null) // must match specific tag value\n continue;\n if ((filter.substr(0,8)=="tiddler:") && theInbound.title!=filter.substr(8)) // must match specific tiddler name\n continue;\n if (store.tiddlerExists(theInbound.title) && ((theExisting.modified.getTime()-theInbound.modified.getTime())>=0)) // tiddler is unchanged\n continue;\n }\n // get confirmation if required\n if (ask && !confirm((theExisting?"Update":"Add")+" tiddler '"+theInbound.title+"'\snfrom "+src))\n { tiddlers[t].status="skipped - cancelled by user"; continue; }\n // DO IT!\n store.addTiddler(theInbound);\n tiddlers[t].status=theExisting?"updated":"added"\n count++;\n }\n if (count) {\n // refresh display\n store.setDirty(true);\n store.notifyAll();\n // generate a report\n if (config.options.chkImportReport) {\n // get/create the report tiddler\n var theReport = store.getTiddler('ImportedTiddlers');\n if (!theReport) { theReport= new Tiddler(); theReport.title = 'ImportedTiddlers'; theReport.text = ""; }\n // format the report content\n var now = new Date();\n var newText = "On "+now.toLocaleString()+", "+config.options.txtUserName+" loaded "+count+" tiddlers from\sn[["+src+"|"+src+"]]:\sn";\n newText += "<<<\sn";\n for (var t=0; t<tiddlers.length; t++) if (tiddlers[t].status) newText += "#[["+tiddlers[t].title+"]] - "+tiddlers[t].status+"\sn";\n newText += "<<<\sn";\n newText += "<html><input type=\s"button\s" href=\s"javascript:;\s" ";\n newText += "onclick=\s"story.closeTiddler('"+theReport.title+"'); store.deleteTiddler('"+theReport.title+"');\s" ";\n newText += "value=\s"discard report\s"></html>";\n // update the ImportedTiddlers content and show the tiddler\n theReport.text = newText+((theReport.text!="")?'\sn----\sn':"")+theReport.text;\n theReport.modifier = config.options.txtUserName;\n theReport.modified = new Date();\n store.addTiddler(theReport);\n if (!quiet) { story.displayTiddler(null,theReport.title,1,null,null,false); story.refreshTiddler(theReport.title,1,true); }\n }\n }\n // always show final message when tiddlers were actually loaded\n if (!quiet||count) displayMessage(config.macros.loadTiddlers.loadedMsg.format([count,tiddlers.length,src]));\n}\n\nfunction loadRemoteFile(src,callback,quiet,ask,filter) {\n if (src==undefined || !src.length) return null; // filename is required\n if (!quiet) clearMessage();\n if (!quiet) displayMessage(config.macros.loadTiddlers.openMsg.format([src]));\n if (src.substr(0,4)!="http" && src.substr(0,4)!="file") { // if not a URL, fallback to read from local filesystem\n var txt=loadFile(src);\n if ((txt==null)||(txt==false)) // file didn't load\n { if (!quiet) displayMessage(config.macros.loadTiddlers.openErrMsg.format([src,"(unknown)"])); }\n else {\n if (!quiet) displayMessage(config.macros.loadTiddlers.readMsg.format([txt.length,src]));\n if (callback) callback(src,convertUTF8ToUnicode(txt),quiet,ask,filter);\n }\n }\n else {\n var x; // get an request object\n try {x = new XMLHttpRequest()} // moz\n catch(e) {\n try {x = new ActiveXObject("Msxml2.XMLHTTP")} // IE 6\n catch (e) {\n try {x = new ActiveXObject("Microsoft.XMLHTTP")} // IE 5\n catch (e) { return }\n }\n }\n // setup callback function to handle server response(s)\n x.onreadystatechange = function() {\n if (x.readyState == 4) {\n if (x.status==0 || x.status == 200) {\n if (!quiet) displayMessage(config.macros.loadTiddlers.readMsg.format([x.responseText.length,src]));\n if (callback) callback(src,x.responseText,quiet,ask,filter);\n }\n else {\n if (!quiet) displayMessage(config.macros.loadTiddlers.openErrMsg.format([src,x.status]));\n }\n }\n }\n // get privileges to read another document's DOM via http:// or file:// (moz-only)\n if (typeof(netscape)!="undefined") {\n try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }\n catch (e) { if (!quiet) displayMessage(e.description?e.description:e.toString()); }\n }\n // send the HTTP request\n try {\n var url=src+(src.indexOf('?')<0?'?':'&')+'nocache='+Math.random();\n x.open("GET",src,true);\n if (x.overrideMimeType) x.overrideMimeType('text/html');\n x.send(null);\n }\n catch (e) {\n if (!quiet) {\n displayMessage(config.macros.loadTiddlers.openErrMsg.format([src,"(unknown)"]));\n displayMessage(e.description?e.description:e.toString());\n }\n }\n }\n}\n\nfunction readTiddlersFromHTML(html)\n{\n // extract store area from html \n var start=html.indexOf('<div id="storeArea">');\n var end=html.indexOf('</body>',start);\n var sa="<html><body>"+html.substring(start,end)+"</body></html>";\n\n // load html into iframe document\n var f=document.getElementById("loaderFrame"); if (f) document.body.removeChild(f);\n f=document.createElement("iframe"); f.id="loaderFrame";\n f.style.width="0px"; f.style.height="0px"; f.style.border="0px";\n document.body.appendChild(f);\n var d=f.document;\n if (f.contentDocument) d=f.contentDocument; // For NS6\n else if (f.contentWindow) d=f.contentWindow.document; // For IE5.5 and IE6\n d.open(); d.writeln(sa); d.close();\n\n // read tiddler DIVs from storeArea DOM element \n var sa = d.getElementById("storeArea");\n if (!sa) return null;\n sa.normalize();\n var nodes = sa.childNodes;\n if (!nodes || !nodes.length) return null;\n var tiddlers = [];\n for(var t = 0; t < nodes.length; t++) {\n var title = null;\n if(nodes[t].getAttribute)\n title = nodes[t].getAttribute("tiddler");\n if(!title && nodes[t].id && (nodes[t].id.substr(0,5) == "store"))\n title = nodes[t].id.substr(5);\n if(title && title != "")\n tiddlers.push((new Tiddler()).loadFromDiv(nodes[t],title));\n }\n return tiddlers;\n}\n//}}}
[[InFormEnter|http://informenter.mozdev.org/]]\n以半自动方式填写表单。
[[IrfanView|http://www.irfanview.com/]]\n小巧、功能强大的图像浏览工具,有简单的编辑功能。
[[It's All Text!|https://addons.mozilla.org/en-US/firefox/addon/4125]]\n\n调用外部文本编辑器编辑文本框内容,并定时同步。
[[JavaScript Tutorial|http://www.w3schools.com/js/default.asp]]\n[[GmailThis!]]\n[[Send2Flickr]]
/***\n[img[preview|http://simonbaird.com/images/kubrickpreview.gif]]\n<<applyTheme Kubrick 'Apply this theme now'>>\n\nBy ClintChecketts, based on the famous ~WordPress theme. Requires these in your current directory:\n*[[kubrickheader.jpg|kubrickheader.jpg]]\n*[[kubrickfooter.jpg|kubrickfooter.jpg]]\n*[[kubrickbg.jpg|kubrickbg.jpg]]\nInstall like a plugin, ie tag with systemConfig then save and reload.\nRequires SelectThemePlugin.\n***/\n//{{{\nif (!config.themes) config.themes = [];\n\nconfig.shadowTiddlers.KubrickPageTemplate = "<div class='header'>\sn<div class='titleLine'>\sn<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> \sn<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\sn</div>\sn</div>\sn<div id='sidebar'><div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\sn<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\sn<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\sn<div id='sidebarCopyright' refresh='content' tiddler='Copyright'></div>\sn</div>\sn<div id='displayArea'>\sn<div id='messageArea'></div>\sn<div id='tiddlerDisplay'></div>\sn</div>\sn<div id='contentFooter'><p>TiddlyWiki was created by <a href='http://tiddlywiki.com'>Jeremy Ruston</a> and TiddlyKubrick was created by <a href='http://checkettsweb.com'>Clint Checketts</a></p></div>";\n\nconfig.shadowTiddlers.KubrickStyleSheet = "/***\snStyleSheet General Rules\sn***/\sn/*{{{*/\sna,\sn.button{\sn color: #06c;\sn text-decoration: none;\sn background: transparent;\sn}\sn\sna:hover,\sn.button:hover{\sn background: transparent;\sn text-decoration: none;\sn color: #147;\sn}\sn\snbody {\sn font-size: 15px; /* Resets 1em to 10px */\sn font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;\sn background-color: #d5d6d7;\sn color: #666;\sn margin: 0 auto;\sn}\sn\sn#contentWrapper{\sn background: transparent url(\s"http://tiddlyspot.com/_ts/images/themes/kubrickbg.jpg\s") repeat-y 0px 0px;\sn border: 0;\sn margin: 0 auto;\sn width: 760px;\sn}\sn/*}}}*/\sn\sn/***\snHeader Rules\sn***/\sn/*{{{*/\sn.titleLine{\sn margin: 80px auto 0em;\sn padding: 0;\sn width: 745px;\sn text-align: center;\sn color: #fff;\sn}\sn\sn.siteTitle{\sn font-size: 30px;\sn}\sn\sn.siteTitle a, .siteSubtitle a{\sn color: #fff;\sn}\sn\sn.siteTitle a:hover, .siteSubtitle a:hover{\sn text-decoration: none;\sn font-weight: normal;\sn}\sn\sn.siteSubtitle{\sn display: block;\sn margin: 58px 0 0 0;\sn font-size: 15px;\sn}\sn\sn.header {\sn background: url(\s"http://tiddlyspot.com/_ts/images/themes/kubrickheader.jpg\s") no-repeat bottom center; \sn margin: 0;\sn padding: 1px;\sn height: 198px;\sn width: 758px;\sn\sn}\sn/*}}}*/\sn\sn/***\snFooter Styles\sn***/\sn/*{{{*/\sn#contentFooter {\sn text-align: center;\sn clear: both;\sn background: url(\s"http://tiddlyspot.com/_ts/images/themes/kubrickfooter.jpg\s") no-repeat bottom;\sn border: none;\sn padding: 2em;\sn height: 3em;\sn}\sn/*}}}*/\sn\sn/***\snSidebar styles\sn***/\sn/*{{{*/\sn#sidebar{\sn margin: 1em 2em 0 0;\sn position: static;\sn float: right;\sn}\sn\sn#sidebar a,\sn#sidebar a:hover{\sn border: 0;\sn}\sn\sn#sidebar h1{\sn font-size: 1.4em;\sn font-weight: bold;\sn margin: 0;\sn background: transparent;\sn color: #000;\sn}\sn\sn#sidebar ul{\sn padding: 0;\sn margin: 0 0 0 1em;\sn}\sn\sn#sidebar li{\sn list-style: none;\sn}\sn\sn#sidebar li:before{\sn color: #000;\sn content: \s"\ss00BB \ss0020\s";\sn}\sn\sn#sidebar, #mainMenu, #sideBarOptions{\sn width: 200px;\sn text-align: left;\sn}\sn\sn#mainMenu{\sn position: static;\sn}\sn/*}}}*/\sn\sn/***\snSidebar search styles\sn***/\sn/*{{{*/\sn#sidebarSearch{\sn margin: 20px 0 0 10px;\sn width: 155px;\sn}\sn\sn#sidebarSearch input{\sn font-size: 15px;\sn width: 120px;\sn}\sn\sn#sidebarSearch .button{\sn margin-top: 1px;\sn}\sn/*}}}*/\sn\sn/***\snSidebar option styles\sn***/\sn/*{{{*/\sn#sidebarOptions{\sn margin-left: .75em;\sn}\sn\sn#sidebarOptions h1{\sn font-size: 1.3em;\sn}\sn\sn#sidebarOptions a{\sn display: block; // was inline \sn border: 0;\sn}\sn\sn#sidebarOptions .sliderPanel{\sn background-color: transparent;\sn font-size: 1em;\sn margin: 0;\sn}\sn\sn#sidebarOptions .sliderPanel a:before,\sn#sidebarTabs li:before{\sn content: \s"\s";\sn}\sn/*}}}*/\sn/***\snSidebar tab styles\sn***/\sn/*{{{*/\sn#sidebarTabs .tab,\sn#sidebarTabs .tab:hover{\sn border: 1px solid #ccc;\sn text-decoration: none;\sn}\sn\sn#sidebarTabs .tabSelected{\sn background: #ccc;\sn color: #333;\sn}\sn\sn#sidebarTabs .tabUnselected{\sn background: #e6e6e6;\sn color: #333;\sn}\sn\sn#sidebarTabs .tabContents{\sn background: #ccc;\sn color: #333;\sn border: 1px solid #ccc;\sn width: 95%;\sn}\sn\sn#sidebarTabs .tabContents a{\sn color: #06c;\sn}\sn\sn#sidebarTabs .tabContents a:hover{\sn color: #147;\sn\sn}\sn\sn#sidebarTabs a.tabSelected:hover{\sn cursor: default;\sn}\sn\sn#sidebarTabs .txtMoreTab .tab{\sn border: 1px solid #aaa;\sn color: #333;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabSelected{\sn background: #aaa;\sn color: #333;\sn}\sn\sn#sidebarTabs .txtMoreTab .tabSelected:hover{\sn background: #aaa;\sn color: #333\sn}\sn\sn#sidebarTabs .txtMoreTab .tabUnselected{\sn background: #ccc;\sn color: #333;\sn}\sn\sn#contentWrapper #sidebar .txtMoreTab .tabUnselected:hover,#contentWrapper #displayArea .txtMoreTab .tabUnselected:hover{\sn color: #333;\sn}\sn\sn#contentWrapper .txtMoreTab .tabContents{\sn background: #aaa;\sn color: #333;\sn border: 1px solid #aaa;\sn}\sn/*}}}*/\sn/***\snMessage area styles\sn***/\sn/*{{{*/\sn#messageArea {\snbackground-color: #eee;\sn border: 1px solid #ccc;\sn color: #bbb;\sn margin: 0 1em;\sn font-size: .8em;\sn}\sn\sn#messageArea a:link{\sn color: #aaa;\sn}\sn#messageArea a:hover{\sn color: #06c;\sn}\sn\sn#messageArea .messageToolbar .button{\sn border: 1px solid #ccc;\sn color: #aaa;\sn text-decoration: none;\sn}\sn#messageArea .messageToolbar .button:hover{\sn border: 1px solid #777;\sn color: #777;\sn}\sn/*}}}*/\sn/***\snPopup styles\sn***/\sn/*{{{*/\sn#popup{\sn padding: 0;\sn background: #eee;\sn border: 1px solid #ccc;\sn color: #333;\sn}\sn\sn#popup a{\sn color: #06c;\sn font-weight: normal;\sn}\sn\sn#popup a:hover{\sn color: #fff;\sn background: #aaa;\sn text-decoration: none;\sn}\sn/*}}}*/\sn/***\snTiddler display styles\sn***/\sn/*{{{*/\sn#displayArea{\sn margin: 10px 245px 1em 30px;\sn text-align: left;\sn font-size: 15px;\sn color: #000;\sn}\sn\snh1, h2, h3, h4, h5, .title{\sn font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;\sncolor: #333;\snpadding: 0;\sn}\sn\sn.viewer h1,.viewer h2,.viewer h3,.viewer h4,.viewer h5,.viewer h6{\sn background: transparent;\sn border-bottom: 1px dotted #ccc;\sn}\sn\sn.title{\sn font-size: 20px; \sn}\sn\sn.subtitle{\sn color: #999;\sn font-size: 12px;\sn}\sn\sn.toolbar{\sn font-size: 11px;\sn}\sn\sn.toolbar a:link,.toolbar a:visited{\sn background: #e6e6e6;\sn border: 1px solid #ccc;\sn color: #aaa;\sn padding: 1px 3px;\sn margin: 0 .5em 0 0;\sn}\sn\sn.toolbar a.button:hover{\sn background: #eee;\sn border-color: #ddd;\sn color: #ccc;\sn text-decoration: none;\sn}\sn\sn.viewer a.tiddlyLinkNonExisting:link{\sn color: #b85b5a;\sn font-style: normal;\sn}\sn\sn.viewer a.tiddlyLinkNonExisting:hover{\sn text-decoration: none; \sn}\sn\sn.viewer a.tiddlyLinkExisting:link,#displayArea .viewer a.externalLink{\sn font-weight: normal;\sn color: #06c;\sn}\sn\sn.viewer a.tiddlyLinkExisting:hover,.viewer a.externalLink:hover{\sn color: #147;\sn text-decoration: none; \sn}\sn\sn.viewer {\sn font-size: 15px;\sn line-height: 160%;\sn padding-top: 0.5em;\sn}\sn\sn.viewer code {\sn font-size: 12px;\sn}\sn\sn.viewer .button{\sn \sn font-size: 15px;\sn}\sn\sn.editor {\sn font-size: 15px;\sn color: #ooo;\sn line-height: 160%;\sn}\sn\sn.editor input, .editor textarea {\sn display: block;\sn width: 100%;\sn font: inherit;\sn}\sn\sn.footer, .footer a.button,.editorFooter, .footer a.button{\sn color: #aaa;\sn}\sn\sn.selectedTiddler .footer,.selectedTiddler .footer a{\sn color: #777;\sn}\sn\sn.selectedTiddler .footer a.button,.selectedTiddler .editorFooter a.button{\sn color: #06c;\sn}\sn\sn.footer a.button:hover,.editorFooter a.button:hover{\sn color: #147;\sn background: transparent;\sn} \sn\sn.tagClear{\sn clear: none; \sn}\sn/*}}}*/";\n\nconfig.themes.push("Kubrick");\n//}}}\n\n
[[Last.Fm|http://last.fm]]\nThe Social Music Revolution
[[Launchy|http://www.launchy.net/]]\n自动搜索指定目录并建立快速启动索引的命令行启动工具。
[[Le Breeze|https://addons.mozilla.org/en-US/firefox/addon/439]]\n\n灰色简约风格。
[[Leech.fm|http://leech.fm/]]\n从 [[Last.Fm]] 搜索并下载音乐。
[[鳥哥的 Linux 私房菜|http://linux.vbird.org/]]
[[Live-Share|http://www.live-share.com/]]\n国内的文件存储服务,单文件300MB 上传限制。
[[LiveMarks|http://sandbox.sourcelabs.com/livemarks]]\n实时显示 [[Del.icio.us]] 最新收藏和最新热门收藏条目的服务。
[[Long Titles|https://addons.mozilla.org/en-US/firefox/addon/1715]]\n保持显示更多 title 信息。
[[MWSnap|http://www.mirekw.com/winfreeware/mwsnap.html]]\n免费好用的截屏软件,暂时停止更新。
[[MadEdit|http://madedit.sourceforge.net/]]\n免费、开源、跨平台的编辑器,支持行列模式和16进制模式。\n\n[img[http://madedit.sourceforge.net/screenshot01.png]]
[[开始|GettingStarted]]\n[[在线服务]]\n[[本地软件]]\n[[语法帮助]]
功能丰富的漫画阅读专用工具。
[[Media Player Classic|http://sourceforge.net/projects/guliverkli/]]\n基于 GPL 协议的免费、开源多媒体播放器。\n\n[img[http://sourceforge.net/dbimage.php?id=22754]]\n\n解码插件下载站点:\n[[Free Codecs|http://www.free-codecs.com/]]
[[Menu Editor|https://addons.mozilla.org/en-US/firefox/addon/710]]\n\n自定义菜单布局。
[[Merriam-Webster Online|http://www.m-w.com/]]
[[Twitter]]
[[MoFile|http://www.mofile.com/]]\n免费用户有30M 的永久保存空间,1G 的保存3天的空间。\n不能够直接下载,下载人数过多会导致无法下载。\n上传、下载速度很快,但跨电信、网通网络速度较慢。
[[ModBlog|http://www.modblog.com/]]\n提供了精美的主题,功能也很丰富。\n采用了西方语言编码,编辑、备份恢复功能对中文支持不佳。RSS 只能摘要输出。\n可以购买高级帐号,获得更多功能。
[[Mostly Crystal|http://www.tom-cat.com/mozilla]]
[[Mount & Blade|http://www.taleworlds.com/]]
[[MovableType|http://www.sixapart.com/movabletype/]]\n\n功能强大的 blog 工具,2.66 之后的版本不再免费。
免费、开源、跨平台的网络浏览器。\n最大的特色是拥有各种功能强大或符合小众需要的扩展和插件,每个人都可以是开发者,为它增加自己想要的功能。\n\n[img[http://www.mozilla.com/images/firefox-screen-windows.png]]\n\n[[Mozilla Firefox Project|http://www.mozilla.com/firefox]]\n[[Firefox 扩展]]\n[[Firefox 主题]]\n[[Spread Firefox|http://www.spreadfirefox.com]]\n[[Mozine|http://www.mozine.cn]]\n[[MozTW|http://moztw.org/]]\n
[[MyBloop|http://www.mybloop.com/]]\n未限制空间,可下载。不支持 Hot Link,会自动更改上传的文件名。速度较慢,经常因为升级、维护无法上传。\n\n[[我的 MyBloop 共享|http://mybloop.com/calon]]
[[MySQL|http://www.mysql.com/]]
[[NetHack|http://www.nethack.org/]]\n最强免费游戏,身材苗条内涵丰富的单人 RPG 游戏。
[[NewsGator|http://www.newsgator.com/]]\n\n老牌在线阅读服务之一,支持与 FeedDemon 同步。
[[NextPlease|http://nextplease.mozdev.org/]]
[[Nightly Tester Tools|http://www.oxymoronical.com/web/firefox/nightly]]\n\n用于对付部分 Firefox 附加软件兼容问题的工具。
[[Ning|http://www.ning.com/]] is the new free and easy way for you to create your own Social Web Apps
[[Notepad++|http://notepad-plus.sourceforge.net/]]\n免费、开源的文本编辑器。\n\n语法高亮度显示及语法折叠功能\n打印所见即所得\n用户自定程序语言\n字词自动完成功能\n支持同时编辑多重文件\n支持多重视窗同步编辑\n正则表达式搜索及替换\n支持拖曳功能\n内部视窗位置可任意移动\n自动侦测开启档案状态\n放大与缩小功能\n支持多国语言\n书签\n高亮度括号及缩排辅助\n宏命令\n16进制编辑
[[Notepad2|http://www.flos-freeware.ch/notepad2.html]]\n\n开源、免费的轻量级记事本软件,但功能不弱。
[[OpenOffice|http://www.openoffice.org/]]\n免费、开源、跨平台的办公套件,包括 Base、Calc、Draw、Math、Impress、Writer 等组件。\n\n[img[http://www.openoffice.org/product/pix/writer-big.png]]\n
[[Opera|http://www.opera.com/]]\n快速、安全、易用且功能强大的免费浏览器。\n\n[img[http://www.opera.com/img/products/desktop/screenshots/myopera-thumb.jpg]]\n[[原图|http://www.opera.com/img/products/desktop/screenshots/myopera.jpg]]\n
[[Orbit Rich Media Downloader|http://www.orbitdownloader.com/]]\n适合下载多媒体内容的工具。
[[BitTorrent]]\n[[eMule]]\n[[SoulSeek]]\n[[WinMX]]\n
[[Foxit Reader]]\n[[PDF-XChange Viewer]]
[[PDF-XChange Viewer|http://www.docu-track.com/home/prod_user/pdfx_viewer/]]\n\n小巧而功能强大的免费 PDF 阅读工具,可以进行简单的标记。
[[PHP|http://php.net]]\n[[PHP Tutorial|http://www.w3schools.com/php/default.asp]]
[[PSPad|http://www.pspad.com/]]\n免费的文本编辑器。支持16进制编辑、文件比较等功能。\n\n[img[http://www.pspad.com/img/screen/mainfull.png]]
[[PageAddict|https://addons.mozilla.org/en-US/firefox/addon/3685]]\n\n统计访问信息。
[[Paint.NET|http://www.getpaint.net/]]\n免费的画图软件,需要.net 环境。
[[Pandora|http://www.pandora.com/]]\n在线收听自己喜爱的音乐。
[[Panoramio|http://www.panoramio.com/]]\n将照片与地图服务结合起来的相册服务,提供1G 免费空间。
[[Pearl Crescent Page Saver|http://pearlcrescent.com/products/pagesaver/]]\n网页截图。
[[Personal Menu|https://addons.mozilla.org/en-US/firefox/addon/3895]]\n\n把常用菜单项集成到一个菜单中,并隐藏菜单栏。
[[Personas for Firefox|http://labs.mozilla.com/2007/12/personas-for-firefox/]]\n\n提供轻量级的主题功能。
[[PhotoBucket|http://www.photobucket.com/]]\n对免费用户的服务包括:提供总量1GB 的图片和视频存储空间,每月流量10GB,视频长度3分钟,允许直接链接,会自动缩小太大的图片。
[[PhotoCap|http://photocap.38.com/]]\n\n PhotoCap是數位照片的最佳幫手,也是100%免費的軟體,凡舉消除紅眼 、 去黑斑 、 去疤痕 、去油光、 美化肌膚 、 曝光亮度調整、色偏問題修正、消除紫邊現象...等等常見的瑕疵,對PhotoCap而言是輕而易舉的。 除了拯救照片的問題外,還可以讓妳的照片內容更加豐富,你可以添加文字 、小圖案 、外框 、月曆 、對話框等等常見有趣的應用。\n\nPhotoCap相當於初級程度的PhotoShop,因此PhotoShop大部分的基本功能都有,包刮專業影像軟體的必備的選取 、 影像功能 、 濾鏡 、 圖層 ,還有獨特的物件功能 ,可以說是功能完善又簡單好用的軟體。 PhotoCap還提供了簡單強大的去背功能,可以輕易的將背景去除,讓你影像合成更完美。\n\n特殊功能群組:\n1. 外框大師: 以最簡單最直覺的方式,快速的將你的影像照片加上外框,外框在此還可以做分類管理。\n2. 拼圖工廠: 方便讓你製作拼圖的功能\n3. 材質工廠: 方便讓你製作材質的功能,讓你快速的從一張影像中,擷取出可製作材質的部分。\n\n批次功能群組:\n1. 批次照片編輯功能: 為你的照片加上拍攝日期,文字,圖案,外框,對話框等常用的功能。\n2. 批次大頭照功能: 讓你製作大頭照,其中更包括新版證照規格。大頭照還可以多人模式,載入幾張照片就排幾個人。\n3. 批次縮圖頁功能:可以產生照片縮圖索引頁,還可以輕易將指定張數的照片合成一張,如 4 張照片洗ㄧ張 4X6 節省沖洗費。\n4. 批次更改檔名功能: 讓你一次搞定檔案名稱,檔名可以為拍照日期 、 檔案日期 、流水號等等 。\n5. 批次變更日期功能: 讓你變更照片的日期,讓你能補救拍照日期錯誤的困擾,同時也支援修改檔案日期。\n6. 批次改影像格式功能: 將所有的影像轉成你要的格式,比如1000 張的 JPEG 檔轉成 GIF 檔,改格式同時還能改變影像尺寸。\n7. 批次影像列印功能: 可以讓你一次列印所有你載入的影像,可以單張列印,也可以多張列印。
[[PhotoFilter|http://www.opanda.com/cn/pf/index.html]]\n\nOpanda PhotoFilter 是一款辅助摄影爱好者学习滤镜用法的摄影滤镜仿真软件, 提供了柯达, 高坚, 保谷三大品牌的全色滤镜系列上百款型号选择, 其设计原理基于"染料三基色系统"理论, 并根据其中关于色光镜滤减法则进行设计, 为摄影爱好者快速掌握各种滤镜的使用效果提供了方便直观的学习捷径.
[[PicPick|http://eng.wiziple.net/5]]\n\n功能较多的小巧截图软件。
[[Pix.ie|http://pix.ie/]]\n爱尔兰的相册服务,免费帐户每月500M 流量限制。
[[Process Explorer|http://www.microsoft.com/technet/sysinternals/utilities/processexplorer.mspx]]\n替代并增强 Windows 任务管理器的工具。
[[Programmer’s Notepad|http://www.pnotepad.org/]]\n\n号称适合程序员编写代码的开源、免费编辑器。
[[PuTTY|http://www.chiark.greenend.org.uk/~sgtatham/putty/]]\n\n免费的跨平台 telnet/SSH 客户端。
[[Python|http://python.org]]\n[[简明 Python 教程|http://www.byteofpython.info/language/chinese/index.html]]
[[Read it Later|http://www.ideashower.com/ideas/active/read-it-later/]]\n\n标记当前想看却无暇阅读的页面,方便空闲时再逐个回味,比书签操作更加简单。
[[Remember The Milk|http://www.rememberthemilk.com/]]\n风格简洁的 GTD 服务,支持 [[Twitter]] 通知。
[[Reverso Online Translator|http://www.reverso.fr/text_translation.asp]]\n英、法、德、西、意互译
[[Rojo|http://www.rojo.com/]]\n很有特色的 Feed 订阅服务。
[[RssFwd|http://www.rssfwd.com]]\n支持通过邮箱订阅 Feed 更新的服务。
[[SI Games|http://www.sigames.com/]]\n[[Sports Interactive Games|http://www.sigames.com/]],因制作 [[Championship Manager]]/[[Football Manager]] 系列而闻名的游戏公司。
[[SQLyog|http://www.webyog.com/]]\n有免费版本的 MySQL 数据库管理工具。\n\n[img[http://www.webyog.com/sqlyog/sqlyoghelp/image2.gif]]
[[Save Image in Folder|https://addons.mozilla.org/firefox/614/]]\n快速保存图片至指定的文件夹。
[[Save Session|https://addons.mozilla.org/en-US/firefox/addon/4199]]\n\n保存当前会话以便重启 Firefox 之后能够恢复。
[[SciTE|http://scintilla.sourceforge.net/SciTE.html]]\n基于 SCIntilla 的免费、功能强大、跨平台的文本编辑器。\n\n[img[http://scintilla.sourceforge.net/demo.png]]
[[ScrapBook|http://amb.vis.ne.jp/mozilla/scrapbook/]]\n下载保存、组织收藏、编辑修改网页资料。
[[Screenshot Captor|http://www.donationcoder.com/Software/Mouser/screenshotcaptor/]]\n\n编辑功能非常强大的截图软件。
/***\n\n''This plugin was previously called StyleChooser.''\n\n|Name|SelectThemePlugin|\n|Created by|SimonBaird and SaqImtiaz|\n|Location|http://lewcid.googlepages.com/lewcid.html#SelectThemePlugin|\n|Version|1.2.3|\n|Requires|~TW2.x|\n!Description\n*An alternative style switcher, can be used to switch just stylesheets and/or pagetemplates, or a combination of both (a theme)\n*you can add your own stylesheets and pagetemplates, or use a ThemePack, like BigThemePack.\n\n!Usage\n* You have to have fetch or create some styleSheets and pageTemplates to use this plugin.\n**You can either get a ThemePack like BigThemePack which automatically adds themes to ThemeSelect.\n**or create tiddlers with styleSheets and pageTemplates and tag them styleSheets and pageTemplates respectively.\n* Put {{{<<themeSelect style 'Select theme'>>}}} in your SideBarOptions.\n\n!Creating Theme Packs\n*You can create your own theme pack if you like. Instructions can be found [[here.|CreateThemePack]]\n\n!History\n* 15-May-06, v1.2.3, added paramifier so you can put theme on url, eg http://www.somewhere.com/twfile.html#theme:Berry2, thanks Clint (Simon).\n* 28-Apr-o6, v1.2.2, fixed bug with opening TW after deleting themepacks. (Saq)\n* 26-Apr-06, v1.2.1, more code optimization, dropdowns now updated on the fly. (Saq)\n* 25-Apr-06, v1.2.0, added 3rd party ThemePack support, and made various other improvements.(Simon & Saq)\n* 24-Apr-06, v1.1.0, added: no styles and default styles options,<<br>>support for ThemePack, support for tag variations(Saq)\n* 21-Apr-06, v1.0.0, Reworked dropdowns to include option for pagetemplates (Saq)\n* 21-Apr-06, v0.9.0, Rewrote and added Saq's lovely dropdown select (Simon)\n* 20-Apr-06, v0.0.1, Basic switcher working (Simon)\n\n!Examples\n|!Source|!Output|h\n|{{{<<themeSelect style>>}}} for a dropdown with StyleSheets|<<themeSelect style>>|\n|{{{<<themeSelect pagetemplate>>}}} for a dropdown with PageTemplates|<<themeSelect pagetemplate>>|\n|{{{<<themeSelect style customlabel>>}}} to use a customlabel|<<themeSelect style customlabel>>|\n* When applying a stylesheet or template, it also looks for a template or stylesheet respectively based on naming convention, eg MyFunkyStyleSheet and MyFunkyPageTemplate.\n\n!Notes\n* See also http://www.tiddlytools.com/#SelectStyleSheetPlugin for a more feature-rich style sheet switcher\n\n! Ideas\n* do ViewTemplate also?\n* Pretty up the [x] bit\n\n!Code\n***/\n//{{{\n// for compatibility with TW <2.0.9\nif (!Array.prototype.contains)\n Array.prototype.contains = function(item)\n {\n return this.find(item) != null;\n };\n\n// for compatibility with TW <2.0.9\nif (!Array.prototype.containsAny)\n Array.prototype.containsAny = function(items)\n {\n for(var i=0; i<items.length; i++)\n if (this.contains(items[i]))\n return true;\n return false;\n };\n//}}}\n\n//{{{\nversion.extensions.SelectTheme = { major: 1, minor: 2, revision: 3, date: new Date(2006,5,15),\n source: "http://lewcid.googlepages.com/lewcid.html#SelectTheme"\n};\n\nconfig.SelectTheme = {\n things: {\n style: {\n tag: ["StyleSheets","StyleSheet","styleSheet","styleSheets","stylesheet","stylesheets"],\n theDefault: "StyleSheet",\n suffix: "StyleSheet",\n notify: refreshStyles,\n cookie: "txtStyleSheet",\n otherThing: "pagetemplate",\n label: "Choose StyleSheet: ",\n tooltip: "Choose a StyleSheet",\n caseNone: { text:"None", title:"NoStyleSheet"},\n caseDefault: { text:"Default", title:"StyleSheet" }\n\n },\n pagetemplate: {\n tag: ["PageTemplates","PageTemplate","pageTemplates","pageTemplate","pagetemplate","pagetemplates"],\n theDefault: "PageTemplate",\n suffix: "PageTemplate",\n notify: refreshPageTemplate,\n cookie: "txtPageTemplate",\n otherThing: "style",\n label: "Choose PageTemplate: ",\n tooltip: "Choose a PageTemplate",\n caseNone: { text:"None", title:"NoPageTemplate"},\n caseDefault: { text:"Default", title:"PageTemplate" }\n }\n\n },\n\n specialCases: ["caseNone","caseDefault"]\n\n};\n\nTiddlyWiki.prototype.removeNotification = function(title,fn) {\n for (var i=0;i<this.namedNotifications.length;i++)\n if((this.namedNotifications[i].name == title) && (this.namedNotifications[i].notify == fn))\n this.namedNotifications.splice(i,1); // counting on it only being there once\n}\n\n\nvar things = config.SelectTheme.things;\nvar specialCases=config.SelectTheme.specialCases;\n\nfor (var t in things) {\n // make sure we have a value\n if (!config.options[things[t].cookie])\n config.options[things[t].cookie] = things[t].theDefault;\n\n // remove core notify\n store.removeNotification(things[t].theDefault,things[t].notify);\n\n // and add our one\n store.addNotification(config.options[things[t].cookie],things[t].notify);\n\n}\n\n//checks to see if a tiddler exists in store or as a shadow.\nTiddlyWiki.prototype.isTiddler= function (title)\n {return store.tiddlerExists(title) || store.isShadowTiddler(title)}\n\n//hijack core function & make sure template exists\nwindow.applyPageTemplate_themeSelect=window.applyPageTemplate;\nwindow.applyPageTemplate=function(title){\n if(!store.isTiddler(title))\n {title = things.pagetemplate.theDefault;}\n applyPageTemplate_themeSelect(title);\n }\n\nTiddlyWiki.prototype.makeActiveTheme = function(what,title,alsoCheckOtherThing) {\n\n var thing = things[what];\n if (!store.isTiddler(title))\n title = thing.theDefault;\n\n var oldTitle = config.options[thing.cookie];\n\n if (what == "style") {\n // remove old style element from DOM\n var oldStyleElement = document.getElementById(oldTitle);\n oldStyleElement.parentNode.removeChild(oldStyleElement);\n }\n\n store.removeNotification(oldTitle,thing.notify);\n store.addNotification(title,thing.notify);\n store.notify(title);\n\n config.options[thing.cookie] = title;\n saveOptionCookie(thing.cookie);\n if (alsoCheckOtherThing)\n this.makeActiveTheme(thing.otherThing,\n title.replace(new RegExp(thing.suffix+"$"),"") + things[thing.otherThing].suffix,\n false);\n};\n\n\nconfig.shadowTiddlers.NoStyleSheet = "";\nconfig.shadowTiddlers.NoPageTemplate = config.shadowTiddlers.PageTemplate;\n\n\nfunction switchTheme(e){\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n var theLink = theTarget;\n var switchTo= theLink.getAttribute("switchTo");\n var mode = theLink.getAttribute("mode");\n if ((config.options[things[mode].cookie])!=switchTo)\n {store.makeActiveTheme(mode,switchTo,true);};\n return(false);\n}\n\n\nconfig.macros.themeSelect={};\nconfig.macros.themeSelect.dropdownchar = (document.all?"▼":"▾");\nconfig.macros.themeSelect.handler = function(place,macroName,params,wikifier,paramString,tiddler){\n var arrow = config.macros.themeSelect.dropdownchar;\n var mode = params[0];\n var label = (params[1]?params[1]:things[mode].label) + arrow;\n var cookie = (config.options[things[mode].cookie]);\n\n var onclick = function(e)\n { if (!e) var e = window.event;\n var popup = Popup.create(this);\n\n var tagged=[];\n\n store.forEachTiddler(function(title,tiddler) {\n if ((tiddler.tags).containsAny(things[mode].tag)){\n tagged.push(tiddler.title);}\n });\n\n //integrate ThemePacks\n if (config.themes) {\n // see what themes have been loaded...\n for (var i=0;i<config.themes.length;i++) {\n // see if there is one\n var lookForThis = config.themes[i] + things[mode].suffix;\n if (store.isShadowTiddler(lookForThis)) {\n tagged.pushUnique(lookForThis);\n }\n }\n tagged = tagged.sort();\n }\n\n //this function used later to create buttons\n var createThemeButton = function(switchTo){\n var theButton = createTiddlyButton(createTiddlyElement(popup,"li"),text,null,switchTheme,useClass);\n theButton.setAttribute("switchTo",switchTo);\n theButton.setAttribute("mode",mode);};\n\n //create Buttons for None(shadow styles) & Default (StyleSheet)\n // Default button is not created if StyleSheet doesnt exist.\n for(var t=0; t<specialCases.length; t++){\n var special = specialCases[t];\n var text = things[mode][special].text;\n var useClass = "tiddlyLinkExisting"; //redundant, optimize!\n if ((things[mode][special].title==cookie)||(special=="caseNone"&&!store.isTiddler(cookie)))\n {text+= " [x]";\n useClass = "currentlySelected";}\n if (!((special=="caseDefault")&&(!store.getTiddler(things[mode][special].title))))\n createThemeButton(things[mode][special].title); }\n\n //insert horizontal rule\n createTiddlyElement(createTiddlyElement(popup,"li"),"hr");\n\n //create buttons for all other stylesheet tiddlers\n for(var t=0; t<tagged.length; t++)\n { var useClass = "tiddlyLinkExisting";\n var text = (tagged[t]).replace((things[mode].suffix),"");\n if (tagged[t]==(cookie) )\n {text+=" [x]"; useClass="currentlySelected";}\n if ((tagged[t]!= (things[mode].theDefault))&&tagged[t]!= (things[mode].none))\n {createThemeButton(tagged[t]);}}\n Popup.show(popup,false);\n e.cancelBubble = true;\n if (e.stopPropagation)\n e.stopPropagation();\n return(false);\n };\n\n var createdropperButton = function(place){\n var sp = createTiddlyElement(place,"span",null,"ThemeChooserButton");\n var theDropDownBtn = createTiddlyButton(sp,label,things[mode].tooltip,onclick);\n };\n\n createdropperButton(place);\n};\n\n\nsetStylesheet(".popup li a.currentlySelected {background:#ccc;color:black;font-weight:bold;}","currentlySelectedStyle"); // could do better probably...\n\nconfig.macros.layoutChooser=config.macros.themeSelect;\n\n//shadow tiddler to hold instructions for creating ThemePacks\nconfig.shadowTiddlers.ThemePack='See http://simonbaird.com/mptw/#CreateThemePack'; \n\nconfig.macros.applyTheme = {handler: function (place,macroName,params,wikifier,paramString,tiddler) {\n var theme = params[0];\n var label = params[1]?params[1]:'Apply theme "' + theme + '"';\n var tooltip = 'Apply the "'+theme+'" theme to this TiddlyWiki';\n createTiddlyButton(place,label,tooltip,function() {\n store.makeActiveTheme("style",theme+things.style.suffix,true);\n });\n}};\n\n\n// this means you can put #theme:ThemeName in url. suggested by Clint\nconfig.paramifiers.theme = {\n onstart: function(themeName) {\n store.makeActiveTheme("style",themeName+config.SelectTheme.things.style.suffix,true);\n }\n};\n\n//}}}\n\n
[[Send2Flickr|javascript:t='';for(var n=0;n<document.images.length;n++){t+='<a href=/ onclick=\s'document.f.url.value=document.images['+n+'].src;document.f.submit();return false;\s'><img border=0 src='+document.images[n].src+'></a><br>'};if(t!=''){ document.write('<p>Click an image to add it to your photostream</p><form name=f action=http://www.flickr.com/tools/sendto.gne method=get><input type=hidden name=url></form>'+t+'');void( document.close())}else{alert('No images!')}]]
[[Show Image|http://showimage.mozdev.org/]]\n提供在图片载入失败时重新载入的选项。
[[Show Picture|https://addons.mozilla.org/firefox/3664/]]\n刷新未显示出来的图片。
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<upload http://calon.tiddlyspot.com/store.cgi index.html . . calon>><html><a href='http://calon.tiddlyspot.com/download' class='button'>download</a></html><<themeSelect style 'select theme'>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
[[SimpleCheck|http://www.simplecheck.net/]]\n小巧、免费的多邮箱检查工具,支持对邮件的远程操作。
Calon's Wiki
Selective Memory
[[SlashDot|http://slashdot.org/]]\nNews for nerds, stuff that matters
[[SmartFTP|http://www.smartftp.com/]]\n免费提供给个人用户、教育机构和非商业用户使用的 FTP 软件。
[[SoulSeek|http://www.slsknet.org/]]\n寻找外文歌曲的最佳工具。
[[Source Forge|http://sourceforge.net/]]
[[SpeQ Mathematics|http://www.speqmath.com/]]\n\n功能强大的免费计算器工具。
[[Split Browser|https://addons.mozilla.org/en-US/firefox/addon/4287]]\n\n无限分割浏览器窗口。
[[StarDict|http://stardict.sourceforge.net/]]\n免费、跨平台、遵循 GPL 协议的翻译软件。\n\n[img[http://stardict.sourceforge.net/screenshot/stardict-win32.png]]\n\n[[StarDict 在线辞典|http://www.stardict.org/]]
[[Status Buttons|https://addons.mozilla.org/en-US/firefox/addon/1272]]\n\n允许将工具栏按钮拖到状态栏的扩展。
[[Stellarium|http://www.stellarium.org/]]\n显示3D 的星空,开源、免费、跨平台\n\n[img[http://www.stellarium.org/img/screenshots/sunset.jpg]]
[[StrokeIt|http://www.tcbmi.com/strokeit/]]\n\n免费而强大的鼠标手势工具。
[[Stylish|https://addons.mozilla.org/firefox/2108/]]\n通过脚本更改 [[Firefox]] 的界面和页面效果。\n\n专用脚本站点:\n[[UserStyles|http://userstyles.org/]]
[[Subscribe with Google Reader|http://fusion.google.com/add?feedurl=http://feeds.feedburner.com/calon]]\n[[Subscribe with Bloglines|http://www.bloglines.com/sub/http://feeds.feedburner.com/calon]]\n[[Subscribe with RssFwd|http://www.rssfwd.com/rssfwd/preview?url=http://feeds.feedburner.com/calon]]\n[[抓虾订阅|http://www.zhuaxia.com/add_channel.php?url=http%3A//feeds.feedburner.com/calon]]
[[Super DragAndGo|https://addons.mozilla.org/firefox/137/]]\n实现拖拽功能。
[[TOR|http://tor.eff.org]]\nThe Onion Router\n\n下载页面:\n[[Vidalia|http://www.vidalia-project.net/download.php]]\n[[Free Heaven|http://tor.freehaven.net/download.html.en]]\n\n\n[[TorPark|http://www.torrify.com/index.php]]
[[Tab History|https://addons.mozilla.org/en-US/firefox/addon/1859]]\n\n使新开的标签页可以保留同一会话中原始标签页的历史页面,即共用浏览历史页面记录。
[[Tab Mix Lite CE|http://addons.mozine.cn/firefox/54/]]\n\n[[Tab Mix Plus]] 的简化版,轻巧便捷的多标签管理扩展。
[[Tab Mix Plus|http://tmp.garyr.net/]]\n增强标签浏览功能。
[[TabRenamizer|https://addons.mozilla.org/firefox/2987/]]\n快速更改标签的名称以防止别人窥视。
[[Taboo|http://overstimulate.com/projects/taboo]]\n临时保存和回放标签页。
[[PuTTY]]
[[Tencent Messenger|http://im.qq.com/tm/]]\n\nTM 即时通,腾讯 QQ 的商务版。
[[The Onion|http://www.theonion.com/]]\nAmerica's Finest News Source
[[Thunderbird Project|http://www.mozilla.com/thunderbird/]]\n免费、开源、跨平台的邮件客户端。\n\n[img[http://www.mozilla.com/images/thunderbird-screen-windows.png]]\n\n[[Thunderbird 扩展]]\n[[Thunderbird 主题]]
[[CrossOver]]\n[[更多 Thunderbird 主题|https://addons.mozilla.org/thunderbird/themes/]]
[[Thunderbird 扩展|https://addons.mozilla.org/thunderbird/extensions/]]
[[TiddlyWiki|http://www.tiddlywiki.com]]\n本系统使用的 Wiki,[[tiddlyspot]] 提供了免费空间服务。
[[Tiny Menu|https://addons.mozilla.org/firefox/1455/]]\n\n给菜单瘦身。
[[TinyPic|http://tinypic.com/]]\n快速上传图片和视频的服务,会自动缩小太大的图片。
[[TinyURL|http://tinyurl.com]]\n\n为过长的 URL 地址创建唯一对应的缩短的地址。
[[TinyUrl Creator|https://addons.mozilla.org/en-US/firefox/addon/126]]\n\n快速为当前页面创建对应的 TinyURL 地址。
[[ToDoList|http://www.codeproject.com/tools/ToDoList2.asp]]\n免费、小巧的 GTD 工具,设置合理,支持中文。
[[Tortinita|http://tortinita.org/]]\n提供网易相册上传、下载工具的站点。
[[Total Commander|http://www.ghisler.com/]]\n最强大的 Windows 文件管理工具,共享软件。
[[TransBar|http://www.home.no/aksoftware/]]\n设置 Windows 任务栏透明度的小工具。
[[Tweetr|http://www.tweet-r.com/]]\n基于 [[Adobe Air]] 的 [[Twitter]] 客户端,支持文件传送和发布摄像头截图。
[[Twhirl|http://www.twhirl.org/]]\n功能丰富、自定义选项较多的 [[Twitter]] 客户端,基于 [[Adobe Air]]。\n\n[IMG[http://www.twhirl.org/files/images/twhirl-0.3-timeline.jpg]]
[[Twitter|http://twitter.com/]]\n综合网页、即时通讯、手机进行自言自语和聊天的服务。\n\n相关客户端:\n[[Tweetr]]\n[[Twhirl]]\n\n[[相关的服务、工具、扩展和脚本|http://del.icio.us/calon/twitter]]
[[TwitterFox|http://www.naan.net/trac/wiki/TwitterFox]]\n\n在 [[Mozilla Firefox]] 上登录、发布 [[Twitter]] 消息的扩展。
[[TypeAndRun|http://galanc.com]]\n功能强大而好用的命令行快速启动工具。\n在桌面图标、开始菜单和快速启动栏的项目越来越多的时候,使用 TypeAndRun 能够大大提高效率。
用以替换 Windows XP 的 UXTheme.dll 文件的补丁,安装后可以使用 Visual Style 主题。
[[Ubuntu|http://www.ubuntu.com/]]\nUbuntu 是一个完全基于 Linux 的操作系统,它不但免费,而且有专业人员和业余爱好者共同为其提供技术支持。\n\nUbuntu 爱好者社群背后的理念是“Ubuntu 哲学”:软件应该是免费的,世界各地的用户都应能够用上以他们自己的语言为界面语言的软件,他们能力上的缺失也不应该成为使用软件的障碍。此外,他们也应该拥有按照个人需要任意定制和修改软件的自由。 \n\n[img[http://www.ubuntu.com/include/img/desktop-tn.png]]\n\n[[Ubuntu 中文|http://www.ubuntu.org.cn/]]
[[Ubuntu Human Theme|http://www.blogmanno.com/?q=ff-themes]]\n\n仿 [[Ubuntu]] Human 主题。
[[Uncyclopedia|http://uncyclopedia.org]]\n自由发挥的百科全书。
[[Universal Extractor|http://www.legroom.net/software/uniextract]]\n万能解压缩工具。
Get all this tiddler simply using EricShulman's ImportTiddlersPlugin and selecting all tiddlers tagged [[Upload]].\n\n[[Upload]] is <<tagging Upload>>
This form is provided for uploading any file with the store.php script describe in UploadPlugin\n----\n<html><center>\n<form enctype="multipart/form-data" action="http://tiddlywiki.bidix.info/store.php" method="post" target="_blank">\n <input type="hidden" name="MAX_FILE_SIZE" value="3000000" />\nThis file : <input name="userfile" type="file" /><p>\nOptions* : <input type="text" name="UploadPlugin" size=70 value="backupDir=backupDir;user=UPLOAD_USER;password=UPLOAD_PASSWORD;" /><p>\n <input type="submit" value="Upload" />\n</form></center>\n</html>\n----\n * Don't save your real username and password in any tiddler
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 27/9/2006 16:21:21 | CalonXu | [[wiki.html|file:///C:/Documents%20and%20Settings/calon/My%20Documents/wiki.html]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/9/2006 16:24:5 | CalonXu | [[wiki.html|file:///C:/Documents%20and%20Settings/calon/My%20Documents/wiki.html]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/9/2006 16:25:33 | Calon | [[wiki.html|file:///C:/Documents%20and%20Settings/calon/My%20Documents/wiki.html]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/9/2006 16:32:12 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/9/2006 16:33:27 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 27/9/2006 16:34:26 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 27/9/2006 17:2:29 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 27/9/2006 17:41:43 | calon | [[/|http://calon.tiddlyspot.com/#%E6%9D%80%E6%AF%92%E8%BD%AF%E4%BB%B6]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/9/2006 10:12:18 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 28/9/2006 10:45:3 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 28/9/2006 12:22:21 | calon | [[/|http://calon.tiddlyspot.com/#%E5%9C%A8%E7%BA%BF%E6%9C%8D%E5%8A%A1%20%5B%5BBlog%20%E6%9C%8D%E5%8A%A1%5D%5D]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/10/2006 0:57:13 | YourName | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/10/2006 0:58:7 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/10/2006 15:12:24 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 3/10/2006 0:31:2 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 3/10/2006 16:30:39 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 6/10/2006 0:58:1 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 8/10/2006 9:24:35 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 8/10/2006 15:22:52 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 8/10/2006 15:43:59 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/10/2006 14:54:20 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 9/10/2006 21:16:54 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/10/2006 20:26:4 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/10/2006 18:30:44 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/10/2006 18:39:32 | calon | [[calon.html|file:///C:/Tool/calon.html]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 18/10/2006 9:22:58 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 11:28:59 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 4/11/2006 15:2:1 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 7/11/2006 10:26:12 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 7/11/2006 23:12:51 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 13/11/2006 12:58:40 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 23/11/2006 19:50:26 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 20/12/2006 12:32:50 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 3/2/2007 23:58:39 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 3/2/2007 23:59:51 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 4/2/2007 0:4:15 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 12/2/2007 13:18:14 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 12/2/2007 13:18:54 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 20/2/2007 12:23:26 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/3/2007 19:18:8 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/3/2007 19:18:50 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/3/2007 19:19:59 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/3/2007 19:20:20 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 27/3/2007 19:27:5 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 27/3/2007 20:10:38 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 27/3/2007 20:34:26 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/4/2007 10:36:18 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/4/2007 12:38:52 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/5/2007 9:57:44 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/5/2007 10:19:10 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 8/7/2007 17:54:53 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 8/7/2007 18:8:31 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/10/2007 12:54:38 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 17/10/2007 13:29:30 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/10/2007 13:30:10 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/11/2007 21:11:50 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 13/11/2007 12:27:45 | calon | [[/|http://calon.tiddlyspot.com/#%5B%5BFirefox%20%E6%89%A9%E5%B1%95%5D%5D]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 23/1/2008 15:12:21 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 23/1/2008 16:1:47 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 23/1/2008 16:15:46 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/6/2008 2:54:17 | calon | [[/|http://calon.tiddlyspot.com/]] | [[store.cgi|http://calon.tiddlyspot.com/store.cgi]] | . | index.html | . |
!Options used by UploadPlugin\nUsername: <<option txtUploadUserName>>\nPassword: <<option pasUploadPassword>>\n\nUrl of the [[store.php]] script^^(1)^^: <<option txtUploadStoreUrl 50>>\nRelative Directory to store the file^^(2)^^: <<option txtUploadDir 50>>\nFilename of the uploaded file^^(3)^^: <<option txtUploadFilename 40>>\nDirectory to backup file on webserver^^(4)^^: <<option txtUploadBackupDir>>\n\n^^(1)^^Mandatory either in UploadOptions or in MacroParameter\n^^(2)^^If empty stores in the [[store.php]] directory\n^^(3)^^If empty takes the actual filename\n^^(4)^^If empty existing the file with same name on webserver will be overwriten\n\n!Upload\n{{{<<upload [[UploadStoreUrl]}}}^^(1)^^{{{ [UploadFilename] [UploadBackupDir]]>>}}}\n\n<<upload>>
/***\n<<tiddler UploadPluginDoc>>\n!Code\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 3, revision: 3, \n date: new Date(2006,6,30),\n type: 'macro',\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n docs: 'http://tiddlywiki.bidix.info/#UploadPluginDoc'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 2, date: new Date(2006,3,11),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n var size = 15;\n if (params[1])\n size = params[1];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.size = size;\n c.value = config.options[opt];\n place.appendChild(c);\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.size = size;\n c.value = config.options[opt];\n place.appendChild(c);\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.dirname(storeUrl)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n if (storeUrl === '') {\n config.macros.upload.defaultStoreScript;\n }\n if (config.lib.file.dirname(storeUrl) === '') {\n storeUrl = config.lib.file.dirname(document.location.toString())+'/'+storeUrl;\n }\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n displayMessage(config.macros.upload.messages.aboutToUpload.format([this.dirname(storeUrl)]), this.dirname(storeUrl));\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n if (uploadDir) {\n rssPath = uploadDir + "/" + config.macros.upload.basename(rssPath);\n } else {\n rssPath = config.macros.upload.basename(rssPath);\n }\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [config.macros.upload.dirname(storeUrl)+"/"+rssPath]), config.macros.upload.dirname(storeUrl)+"/"+rssPath);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n revised = revised.replace(new RegExp("<title>[^<]*</title>", "im"),"<title>"+ newSiteTitle +"</title>");\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [config.macros.upload.dirname(storeUrl)+"/"+toFilename]), config.macros.upload.dirname(storeUrl)+"/"+toFilename);\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) { }\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data; name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir\n + ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data; name=\s"userfile\s"; filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n request.open("POST", storeUrl, true);\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n request.open("GET", document.location.toString(), true);\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]));\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nconfig.shadowTiddlers.UploadPluginDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadPluginDoc ]]\sn"; \n\n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n\nconfig.macros.saveChanges.handler_orig_UploadPlugin = config.macros.saveChanges.handler;\n\nconfig.macros.saveChanges.handler = function(place)\n{\n if ((!readOnly) && (document.location.toString().substr(0,4) != "http"))\n createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);\n}\n\n//}}}\n////===
/***\n|''Name:''|UploadPlugin|\n|''Type:''|Plugin|\n|''Version:''|3.3.3 (30/06/2006)|\n|''Source:''|[[TiddlyWiki.BidiX.info/#UploadPlugin|http://tiddlywiki.BidiX.info/#UploadPlugin]]|\n|''Documentation:''|[[TiddlyWiki.BidiX.info/#UploadPluginDoc|http://tiddlywiki.BidiX.info/#UploadPluginDoc]]|\n|''Author:''|BidiX[at]BidiX.info |\n|''Required:''|TW 2.0.6 or better, PHP 4.4 (perhaps less but not working on 4.1.2) or Ruby cgi on webserver |\n\n!Description\nUploadPlugin, with [[store.php]] or [[store.cgi]], provides @@upload@@ and @@save to web@@ functions. See HowToUpload ([[HowToUpload|http://TiddlyWiki.bidix.info/#HowToUpload]]).\nUploadPlugin uses Username and Password from UploadOptions stored in cookies to authenticate itself to [[store.php]] or [[store.cgi]].\nFrench translation available as a separate tiddler UploadPluginMsgFR\n\n!!UploadPlugin\n*If the TiddlyWiki is viewed from @@local disk@@ :\n**{{{<<saveChanges>>}}} \n***display as ''save to disk''\n***work as usual\n**{{{<<upload>>}}}\n***display as ''upload''\n***after saving to disk, upload in the storeUrl directory.\n*If the TiddlyWiki is viewed from @@website@@ and is @@readOnly@@ (in core TiddlyWiki since 2.0.6) :\n**{{{<<saveChanges>>}}} \n***print nothing\n***has been disabled\n**{{{<<upload>>}}}\n***display as '''save to web''\n***save in the uploadDir directory.\n*If GenerateAnRssFeed in AdvancedOptions is set :\n**generate the content of the RSSFeed \n**upload the RssFile in uploadDir directory\n**Caution : use the SiteUrl tiddler to specify the right url of the TiddlyWiki in the generated RssFile\n*DisplayMessage\n*Log upload action in UploadLog\nhint : if UploadLog is the first tiddler in the Timeline Tab, no tiddler has been updated since last upload.\n\n!![[store.php]]\n*UserVariables to set :\n//{{{\n$AUTHENTICATE_USER = true; // true | false\n$USERS = array(\n 'UserName1'=>'Password1', \n 'UserName2'=>'Password2', \n 'UserName3'=>'Password3'); // set usernames and strong passwords\n$DEBUG = false; // true | false\n//}}}\n*method GET\n**display an information page\n*method POST\n**if $~AUTHENTICATE_USER is ''true''\n***presence and value of user and password are checked with $USER and $PASSWORD \n**if toFilename already exists and backDir parameter specified\n***rename toFilename to backupDir/toFilename.AAAAMMDD.HHSS.html\n**copy temporaryUploadedFile to toFilename\n** return status\n\n!![[store.cgi]]\n*UserVariables to set :\n//{{{\nCONFIG = {\n :users => {\n 'UserName1'=>'Password1', \n 'UserName2'=>'Password2', \n 'UserName3'=>'Password3')\n },\n :authenticateUser => true,\n :backupExistingFile => true,\n :withUploadDir => true\n}\n//}}}\n*same processing as store.php above\n\n!Usage : \n{{{\n<<upload>>\n uses UploadOptions saved in cookies :\n txtUploadUserName: username\n pasUploadPassword : password\n txtUploadStoreUrl : store script\n txtUploadDir : relative path for upload directory\n txtUploadFilename : upload filename\n txtUploadBackupDir : relative path for backup directory\n\n<<upload [storeUrl [toFilename [backupDir [uploadDir [username]]]]]>>\n optional positional parameters can be passed to overwrite UploadOptions in this order. \n}}}\n\nInstall the {{{<<upload ... >>}}} macro in SideBarOptions just below {{{<<saveChanges>>}}} macro.\n\n\n!User manual\nSee HowToUpload\n\n!Installation :\n*Install the UploadPlugin as usual\n*Upload the [[store.php]] file on your php aware webserver in your TiddlyWiki directory\n*Protect your server against malicious upload. Two approaches :\n**set $~AUTHENTICATE_USER to true in the [[store.php]] script\n***configure $USER and $PASSWORD in the [[store.php]] script on your webserver\n***set UploadOptions in conformity with [[store.php]]\n**Use server protection :\n***for Apache web server ([[for detail see Apache documentation|http://httpd.apache.org/docs/1.3/howto/htaccess.html]]) : \n****configure and upload the [[.htaccess]] [[.passwd]]\n***for other web servers see the appropriate documentation\n*Configure an upload button, for example in the SideBarOptions\n!Suppported Browser\n*Firefox : tested Ok\n*Internet Explorer : tested Ok\n*Safari : reported ok on OS X\n*Others : Not tested, please report status.\n\n!Revision history\n*V 3.3.3 (30/06/2006)\n**reinstall saveChanges Hijacking\n*V 3.3.2 (26/06/2006)\n** make "save to disk" disappear when TiddlyWiki is located on the web\n** small reformatting of post headers for store.cgi compatibility\n*V 3.3.1 (30/03/2006)\n**bug in backup folder when uploading rssfile fixed\n*V 3.3.0 (12/03/2006)\n**Code refactoring\n**suppress saveChanges hijacking\n+++[previous revisions]\n*V3.2.2 (25/02/2006)\n**Use PasswordTweak 1.0.1\n**uploaddir is a relative path\n**backupdir is a relative path\n*V3.2.1 (13/02/2006)\n**name and password added to open.request (Thanks to TedPavlic)\n*V3.2.0 (14/02/2006)\n**Use PassworDTweak (http://tiddlyWiki.bidix.info/#PasswordTweak) for password\n*V3.1.0 (12/02/2006)\n**UploadOptions in Cookies\n**Username and password from UploadOptions pass to store.php script for authentification check\n*V3.0.3 (03/02/2006)\n**Firefox 1.5.0.1 crashes due to global var fixed\n*V3.0.2 (25-Jan-2006)\n**HTTPS compatible\n*V3.0.1 (18-Jan-2006)\n**UTF8toUnicode conversion problem in Firefox\n*V3.0.0 (15-Jan-2006)\n**Asynchronous upload\n**Synchronous upload before unload of the page\n**All strings extracted in macro config\n**Compatibility checked with TW 2.0.2 & TW 1.2.39 for both FF 1.5 and IE 6\n*V2.0.2 (8-Jan-2006)\n**conversion of SiteTitle and SiteSubtitle in web page Title\n*V2.0.1 (8-Jan-2006)\n**Compatibilty with TiddlyWiki 2.0.1\n*V2.0.0 (3-Jan-2006)\n**Save to web\n**Compatibilty with TiddlyWiki 1.2.39 and TiddlyWiki 2.0.0 Beta 6\n*v1.1.0 (27-Dec-2005)\n**Upload RSS File\n*v1.0.3 (26-Dec-2005)\n**UploadLog tiddler\n*v1.0.2 (24-Dec-2005)\n**Optional parameter toFilename\n**Optional parameter backupDir\n*v1.0.1 (23-Dec-2005)\n**reformatting code\n* v1.0.0 (17-Dec-2005)\n** first public working version\n===\n\n
/***\n\n\n----\nUploadPluginMsgEN provides the english translation for UploadPlugin.\n----\n\n\n***/\n/***\n|''Name:''|UploadPluginMsgEN|\n|''Type:''|Translation|\n|''Version:''|UploadPlugin 3.1.x (12/02/2006)|\n|''Source:''|[[TiddlyWiki.BidiX.info|http://tiddlywiki.BidiX.info/#UploadPluginEN]]|\n|''Author:''|BidiX[at]BidiX.info with modifications by [[Yann Perrin]]|\n|''Compatibility:''|TW1.2 & TW2|\n!Usage : \nFor an english translation of UploadPlugin Message when using PolyGlotPlugin, import this tiddler in the TiddlyWiki. Make sure it is tagged with {{{en}}} and {{{linguo}}}. \nComments and suggestions are welcome.\n***/\n//{{{\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n//}}}\n
|''Name:''|UploadToFileMacro|\n|''Type:''|Macro|\n|''Version:''|1.0.0 (14/03/2006)|\n|''Source:''|[[TiddlyWiki.BidiX.info/#UploadToFileMacro|http://tiddlywiki.BidiX.info/#UploadToFileMacro]]|\n|''Documentation:''|[[TiddlyWiki.BidiX.info/#UploadToFileMacroDoc|http://tiddlywiki.BidiX.info/#UploadToFileMacroDoc]]|\n|''Author:''|BidiX[at]BidiX.info |\n|''Required:''|[[UploadPlugin|http://tiddlywiki.BidiX.info/#UploadPlugin]] |\n\n!Description\nUpload a tiddler as a file using UploadPlugin context. Used with the SimonBaird's RunMacroIfTagged in [[ViewTemplate|BidiXStyleViewTemplate]] provides a new command in the tiddler toolbar.\n\n!Usage\n{{{\n <<uploadToFile>>\n <<uploadTofile [filename [tiddlerTitle]]>>\n \n tiddlerTitle: if omitted the title of the current tiddler \n filename: if omitted the title of the current tiddler\n\n}}}\n\n!Revision history\n* v1.0.0 (14/03/2006)\n** initial release\n
[[VectorMagic|http://vectormagic.stanford.edu/]]\n\n在线转换矢量图的工具。
[[VeryCD|http://www.verycd.com/]]
[[VideoLan|http://www.videolan.org/]]\n免费的多媒体播放器\n\n[img[http://www.videolan.org/images/screenshots/vlc-win32.jpg]]
[[Vim|http://www.vim.org]]\n功能非常强大的免费、开源、跨平台文本编辑器。\n\n[[大家來學 Vim 一個歷久彌新的編輯器|http://edt1023.sayya.org/vim/]]
[[Vimperator|http://vimperator.mozdev.org/index.html]]\n\n像操作 [[Vim]] 一样操作 Firefox。
[[VirtuaWin|http://virtuawin.sourceforge.net/]]\nWindows 下实现多桌面的工具。
[[W3School|http://www.w3schools.com/]]\nFull Web Building Tutorials - All Free
[[Web Developer|https://addons.mozilla.org/firefox/60/]]\n网页开发工具集合。
[[WebJay|http://webjay.org/]]\nPlaylist Community
[[WebRunner|http://wiki.mozilla.org/WebRunner]]\n基于 XULRunner 的独立、简化浏览器。
[[Weblogs.us|http://www.weblogs.us]]\n免费提供全功能的 WordPress,2GB FTP 空间,MySQL 数据库,最好的免费 WordPress BSP。不是一直开放帐号注册。\n曾经提供过 MovableType 的 blog 服务。\n发生过中国大陆无法访问的情况。
[[GNU Wget]]\n[[Wget for Windows]]\n[[wGetGUI]]
[[Wget for Windows|http://www.interlog.com/~tcharron/wgetwin.html]]
[[Whitehart|https://addons.mozilla.org/en-US/firefox/addon/364]]\n\n简约风格的主题,有不少自定义选项。
[[TiddlyWiki]]\n[[Wikipedia]]\n[[Uncyclopedia]]\n[[更多的 Wiki|http://del.icio.us/calon/wiki]]\n
[[WikidPad]]
[[WikiFortio|http://www.wikifortio.com/]]\n单个文件不大于100M。
[[WikidPad|http://www.jhorman.org/wikidPad/]]\n功能强大的免费的本地 Wiki 编辑工具,可进行多种功能扩展。
[[Wikipedia|http://wikipedia.org]]\n维基百科,自由的百科全书。
下载国外音乐的 P2P 软件,目前官方站点已经不存在了。
[[WinRoll|http://www.palma.com.au/winroll/]]\n将窗口缩小至只剩标题栏。\n\n[img[http://www.palma.com.au/winroll/rollup-small.png]]
[[WinSCP|http://winscp.net/]]\n\n开源的 SFTP 客户端,支持基于 SSH-1、SSH-2的 SFTP 和 SCP 协议。
[[WinSnap|http://www.ntwind.com/software/winsnap.html]]\n对个人非商业用途免费的截图工具。\n\n[img[http://www.ntwind.com/assets/images/winsnap/winsnap_small.png]]
[[Windows Live Messenger|http://get.live.com/messenger/overview]]\n\n微软的即时通讯工具。
[[Winning Eleven|http://www.konami.jp/gs/game/we/]]\n[[Konami Tokyo|http://www.konami.jp/]] 制作的足球游戏,欧洲版的名称为 Pro Evolution Soccer。
[[WordPress|http://wordpress.org/]]\n以安装、升级方便,插件、主题丰富著称的 blog 工具。使用 [[PHP]] 编写,需要 [[MySQL]] 数据库。\n\nWiki:\n[[WordPress Wiki|http://wiki.wordpress.org/]]\n\n文档:\n[[WordPress Codex|http://codex.wordpress.org/]]\n\n插件:\n[[WordPress Plugins Database|http://wp-plugins.net/]]\n[[WordPress Plugins|http://wiki.wordpress.org/Plugin]]\n[[WordPress plugins at coffee2code.com|http://www.coffee2code.com/wp-plugins/]]\n\n主题\n[[WP Themes.info|http://wpthemes.info/themes/]]\n[[Theme Browser|http://themes.wordpress.net/]]\n\n综合:\n[[BloggingPro|http://www.bloggingpro.com/]]\n[[BloggingPro China|http://www.wordpresscn.com/]]\n\n[img[http://wordpress.org/about/shots/1.5/front-page.png]]\n
[[WordPress.com|http://www.wordpress.com]]\n\nWordPress 官方建立的 blog 服务站点,功能受限,无法上传插件和主题。\n如果要取得 WP API,必须在 [[WordPress.com]] 拥有帐号。\n目前中国大陆无法访问。
[[Extensible Markup Language (XML)|http://www.w3.org/XML/]]\n[[XML Tutorial|http://www.w3schools.com/xml/default.asp]]
[[Youtube|http://www.youtube.com/]]\n信息丰富、速度很快的视频共享站点。
[[Yupoo|http://www.yupoo.com/]]\n仿 [[Flickr]] 的国内图片存储服务,每月提供60MB 以上的上传流量。
[[Zooomr|http://www.zooomr.com/]]\n支持 OpenID 的免费相册服务。
[[beHidden|http://www.behidden.com/]]\n网页代理服务
查无此人
[[deviantART|http://www.deviantart.com/]]\n著名的艺术创作作品发布站点和社区,有非常丰富的资源。
[[eMule Official Site|http://www.emule-project.net/]]\n世界上最大的并且最可靠的点对点文件共享客户端。\n\n[img[http://www.emule-project.net/home/screenshots/tn_transfer.jpg]]\n\n[[VeryCD]]\n[[eMule Home|http://www.emule.org.cn/]]
[[fileXoom|http://filexoom.com/]]\n2GB 文件存储服务。
[[gladder|http://gneheix.googlepages.com/gladder]]\n\n利用网页代理突破封锁的扩展。
[[id Software|http://www.idsoftware.com/]]
[[openSUSE|http://www.ubuntu.org.cn/]]\nopenSUSE 项目是个全球社群制定的计划,并由一个主力在各地推广 Linux 的企业 Novell 赞助,给全人类免费又易用的 Linux 发行品牌 SUSE Linux。
[[tiddlyspot|http://tiddlyspot.com/]]\n为 TiddlyWiki 用户提供免费空间的服务,可以实现在线编辑、保存。
| tiddlyspot password:|<<option pasUploadPassword>>|\n| site management:|<<upload http://calon.tiddlyspot.com/store.cgi index.html . . calon>>//(requires tiddlyspot password)//<<br>>[[control panel|http://calon.tiddlyspot.com/controlpanel]], [[download (go offline)|http://calon.tiddlyspot.com/download]]|\n| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|
[[µTorrent|http://www.utorrent.com]]\n轻量级的 BitTorrent 客户端。\n\n[img[http://download.utorrent.com/screenshots/utorrent3.gif]]\n[[原图|http://download.utorrent.com/screenshots/utorrent3.png]]
[[wGetGUI|http://www.jensroesner.de/wgetgui/]]
[[xyzProxy|http://xyzboard.com/]]\n方便地导入和切换代理。
光荣公司出品的以三国时代为背景的历史游戏系列。\n\n[[三国志4]]\n[[三国志5]]\n[[三国志9]]
KOEI 三国志系列在 DOS 时代的最后一作。\n\n[[补丁98]]\n[[自定义姓名字库]]
[[Flashget]]\n[[Leech.fm]]\n[[Orbit Rich Media Downloader]]\n[[Wget]]\n
[[我的 Blog]]\n[[我的 Feed]]\n[[我的站点]]\n[[我的群组论坛]]\n[[我的朋友]]\n[[我的在线书签]]\n[[我的共享文件]]\n[[关于我]]\n
[[中华在线词典|http://www.ourdict.cn]]
[[Amazon]]\n[[豆瓣]]
[[TOR]]
[[beHidden]]
CnBeta\n[[Digg]]\nHowStuffWorks\nSlashDot\n[[The Onion]]\n[[新语丝]]\n
[[My Last.Fm|http://last.fm/user/calonxu]]\n[[My Douban|http://www.douban.com/people/calon]]
[[CLCL]]
[[EditGrid]]\n[[Gliffy]]\n[[Google Docs and Spreadsheets]]
[[Dia]]\nFreeMind\nOpenOffice
[[Google Talk]]\n[[Tencent Messenger]]\n[[Windows Live Messenger]]
[[7-Zip]]\n[[IZArc]]\n[[Universal Extractor]]
[[Easy-Go!]]\n[[Executor]]\n[[FindAndRunRobot!]]\nHotRun\n[[Launchy]]\n[[TypeAndRun]]\n[[Wget]]\n
[[哲学家]]\n[[哲学思想流派]]\n[[哲学思想发展脉络杂谈]]
[[苏格拉底]]\n[[柏拉图]]\n[[亚里士多德]]\n[[伊壁鸠鲁]]\n[[斯多噶]]\n[[奥古斯丁]]\n[[阿奎那]]\n[[托勒密]]\n[[笛卡尔]]\n[[路德]]\n[[斯宾诺莎]]\n[[莱布尼兹]]\n[[洛克]]\n[[休谟]]\n[[贝克莱]]\n[[克尔凯郭尔]]\n[[卢梭]]\n[[康德]]\n[[黑格尔]]\n[[叔本华]]\n[[柏格森]]\n[[维特根斯坦]]\n[[海德格尔]]\n[[詹姆斯]]\n[[萨特]]\n[[加缪]]\n[[哈贝马斯]]\n[[马克思]]\n[[费尔巴哈]]\n[[尼采]]\n[[克罗齐]]\n[[胡塞尔]]\n[[杜威]]\n[[罗素]]
ComicsViewer\nEPSnap\n[[FastStone Screen Capture]]\n[[Flickr and WebImager]]\n[[GIMP]]\n[[Google Picasa]]\nIExif\nIrfanView\nMangaMeeya\n[[Paint.NET]]\nPhotoCap\nPhotoFilter\nPicPick\n[[Screenshot Captor]]\nWinSnap\nMWSnap
[[23People]]\n[[Bababian]]\n[[Flickr]]\n[[Google Picasa Web Album]]\n[[Panoramio]]\n[[PhotoBucket]]\n[[Pix.ie]]\n[[TinyPic]]\n[[Yupoo]]\n[[Zooomr]]\n[[大脚]]\n[[网易相册]]
[[365Key]]\n[[Del.icio.us]]\n[[Diigo]]\n[[Furl]]\nLiveMarks
[[Linux]]\n[[Python]]\n[[Vim]]\n[[W3School]]\n
[[Blog 服务]]\n[[Feed 订阅]]\n[[GTD 服务]]\nMicroBlog\n[[Wiki]]\n[[办公服务]]\n[[代理服务]]\n[[电影]]\n[[开发相关]]\n[[视频共享]]\n[[书籍]]\n[[图片存储]]\n[[网页邮箱]]\n[[文件存储]]\n[[新闻群组]]\n[[信息汇总]]\n[[艺术创作]]\n[[音乐服务]]\n[[在线辞典]]\n[[在线教程]]\n[[在线书签]]\n[[在线转换]]\n[[字体资源]]\n[[杂项]]
[[VectorMagic]]
[[Babel Fish]]\n[[Dict.CN]]\n[[Excite CN-JP]]\n[[Merriam-Webster Online]]\n[[Reverso]]\n[[StarDict]]\n[[中华在线词典]]
[[Foobar2000]]\n[[Media Player Classic]]\n[[VideoLan]]\n
[[多特网盘|http://www.duote.net/]]\n单个文件不大于20M,存储时限30天,速度较快。
[[大脚|http://www.footbig.com/]]\n\n每月限额500 M 原创照片上传。
[[Abstract Fonts]]\n[[DaFont]]
[[Ning]]\n[[Source Forge]]\n
[[AJAX]]\n[[CSS]]\n[[HTML]]\n[[JavaScripts]]\n[[PHP]]\n[[Python]]\n[[XML]]\n
Microsoft Windows 与 Office 系列捆绑的中文整句输入法。\n自学习和智能化程度高,体积较大,自定义选项较少。
[[Remainder Book|http://calon.weblogs.us]]@Welogs.us\n[[Remiander Book|http://calon.blogsome.com]]@BlogSome\n[[11Players|http://11players.blogbus.com/]]\n[[Brownian Movement|http://www.xanga.com/xalon]]\n[[Plain Text|http://calon.blogspot.com/]]\n[[My Portal|http://calon.suprglu.com]]@Suprglu\n
[[Blog Feed|http://feeds.feedburner.com/calon]]\n[[Subscribe]]\n[[Remainder Book Feed|http://calon.weblogs.us/feed]]\n[[Remainder Book Comment Feed|http://calon.weblogs.us/comments/feed]]
[[MyBloop]]
[[My Del.icio.us|http://del.icio.us/calon]]\n[[My Diigo|http://www.diigo.com/user/calonxu]]\n[[My 365Key|http://365key.com/calon]]\n
[[Recycle Bin|http://calon.xu.googlepages.com/home]]
[[Calon@GoogleGroups|http://groups.google.com/group/calon]]\n[[OnlineData@GoogleGroups|http://groups.google.com/group/onlinedata]]
[[抓虾|http://zhuaxia.com/]]\n中文的 Feed 订阅服务。
[[拼音加加2.204集合版]]\n[[拼音加加4]]
词组输入法拼音加加最经典的一个版本。\n特性包括笔画辅助码、以词定字、自定义编码、自定义界面配色方案、快速删除自定义词组等。
[[拼音加加4|http://dir.jjol.cn/Pyjj/]]
[[搜狗输入法|http://www.sogou.com/pinyin/]]
[[FreeDOS]]\n[[openSUSE]]\n[[Ubuntu]]
[[MySQL]]\n[[SQLyog]]
[[91files]]\n[[Box.net]]\n[[Drop.io]]\n[[fileXoom]]\n[[Fs2You]]\n[[Live-Share]]\n[[MoFile]]\n[[MyBloop]]\n[[WikiFortio]]\n[[多特网盘]]\n[[更多文件存储服务|http://del.icio.us/calon/Storage]]
[[Total Commander]]\n
[[AkelPad]]\n[[Crimson Editor]]\n[[EmEditor]]\n[[MadEdit]]\n[[Notepad++]]\n[[Notepad2]]\n[[Programmer’s Notepad]]\n[[PSPad]]\n[[SciTE]]\n[[Vim]]\n
[[新语丝|http://www.xys.org]]\n[[新语丝镜像1|http://xys.3322.org]]\n[[新语丝镜像2|http://xys.dxiong.com]]
[[Google Groups]]
中文、英文、数字、标点符号混和输入表现最佳的整句输入法。\n\n推荐版本:\n智能狂拼2\n智能狂拼3.3
[[Feed 订阅工具]]\n[[FTP 工具]]\n[[GTD 工具]]\n[[P2P 工具]]\n[[PDF 工具]]\n[[Telnet 工具]]\n[[Wiki 工具]]\n[[办公软件]]\n[[操作系统]]\n[[词典工具]]\n[[代理工具]]\n[[多媒体播放]]\n[[防火墙工具]]\n[[即时通讯]]\n[[开发编程]]\n[[科学工具]]\n[[剪贴板工具]]\n[[浏览器]]\n[[命令行工具]]\n[[杀毒软件]]\n[[数据库工具]]\n[[图像处理]]\n[[文本编辑]]\n[[文件管理]]\n[[系统工具]]\n[[下载工具]]\n[[虚拟光驱]]\n[[压缩工具]]\n[[邮件工具]]\n[[游戏]]\n[[输入工具]]\n[[桌面工具]]
[[Avast!]]\n[[AVG Anti Virus]]\n[[AntiVir]]\nClamWin
TinyURL
AutoHotkey\n[[Dexpot]]\n[[Google Desktop]]\nStrokeIt\nTransBar\n[[UXTheme Patch]]\n[[VirtuaWin]]\n[[WinRoll]]
[[DOSBox]]\n[[ePSXe]]\n[[VBA]]\n[[VGS]]
[[Mozilla Firefox]]\n[[Opera]]\nWebRunner\n
[[Advance Wars]](高级战争)\n[[Baldur's Gate]](博德之门)\n[[C&C]](命令与征服)\n[[Close Combat]](近距离作战)\n[[Counter Strike]](反恐精英)\n[[Championship Manager]](冠军足球经理)\n[[Doom]](毁灭战士)\n[[DTXMania]]\n[[Fallout]](辐射/异尘余生)\n[[Football Manager]](足球经理)\n[[Grim Fandango]](冥界狂想曲)\n[[Half-Life]](半条命/半衰期)\n[[Halo]](光晕)\n[[Monkey Island]](猴岛小英雄)\n[[Mount & Blade]](骑马与砍杀)\nNetHack\n[[Planescape: Torment]](异域镇魂曲)\n[[Quake]](雷神之锤)\n[[Sid Meier's Civilization]](席德·梅尔的文明)\n[[Silent Hill]](寂静岭)\n[[Silent Hunter]](沉默猎手)\n[[Sims]](模拟人生)\n[[StepMania]]\n[[Supreme Commander]](最高指挥官)\n[[Total Annihilation]](横扫千军)\n[[Winning Eleven]](实况:胜利十一人)\n[[Worms]](百战天虫)\n[[三国志]]\n[[模拟器]]
[[IMDB]]
[[Apophysis]]\n[[Google Earth]]\n[[SpeQ Mathematics]]\n[[Stellarium]]
[[Absolute Uninstaller]]\n[[Process Explorer]]
[[网易相册|http://photo.163.com]]\n无限上传空间,不限流量,速度较快。\n\n[[Tortinita]]
[[Gmail]]
4-1\n\n一乙丁七乃九了二人儿\n入八几刀刁力匕十卜又\n三下丈上丫丸凡久么也\n乞于亡兀刃勺千叉口土\n士夕大女子孑孓寸小尢\n尸山川工己已巳巾干廾\n弋弓才丑丐不中丰丹之\n尹予云井互五亢仁什仃\n仆仇仍今介仄元允内六\n兮公冗凶分切刈匀勾勿\n化匹午升卅卞厄友及反\n壬天夫太夭孔少尤尺屯\n巴幻一一引心戈户手扎\n\n4-2\n\n支文斗斤方日曰月木欠\n止歹毋比毛氏水火爪父\n爻片牙牛犬王一一凵匚\n厂万丌乇亍囗屮彳丏冇\n与一亓仂仉仈冘勼卬厹\n圠一夬一巿一殳毌气爿\n\n5-1\n\n丙世丕且丘主乍乏乎以\n付仔仕他仗代令仙仞充\n兄冉冊冬凹出凸刊加功\n包匆北匝仟半卉卡占卯\n卮去可古右召叮叩叨叼\n司叵叫另只史叱台句叭\n叻四囚外央失奴奶孕它\n尼巨巧左市布平幼弁弘\n弗必戊打扔扒扑斥旦朮\n本未末札正母民氐永汁\n汀汜犯玄玉瓜瓦甘生用\n甩田由甲申疋白皮皿目\n矛矢石示禾穴立丱丼仨\n\n5-2\n\n仜仩仡仝仚刌刉匜卌圢\n圣夗夯宁宄尒尻屴屳帄\n庀庂忉戉扐氕氶汃氿氻\n一犰玊一肊阞\n\n6-1\n\n丞丢乒乓乩一交亦亥仿\n伉伙伊伕伍伐休伏仲件\n任仰仳份企伋光凶兆先\n全共再冰列刑划刎刖劣\n匈匡匠印危吉吏同吊吐\n吁吋各向名合吃后吆吒\n因回囝圳地在圭圬圯圩\n夙多夷夸妄奸妃好她如\n妁字存宇守宅安寺尖屹\n州帆并年式驰忙忖戎戌\n戍成扣扛托收早旨旬旭\n曲曳有朽朴朱朵次此死\n氖汝汗汙江池汐汕污汛\n\n6-2\n\n汍汎灰牟牝百竹米糸缶\n羊羽老考而耒耳聿肉肋\n肌臣自至臼舌舛舟艮色\n艾虫血行衣西阡伎优伬\n仵伔仱伀价伈伝伂伅伢\n伓伄仴伒冱刓刐劦匢匟\n卍厊吇囡囟圮圪圴夼妀\n奼妅奻奾奷奿孖尕尥屼\n屺屻屾巟幵庄一一彴忕\n忔忏扜扞扤扡扦扢扙扠\n扚扥攷旯旮朾朹朸朻机\n朿朼朳氘汆汒汜汏汊汔\n汋汌灱牞犴犵玎甪癿穵\n\n6-3\n\n网艸艼芀艽艿虍襾邙邗\n邘邛邔阢阤阠阣\n\n7-1\n\n串亨位住佇佗佞伴佛何\n估佐佑伽伺伸佃佔似但\n佣作你伯低伶余佝佈佚\n兑克免兵冶冷别判利删\n刨劫助努劬匣即卵吝吭\n吞吾否呎吧呆呃吴呈吕\n君吩告吹吻吸吮吵呐吠\n吼呀吱含吟听囪困囤囫\n坊坑址坍均坎圾坐坏圻\n壮夹妆妒妨妞妣妙妖妍\n妤妓妊妥孝孜孚孛完宋\n宏尬局屁尿尾岐岑岔岌\n巫希序庇床廷弄弟彤形\n\n7-2\n\n彷役忘忌志忍忱快忸忪\n戒我抄抗抖技扶抉扭把\n扼找批扳抒扯折扮投抓\n抑抆改攻攸旱更束李杏\n材村杜杖杞杉杆杠杓杗\n步每求汞沙沁沈沉沅沛\n汪決沐汰沌汩冲没汽沃\n汲汾汴沆汶沍沔沘沂灶\n灼灾灸牢牡它狄狂玖甬\n甫男甸皂盯矣私秀秃究\n系罕肖肓肝肘肛肚育良\n芒芋芍见角言谷豆豕贝\n赤走足身车辛辰迂迆迅\n\n7-3\n\n迄巡邑邢邪邦那酉采里\n防阮阱阪阬佖伻佢佉体\n佤伾佧佒佟佁佘伭伳伿\n佡冏冹刜刞刡劭劮匉卣\n邵厎厏吰吷吪呔呅吙吜\n吥吘吽呏呁吨吤呇囮囧\n囥坁坅坌坉坋坒夆奀妦\n妘妠妗妎妢妐妏妧妡宎\n宒一尪岍岏岈岋岉岒岊\n岆岓岕巠帊帎庋庉庌庈\n庍弅弝彸彶忒忑忐忭忨\n忮忳忡忤忣忺忯忷忻怀\n忴戺抃抌抎抏抔抇扱扻\n\n7-4\n\n抵扰抁抈扷扽扲扴旰旴\n旳旲旵杅杇杙杕杌杈杝\n杍杚杋毐氙氚汸汧汫沄\n沋沏汱汯汨沚汭沇沕沜\n汦汳汥汻沎灴灺牣犿犽\n狃狆狁犺狅玕玗玓玔玒\n町甹疔疕皁礽耴肕肙肐\n肒肜芐芏芅芎芑芓芊芃\n芄豸迉辿邟邡邥邞邧邠\n阰阨阯阭\n\n8-1\n\n并乖乳事些亚享京佯依\n侍佳使佬供例来侃佰併\n侈佩佻仑佾侏侑佺兔儿\n一两具其典冽函刻劵刷\n刺到刮制剁劾一卒协卓\n卑卦卷卸一取叔受味呵\n咖呸咕咀呻呷咄咒咆呼\n咐呱一和咚呢周咋命咎\n固垃坷坪一坡坦坤一夜\n奉奇奈奄奔妾妻委妹妮\n姑姆姐姗始姓姊妯你姒\n姅孟孤季宗定官宜宙宛\n尚屈居一岷冈岸岩岫岱\n\n8-2\n\n岳帘帚帖帕帛帑幸庚店\n府底庖延弦弧弩往征彿\n彼忝忠忽念忿怏怔怯怵\n怖怪怕怡性怩怫怛或戕\n房戾所承拉拌拄抿拂抹\n拒招披拓拔抛拈抨抽押\n拐拙拇拍抵拼抱拘拖拗\n拆抬拎放斧於旺昔易昌\n昆昂明昀昏昕昊升服朋\n杭枋枕东果杳杷枇枝林\n杯杰板枉松析杵枚枓杼\n杪杲欣武歧殁氓氛泣注\n泳沱泌泥河沽沾沼波沫\n\n8-3\n\n法泓沸泄油况沮泗泅泱\n沿治泡泛泊沬泯泜泖冷\n炕炎炒炊炙爬争爸版牧\n物状狎狙狗狐玩一一玫\n玥一一一一的一盲直知\n矽社一祁秉一空穹竺纠\n罔恙一者肺肥肢肱股一\n肩肴肪肯卧臾舍芳芝芙\n芭芽芟芹花芬芥芯芸芣\n芰芾芷虎虱初表轧迎返\n近邵官邱一采金长门阜\n陀阿阻附陂隹雨青非一\n侘佼侅佽侀侇佶佴侉侄\n\n8-4\n\n一一侗佪侚一一一一一\n一一一一一一一一洗冾\n一一一一一劼一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一妵妹姏姎妲姌姁妶妼\n姃姖妱妽姀姈妴姇孢孥\n宓宕屄届一一一一一一\n岬一一岭一一一一一一\n一一一一一弨弢弣弤一\n徂彾彽忞一怭怦怙怲怋\n\n8-5\n\n一一一一一一一一一一\n一一一一一怜戔一一一\n一一一一一一一一一一\n一一攽斨一昉旼昄昒昈\n旻昃昋一一一昑昐一朊\n枅杬枎枒杶一一一构一\n枍枌杺枟枑枙枃一极杸\n杹枔一一一一一一一泫\n泮泙一一沭一一一泂沺\n泃泆泭泲泒泝沴一沊沝\n泞一洰泍泇沰泹泏泩一\n炔炘炅一炆一炑炖炂炚\n炃牪狖狋狘狉狜狒狔狚\n\n8-6\n\n狌狑玤玡玭玦玢玠玬玝\n一一甿畀甾一一一盳盱\n盰盵矸矼矹矻矺矷祂礿\n秅一一一一糽耵肏肮肣\n肸肵肭舠芠苀芫芚芘芛\n芵芧芮芼芞芺芴芨芡芩\n苂芤苃芶芢虰虯虭虮豖\n迒迋迓迍迖迕迗邲邴邯\n邳邰阹阽阼阺陃\n\n9-1\n\n亟亭亮信侵侯便侠俑俏\n保促侣俘俟俊俗侮俐俄\n係俚俎俞侷一冒胄冠刹\n剃削前剌剋则勇勉勃劲\n匍南却厚叛咬哀咨哎哉\n咸咦咳哇哂咽咪品哄哈\n咯咫咱咻咩咧咿一垂型\n垠垣垢城一垓奕契奏奎\n奂姜姘姿姣姨娃姥姪姚\n奸威姻孩宣宦室客宥封\n屎屏尸屋峙峒巷帝帅一\n幽庠度建弈弭彦很待徊\n律徇后徉怒思怠急怎怨\n\n9-2\n\n恍恰恨恢恒恃恬恫恪恤\n扁拜挖按拼拭持拮拽指\n拱一拯括拾拴挑挂政故\n一施既春昭映昧是星昨\n昱昤曷柿染柱柔某柬架\n枯柵柩柯柄柑一一查一\n柏一柳枰柙一一柒歪殃\n殆段毒毗一泉洋洲洪流\n津洌洱洞洗活洽派洶洛\n一洹一一一洮洵洎洫炫\n为炳炬炯炭炸炮炤爰牲\n牯牴狩狠狡玷珊玻玲珍\n珀玳甚甭畏界畎畋疫疤\n\n9-3\n\n一一疣癸皆皇皈盈盆杯\n盅省一相眉看盾盼眇矜\n砂研砌砍袄祉祈祇禹禺\n科秒秋穿突竿竽籽纣红\n纪纫纥约纡缸美羿耐耍\n耑耶胖胥胚胃胄背胡胛\n胎胞胤胝致舢苧范茅苣\n苛苦茄若茂茉苒苗英茁\n苜苔苑苞苓苟苯茆虐虹\n虻一衍衫要一计订讣贞\n负赴赳趴军轨述迦迢迪\n一迭迫一一郊郎郁郃酋\n酊重闩限陋陌降面革韦\n\n9-4\n\n韭音页风飞食首香俍俅\n一一俉一一一一一一一\n一一一一一一一一一勀\n勂一一一一一厘一一咭\n一一一苟一一一一一哆\n咠呰呙咢一一哞一一一\n一一一一一一一一一一\n一一一一复奓姡姞姮娀\n姱姝姵姠姾姴姭宨屌峐\n峘峌一峋峛峞峚峉峇峊\n峖峓峔峏峈峆峎峟峸一\n帡帢一一一一一一一一\n\n9-5\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一昶\n一一一一一一一一昺一\n昴昹一一一一一一枺柜\n一一一一枷一一一一一\n一一一柶柮一一一一一\n一一一一一一一一一一\n一一一一一一一殂殄一\n毘一一一洨一一一洼一\n洒一一洳洄洙洺洚洑洀\n\n9-6\n\n一一洁一一一一一一一\n一一一一洐一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一珂珈珅玹玶玵一一玿\n一一玾珆玸珋瓬瓮一一\n畈一一一一眈眃一一一\n盷盻盺一一一一砒一一\n一一一一一一一一一一\n秕种一一一一一一一一\n一一一一一一一纨一一\n羑一羾一一耏一耷胘胇\n一一一一一一一一胜一\n\n9-7\n\n一一一一一一一一一一\n一苹一一一苕一一一一\n一苡一一一一一一一一\n苠一一一一一一一一一\n一一一一一一一一一一\n一一邽一一郅邾一一一\n钇钆一一一一一陎\n\n10-1\n\n乘亳倌倍倣俯倦倥俸倩\n倖俩值借倚倒们俺伥倔\n倨俱倡个候倘徘修倭倪\n俾伦仓兼冤冥冢冻凌准\n凋剖剜剔刚剥匪卿原一\n叟哨唐唁一哼哥哲唆哺\n唔哩哭员唉哮哪哦唧唇\n哽唏圃圄埂埔埋埃一夏\n套奘奚娑娘娜娟娱娓姬\n娠娣娩娥娌娉孙一宰害\n家宴宫宵容宸射屑展屐\n峭峡峻峪峨峰岛一岘差\n席师库庭座弱徒径徐恙\n\n10-2\n\n恣耻恐恕恭恩息悄悟悚\n悍悔悌悦悖扇拳挈拿捎\n挟振捕捂捆捏捉挺捐挽\n挪挫挨捍捌效敉料旁旅\n时晋晏晃晒晌晅晁书朔\n朕朗校核案框桓根桂桔\n栩梳栗桌桑栽柴桐桀格\n桃株桅栓栘桁殊殉殷气\n氧氨氦氤泰浪涕消泾浦\n浸海浙涓浬涉浮浚浴浩\n涌一浃涅一涔烊烘烤烙\n烈乌爹特狼狭狈狸狷兹\n班琉珮珠珪珞畔畝畜畚\n\n10-3\n\n留疾病症疲一一疼疹痂\n一皋一益盍盎眩真眠眨\n矩砰砧砸砝破一一一一\n一一一祐祠祟祖神祝祗\n祚秤秣秧租秦秩秘窄窈\n站笆笑粉纺纱纹紊素索\n纯纽一级纭纳纸纷缺一\n羔翅翁耆耄耘耕耙耗耽\n耿胱脂胰胁胭胴脆胸胳\n一能脊胼胯臭臬舀舐航\n舫舨般一茫荒荔荆茸荐\n草茵茴荏茲茹茶茗荀茱\n茨荃虔蚊蚪蚓蚤蚩蚌蚣\n\n10-4\n\n蚜衰衷袁袂一一记讦讨\n讧讪讯一训讫一一岂豺\n豹财贡起躬轩轫一辱送\n逆迷退一迥逃追逅迸邕\n郡郝郢酒配酌钉针钊釜\n一闪院阵陡陛陕除陉升\n只饥马骨高斗鬲鬼倞倅\n一一倢一一一一一一倬\n俶一倗倜倠倧倵倯倱倎\n党一一凊凄凅净一一一\n一一一一一勍一一一一\n一一哧一一一一呗一一\n一一一一一一一一唎一\n\n10-5\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一娳\n孬宧宭宬一一一一峿峮\n一一一一一一一一一一\n一弰彧一恚恧恁一一一\n一一悝一一一一一一一\n一一一挐一一一捅一一\n一一捋一一一一一一一\n一一一一一一一一一一\n一一一旃旄旂晊晟一一\n一一一一桉一一栻一一\n栖一一一一一一一一一\n\n10-6\n\n栝栒一一一一一一一一\n一一一一一一一一一一\n一一一一一一浣一一一\n浡涒浘一一一一一一一\n一一一浠一浰浼浟涂一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一狺狴一一\n狳狻猁珓一珥一一一珣\n珩一一一一珝珚珗一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n10-7\n\n一一一一一一一一一一\n一砢一一一一一砡一砳\n一一一一一一一一一一\n一一一秭一一一一一一\n一一一一一一一一一一\n一一一一一一一粑一一\n一一一一纴一一纮一纾\n一一一一一罡一一一一\n羖羒翃翂翀耖耾耹一一\n一一一一一一一一一茭\n一一一一一一一一茜一\n一一一一一一一一一一\n一茯一一一一一一茬一\n\n10-8\n\n茧一虓虒一一一蚍一一\n一一一蚋一一一一蚡蚧\n蚕一一蚝一一一一一一\n一衲一一一一一一一一\n一豇一豻一一赶一趵趷\n趶一一一一适一一逄一\n一一一一一一一一一一\n郗郜郤酐酎一一一一 一\n一隼一一一\n\n11-1\n\n乾偺伪停假偃偌做伟健\n偶偎偕侦侧偷偏倏一偭\n兜冕凰剪副勒务勘动匐\n匏匙匿区匾参曼商啪啦\n啄哑啡啃啊唱啖问啕唯\n啤唸售啜唬一一一一圈\n国圉域坚垩堆埠一基堂\n堵执培够奢娶娄婉妇婪\n婀娼婢婚婆婊孰寇寅寄\n寂宿密尉专将屠屉屝崇\n崆崎崛崖峥崑崩崔崙崤\n崧岗巢常带帐帷康庸庶\n庵庾张强彗彬彩彫得徙\n\n11-2\n\n從徘御徕徜恿患悉悠您\n惋悴惦悽情悻怅惜悼惘\n惕惆惟悸惚憞戚戛扈掠\n控一掖探接捷捧掘措捱\n掩掉扫挂扪推抡授挣采\n掬排掏掀捻捩舍捺敝敖\n救教败启敏叙敕一斜斛\n斩族旋旌旎昼晚晤晨晦\n晞曹朂望梁梯梢梓梵杆\n桶一梧梗械梃弃梭梆梅\n一条梨枭梡一欲杀毫毬\n氢涎凉淳淙液淡淌淤添\n浅清淇淋涯淑涮淞淹涸\n\n11-3\n\n混渊淅凄渚涵泪淫淘沦\n深淮净淆淄涪淬涿淦烹\n焉焊烽烯爽牵犁猜猛猖\n猓狰率琅琊球理现琍瓠\n瓶瓷甜产略畦毕异疏痔\n痕疵痊痍皎盔盒盛眷众\n眼眶眸眺硫硃一祥票祭\n移窒窕笠笨笛第符笙笞\n笮粒粗粕绊弦统扎绍绋\n绌细绅组累终绁绂钵羞\n羚翌翎习耜聊聆脯脖唇\n脱脩一胀舂舵舷舶船莎\n莞莘荸荚茎莽莫莒庄莓\n\n11-4\n\n莉莠荷荻荼莆苋处彪蛇\n蛀一一一蛆蛋蚱蚯蛉术\n袞袈被袒袖袍袋觅规访\n讶诀讷许设讼讹豉豚\n贩责贯货贪贫赧赦趾一\n轭软这逍通逗连速逝逐\n迳逞造透逢逖逛途部郭\n都酗野钗扣钓钏釭一闭\n陪陵陈陆阴陴陶陷一雀\n雪雩章竟顶顷鱼鸟卤鹿\n麦麻乱一一一一一一一\n一偲偈偍一一一一一一\n一一一一一一一一一一\n\n11-5\n\n一凐一一一剐勖勓匦一\n啵啶一一啐一一一一一\n唵唰一一一一啥一一一\n一一一一一一一一一一\n一一堀一一一埸一一一\n堇一一一一一一一一一\n一一一一一一一一一婠\n婘婕婧婞娸娵娅婐婟婥\n婬婓婤婗婃婝婒婄婛婈\n媎娾婍娹婌婰婩婇婑婖\n婂婜孲孮寁寀一一一一\n崚崠崌崨一一一一一一\n一崟崮一一一一一一一\n\n11-6\n\n弶弸徛徖徟一一一悾悰\n一一一一一一一一一一\n悷惊悿一一一挲一一掂\n一一一一一一一一一掇\n掐据一一一一一一一一\n一一一一一一一一一一\n晡一晙一晢一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n殍一一一淀涫涴涳一一\n淩一涷涞淔一淈淠淟淖\n\n11-7\n\n涾淥淜淝一一一一一一\n一一一一一一一一一一\n一一一一一烷焗烃焌一\n一一一一一一焓一一一\n一一一一一一一猝猗猇\n猑一猊猈一一猞一一珸\n珵琄琁珽琇琀珺珼珿琌\n琋珴琈畤畣一痒一一一\n一一一一一眹眯眭一一\n一一一眥眻一一硒一一\n一一砦硅一一一一一一\n一一一一秸一一一一一\n范一一一一一笤笳一一\n\n11-8\n\n一一一一一一一一一一\n粘一一一一一一一一一\n一一一一一一一一一羕\n一羝一翊翋翍翐翑一一\n翉一一一一聃一一一一\n胫一一一一一一一一一\n一舸一一一一一一一一\n一荺一一一一一一一一\n一莩一一一一一一一一\n一一一一一一一一一一\n一一一一一一一蚺一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n11-9\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一郴一\n一一一一一一一酚一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一\n\n12-1\n\n傢傍傅备杰傀伧伞效最\n凯割剀创剩劳胜勋博厥\n啻喀喧啼喊喝喘喂喜丧\n喔喇喋喃喳单喟一哟唤\n喻乔喱啾喉一喙围尧堪\n场堤堰报堡一一壹壶奠\n婷媚婿媒媛娲孳孱寒富\n寓寐尊寻就嵌岚崴嵇巽\n幅帽帧帏几廊厕厢一弼\n彭复循徨惑恶悲闷惠惬\n愣惺愕惰恻惴慨恼愎惶\n愉愀愒戟扉掣掌描一一\n揉一揍插揣提握揖揭挥\n\n12-2\n\n捶援揪换摒扬一敞敦敢\n散斑斐斯普晰晴晶景暑\n智晾晷曾替期朝棺棕棠\n棘枣椅栋棵森栈棹棒栖\n棣棋棍植椒椎棉棚楮棻\n款欺钦残殖壳毯氮一一\n港游一渡渲涌凑渠渥渣\n减湛湘渤湖湮渭涡汤渴\n湍渺测湃渝浑滋溉涣湎\n湣湄湲湩湟焙焚焦焰无\n然煮焜牌犄犀犹猥猴猩\n一琪琳琢琥琵琶琴琯琛\n琦琨甥苏画番痢痛痣一\n\n12-3\n\n痘痞一登发皖皓皴盗一\n短硝硬砚稍一程税稀窘\n窗窖童竣等策笔筐筒答\n一筋筏筑粟粥绞结绒绝\n紫絮丝络给绚绖绛善翔\n翕耊聒肃腕腔腋腑肾胀\n腆脾腌腓腴舒舜菩萃烟\n萍菠菅萋菁华菱菴著莱\n一萌菌菽菲菊萸萎萄菜\n苌菔菟虚蛟蛙蛭蛔蛛蛤\n蛐蛞街裁裂袱覃视注咏\n评词证诂诏诅诈诋诉诊\n诃诐象貂贮贴贰贻贲费\n\n12-4\n\n贺贵买贬贸贷越超趁跎\n距跋跚跑跌跛跆轲轴轶\n辜逮逵週逸 进逶鄂邮乡\n郾酣酥量钞钮钙钠钧钝\n钤一钣闵闰开闲间一闳\n队阶隋阳隅隆隍陲一雁\n雅雄集一雯云韧项顺须\n一一饭一饮饬冯驭黄黍\n黑一傕傔一一傣一一傎\n一一一一一一一沧一一\n一一一一一一一一一一\n一喏喵喁一一一一一一\n一一一一一一一一一一\n\n12-5\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一媞一一一一一一媮\n一媄一媗媃媋媩婻婽媌\n一媏媓一寪宁一一寝一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n彘一一一一一一惢一一\n一一一一一一惕一一一\n一一一一一一一一一一\n一掰一一一一一一一一\n一挪一一一一一一一一\n\n12-6\n\n揄一一一一一一一一一\n一一一一一一一一斌一\n一一一一一一一一一晹\n一一一一一一一一一一\n棱桠一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一淼一一一湉沩\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n12-7\n\n一一一一一一一一一一\n一一焠一焯一一焱一一\n一一一一一一一一一一\n一一一一猋一猢猱一一\n一一一一一一琮琬琰一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一矬一一一\n一一一一一一一一一一\n一一一一一一一一一一\n竦一一一一一筌筎一一\n一一一一一一一一一一\n\n12-8\n\n一一一一絜一一一一一\n一一一一一一一一羡一\n一一一一一一腊一一一\n一一一一一一一一一一\n一一一一菏一一一一一\n一一一一一一一一一一\n一一一菘一菡一一菖一\n一一一一一一一一一一\n菇一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n12-9\n\n觚一一一一一一一一一\n一诒一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一钛一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一\n\n13-1\n\n乱佣债傲传仅倾催伤傻\n偬僇剿铲剽募一勤势勣\n汇嗟嗨嗓嗦吗嗜嗇嗑嗣\n嗤嗯呜嗡嗅呛嗥嗉园圆\n塞塑塘涂冢塔填塌一块\n坞一一奥嫁嫉嫌媾妈媼\n媳嫂媲嵩一一干廉厦弑\n一彷微愚意慈感想爱惹\n愁愈慎慌慄愠忾怆愧愍\n愆恺戡戢搓一搞搪搭搽\n搬搏搜掻损抢摇捣构敬\n斟新暗晖暇晕暖暄旸一\n会榔业楚楷楠楔极椰概\n\n13-2\n\n杨桢楫楞枫楹榆栋楣一\n歇岁毁殿毓毽溢溯滓溶\n滂源沟滇灭溥溘湿溺温\n滑准溜沧滔溪溧溴煎烟\n烦煤炼照煜炀煦煌焕煞\n煆煨一爷牒猷狮猿猾瑯\n瑚瑕瑟瑞瑁珲瑙瑛瑜当\n畸瘀痰瘁一痱一痿痴一\n盏盟睛睫睦睐督睹一睬\n睁一睨睢矮碎碰碗碘碌\n碉硼碑碓硿祺禄禁万禽\n稜稚稠稔禀稞窟窠筷节\n筠筮一粱粳粤经绢捆绑\n\n13-3\n\n绥绦置罩罪署义羡群圣\n聘肆肄腱腰肠腥腮脚肿\n腹腺脑舅艇蒂荤落萱葵\n苇葫叶葬葛萼一葡一葩\n葭葆虞虏号蛹蜓蜈蜇蜀\n蛾一蜂蜃一蜊衙裟裔裙\n补裘装里袅裕一一解诧\n该详试诗诘一诙诣诚话\n诛诡询诠诟詹一訾一豢\n貊貉贼资贾贿赀赁赂一\n迹跟跨路跳跺跪跤一躲\n较载轼轾辟农运游道遂\n达逼违遐遇遏过遍遑逾\n\n13-4\n\n遁邹一酬一一一一一一\n一一一一一一一铃铉一\n一一钿一一一一一雍雋\n雉一雷电一零靖一一预\n顽顿一一颂一一一一驰\n一一一一一鼎鼓鼠一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一壶一一一一一一\n\n13-5\n\n一一一一一一一嫀嫊媴\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n13-6\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一歆一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一炜一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一瑄一一一一瑗一一一\n一一一一一一一一一一\n\n13-7\n\n一一一一一一一一一一\n一一一一一一一皙一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一稗一一一一\n一一一一一一一一一一\n一一筳筱一一一一一粲\n一一一一一一一一一一\n一绡一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n13-8\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一药一一一一一一一\n一一一一一一一一一一\n一一一一一一一蜉一一\n一一一一一一一一一一\n一一一一觥一一一一一\n触一一一诩一一一一一\n一一一一一一礼一一一\n一一貅一一一一一一一\n一一一一一一一一一一\n\n13-9\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一邬一一\n一一一一一钰一钶一一\n铳一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n隗雎一一一一靳一一一\n一一一一一一一一一一\n一一一一一一一一\n\n14-1\n\n僧僮侥僖僭僚仆像侨雇\n一一克一划一一厌一一\n嘛尝一一叹嘉一一一一\n一一一一团图尘一境一\n一一一一寿伙梦一夺一\n嫡嫦嫩一嫖嫘嫣一寞宁\n寡寥实寨寝寤察对屡崭\n岖一币幕帼幔廓廖弊一\n彰彻一愿态慷慢惯恸惭\n一慵截撇摘摔撤摸搂摺\n掴摧一一一敲斡旗旖畅\n暨暝榜榨榕槁荣一构榛\n一榻一榴槐枪榭槌一槃\n\n14-2\n\n榣歉歌氲漳演滚漓滴漩\n漾漠渍漏漂汉满滞漆漱\n渐涨涟漕漫一澈漪一渔\n渗一一熔煕一熊熄荧尔\n犒一狱獐瑶琐玛瑰瑭甄\n疑一一疯一一尽监瞄睽\n睿睡磁碟碧碳硕碣祯福\n祸种称一窝竭端管箕笺\n筵算一一筝箸一一粹粽\n精绽绾综绰绫绿紧缀网\n纲绮绸绵彩纶维绪缁绶\n罚翠翡翟闻聚肇腐膀膏\n膈膊腿膂臧台與舔舞一\n\n14-3\n\n蓉蒿一蓄蒙一蒲蒜盖蒸\n荪蓓一苍蓑一一蜜蜻蜢\n蜥蜴蜘蚀一一裳褂裴裹\n裸制裨褚裯诵志语诬认\n诫誓误说诰诲诱诳诮一\n豪貍貌宾赈赊赫赵赶一\n辅辄轻一辣远一逊遣遥\n一一一一鄙一一一酸酷\n一一一银铜铭铢铬铨衔\n一一铣阂闺闽阁阀一隙\n障一雌雒需靼鞅韶颇领\n飒一饺饼饵饷驳一骰一\n魁魂鸣鸢凤么鼻齐一一\n\n14-4\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一唛一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n嫪嫚一嫫一一一一一一\n一嫙一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n14-5\n\n一一一一一一一一一抠\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n槊一一一一一一一一一\n一一一一一一一一殒一\n一一一一荥一一一一浒\n一一一漉一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n14-6\n\n一一一一熏一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一睾一一一一\n砀一一一一一一一一一\n一一一一祎一一一一一\n一一一一一一一一一一\n一一一一一箐一一一一\n一一一一一一一一一粼\n一一一一一一一一一綝\n一一一绯一一一一一一\n綦一一一一一一一一一\n\n14-7\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n14-8\n\n一一一一一一一鄢一一\n一一一一一一酹一铱一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一馝馜一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n15-1\n\n亿仪僻僵价侬侩俭偿凛\n剧劈刘剑刽勰历一嘻一\n嘲嘿嘴哗嘘一一喷嘶啸\n一一墟增坟坠堕墩一一\n嬉娴婵妩娇娆寮宽审写\n层履一一一帜幡废厨庙\n厮广厂弹影德征庆慧虑\n一慕忧戚慰怂欲憧怜悯\n憎憬惮愤憔怃戮摩挚摹\n撞扑捞撑撰拨挠撕撩撒\n撮一抚一撬一一一敌敷\n数暮暂暴一样樟一一枢\n标槽模楼樊桨乐一一一\n\n15-2\n\n欧叹殇毅殴浆潼澄泼潦\n洁浇潭潜潸潮澎一溃润\n涧潘滕浔一一熟熬热熨\n一一奖獗莹璋璃瑾璀畿\n一一一一瘦一一一一盘\n瞎一一一瞋一一确磊碾\n磕码磐稿稼穀稽稷稻一\n穷箭箱范箴篆篇一一一\n糊缔练纬致缄缅缉编缘\n线缎缓一一缈缇骂罢羯\n翩耦膛膜膝一肤膘蔗蔽\n蔚莲蔬荫蔓蔑蒋蔡一蓬\n葱一一一蝴蝶蝠虾一一\n\n15-3\n\n蝙一一一卫冲褐复褒褓\n一一谊谅谈谆诞请诸课\n诿谄调谁论诤一诽谀豌\n竖猪赔赏赋贱账赌贤卖\n赐质一一一趣碰一一踢\n踏踩一一一躺辉一一辈\n一轮辎一一适遮遨遭迁\n邻郑邓一醇醉一一一一\n一一一一锐一锋一一一\n一一霄霆震一靠一一巩\n颉一一一养饿一余驼驻\n一一一驾驹一一发髯闹\n魅魄一鲁鸩鸦一一一黎\n\n15-4\n\n墨齿一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n15-5\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一颍一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一熵一一一一\n一一一一一一一一獒一\n一獠一一一一一一璇琏\n一一一一一一一一一一\n\n15-6\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一稹一一一\n一一一一一一一一一一\n一一一一一一一缃一一\n一一一一一一一一一一\n一一一一一翦一一一一\n一一一一一一一一一一\n一一一一蔻一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n15-7\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一蝎一一一一一一一一\n一一一一一一一一一一\n一一袆一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一趜一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n15-8\n\n一一一一一一一一一一\n一一一一一一一一铗一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一靓一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n鲂一一一一一一一一一\n一一一一鸨一一一一一\n一一一一鼐\n\n16-1\n\n儒尽俦傧侪冀幂凝剂一\n勋一一一噩一一一器一\n一一一一一壁垦坛壅奋\n袅嬴学寰导强宪凭憩惫\n懔忆憾懊懈战擅拥挡挞\n撼据掳择擂操捡擒担挝\n整历晓暹晔昙了樽朴桦\n橙横橘树橄一橡桥一樵\n机一一历氅濂淀澡浓泽\n浊澧澳激澹澶滪渑一炽\n炖燐烧灯燕熹燎烫焖燃\n焰独璜玑璘璟璞瓢瓯一\n瘴瘸一卢盥瞠瞒瞟瞥磨\n\n16-2\n\n砖磬一御积颖穆稣一窥\n一一筑笃一一一一糕糖\n一一萦缚县一一一一一\n羲翰翱一一一一一臻兴\n一一蕊蕙一一荡蕃蕉萧\n芜一一一一萤融衡一一\n一一一亲一谛谚谏讳谋\n谍谐一诺谒谓讽谕谙谌\n一豫一猫赖一一一一踹\n踵辐辑输一辨办遵遴选\n迟辽遗邺醒锭表锯锰错\n钱钢锡录铮锥锦錡锟锢\n锱阎隧随险雕霎霑霖霍\n\n16-3\n\n霓霏靛静一一一颈频一\n头一颐餐馆一一馅一一\n骈骆一一一一一鲍鸵一\n鸯鸭一鸳默黔龙龟一一\n一一一一一叡一一一一\n一一一一一一圜一一一\n一一一一一一嫱嬛一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一憨一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n16-4\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一澯一一一一一一一一\n烨一一一一一一一一一\n燚一一一一一一一一一\n一一一璠一一一一一一\n一一一一一一一一一一\n\n16-5\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n糗一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n16-6\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n16-7\n\n一一一一一一一一一一\n閹一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一\n\n17-1\n\n优偿傀储励嚎咛尝一吓\n一壕压壑一婴嫔嬷孺尴\n履一岭岳嵘帮弥徽应懂\n恳懦一戏戴擎击擘挤拧\n擦一搁擢一敛毙曙暧檀\n档檄检桧一樯一一檐一\n一殓一一泞滨济濠濛涛\n滥濯涩濬濡一湿濮潍燧\n营燮燦燥烛一一一爵墙\n狞获璩环瑷璨痨疗癌荡\n瞳瞪瞰瞬瞧瞭矫磷磺一\n一礁禧禅穗一簇一篾篷\n一一糠糜一一糟糙一缩\n\n17-2\n\n绩缪缕一绷缝总纵一繁\n一缥一缦一一罄翳翼一\n声聪联一一臃一臂臀脓\n胆脸一临举艰薪薄蕾薜\n姜蔷薯薛薇薨蓟荐亏一\n蟑螳蟒蟆一一一一一亵\n一襄褛一一谜谤谦讲谎\n谣谢一谧豁一一赚赛购\n一一趋蹉蹋蹈一辖辗一\n辕舆避遽还迈邂邀一一\n一醜镀镁锚键一锲锅锤\n钟锹锻一锡一阔一一一\n板隐隶虽霜霞鞠韩颗飓\n\n17-3\n\n喂骋骏鲜鲛一鲑鸿鸽麋\n黏点黜黝黛一斋一卖一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一檎一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n17-4\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n17-5\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一蹇一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n17-6\n\n隰一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一\n\n18-1\n\n丛一向圹垒婶彝一戳扩\n掷扰撵摆擞撷断曜朦槟\n檬柜槛柠一一一欤归殡\n泻沈滤渎溅瀑浏一烬焘\n一犷猎璧璇瓮癖一愈一\n瞿瞻睑一礼穑秽一一一\n箫一簪箪一一粮织缮绕\n缭绣一一一翘翻职聂一\n一旧藏萨蓝藐藉薰荠一\n一蝉虫蟠覆觐觞谟谨谬\n谪丰一一一蹦踪一一躯\n转一迩邃邈医酱一镕镑\n锁钨镍镇镐一一一枪阖\n\n18-2\n\n闯一阙离杂双雏鸡一一\n一鞭一额颜题颚颛一一\n一一一馥骑一鬃松魏一\n一鲨鲤鲫一一鹃鹅鹄黠\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n18-3\n\n一一一盐一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一貘一一一一\n\n18-4\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n騄一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n18-5\n\n一一一一一一一一一一\n一一一一一一\n\n19-1\n\n一一一坏垄一宠庞庐惩\n怀懒懵攀拢旷曝橱椟榈\n橹瀛潇濑瀚沥濒泸爆烁\n牍犊兽獭玺琼瓣畴疆瘪\n痴矇一祷获稳簾簿簸签\n一一一一绎绳绘缴罗羶\n羹羸腊藩艺薮藕藤药一\n蚁蝇蝎蟹蟾裆襟一一一\n谱识证谭谲讥一谯赠赞\n蹼蹲躇蹶蹬跷蹴一轿辞\n边邋一一镜镝铲镞链镗\n一鏖镖一锵镂铿錾关陇\n难霪雾霏韬韵类愿颠一\n\n19-2\n\n馒馑骛骗胡鲸鲳鲭鲷鹑\n一鹊鹌鹏麒丽麓麴一一\n一一一一嚭一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一橥\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一罴一一\n\n19-3\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一蠃一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n蹭一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一鏊\n一一一一一一一一一一\n一一一一一一一一一一\n\n19-4\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一鲲一鲵鲶一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一\n\n20-1\n\n劝嚷一严嚼壤孀孃孽宝\n一悬忏攘拦挽曦胧一澜\n弥潋炉献珑痒症矿砺矾\n砾窦竞筹篮籍糯一辫缤\n继纂罂耀胪舰藻蔼蘑蔺\n芦苹苏蕴蚝蠕褴觉触议\n譬警译一谵赢赡一躁一\n一醴释钟铙锈阐霰飘饶\n饥馨骞腾骚一鳃鳅咸面\n党鼯一一龄一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n20-2\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一艨一一藿一一一一一\n一一一一一一一蝾一蠓\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n20-1\n\n阚一一一一一一一韾一\n一一一一一一一一馔馈\n一一一一一一一一骝一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n鹜一一一一一一黥一一\n一一一一一一一一一\n\n21-1\n\n俪一一一嚣夔属巍惧慑\n摄携一一樱栏一歼灌烂\n牺一璎癞眬籐缠续一一\n兰藓蛎蠢蠡蜡袜一览一\n护誉赃踌跃跻轰辩醺镰\n一铁一铎镯一一霸霹露\n响顾颢飨驱骠蓦骡一魔\n一鳍一莺鹤鹞一麝黯一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n21-2\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一酆一一一一一一一\n一一一一一一一一一一\n一一一一一一一飙一一\n一一一一一一一一一一\n一一鬘 一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n21-3\n\n一\n\n22-1\n\n俨一呓囊啰一巅峦弯懿\n摊权欢洒滩猡瓤叠瘾癣\n一笼籁聋听脏袭衬一读\n赎一一一辔郦铸一鉴霁\n霾一一颤一骄骁脏须鳖\n鲢鳔鳗一鸥一一一龚一\n一恋一攫搅晒一瓒一一\n一一缨纤一一一萝蛊变\n逦逻镖铄一靥显一惊驿\n验髓体一鳝鳞一鸶麟一\n一一揽灞瘫癫矗罐一一\n蠹衢让谗谶艳赣酿炉雳\n灵霭千颦骤鬓魇一鹰鹭\n\n22-2\n\n硷一鳌一一厅榄湾篱箩\n蛮观一一镶钥颅馋一一\n一一一赞镊一驴骥缆一\n一一钻銮锣鳄鲈黩艳一\n鹦一骊郁鹳一一碁一一\n一一一一一一一一一一\n一攒一一一一一一一一\n一一一一瓘一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n22-3\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一龢一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n22-4\n\n一一一一一一一一一鳟\n鲟一一一一一一一一一\n一一一一一一一一一一\n鹫一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一灏一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n鑫一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n\n22-5\n\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一一\n一一一一一一一一一
[[自然码|http://www.zrm.com.cn/]]\n\n功能十分强大的整句输入法,主要采用自有的自然码编码。
[[deviantART]]\n
[[英文打字助手|http://eta.typetip.com/]]
[[Deamon Tools]]
罗蔚旻为三国志5制作的补丁,进行了多项合理修改。
[[Youtube]]
[[StarDict]]
//想看看实际上语法如何运用,请按右上角的「Edit」鈕。//\n!文字格式\n*''粗体'':左右各两个单引号「'」\n*//斜体//:左右各两个斜号「/」\n*__加底线__:左右各两个底线「_」\n*==删除的文字==:左右各两个等号「=」\n*^^上标字^^:左右各两个「^」\n*~~下标字~~:左右各两个波浪号「~」\n*字体@@color(green):颜色@@:左右各两个小老鼠「@」,並且在前两个@之后緊接著「''color(颜色名):''」的语法。\n*字体@@bgcolor(#FFCC99):背景颜色@@:左右各两个小老鼠「@」,並且在前两个@之后緊接著「''bgcolor(颜色名):''」的语法。\n\n!链接、贴图、水平线\n*WikiWord是[[wiki]]最传统建立內部链接(连到别则记事)的方法,也就是在一串字母当中至少要有两个大写字母,这样整个词就自动变成一个链接,即使目标还沒有被建立也行。\n*但WikiWord的方式太死板,而且只适用于西方用拉丁字母的情形。东方语文,或是我们想要建立的记事标题包含空格、比较像自然的语句时,可在左右用\n{{{\n[[链接目标]]\n}}}\n包起来。\n*但我们若想做个链接连到一则叫作「爱与和平?梦想实现」的记事,但行文当中又不想每次都要全部覆述,而是简单用「我的梦想」来指称的话,可以用这样的语法:\n{{{\n[[我的梦想|爱与和平?梦想实现]]是……\n}}}\n**也就是说,「|」之前是所显示的文字\n**「|」后是链接目标,可以是另外一则记事的名字,也可以是一个外部网址的''绝对位址''或''相对位址'';如果所连到的另一则记事还不存在的话,会先被当成是一个外部链接!\n*输入一串网址,也可以被直接转换成超链接,例如http://www.tiddlywiki.com/\n*贴图的语法是\n{{{\n[img[图显示不出来时的替代文字|图片网址或是档案路径]]\n}}}\n*补充说明\n**''绝对位址'':一串完整的网址,通常以{{{http://}}}(网路上的档案)或{{{file:///}}}(本机的档案)开头,小心結尾不要带进不相干的字串!\n**''相对位址'':为了省时省力,如果指涉的档案和TiddlyWiki笔记放在同一个资料夹中,则可以直接输入档名即可。\n**要连到另一个TiddlyWiki文件中的某一则记事,可在位址或路径的最后加上{{{#目标记事的标题}}}。\n\n----\n*{{{----}}}(四个hyphen)放在行首可以插入一条水平线。\n\n!列表、标题、引文\n*单行前面用「>」,可使用数个表示层次\n>引文第一层\n>>引文第二层\n>>>引文第三层\n>>二\n>一\n若一次有整段引文,可于該段文字前后各加一行「<<<」\n<<<\n一次有\n两三行引文,\n但是懶得每行都加上「>」\n<<<\n*行首用「*」则是无编号的分点列表\n**第二级\n同一级內可以直接换行\n***第三级\n>也可以混用引文\n>*引文中又可以混用列表\n\n即使换两行了,还在剛剛的列表中。\n\n所以,常常需要换超过一行才能徹底擺脫前一个列表的影響力。这很重要,不然语法之间会''互相干扰''!\n#行首的「#」则可以产生编数字的列表\n##第二级\n##有的wiki系统很强,可以让人们混用「*」和「#」,让无编号列表和有编号列表混合排列\n##*不过TiddlyWiki中混用的语法是有規矩的\n##*想在第二级的编号(##)中加入无编号列表,「##*」是沒有用的。\n***要连用「***」才会产生第三级的无编号列表\n\n!表格\n要建立表格很容易。\n|一个格子|\n最基本是用两根「管线」(|)夹起来的。\n{{{\n|只用一格后面标c→表格标题|c\n||!←不输入则留空|!加!为标题|\n|!加!为标题|一般的格子|預设靠左|\n| 左空格靠右|右空格靠左 | 两边都空置中 |\n|只填「~」可做垂直延伸上一格|>|只填「>」可水平延伸右一格|\n|~|>|bgcolor(red):「bgcolor(颜色名):」可加底色|\n}}}\n产生出\n|只用一格后面标c→表格标题|c\n||!←不输入则留空|!加!为标题|\n|!加!为标题|一般的格子|預设靠左|\n| 左空格靠右|右空格靠左 | 两边都空置中 |\n|只填「~」可做垂直延伸上一格|>|只填「>」可水平延伸右一格|\n|~|>|bgcolor(red):「bgcolor(颜色名):」可加底色|\n*只要记得换行\n|表格|也可以|用在|!列表当中!|\n>|!引文|当中则不用换行|\n\n\n~~嫌我啰嗦的话可看[[这里|http://www.tiddlywiki.com/#HtmlTables]]~~\n\n!宏\n*插入现在日期及时间:\n{{{\n<<today>>\n}}}\n如:<<today>>\n*插入一个可以滑出和隐藏的窗格(slider)\n{{{\n<<slider chkSlider随便取 插入记事的标题 显示的文字 "鼠标移上去时的提示文句">>\n}}}\n如:<<slider chkSliderSiteTitle SiteTitle 本文件的主标题 "滑出这则记事的內容">>\n*插入别则记事的內容\n{{{\n<<tiddler 别的记事的标题>>\n}}}\n如:本文件的副标题是:<<tiddler SiteSubtitle>>\n*可切换的分页,每个分页里面可以放不同的记事\n{{{\n<<tabs 给这个分页组取个名字\n显示的文字1 "鼠标提示1" 记事1\n显示的文字2 "鼠标提示2" 记事2\n...\n>>\n}}}\n如:<<tabs 初始设定\n左侧菜单 "左侧菜单的內容" MainMenu\n「首页」 "一开始会显示的记事是这些" DefaultTiddlers\n>>
[[豆瓣|http://www.douban.com/]]\n书友交流的最佳去处。
[[拼音加加]]\n[[搜狗输入法]]\n[[英文打字助手]]\n[[微软拼音]]\n[[智能狂拼]]\n[[自然码]]
[[Becky!]]\n[[Foxmail]]\n[[SimpleCheck]]\n[[Thunderbird]]
[[Comodo]]
[[Last.Fm]]\n[[Pandora]]\n[[WebJay]]\n