*SideBarOptions\n*SideBarTabs\n*TabTags\n*TabTimeline\n*TabMoreMissing\n*TabMoreAll\n*TabMoreOrphans\n*TabMore\n*OptionsPanel
http://linshi.twbbs.org/usr/m/milchflasche/TiddlyWiki.html
// //''Author'': Simon Baird\n// //Localized into Mandarin (Traditional Hanzi) by [[MilchFlasche|mailto:Robertus0617@gmail.com]], 20050726\n\nwindow.onClickToolbarNewHere = function(e) {\n if (!e) var e = window.event;\n clearMessage();\n if(this.parentNode.id) {\n displayTiddler(this.parentNode,"New Tiddler",2,null,null,false,false);\n tagBox = document.getElementById("editorTagsNew Tiddler"); \n tagBox.value = this.parentNode.id.substring(7);\n }\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return(false);\n}\n\n// config.views.wikified.toolbarNewHere = {text: "new here", tooltip: "Create a new tiddler with tagged as this tiddler"};\nconfig.views.wikified.toolbarNewHere = {text: "增殖", tooltip: "新建一則歸類到目前記事的記事"};\n\nwindow.createTiddlerToolbar_orig_mptw_newhere = window.createTiddlerToolbar;\nwindow.createTiddlerToolbar = function(title,isEditor) {\n createTiddlerToolbar_orig_mptw_newhere(title,isEditor);\n var theToolbar = document.getElementById("toolbar" + title);\n var lingo = config.views.wikified;\n if(!isEditor) {\n createTiddlyButton(theToolbar, lingo.toolbarNewHere.text, lingo.toolbarNewHere.tooltip, onClickToolbarNewHere);\n insertSpacer(theToolbar);\n }\n}\n
/*\n!Profile\n''Author:'' [[Simon Baird|mailto:simon.baird@gmail.com]]\n''Modifier:'' [[MilchFlasche/Roberto Tjang|mailto:Robertus0617@gmail.com]]\n''Version:'' 2.1 (2005/08/07) (Simon didn't make the numbers, this version code is made by me.)\n''TiddlyWiki Version:'' 1.2.29+\n\n!Revision History\n''2.1 (2005/08/07):''\n*Still changed the priority of titles, tags, and toolbars.\n*Also added this information header.\n*Shortened the plugin name.\n\n''2.0 (2005/07/30):'' Simon had re-adapted his plugin to suit TW 1.2.29+, and also improved the codes a lot, mainly to make the tag tiddlers' lists refresh automatically. He had also suggested that the plugin could be renamed as "TagglyTagging" for short.\n''1.1:'' But I don't like the idea to put tags (".footer") above the title, so I decided to change his code a bit, to make the title come first, the the footer, then the toolbar.\n''1.0:'' Simon's initial release.\n\n!Code Section\n{{{\n*/\n// this function lifted mostly from Josh's incomingTags macro at serversidewiki.com\n// makes a wiki text list of all tagged tiddlers\nfunction getTaggedTiddlersText(title, sortby) {\n if (!sortby) {\n // sortby="modified";\n sortby="title"; \n }\n var tags = store.getTaggedTiddlers(title,sortby);\n str=""; \n for (i=0; i<tags.length; i++) {\n str+="* [[" + tags[i].title + "]]\sn";\n // TODO. make a comma separated version too\n // have an option to select between them\n }\n return str;\n}\n\n// use this to (re)build the tagged list for a tiddler\nfunction refreshTaggedList(title) {\n\n var theViewer = document.getElementById("viewer"+title);\n\n if (theViewer) {\n\n var theTaggedList = document.getElementById("tagged"+title);\n if (theTaggedList) {\n theViewer.removeChild(theTaggedList);\n }\n\n var taggedText = getTaggedTiddlersText(title,"title");\n\n if (taggedText != "") {\n var newTaggedList = createTiddlyElement(theViewer,"div","tagged" + title,"tagged",null); \n wikify(getTaggedTiddlersText(title),newTaggedList); \n }\n }\n}\n\n// I want to refresh the tagged list in other visible tiddlers\n// this is to refresh if we remove a tiddler\nwindow.deleteTiddler_orig_mptw_tagglytagging = window.deleteTiddler;\nwindow.deleteTiddler = function(title) {\n var oldtags = [];\n var tiddler = store.tiddlers[title];\n if (tiddler) {\n var oldtags = tiddler.tags;\n }\n\n deleteTiddler_orig_mptw_tagglytagging(title);\n\n for (i=0; i<oldtags.length; i++) {\n refreshTaggedList(oldtags[i]);\n }\n}\n\n// this is if we edit a tiddler\n// refresh tags on screen\nwindow.saveTiddler_orig_mptw_tagglytagging = window.saveTiddler;\nwindow.saveTiddler = function(title) {\n\n var newTitle = document.getElementById("editorTitle"+title).value;\n\n var oldtags = [];\n var tiddler = store.tiddlers[title];\n if (tiddler) {\n var oldtags = tiddler.tags;\n }\n \n saveTiddler_orig_mptw_tagglytagging(title);\n\n var newtags = store.tiddlers[newTitle].tags;\n\n for (i=0; i<newtags.length; i++) {\n refreshTaggedList(newtags[i]);\n }\n\n // will do lots twice. should do a unique on oldtags and newtags\n // probably its fast enough that we don't care\n\n for (i=0; i<oldtags.length; i++) {\n refreshTaggedList(oldtags[i]);\n }\n\n}\n\n//==========================================================\n\nwindow.createTiddlerViewer_orig_mptw_tagging = window.createTiddlerViewer;\nwindow.createTiddlerViewer = function(title,highlightText,highlightCaseSensitive) {\n createTiddlerViewer_orig_mptw_tagging(title,highlightText,highlightCaseSensitive);\n refreshTaggedList(title);\n}\n\n//==========================================================\n// only change in this is to put the footer above the title... \n// I know that's a bit strange but it's the easiest way to move the tag buttons\n\nwindow.createTiddlerSkeleton_orig_mptw_tagging = window.createTiddlerSkeleton;\nwindow.createTiddlerSkeleton = function(place,before,title)\n{\n var theTiddler = createTiddlerSkeleton_orig_mptw_tagging(place,before,title);\n theFooter = document.getElementById("footer"+title);\n theTitle = document.getElementById("title"+title);\n theToolbar = document.getElementById("toolbar"+title); //Added by MilchFlasche\n // want to put the footer up above the title\n\n // [MilchFlasche, 2005/08/07] But I don't want to... I want the title to be the first, then the footer, then the toolbar.\n // So I changed the following line, and added another below it, because now we have three elements to sort.\ntheTiddler.childNodes[0].insertBefore(theTitle,theToolbar);\ntheTiddler.childNodes[0].insertBefore(theFooter,theToolbar);\n return(theTiddler);\n}\n\n//==========================================================\n// I want a TiddlyLink in place of a TagButton\n\nwindow.createTagButton = function(place,tag,excludeTiddler) {\n return createTiddlyLink(place,tag,tag);\n}\n\n//==========================================================\n// this is to make the Tags tab work the same. TiddlyLink instead of Tag button\n// TODO: currently we lose the Tag count display\n\nconfig.macros.allTags.handler = function(place,macroName,params) {\n var tags = store.getTags();\n if(tags.length == 0) {\n createTiddlyElement(place,"div",null,null,this.noTags);\n }\n for (t=0; t<tags.length; t++) {\n var theTag = createTiddlyLink(place,tags[t][0],tags[t][0] + " (" + tags[t][1] + ")");\n theTag.setAttribute("tag",tags[t][0]);\n place.appendChild(document.createElement("br"));\n }\n}\n\nconfig.views.wikified.tag.labelNoTags = "";\nconfig.views.wikified.tag.labelTags = "";\n\nsetStylesheet(\n "div.tagged {background:#f8f8f8;margin-top:0.5em;border: solid #f0f0f0 3px;}\sn"+\n "div.tagged ul {padding-top:0px;margin-top:4px;margin-bottom:8px;list-style-type:square;}\sn"+\n "div.footer a.tiddlyLink { padding-top:0px;margin-right:1.2em;}\sn"+\n "div.footer {margin-top:0px;padding-top:0px;}\sn"+\n "",'tagglyTaggingStyles');/*\n}}}\n*/
<<search>><<closeAll>><<permaview>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 選項 '更改TiddlyWiki的進階選項'>><<slider chkSliderCurrentVersions CurrentVersions 本文件使用版本 '列出這份TiddlyWiki及所安裝之介面翻譯、插件、樣式表版本資訊'>><<importTiddlers>>
/*\n!Profile\n''翻譯者:''[[MilchFlasche/Roberto Tjang|mailto:Robertus0617@gmail.com]]\n''版本:''1.1.6 (2005/08/08)\n''TiddlyWiki版本:''1.2.30+\n\n!修改沿革\n''1.1.7(2005/08/10):''\n*新增對plugin的翻譯中……\n\n''1.1.6(2005/08/08):''\n*修改檔頭的格式,使翻譯檔、plugin及stylesheet之格式整齊劃一。\n\n''1.1.5(2005/08/06):''\n*修改「儲存所有變更」時會產生的訊息。(message中的backup/empty/main/RSSSaved)\n*新增翻譯「新建記事」時的預設標題及儲存時覆寫同名記事的警告訊息。(message.overwriteWarning、macros.newTiddler.title)\n\n''1.1.0:''因應1.2.28以後納入的字串變數,讓翻譯文句更流暢。適用1.2.28-29。\n''1.0.0:''初次釋出,自用。因應TiddlyWiki 1.2.23以後翻譯字串獨立為記事,因此將本來1.2.22時代直接修改程式碼的方式也做成翻譯檔。適用1.2.23-27。\n\n!翻譯文檔區\n{{{\n*/\nconfig.macros.allTags.noTags = "沒有任何記事有被分類過";\nconfig.macros.allTags.tooltip = "顯示「%0」分類的所有記事"; \nconfig.macros.closeAll.label = "關閉全部";\nconfig.macros.closeAll.prompt = "關閉所有被顯示出來的記事(除了現在正在編輯的以外)";\nconfig.macros.list.all.prompt = "以下列出所有的記事,按字母順序";\nconfig.macros.list.missing.prompt = "有被連到,但還沒有建立的記事";\nconfig.macros.list.orphans.prompt = "沒有任何其他記事有連到它們";\nconfig.macros.newJournal.label = "新建日誌";\nconfig.macros.newJournal.prompt = "以目前日期時間建立一則新的日誌記事";\nconfig.macros.newTiddler.label = "新建記事";\nconfig.macros.newTiddler.prompt = "建立一則新的記事";\nconfig.macros.newTiddler.title = "新的記事";\nconfig.macros.permaview.label = "瀏覽連結";\nconfig.macros.permaview.prompt = "在網址列上顯示一串URL,以後可以直接用這個URL叫出現在的閱覽狀態";\nconfig.macros.saveChanges.label = "儲存所有變更";\nconfig.macros.saveChanges.prompt = "儲存對所有記事的修改,不然關掉瀏覽器就前功盡棄";\nconfig.macros.search.label = "搜尋";\nconfig.macros.search.prompt = "搜尋這份TiddlyWiki;英文字母可以隨打即找,非英文字母則需要在輸入關鍵字後再按一次搜尋";\nconfig.macros.search.successMsg = "%0則記事被找到有包含%1";\nconfig.macros.search.failureMsg = "沒有記事有包含%0";\nconfig.macros.timeline.dateFormat = "YYYY/0MM/0DD DDD";\n\nconfig.messages.backupFailed = "無法儲存備份檔案";\nconfig.messages.backupSaved = "備份檔案已儲存起來了。";\nconfig.messages.cantSaveError = "沒辦法用您目前用的這個瀏覽器儲存所有的變更。如果可以的話,敬請使用Firefox";\nconfig.messages.customConfigError = "在customConfig - %0中發生錯誤";\nconfig.messages.dates.days = ["週日", "週一", "週二", "週三", "週四", "週五", "週六"];\nconfig.messages.dates.months = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];\nconfig.messages.emptyFailed = "敗勢,儲存空白範本不幸失敗";\nconfig.messages.emptySaved = "空白的範本已經存起來了。";\nconfig.messages.externalLinkTooltip = "連到%0的外部鏈結";\nconfig.messages.invalidFileError = "原來的檔案「%0」似乎不是個TiddlyWiki檔案";\nconfig.messages.macroError = "執行巨集「%0」時發生錯誤";\nconfig.messages.mainFailed = "儲存TiddlyWiki主檔失敗。您所做的一切變更尚未儲存。(注意,資料夾路徑中也不可有中文)";\nconfig.messages.mainSaved = "TiddlyWiki主檔已經存起來了。";\nconfig.messages.noTags = "沒有任何記事有被分類過";\nconfig.messages.notFileUrlError = "在您儲存所有的變更前,您必須將這份TiddlyWiki在您的電腦中存成另一個檔案";\nconfig.messages.overwriteWarning = "已經有一則叫作%0的記事了。選「確定」的話會覆寫它!";\nconfig.messages.rssFailed = "儲存RSS feed索引檔失敗";\nconfig.messages.rssSaved = "RSS feed已存起來了。";\nconfig.messages.savedSnapshotError = "這份TiddlyWiki文件似乎沒有用正確的方式儲存,詳請參閱http://www.tiddlywiki.com/#DownloadSoftware";\nconfig.messages.subtitleUnknown = "(還沒有副標題)";\nconfig.messages.undefinedTiddlerToolTip = "「%0」這則記事還不存在";\nconfig.messages.unsavedChangesWarning = "小心!!!還有沒被儲存起來的變更。\sn\sn選「確定」儲存;\sn選「取消」捨棄。";\n\nconfig.shadowTiddlers.OptionsPanel = "下列自訂TiddlyWiki的[[介面選項]]會儲存在您的瀏覽器當中。\sn\sn可在下欄填入您的使用者代號,以便為您的編輯簽下大名。請以WikiWord的格式(例如JoeBloggs)填寫。\sn<<option txtUserName>>\sn<<option chkSaveBackups>> [[儲存備份]]\sn<<option chkAutoSave>> [[自動儲存]]\sn<<option chkGenerateAnRssFeed>> [[製作一份RSS Feed]]\sn<<option chkRegExpSearch>> [[以正則表現式進行搜尋]]\sn<<option chkCaseSensitiveSearch>> [[搜尋時區別大小寫]]\sn<<option chkAnimate>> [[啟用動畫特效]]\sn<<option chkSaveEmptyTemplate>> [[儲存本文件的空白範本]]\sn<<option chkToggleLinks>> 如果在已打開的記事連結上再按一次,會再開一次,而非關上它。\sn^^(按Alt或Cmd鍵可以切換成另一種模式)^^";\nconfig.shadowTiddlers.SideBarOptions = "<<search>><<closeAll>><<permaview>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 選項 '更改TiddlyWiki的進階選項'>>";\nconfig.shadowTiddlers.SideBarTabs = "<<tabs txtMainTab '一路走來' '這份TiddlyWiki文件之前的修改歷史' TabTimeline '分類標籤' '瀏覽所有的分類標籤' TabTags '列出更多' '用其他方式瀏覽記事' TabMore>>";\nconfig.shadowTiddlers.TabMore = "<<tabs txtMoreTab '全部' '列出所有的記事' TabMoreAll '欠缺' '目前還是空殼子,有被連結但沒有內容的記事' TabMoreMissing '孤兒' '這些記事沒有被其他記事連結到' TabMoreOrphans>>";\n\nconfig.views.editor.tagChooser.popupNone = "尚未建立任何分類標籤";\nconfig.views.editor.tagChooser.tagTooltip = "加上「%0」分類標籤";\nconfig.views.editor.tagChooser.text = "加入現有的分類標籤";\nconfig.views.editor.tagChooser.tooltip = "從現有的分類標籤選一個,加在這則記事上";\nconfig.views.editor.tagPrompt = "輸入分類標籤,用空格來分開;如果分類標籤裡面包含空格的話,[[左右 各用 兩個 方括弧]],或者"\nconfig.views.editor.toolbarCancel.text = "取消";\nconfig.views.editor.toolbarCancel.tooltip = "復原對這則記事內容的改變";\nconfig.views.editor.toolbarDelete.text = "刪除";\nconfig.views.editor.toolbarDelete.tooltip = "刪除這則記事";\nconfig.views.editor.toolbarDone.text = "完成";\nconfig.views.editor.toolbarDone.tooltip = "把更動過的內容存入這則記事";\nconfig.views.editor.defaultText = "請輸入「%0」的記事內容";\n\nconfig.views.wikified.defaultText = "這則記事還不存在。雙擊滑鼠就可以開始寫。";\nconfig.views.wikified.tag.labelNoTags = "沒有分類標籤";\nconfig.views.wikified.tag.labelTags = "分類標籤:";\nconfig.views.wikified.tag.openAllText = "打開所有屬於%0的記事";\nconfig.views.wikified.tag.openAllTooltip = "打開下列的所有記事";\nconfig.views.wikified.tag.popupNone = "沒有其他的記事被歸類為%0";\nconfig.views.wikified.tag.tooltip = "顯示屬於%0的所有記事";\nconfig.views.wikified.toolbarClose.text = "關閉";\nconfig.views.wikified.toolbarClose.tooltip = "把這則記事收起來";\nconfig.views.wikified.toolbarEdit.text = "編輯";\nconfig.views.wikified.toolbarEdit.tooltip = "編輯本則記事";\nconfig.views.wikified.toolbarPermalink.text = "永久連結";\nconfig.views.wikified.toolbarPermalink.tooltip = "在瀏覽器位址列顯示直接連到這則記事的連結位址";\nconfig.views.wikified.toolbarReferences.text = "參考資料";\nconfig.views.wikified.toolbarReferences.tooltip = "顯示連到這則記事的其他記事";\nconfig.views.wikified.toolbarReferences.popupNone = "沒有其他記事連到這裡";\n/*\n}}}\n*/
[[Mist-MilchFlasche Style 1.2.1]]\n[[TagglyTagging Style Module 1.1.1]]\n
''Summary:''\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 function is also 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''Usage:''\n<<<\nThe ''import tiddlers'' sidebar menu lets you combine tiddlers from any two TiddlyWiki documents. When selected, a control panel is displayed consisting of an "import source document" filename input (text field plus a ''[Browse...]'' button), a listbox of available tiddlers, a "differences only" checkbox, an "add tags" input field and four push buttons: ''[open]'', ''[select all]'', ''[import]'' and ''[close]''.\n\nPress ''[browse]'' to select a TiddlyWiki document file to import. You can also type in the path/filename (or URL) of the document you want to import and press ''[open]''. //Note: there is a 1-second delay built in to the import function to allow the browser some 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''Differences Only:''\n\nThe "differences only" checkbox allows you to filter the list so that you only see tiddlers that either A) don't exist in the current document, or B) have a different date/time stamp (indicating that the tiddler has been changed in some way). This makes it very quick and easy to find and import just the updated tiddlers you are interested in.\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<<<\nWhenever 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<<<\n''Installation:''\n<<<\ncopy/paste the following tiddlers into your document:\n''ImportTiddlersPlugin'' (tagged with <<tag systemConfig>>)\n^^javascript for ImportTiddlers handling^^\n''ImportTiddlersHelp''\n^^end-user documentation for this plugin^^\n\ncreate/edit ''SideBarOptions'': (sidebar menu items) \n^^Add "< < ImportTiddlers > >" macro^^\n\nTo make copy/paste easier, here's a file containing just the storeArea DIV's for the tiddlers you need to install: [[import.html|import.html]]\n\n''Quick Installation Tip:''\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+ImportTiddlers.html]]''), and then simply import all your content from your old document into this new, empty document.\n<<<\n''Revision History:''\n<<<\n''2005.08.05 [1.1.0]''\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
// Eric Shulman - ELS Design Studios\n// Import Tiddlers Plug-in for TiddlyWiki version 1.2.25 or above\n\n// define macro "importTiddlers" to render controls\nversion.extensions.importTiddlers = {major: 1, minor: 0, revision: 2, date: new Date(2005,7,27)};\nconfig.macros.importTiddlers = {\n label: "import tiddlers", prompt: "Copy selected tiddlers from another document"\n};\n\nconfig.macros.importTiddlers.css = '\s\n#importPanel {\s\n display: none;\s\n background-color: #eeeeaa;\s\n position:absolute; z-index:11; width:25em; left:-28em; top:3em;\s\n padding: 0.5em; margin:0em;\s\n border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\s\n font-size: 7pt;\s\n}\s\n#importPanel input { width: 100%; margin: 1px; font-size:8pt; }\s\n#importPanel select { width: 100%; margin: 1px; font-size:8pt; }\s\n#importPanel .importButton { padding: 0em; margin: 0px; font-size:8pt; }\s\n#importPanel .importListButton { padding:0em 0.25em 0em 0.25em; color: #000000; }\s\n#importAskPanel { display:none; margin:0.5em 0em 0em 0em; }\s\n';\n\nconfig.macros.importTiddlers.html = '\s\n<div id="importPanel">\s\nimport from source document:\s\n<input type="file" id="fileImportSource" size=31\s\n onKeyUp="window.importSource=this.value"\s\n onChange="window.importSource=this.value; onClickImportButton(this)">\s\n<span style="float:left; padding:1px; white-space:nowrap">\s\n <input type=checkbox id="chkImportDiffsOnly" checked style="height:1em; width:auto"\s\n onClick="window.importDiffsOnly=this.checked; refreshImportList();">show differences only\s\n</span>\s\n<span style="float:right; padding:1px; white-space:nowrap">\s\n <a href="JavaScript:;" id="importSmaller" class="importListButton"\s\n onclick="onClickImportButton(this)" title="reduce list size">&#150;</a>\s\n <a href="JavaScript:;" id="importLarger" class="importListButton"\s\n onclick="onClickImportButton(this)" title="increase list size">+</a>\s\n <a href="JavaScript:;" id="importMaximize" class="importListButton"\s\n onclick="onClickImportButton(this)" title="maximize/restore list size">=</a>\s\n</span>\s\n<select id="importList" size=1 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\nadd tags:\s\n<input type=text id="txtImportTags" size=15 onKeyUp="window.importTags=this.value" autocomplete=off>\s\n<div align=center>\s\n <input type=button id="importOpen" class="importButton" style="width:23%" value="open"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importSelectAll" class="importButton" style="width:23%" value="select all"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importStart" class="importButton" style="width:23%" value="import"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importClose" class="importButton" style="width:23%" value="close"\s\n onclick="onClickImportButton(this)">\s\n</div>\s\n<div id="importAskPanel">\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</div>\s\n<!-- hidden frame for remote page load -->\s\n<span style="position:absolute; display:none;">\s\n<iframe name="importFrame" id="importFrame" src="" height=0 width=0></iframe>\s\n</span>\s\n';\n\nconfig.macros.importTiddlers.handler = function(place,macroName,params) {\n createTiddlyButton(place,this.label,this.prompt,onClickImportMenu);\n setStylesheet(config.macros.importTiddlers.css,"importTiddlers");\n var newspan=createTiddlyElement(place,"span",null,null,null)\n newspan.innerHTML=config.macros.importTiddlers.html;\n store.addNotification(null,refreshImportList); // refresh listbox after every tiddler change\n}\n\n// IE needs explicit global scoping for functions/vars called from browser events\nwindow.refreshImportList=refreshImportList;\nwindow.onClickImportButton=onClickImportButton;\nwindow.getImportedTiddlers=getImportedTiddlers;\nwindow.importSource=""; // path/filename or URL of document to import\nwindow.importedTiddlers; // hash-indexed array of tiddlers from other document\nwindow.importTags=""; // text of tags added to imported tiddlers\n\nwindow.importListSize=10; // # of lines to show in imported tiddler list\nwindow.importDiffsOnly=true; // show differences option (toggle)\nwindow.importIndex=0; // current processing index in import list\n\n// Import menu item (show/hide import panel)\nfunction onClickImportMenu(e)\n{\n if (!e) var e = window.event;\n var thePanel = document.getElementById("importPanel");\n if (thePanel==undefined) return;\n var isOpen = thePanel.style.display=="block";\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(thePanel,!isOpen,e.shiftKey || e.altKey,"none"));\n else\n thePanel.style.display = isOpen ? "none" : "block" ;\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return(false);\n}\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 theAskPanel = document.getElementById('importAskPanel');\n var theNewTitle = document.getElementById('importNewTitle');\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 window.importedTiddlers=null; // clear the imported tiddler buffer\n refreshImportList(); // reset/resize the listbox\n if (window.importSource=="") break;\n try\n {\n // Load document into hidden iframe so we can read it's DOM\n // set timeout for 1 second and return to browser processing, so it has\n // some time to finish loading the document before we try to read the storeArea\n var url=window.importSource;\n if (url.charAt(1)==":") url="file://"+url; // fixup pc local filename\n window.frames['importFrame'].location.href=url;\n setTimeout('getImportedTiddlers()',1000);\n }\n catch(e)\n {\n clearMessage();\n displayMessage("Error opening "+window.importSource+": " + ((e.message)?e.message:e));\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; t < theList.options.length; t++)\n theList.options[t].selected=(theList.options[t].value!="");\n break;\n case 'importStart': // initiate the import processing\n importReport(); // if an import was in progress, generate a report\n window.importIndex=0;\n window.importIndex=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 (!window.importedTiddlers) { thePanel.style.display='none'; break; }\n importReport(); // if an import was in progress, generate a report\n window.importedTiddlers=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[window.importIndex];\n for (var j=0;j<window.importedTiddlers.length;j++)\n if (window.importedTiddlers[j].title==theItem.value) break;\n var theImported = window.importedTiddlers[j];\n theImported.status='skipped after asking'; // mark item as skipped\n theAskPanel.style.display='none';\n window.importIndex=importTiddlers(window.importIndex+1); // resume with NEXT item\n importStopped();\n break;\n case 'importRename': // change name of imported tiddler\n var theItem = theList.options[window.importIndex];\n for (var j=0;j<window.importedTiddlers.length;j++)\n if (window.importedTiddlers[j].title==theItem.value) break;\n var theImported = window.importedTiddlers[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 theAskPanel.style.display='none';\n window.importIndex=importTiddlers(window.importIndex); // resume with THIS item\n importStopped();\n break;\n case 'importMerge': // join existing and imported tiddler content\n var theItem = theList.options[window.importIndex];\n for (var j=0;j<window.importedTiddlers.length;j++)\n if (window.importedTiddlers[j].title==theItem.value) break;\n var theImported = window.importedTiddlers[j];\n var theExisting = store.tiddlers[theItem.value];\n var theText = theExisting.text+'\sn----\sn^^merged from: [['+window.importSource+'#'+theItem.value+'|'+window.importSource+'#'+theItem.value+']]^^\sn^^'+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 hh:mm:ss");\n theImported.status += ' by '+theExisting.modifier;\n theAskPanel.style.display='none';\n window.importIndex=importTiddlers(window.importIndex); // resume with this item\n importStopped();\n break;\n case 'importReplace': // substitute imported tiddler for existing tiddler\n var theItem = theList.options[window.importIndex];\n for (var j=0;j<window.importedTiddlers.length;j++)\n if (window.importedTiddlers[j].title==theItem.value) break;\n var theImported = window.importedTiddlers[j];\n var theExisting = store.tiddlers[theItem.value];\n theImported.status = 'replaces '+theExisting.title; // mark item for replace\n theImported.status += ' - '+theExisting.modified.formatString("MM/DD/YYYY hh:mm:ss");\n theImported.status += ' by '+theExisting.modifier;\n theAskPanel.style.display='none';\n window.importIndex=importTiddlers(window.importIndex); // resume with THIS item\n importStopped();\n break;\n case 'importSmaller': // decrease current listbox size, minimum=5\n if (theList.options.length==1) break;\n theList.size-=(theList.size>5)?1:0;\n window.importListSize=theList.size;\n break;\n case 'importLarger': // 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 window.importListSize=theList.size;\n break;\n case 'importMaximize': // toggle listbox size between current and maximum\n if (theList.options.length==1) break;\n theList.size=(theList.size==theList.options.length)?window.importListSize:theList.options.length;\n break;\n }\n}\n\nfunction getImportedTiddlers()\n{\n try\n {\n // make sure document has valid tiddler store area\n var importDocument = window.frames['importFrame'].document;\n if (!importDocument)\n { throw("could not get file contents from importFrame"); }\n var importStoreArea = importDocument.getElementById("storeArea");\n if (!importStoreArea || !(importStore=importStoreArea.childNodes) || (importStore.length==0))\n { throw("no tiddlers found in file"); }\n importStoreArea.normalize();\n var link=unescape(window.frames['importFrame'].location.href).replace(/\s\s/g,"/")\n clearMessage();\n displayMessage('read '+importStoreArea.innerHTML.length+' bytes from ',link);\n }\n catch(e)\n {\n clearMessage();\n displayMessage("Error reading "+window.importSource+": " + ((e.message)?e.message:e));\n }\n window.importedTiddlers = new Array();\n for(var t = 0; t < importStore.length; t++)\n {\n var e = importStore[t];\n var title = null;\n if(e.getAttribute)\n title = e.getAttribute("tiddler");\n if(!title && e.id && (e.id.substr(0,5) == "store"))\n title = e.id.substr(5);\n if(title && title != "")\n {\n var theImported = new Tiddler();\n theImported.loadFromDiv(e,title);\n window.importedTiddlers.push(theImported);\n }\n }\n refreshImportList();\n}\n\nfunction importStopped()\n{\n var theList = document.getElementById('importList');\n var theNewTitle = document.getElementById('importNewTitle');\n if (!theList) return;\n if (window.importIndex==-1)\n importReport(); // import finished... generate the report\n else\n {\n // DEBUG alert('import stopped at: '+window.importIndex);\n // import collision... show the ask panel and set the title edit field\n document.getElementById('importAskPanel').style.display='block';\n theNewTitle.value=theList.options[window.importIndex].value;\n }\n}\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 (!window.importedTiddlers) \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=1; // show one line only\n return;\n }\n // get the sort order\n if (!selectedIndex) selectedIndex=0;\n if (selectedIndex==0) importSortBy='title'; // heading\n if (selectedIndex==1) importSortBy='title';\n if (selectedIndex==2) importSortBy='modified';\n if (selectedIndex>2) return; // heading or tiddler item, no refresh needed\n // get the alphasorted list of tiddlers (optionally, filter out unchanged tiddlers)\n var tiddlers = [];\n\n // don't import tiddler if title/date/time match (i.e., no changes)\n for (t=0;t<window.importedTiddlers.length;t++)\n {\n if ( window.importDiffsOnly\n && store.tiddlers[window.importedTiddlers[t].title]\n && (window.importedTiddlers[t].modified-store.tiddlers[window.importedTiddlers[t].title].modified==0))\n continue;\n tiddlers.push(window.importedTiddlers[t]);\n }\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('Select tiddlers to import',"",false,false);\n theList.options[i++]=new Option(((importSortBy=="title" )?">":indent)+' [by title]',"",false,false);\n theList.options[i++]=new Option(((importSortBy=="modified")?">":indent)+' [by date]',"",false,false);\n theList.options[i++]=new Option(tiddlers.length+' tiddler'+((tiddlers.length!=1)?'s are ':' is ')+(window.importDiffsOnly?'different':'in the document'),"",false,false);\n // output the tiddler list\n switch(importSortBy)\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 {\n var tiddler = tiddlers[t];\n var theSection = tiddler.modified.toLocaleDateString();\n if (theSection != lastSection)\n {\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 }\n theList.selectedIndex=selectedIndex; // select current control item\n if (theList.size<window.importListSize)\n theList.size=window.importListSize;\n if (theList.size>theList.options.length)\n theList.size=theList.options.length;\n}\n\nfunction importTiddlers(startIndex)\n{\n if (!window.importedTiddlers) return -1;\n\n var theList = document.getElementById('importList');\n if (!theList) return;\n // if starting new import, reset import status flags\n if (startIndex==0)\n for (var t=0;t<window.importedTiddlers.length;t++)\n window.importedTiddlers[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<window.importedTiddlers.length;j++)\n if (window.importedTiddlers[j].title==t) break;\n var theImported = window.importedTiddlers[j];\n var theExisting = store.tiddlers[theImported.title];\n // don't import the "ImportedTiddlers" history from the other document...\n if (theImported.title=='ImportedTiddlers')\n continue;\n // don't import tiddler if title/date/time match (i.e., no changes)\n if (theExisting && ((theImported.modified-theExisting.modified)==0))\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 // append importation tags (if any)\n if (window.importTags!="")\n theImported.set(null,null,null,null,theImported.getTags()+' '+window.importTags)\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.tiddlers[theImported.title] = theImported;\n store.dirty=true;\n }\n return(-1); // signals that we really finished the entire list\n}\n\nfunction importReport()\n{\n\n if (!window.importedTiddlers) return;\n // DEBUG alert('importReport: start');\n\n // if import was not completed, the Ask panel will still be open... close it now.\n document.getElementById('importAskPanel').style.display='none'; \n // get the alphasorted list of tiddlers\n var tiddlers = window.importedTiddlers;\n window.importedTiddlers.sort(function (a,b) {if(a['title'] == b['title']) return(0); else return (a['title'] < b['title']) ? -1 : +1; });\n // gather the statistics\n var count=window.importedTiddlers.length; var added=0; var replaced=0; var renamed=0; var skipped=0; var merged=0;\n for (var t=0; t<count; t++)\n if (window.importedTiddlers[t].status)\n {\n if (window.importedTiddlers[t].status=='added') added++;\n if (window.importedTiddlers[t].status.substr(0,7)=='skipped') skipped++;\n if (window.importedTiddlers[t].status.substr(0,6)=='rename') renamed++;\n if (window.importedTiddlers[t].status.substr(0,7)=='replace') replaced++;\n if (window.importedTiddlers[t].status.substr(0,6)=='merged') merged++;\n }\n var omitted=count-(added+replaced+renamed+skipped+merged);\n // DEBUG alert('stats done: '+count+' total, '+added+' added, '+skipped+' skipped, '+renamed+' renamed, '+replaced+' replaced, '+merged+' merged');\n // skip the report if nothing was imported\n if (added+replaced+renamed+merged==0) return;\n // quick message area summary report\n clearMessage();\n displayMessage((added+replaced+renamed+merged)+' of '+count+' tiddler'+((count!=1)?'s':"")+' imported from ',window.importSource)\n // create the report tiddler (if not already present)\n var tiddler = store.tiddlers['ImportedTiddlers'];\n if (!tiddler) // create new report tiddler if it doesn't exist\n {\n tiddler = new Tiddler();\n tiddler.title = 'ImportedTiddlers';\n tiddler.text = "";\n }\n // format the report header\n var now = new Date();\n newText = "";\n newText += "On "+now.toLocaleString()+", "+config.options.txtUserName+" ";\n newText += "imported tiddlers from ["+"["+window.importSource+"|"+window.importSource+"]"+"]:\sn";\n newText += "<"+"<"+"<\sn";\n newText += "Out of "+count+" tiddler"+((count!=1)?"s ":" ")+" in "+window.importSource+":\sn";\n if (added+renamed>0)\n newText += (added+renamed)+" new tiddler"+(((added+renamed)!=1)?"s were":" was")+" added to your document.\sn";\n if (merged>0)\n newText += merged+" tiddler"+((merged!=1)?"s were":" was")+" merged with "+((merged!=1)?"":"an ")+"existing tiddler"+((merged!=1)?"s":"")+".\sn"; \n if (replaced>0)\n newText += replaced+" existing tiddler"+((replaced!=1)?"s were":" was")+" replaced.\sn"; \n if (skipped>0)\n newText += skipped+" tiddler"+((skipped!=1)?"s were":" was")+" skipped after asking.\sn"; \n if (omitted>0)\n newText += omitted+" tiddler"+((omitted!=1)?"s":"")+((omitted!=1)?" were":" was")+" unchanged/not selected, and "+((omitted!=1)?"were":"was")+" not imported.\sn";\n if (window.importTags!="")\n newText += "imported tiddlers were tagged with: \s""+window.importTags+"\s"\sn";\n // output the tiddler detail and reset status flags\n for (var t=0; t<count; t++)\n if (window.importedTiddlers[t].status!="")\n {\n newText += "#["+"["+window.importedTiddlers[t].title+"]"+"]";\n newText += ((window.importedTiddlers[t].status!="added")?("\sn^"+"^"+window.importedTiddlers[t].status+"^"+"^"):"")+"\sn";\n window.importedTiddlers[t].status="";\n }\n newText += "<"+"<"+"<\sn";\n // update the ImportedTiddlers content and show the tiddler\n tiddler.text = newText+((tiddler.text!="")?'----\sn':"")+tiddler.text;\n tiddler.modifier = config.options.txtUserName;\n tiddler.modified = new Date();\n store.tiddlers[tiddler.title] = tiddler;\n displayTiddler(document.getElementById('sidebar'),"ImportedTiddlers",1,null,null,false);\n // update the page display\n store.notifyAll();\n}
*[[TiddlyWiki|http://www.tiddlywiki.com/]] 1.2.31\n*Stylesheets:\n<<tiddler StyleSheet>>\n*Locale:\n[[華語繁體漢字介面翻譯1.1.6|Mandarin Translation_Traditional Hanzi_1.1.6/華語介面翻譯_繁體漢字_1.1.6]]\n*Plugins\n**[[TagglyTagging 2.1|TagglyTagging Plugin (MilchFlasche mod) 2.1]]\n**[[New Here Button|New Here Button Plugin (Mandarin)]]\n**[[ImportTidders 1.1.0|ImportTiddlersHelp]]\n***[[華語翻譯|ImportTiddlersPluginTranslation (Mandarin)]]
/*\n!Module\n''Name:'' ''TagglyTagging Style Module''\n\n''Version:'' 1.1.1 (2005/08/08)\n''Author:'' MilchFlasche/Roberto Tjang ([[mail|mailto:Robertus0617@gmail.com]])\n''TiddlyWiki Version:'' 1.2.29+\n''TagglyTagging Plugin Version:'' second\n''Usage:'' For the time being, we still have to copy/paste the modules on the bottom of StyleSheet.\n\n''Revision History:''\n''1.1.1 (2005/08/08):''\n*Changed the padding and margin of Simon's default settings\n*Deleted the double French brackets before and after the tags\n**But it seems that the spaces has to be left, or the tags won't change lines.\n\n''1.1.0 (2005/08/07):'' Now that Simon Baird has put some style-generating code in his TagglyTagging plugin, so this module has to force most of the styling rules to take effects.\n{{{\n*/\n.tagged {\n background-color: #f3f3f3 !important;\n border: #aaa solid !important;\n border-width: 5px 1px 1px 5px !important;\n margin-top: 0.5em !important;\n margin-bottom: 0.5em !important;\n font-style: normal !important;\n font-size: 10pt !important;\n line-height: 100% !important;}\n.tagged ul {\n list-style-type: square; /*learning from Simon Baird's site*/}\n\n.footer {\n margin-top: 0px;\n padding-top: 0px;}\n.footer div {\n display: inline;}\n.footer .tiddlylink {\n display: inline;\n padding: 0em 0.2em 0em 0.2em !important;\n margin: 0em !important;}\n.unselectedTiddler .footer .tiddlylink {\n color: #f3f3f3;}\n.selectedTiddler .footer .tiddlylink {\n color: #922;}\n.footer .tiddlylink:before {\n content: " ";}\n.footer .tiddlylink:after {\n content: " ";}/*\n}}}\n*/
config.macros.importTiddlers.label = "匯入記事";\nconfig.macros.importTiddlers.prompt = "從另外一份文件當中複製選取的記事";\n\nconfig.macros.importTiddlers.html = '\s\n<div id="importPanel">\s\n從來源文件匯入:\s\n<input type="file" id="fileImportSource" size=31\s\n onKeyUp="window.importSource=this.value"\s\n onChange="window.importSource=this.value; onClickImportButton(this)">\s\n<span style="float:left; padding:1px; white-space:nowrap">\s\n <input type=checkbox id="chkImportDiffsOnly" checked style="height:1em; width:auto"\s\n onClick="window.importDiffsOnly=this.checked; refreshImportList();">只顯示和這裡不同的記事\s\n</span>\s\n<span style="float:right; padding:1px; white-space:nowrap">\s\n <a href="JavaScript:;" id="importSmaller" class="importListButton"\s\n onclick="onClickImportButton(this)" title="縮短列表">&#150;</a>\s\n <a href="JavaScript:;" id="importLarger" class="importListButton"\s\n onclick="onClickImportButton(this)" title="增長列表">+</a>\s\n <a href="JavaScript:;" id="importMaximize" class="importListButton"\s\n onclick="onClickImportButton(this)" title="最大化/還原列表長度">=</a>\s\n</span>\s\n<select id="importList" size=1 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添加分類標籤:\s\n<input type=text id="txtImportTags" size=15 onKeyUp="window.importTags=this.value" autocomplete=off>\s\n<div align=center>\s\n <input type=button id="importOpen" class="importButton" style="width:23%" value="開啟"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importSelectAll" class="importButton" style="width:23%" value="全選"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importStart" class="importButton" style="width:23%" value="匯入"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importClose" class="importButton" style="width:23%" value="關閉"\s\n onclick="onClickImportButton(this)">\s\n</div>\s\n<div id="importAskPanel">\s\n記事已經存在:\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="跳過"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importRename" class="importButton" style="width:23%" value="更名"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importMerge" class="importButton" style="width:23%" value="融合"\s\n onclick="onClickImportButton(this)">\s\n <input type=button id="importReplace" class="importButton" style="width:23%" value="取代"\s\n onclick="onClickImportButton(this)">\s\n </div>\s\n</div>\s\n</div>\s\n<!-- hidden frame for remote page load -->\s\n<span style="position:absolute; display:none;">\s\n<iframe name="importFrame" id="importFrame" src="" height=0 width=0></iframe>\s\n</span>\s\n';\n
/*\n!Profile\n''Name:'' ''Mist-MilchFlasche Style'' --- courtesy of the so-called [["Blue-Mist" style|http://codestar.lidonet.net/misc/tiddlywikicss.html]], with many own preferences and modifications.\n\n''Version:'' 1.2.1 (2005/08/08)\n''Editor:'' MilchFlasche/Roberto Tjang ([[mail|mailto:Robertus0617@gmail.com]])\n''TiddlyWiki Version:'' 1.2.29+\n\n!''Revision History''\n''1.2.1 (2005/08/08):''\n*Made independent the TagglyTagging style as a module, so from now on it's no long regarded as part of this stylesheet; if you don't use TagglyTagging, just get rid of it.\n\n''1.2.0 (2005/08/06):''\n*Fixed the value of margin of #displayArea to fit the space left by #sidebar and #mainMenu which have become absolute. (the width of #mainMenu is 8%, but the margin-left of #displayArea has to be 9%...)\n*Re-changed default background-color and border of .viewer pre.\n*Making the StyleSheet tiddler more delicate.\n\n''1.1.0 (2005/07/25-26):'' adding styles for TagglyWiki plug-in, and in accord to the switching of the locations of .footer and .toolbar. So things within this revision might break if you don't implement the TagglyWiki plug-in (also with my modification).\n\n''1.0.0 (2005/07/17-18):'' First of all, I have begun using TW from Revision 1.2.22, and I found the style on [[TiddlyWiki CSS - A simple alternate look for any TiddlyWiki|http://codestar.lidonet.net/misc/tiddlywikicss.html]], so I simply put it in the StyleSheet tiddler, and everything worked just fine. But after the major change of TW 1.2.23+, many HTML tags and CSS selectors were different, so the old style should also be re-adapted. Also, I thought that the StyleSheet tiddler should only contain lines other that the default stylesheet in the hardcore TW HTML codes, so I restarted from a blank StyleSheet, adapting still mainly from TiddlyWiki CSS, but this time only kept lines which were not in the default style. And I had made done the support for new features of 1.2.23+, like tabs, sliders, and adapted the original theme to some of the new HTML tag elements. To distinguish things from the original version and what I have modified or added, see if there are 4 spaces or just one tab. Mine are more indented.\n\n!''Code Section:''\n{{{\n*/\n/*=======Body and Header=======*/\nbody {\n background-color: #e4e4e4;\n font-family: tahoma,arial,helvetica; }\n\n#header {\n border-bottom: 1px solid #458;\n margin-bottom: 0em; }\n#titleLine {\n color: #fff;\n background: #bcd;\n padding: 0.7em 1em 1em 1em; }\n#titleLine a {\n text-decoration: none;\n color: #9ab; }\n#siteTitle {\n font-size: 40pt;\n font-weight: bold;\n padding-left: 20px;\n color: #9ab; }\n#siteSubtitle {\n font-size: 14pt;\n font-family: georgia,times;\n font-style: italic;\n color: #457;\n display: block;\n position: relative;\n bottom: 5px;\n left: 0px;\n padding-left: 70px; }\n\n/*=======Main Menu=======*/\n#mainMenu {\n border: solid #aaa;\n border-width: 0px 1px 1px 1px;\n background: #f3f3f3;\n width: 8%;\n font-size: 12pt;\n line-height: 100%;}\n#mainMenu .tiddlyLink, #mainMenu .externalLink, #mainMenu .button {\n text-decoration: none;\n font-weight: bold;\n color: #444;\n display: block;\n margin: 0.5em 0em 0.5em 0em;}\n#mainMenu .tiddlyLink:hover, #mainMenu .externalLink:hover, #mainMenu .button:hover {\n color: #922;\n background-color: transparent;}\n#mainMenu br {\n display: none;}\n\n/*===Display Area in General===*/\n#displayArea {\n margin: 0em 16em 0em 9%;}\n\n#messageArea {\n background-color: #5a84ad;\n margin: 0em 0em 0em 0em;\n border-bottom: 1px solid #458;}\n#messageArea a:link, #messageArea a:visited {\n color: #ddf;}\n#messageArea a:hover {\n color: #fff;}\n\n#tiddlerDisplay {\n padding-left: 2%}\n\n/*=======Tabs=======*/\n.tabSelected {\n background-color: #f3f3f3;\n border: #aaa solid;\n border-width: 1px 1px 0px 1px;\n margin-top: -2px;}\n.tabUnselected {\n background-color: #aaa;}\n.tabContents {\n background-color: #f3f3f3;}\n\n/*=======Tiddler=======*/\n.tiddler {\n border: 1px solid #aaa;\n border-right-width: 5px;\n border-bottom-width: 5px;\n padding: 8px;\n margin: 1.8%;\n font-family: georgia, serif;\n background-color: white;\n /*to make half-width and two-columned tiddler view*/\n float: left;\n width: 42%;\n font-size: 12pt;}\n\n.selectedTiddler, .unselectedTiddler {\n font-size: 12pt;}\n/*Distinction between selected and unselected tiddlers*/\n.unselectedTiddler .footer .button {\n color: #fcc;}\n\n#displayArea .tiddlyLinkExisting {\n font-weight: bold;}\n#displayArea .tiddlyLinkNonExisting {\n font-style: italic;}\n#displayArea .externalLink {\n text-decoration: underline;}\n\n#popup {\n display: none;\n position: absolute;\n font-size: 10pt;\n color: black;\n background-color: #bcd;\n padding: 0.25em 0.25em 0.25em 0.25em;\n border-right: 1px solid #330000;\n border-bottom: 1px solid #330000;}\n#popup a {\n display: block;\n color: black;\n line-height: 120%;}\n#popup a:hover {\n background-color: transparent;\n color: #922;}\n#popup hr {\n border-top: solid 1px #9ab;\n color: #9ab;}\n\n.title {\n font-family: tahoma,arial,helvetica;\n font-size: 16pt;\n color: #469;\n font-weight: bold;\n display: inline;}\n\n.toolbar {\n font-family: tahoma,arial,helvetica;\n font-weight: normal;\n font-size: 10pt;\n padding: 0em 0em 0em 1em;\n color: color: #aaa;\n /*display: inline;*/\n visibility: hidden;\n /*float: right;*/ }\n.toolbar .button {\n padding: 0.2em 0.4em 0.2em 0.4em;\n color: #888; }\n.toolbar .button:hover {\n color: black;\n background-color: white; }\n.toolbar .button:active {\n color: #666; }\n\n.body {\n border-top:1px solid #ccc;\n padding-top: 0.5em;\n margin-top:0.3em;}\n\n.footer {\n font-size: 10pt;\n font-family: Tahoma, sans-serif;\n display: inline;}\n.footer .button:hover {\n color: black;\n background-color: #d0d0d0}\n\n.viewer {\n font-size: 12pt;\n margin-bottom: 8px;}\n.viewer a:link, .body a:visited {\n color: #922;}\n.viewer a:hover {\n color: #b44;\n background-color: white;\n text-decoration: none;}\n\n.viewer .button {\n margin: 0em 0em 0em 0em;\n padding: 0em 0em 0em 0em;\n background-color: #f3f3f3;\n color: #922;\n border-bottom: 1px dotted grey;\n border-right: none;}\n.viewer .button:hover {\n color: #922;\n background-color: #bcd;}\n.viewer .button:hover:after {\n content: "↓";\n font-weight: black;\n color: black;}\n\n.viewer blockquote {\n font-size: 12pt;\n border-left: 1px solid #ccc;\n margin-left: 1.5em;}\n\n.viewer h1,h2,h3,h4,h5 {\n font-weight: bold;\n text-decoration: none;\n color: #469;\n padding-left: .6em;\n background-color: #B0C4DE;}\n.viewer h1 {\n font-size: 14pt;}\n.viewer h2 {\n font-size: 13pt;}\n.viewer h3 {\n font-size: 12pt;}\n.viewer h4 {\n font-size: 11pt;}\n.viewer h5 {\n font-size: 10pt;}\n\n.viewer table {\n font-size: 12pt;}\n.viewer th {\n color: black;\n background-color: #bcd;}\n\n.viewer pre, .viewer code {\n color: #922;}\n.viewer pre {\n margin-left: 0em;\n border: none;\n background-color: #f3f3f3;}\n\n/*=======Editor=======*/\n.editor {\n font-size: 12pt;}\n.editorFooter {\n font-size: 12pt;\n color: #402c74;}\n.editorFooter .button {\n padding: 0px 0px 0px 0px;\n color: #922;\n display: block;}\n.editorFooter .button:hover {\n color: #b44;\n background-color: white;}\n\n/*=======Sidebar=======*/\n#sidebar {\n font-size: 10pt;\n width: 16em;\n color: #666;\n border-left: 1px solid #aaa;\n border-bottom:1px solid #aaa;\n background-color: #f3f3f3;}\n\n#sideBarOptions {\n background-color: #f3f3f3;\n color: black;\n font-size: 10pt;}\n#sideBarOptions .button {\n color: #666;\n text-decoration: none;}\n#sideBarOptions .button:hover {\n color: #922;\n background-color: transparent;\n text-decoration: underline;}\n#sideBarOptions input {\n border: 1px solid black;\n}\n\n#sidebarOptions .sliderPanel {\n font-size: 10pt;\n background-color: #f3f7fe;}\n#sidebarOptions .sliderPanel a:link, #sidebarOptions .sliderPanel a:visited {\n color: #666;\n font-weight: bold;}\n#sidebarOptions .sliderPanel a:hover {\n color: #922;\n background-color: #f3f7fe;\n text-decoration: underline;}\n\n/*=======Sidebar Tabs=======*/\n#sidebarTabs {\n background-color: #f3f3f3;}\n#sidebarTabs .tabSelected {\n color: black;\n background-color: #d0d0d0;}\n#sidebarTabs .tabUnselected {\n color: black;\n background-color: #e6e6e6;}\n#sidebarTabs .tabContents {\n color: #236;\n background-color: #d0d0d0;}\n#sidebarTabs .tabContents span, #sidebarTabs .txtMoreTab .tabContents div {\n font-size: 1.1em;}\n#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button {\n color: #222;}\n#sidebarTabs .tabContents .tiddlyLink:hover, #sidebarTabs .tabContents .button:hover {\n background-color: transparent;\n color: #922;}\n\n#sidebarTabs .txtMoreTab .tabSelected {\n background-color: #bcd;}\n#sidebarTabs .txtMoreTab .tabUnselected {\n background-color: #9ab;}\n#sidebarTabs .txtMoreTab .tabContents {\n background-color: #bcd;}\n\n/*=======Other Elements=======*/\n.zoomer {\n border: 3px solid #469;\n color: #469;\n background-color: #BCD;\n font-size: 16pt;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-family: tahoma,arial,helvetica;\n font-weight: bold;}\n/*\n}}}\n*/
On Saturday, August 13, 2005 12:30:18, MilchFlasche imported tiddlers from [[E:\sMy Webpages\sTiddlyWiki\sNewTiddlyWiki_Template.html|E:\sMy Webpages\sTiddlyWiki\sNewTiddlyWiki_Template.html]]:\n<<<\nOut of 18 tiddlers in E:\sMy Webpages\sTiddlyWiki\sNewTiddlyWiki_Template.html:\n2 new tiddlers were added to your document.\n4 existing tiddlers were replaced.\n12 tiddlers were unchanged/not selected, and were not imported.\n#[[DefaultTiddlers]]\n^^replaces DefaultTiddlers - 8/9/2005 15:33:0 by MilchFlasche^^\n#[[MainMenu]]\n^^replaces MainMenu - 8/11/2005 22:51:0 by MilchFlasche^^\n#[[SiteSubtitle]]\n^^replaces SiteSubtitle - 8/13/2005 0:2:0 by MilchFlasche^^\n#[[SiteTitle]]\n^^replaces SiteTitle - 8/10/2005 17:24:0 by MilchFlasche^^\n#[[入主你的TiddlyWiki]]\n#[[編輯語法]]\n<<<\n
這個wiki真好用
Bangdoll Tiddly Wiki
這是我的第一個Wiki!非線性、個人數位筆記本
//想看看實際上語法如何運用,請按右上角的「編輯」鈕。//\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>>
==我會被刪除==\n^^我是上標^^字\n~~我是下標~~字\n@@color(blue):中文@@測試\n@@bgcolor(red):我是紅色@@\n再來一個字
在Shortcut Bar的三大步驟:\n1.Source Designer\n2.Target Designer\n3.Process Designer\n\nTree View:\n1.Inventory\n2.Custom Tree\n3.Process Library Tree
民生東路二段147巷
|Client\nTier|*SAS ETL Studio\n*SAS OLAP Cube Studio\nSAS Management Console\nSAS Information Map Studio|SAS Enterprise Guide\nSAS Add-in for Microsoft Office|SAS Web Report Studio\nSAS Information Portal|\n|Middle\nTier|>||HTTP Server SDK\nwebDAV Server JavaServlet Container\nWeb Infrastructure Kit |\n|Server\nTier|SAS 9 Foundation\nWorkspace Server|Metadata Server\nStored Process Server|SAS/CONNECT Server\nOLAP Server|
這裡是主選單,可以放上常用的鏈結\n[[編輯語法]]\n----\n<<newTiddler>>\n<<newJournal "YYYY/0MM/0DD hh:mm">>\n----\n[[MyBlog|http://blog.bangdoll.idv.tw/]]\n[[flickr|http://photo.bangdoll.idv.tw/]]\n[[論壇|http://groups.google.com/group/PrinceTiddlyWiki]]\n----\n© [[osmosoft|http://www.osmosoft.com]] 2005\n----\n~~[[編輯主選單|MainMenu]]~~\n~~[[編輯開始畫面|DefaultTiddlers]]~~\n~~[[關於TiddlyWiki|http://linshi.twbbs.org/usr/m/milchflasche/TiddlyWiki.html]]~~
\n\n\n[食夢黑貘] 的 [捷運日記]\n\n\n!01/28/04, 資料採礦前言(一)\n \n\n[QOTD]Data Mining 只是幫人降低決策所須要的成本。\n\n\n\n從最早的思索如何降低媒體 (資訊傳遞 )成本,\n到如何找到對的資訊 (搜尋與 Agent),以及從既有\n的資訊去產生新的資訊 (Data Mining),主體基本上\n都沒甚麼變,只是方法與領域或多或少都有變化。\n\nData Mining 本身就只是透過已有但難以解析的\n大量資訊找到有利用價值的資訊,所以在從大量的資\n訊如何歸納與聚焦的方法就是資料採礦,無論是規則\n或者是指標,更有可能的是一個定性定量出來的縮減\n範圍,都是利用這些方法創造出解決新問題的答案,\n而這問題是甚麼,這答案會是甚麼都會影想到所用的\n方法。\n\n生活莫不過是一連串的選擇,甚至在 Seth Data\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發展出一個系統能夠 80% 甚至 90% 適用的價值就已\n經相當高了,因此找到這些方法也是具有相當的價值\n。\n\n而電腦在這套決策支援系統中,正適合處理大量\n的資訊找到一定程度的模式來做參考,只是與其說是\n幫人做決策,還不如只是種參考與回饋的機制,只是\n這樣的參考行為已經可以把時間與規模做一定程度的\n放大,其經驗也不再受限於個人,甚至是從小眾到大\n眾的模糊群體與個人,甚至是不存在的本體做為一種\n參考,因為人的行為再如何都很難去預測與代為決策\n,只是透過這系統幫人降低決策所須要的成本是必要\n的。\n\n----\n\n\n1/28/04 7:36 pm,從市政府站開始寫,是因為\n同事載我從永春站開始坐起。\n\n\n\n!01/29/04. 資料採礦前言(二)\n \n \n\n[QOTD]Data Mining 實務與學術的落差是在於資料的\n產出是已經發生而不能修正,也不可能再投入\n資源去正規化,不像我們可以依理論須要去創\n造出數字。\n\n*1\n\nData Mining 在資訊學的觀點也是一種把資料轉\n換成資訊甚至是種知識的方法與工具,這想法一點也\n不特別,只是在這幾年才得以實現。\n\n能夠實現的因素有幾個原因,一個是在許多系統\n在資訊化與網路化的結果,獲得資料與傳遞、儲存資\n料的成本已經降到可以接受的地步,因為在以前這樣\n的資料至少都是 Giga Byte 的,甚至數十數百或\nTera Byte 都是很常見的,在以前不是做不到,不然\n就是必須動到國家資源才能做到,現在已經是很普遍\n的資源了。\n\n另一個資源也是電腦技術的成長,不只是資料本\n身的成本,在計算的成本也是以摩爾系數的曲線降低\n,也就是說 CPU 的運算能力,現在只要花不到 5~10\n年前成本的 5~10 分之一就可以做到,甚至這成本包\n含金錢與時間,且時間更是一個很重要的考量,因為\n資訊的價值一個很重要的就是時間性,若是預測的速\n度甚至比實際發生的時間還要更久的話,這種預測是\n一點價值也沒有。\n\n因此透過電腦運算的進步,以及平行處理的普遍\n性,本來無法實現的事現在都可以實現了,這也是為\n甚麼 Data Mining 在這幾年能夠變成一個顯學的原\n因,不然 Data Mining 所處理的問題是很早就存在\n,或者是用的演算法或數學統計基礎也是在 20~30\n年前以前就已經到某種成熟的地步了,只是在當時的\n時空背景本身是件難以做到的事。\n\n但也不少演算法也是在這近幾年才漸漸進入雛型\n或實用,只是這都不是最大的課題,因為真正實務上\n的課題比去研究 Data Mining 的技術還要困難。\n\n一個很大的技術落差是即使是現在的 Data\nMining 的技術已經成熟,但在實際上因為理論與實\n務存在很大的鴻溝,有人曾經說過,理論是把實際的\n事情給約化後然後用很複雜的算式去趨近,而這個約\n化所造成的誤差不是再好的算式能夠解決的,反而是\n用很單純很笨的方式去檢視實際,然後再重複獲得結\n果後去趨近。\n\n我在實務上就遇到類似的問題,在簡單的模型上\n,任何物品的差異都是很顯而易見的,而在數量達到\n上萬或數十萬與百萬的狀況,各種可能性都或出現,\n說要去正規化資料是不可能的,因為在實務上不可能\n再去創造出新的資料去輔助正規化與演算,也就是拿\n到的就是一個物件可能到處交集、聯集,甚至是相同\n而只是時間、外表的差異的東西,而去要求原始產生\n資料的人去做調整是幾乎不可能的,所以我們必須去\n接受這樣的資料來去做分析,即始這資料再有問題。\n\n不只是資料的產出是已經發生而不能修改,不像\n我們在學術理論可以依實際須求去創造出我們須要的\n數字,另一個問題是即使電腦資源再多,還是有限的\n問題。\n\n----\n\n\n1/29/04 9:08 am,過紅樹林站,看樣子是坐上\n遲到的班車,但最主要不是起不來或不想起來,而是\n將系統的問題解決。看樣子,那一台 Linux 也進入\n不穩定的狀態了。
使用Tiddly Wiki
\nBram\n1月3日 上午10時17分 \n\n以下整理一些最近TW\n幾個版本升級的心得,與諸位先進分享:\n\n1.升級前務必先"儲存變更",在充新整理頁面。\n\n2.若由 1.2.39 以前的版本升級至 2.0.0 beta n,\n建議先停用所有擴充套件。\n\n3.若由 1.2.39 beta n ~ 2.0.0 beta 5 升級至 2.0.0 beta 6,\n若曾更動"ViewTemplate"、"EditTemplate"\n升級前務必將其改名或刪除。 (此二者為 shadowed\ntiddlers)。\n 此因 toolbar commands 的新機制。\n\n4.再重複 step 1\n\n5.升級至 2.0.0 beta 6\n TWs 升級請參考 http://www.tiddlywiki.com/#HowToUpgrade\n\n6.若由若由 2.0.0 beta 4 以前的版本升級, 務必再重複\nstep 1。\n 此因新增 tiddler 的 "created" 屬性,\n可能造成部份套件失效,\n務必於啟用套件前再次存檔。\n\n7.升級並啟用支援 2.0.0 beta 6 之套件。\n\n此外, 使用新版的 PTW , 也適用以上更新方式,\n更新用的範本須為 PTW 版的 .html。\n最後再分享些純個人想法, 其實 TW 目前的 beta\n與正式版釋出," 意義"差別不大; 最近幾次改版,\nJeremy 總是出人意表的增添新的功能或異動既有功能。\n結論是,喜歡嘗鮮的朋友,\n千萬別錯過每一次的驚艷!\n
「2006/01/05 」\nhttp://www.islife.info/archives/000525.html\nhttp://www.wretch.cc/blog/fansss&article_id=1830761\n@@color(red):無米樂@@、@@color(red):無米樂@@\n心情放輕鬆,不要煩惱太多\n這叫做......@@color(red):無米樂@@啦\n\n!作者簡介:\n@@color(blue):顏蘭權@@\n# 英國Sheffield Hallam University, Northern Media School紀錄片製作PGD。\n英國Sheffield Hallam University, Northern Media School劇情片製作碩士。\n# 目前為自由影像工作者。\n\n@@color(blue):莊益增@@\n## 台灣大學哲學系畢。\n## 目前為自由影像工作者。\n\n!觀後感:\n\n 看到@@color(red):無米樂@@,就有一種熟悉的感覺,因為我的老家隔壁就是一大片的農田,雖然我們家並不是務農的,但是從小我就是在農田長大的,像是金寶螺,水牛...對我來說都有一種親切感,但是我看到了不只是崑濱伯(75歲)樂觀的生命態度,還看到了台灣的農業史,農田對於我而言,只是一個玩樂的地方,控土窯...但是對於農民而言,這片土地卻是他們的生命。\n 在網路上面看到台灣紀錄片要在一般的院限片上映艱辛的過程,剛好近兩年在台灣的紀錄片算是一股風潮,去年四月的@@color(#FFCC99):翻滾吧!男孩@@,五月的@@color(red):無米樂@@,希望以後可以繼續看到這類優良的紀錄片在台上映。
這是一份全新的TiddlyWiki!除了系統必備的幾則記事之外,其餘完全聽候你的差遣!因此,請給它一些基本設定吧。\n*''改檔名''\n首先,現在這份文件的檔名仍是「NewTiddlyWiki.html」,你不妨用你作業系統的檔案管理功能,把它改成你自己要取的檔名,並且為了確保所有你的心血不致白費,請確定存檔的''路徑當中不含任何東亞字元''!(例如「C:\s我的文件\s嘿嘿嘿.html」就行不通了)\n*''瀏覽器有差''\n能確保TiddlyWiki順利運作並且儲存的瀏覽器主要是Firefox、Internet Explorer以及蘋果上的Safari;IE雖然普及率高,但只限於Windows使用者;而Firefox無論在TiddlyWiki的顯示上以及運作上相容性都最高,並且是跨平台的網頁瀏覽器,因此建議你不妨花個十分鐘[[下載並且安裝|http://moztw.org/]],再用它來開啟TiddlyWiki來使用,可以讓用起來的心情變得比較好。:p\n*''開始設定''\n所有的設定內容其實也都以記事的方式儲存著,因此只要用同樣的方式編輯並儲存就可以了,並且TiddlyWiki的語法大體上也都是適用的。\n*SiteTitle、SiteSubtitle\n**主標題及副標題\n*MainMenu\n**左邊主選單,可以放常用的記事鏈結,或其他任何你想得到的東西\n*DefaultTiddlers\n**每次打開檔案時的起始畫面,也可說是「首頁」,請在其中輸入一系列的記事鏈結(也就是說,要用正確的鏈結格式)。等你都設定好以後,「[[入主你的TiddlyWiki]]」和「[[編輯語法]]」也可以拿掉,省得礙眼:P\n\n以上屬於最起碼的設定。其實TiddlyWiki可以更動、個人化、客製化的部份是很豐富的,比方說右邊的sidebar要顯示哪些按鈕、選項、下面可以顯示什麼分頁、如何調整這些空間達到自己最滿意的運用,都是可以做到的,只是這些屬於比較進階的課題了。有興趣、有時間的話,可以看看這裡:[[自訂TiddlyWiki|http://linshi.twbbs.org/usr/m/milchflasche/TiddlyWiki.html#%E8%87%AA%E8%A8%82TiddlyWiki]]\n\n有任何使用上的問題的話,可以試試這些途徑:\n*資料\n**[[MilchFlasche介紹TiddlyWiki的頁面〔華〕|http://linshi.twbbs.org/usr/m/milchflasche/TiddlyWiki.html]]\n**[[官方網站〔英〕|http://www.tiddlywiki.com/]]\n*發問、討論\n**[[一般使用討論區〔英〕|http://groups-beta.google.com/group/TiddlyWiki]]\n**[[開發者討論區〔英〕|http://groups-beta.google.com/group/TiddlyWikiDev]]\n**[[找到Wiki的新天地了…… - 微笑‧語言‧歷史〔華〕|http://linshi.twbbs.org/blog/item/MilchFlasche/52256]](下面有留言迴響區可供使用)
試用帳號: ta006245@tpe.wifly.com.tw \n試用帳號密碼:\nGAUTtko7\n\n您已成功申請一組Wifly試用帳號;系統已將這組試用帳號Email至您註冊會員時所登記的電子郵件信箱。以下是您的Wifly試用帳號資料,請您於93年12月26號起於上網帳號開通網頁進行開通;此試用帳號可使用到94年1月31日止。\n\nWifly;無線生活;就此展開! \nWifly試用帳號預定於93年12月26日可開通啟用
|我是單一表格|\n----\n||標題c\n| |!我是標題|\n|!我也是標題 | 兩邊留空置中 |\n| 左空格靠右 標題|預設是靠左|\n|表格|表格|\n|~|表格2|\n|>|bgcolor(red):表格3|\n----\n[[flickr photo|http://photo.bangdoll.idv.tw/]]\n----\n>引文第一層\n>>引文第二層\n>>>引文第三層\n\n\n<<tabs 初始設定\n右側選單 "右側選單的內容" MainMenu\n「首頁」 "一開始會顯示的記事是這些" DefaultTiddlers\n>>
[img[LENNY KRAVITZ / GREATEST HITS|http://addons.books.com.tw/G/3/0020097543.jpg]]\n藍尼克羅維茲 / 震撼精選\nLENNY KRAVITZ / GREATEST HITS\n唱片公司:EMI\n音樂類型:西洋音樂\n唱片編號:724385031625\nCD / 1 片裝\n定價:399 元\n \n \n\n 內容簡介 \n \n\n搖滾巨星 JOHN LENNON.JIMI HENDRIX 90年代最強最悍接班人 \n蟬連兩屆葛來美「最佳搖滾男藝人」\n五張專輯無限狂收音樂魅力2000年震撼全球搖滾精選完整強悍收錄:\n21世紀全新單曲搶鮮曝光\n成名代表作ARE YOU GONNA GO MY WAY.翻唱GUESS WHO名曲AMERICAN WOMAN.演藝事業高峰FLY AWAY\n\n通常精選輯會是一位藝人演藝生涯中最完美的句點,但這並不適用在90年代最驚人的音樂鬼才Leny Kravitz身上。對他來說,這張收錄14首近10年來極具代表性的搖滾經典的精選輯卻只是開幕片頭曲,專輯中的唯一全新作品"Again"就像是向世人宣告一個屬於Lenny Kravitz的新音樂世紀即將來臨。\n\nLenny過去五張專輯中的歌曲,幾乎都是由他本人一音一符寫就,同時精通數種樂器演奏的他也肩負樂手角色。他的作品總是洋溢多樣而豐富的風格,觸角探及搖滾、放克、爵士、靈魂、R&B、鄉村、雷鬼、藍調、福音、流行、電子、迷幻、和古典,同時也深受James Brown、Jimi Hendrex、Led Zeppelin和Bob Marley的影響。\n\nLenny特出優異的音樂品味與製作功力更讓他成為許多當代頂級歌手邀約助陣的對象。他曾替瑪丹娜寫過"Justify My Love";也曾和Rolling Stones主唱Mick Jagger及約翰藍儂「妻子」--Sean Lennon & Yoko Ono--合作錄音;其他合作過的對象還有Aerosmith、Al Green和Curtis Mayfield;曾跨刀為Cree Summer製作專輯,另外還製作過向KISS和Mayfield致敬的專輯。他同時也是現場演唱的好手,在各地馬不停蹄地巡迴演唱;在同行之間他也是頂尖的錄音師。\n\n這張精選輯是Lenny11年來的作品回顧,收錄歌曲從1989年標榜60年代搖滾精神的首張專輯「Let Love Lead」到全球總銷售量6百萬張、長居美國告示牌排行榜達110周的1998年狂放力作「Five」。還有替Lenny連續拿下1999、2000年兩座「葛萊美最佳搖滾男歌手」的"Fly Away"和"American Woman";而"Fly Awav"更創下同周登上Billboard三項搖滾榜冠軍的歷史紀錄。全球樂迷一致推崇的放客搖滾絕頂佳作"Are You Gonna Go My Way"、"Rock ’n’Roll is Dead"與嘗試融合電子搖滾的"Black Velveteen"亦收錄其中。"Again"更是預告二十一世紀全新專輯的暖身搶鮮單曲!\n\nLenny感性地說:「這張專輯的製作過程勾起我很多回憶。你會想起當時寫歌和錄音時的種種,同時讓人回想起工作中的點點滴滴,就像是很久沒見面的老朋友來探門拜訪。也許並不是每個細節都能記的清清楚楚,但你會覺得很窩心。」其實不只是「窩心」,更是「忠心」,Lenny強悍的搖滾力量將會讓所有樂迷更加忠心地Go HIS WAY!ROCK’N’ROLL NEVER DIE!\n \n 曲目及試聽 \n \n 曲 目 試聽\nCD1 01. Are You Gonna Go My Way \n 02. Fly Away \n 03. Rock & Roll Is Dead \n 04. Again \n 05. It Ain’t Over ’Til It’s Over \n 06. Can’t Get You off My Mind \n 07. Mr. Cab Driver \n 08. American Woman \n 09. Stand by My Woman \n 10. Always on the Run \n 11. Heaven Help \n 12. I Belong to You \n 13. Believe \n 14. Let Love Rule \n 15. Black Velveteen
!山茼蒿戶外休閒協會行程記錄:\n\n日期:2006.01.08\n集合時間:AM 09:30\n成員:楊明賢,蔡瑞貞,何嘉真,鄧崇義,蔡正信\n行程記錄:蔡正信\n交通工具:鄧崇義的汽車\n\n!行程記錄:\n瓜寮坑古道-->臭頭山-->中央尖-->慈恩嶺-->普陀山-->慈母峰-->孝子山 逆時鐘連走\n\n今天共有五人去探勘,我,瑞貞,鄧崇義,賢哥,何嘉真\n10:00的時候小鄧開車來接我,本來我以為只是要走孝子山,慈母峰,普陀山而已,因為賢哥說這樣太輕鬆,所以決定走最大圈,走中興路後上交流道,經過石碇到了平溪,在平溪國中停車。\n11:00在平溪國中對面的登山口開始走,這時候天氣陰陰的,有點小雨,這一段路沿途的風景蠻漂亮的,前面有一些住戶,有菜園,還看到已經沒人住的古牆,坍掉的老房子,\n11:30經過溪邊,在土地公廟的空地準備煮中餐,\n
「2006/01/11 8:54」\n在今天稍早舉行的 Macworld 開幕講演當中,Apple CEO Steve Jobs 向外界展示了第一批使用 Intel CPU 的麥金塔電腦。在此其中包括桌上型的 iMac 以及取代 PowerBook 的筆記型電腦 MacBook Pro。\n\niMac G5是史上第一台內含Intel的CPU的機器新型 iMac, 具有和 iMac G5 完全相同的外觀,顯示器尺寸也有 17 吋和 20 吋兩款,隨主機也搭配有紅外線遙控器。新舊版 iMac 之間最大的差異,還是在 CPU 的效能上:根據蘋果電腦所公佈的測試數據,新 iMac 所使用的 Intel 雙核 Core Duo CPU 在執行 SPECint_rate2000 和 SPECfp_rate2000 等測試程式的運算效能,要比裝在 iMac G5 當中的單核 PowerPC G5 CPU 平均快上約兩倍;此外 iMac Core Duo 上也內建了效能較佳的 ATI X1600 顯示晶片,雖然目前有人公開質疑 iMac Core Duo 在實際使用上到底會比 iMac G5 快上多少,,不過根據實際使用過 iMac Core Duo 的人士表示,新款 iMac 在整體上來說的執行效能是相當不錯的。\n\nSteve Jobs 也在會中宣佈,新款 iMac 自即日起開始接單出貨,新款 iMac 的定價分別為美金 $1299 (17 吋顯示幕) 與 $1699 (20 吋顯示幕)。另外在講演當中也公開播放了蘋果電腦為 iMac 新製作的電視廣告,目前在 Apple 網站上可以欣賞到這支頗為風趣的廣告片內容。\n\n第一台Intel雙核心的NB不是acer,不是ASUS而是Apple的MacBook Pro ,則是 Apple 用來取代 PowerBook G4 的新款 Intel CPU 筆記型電腦。這台採用新型高亮度 15.4 吋液晶顯示幕的新電腦在外觀上與 PowerBook G4 頗為類似,但是具有許多值得注意的新設計:首先這是蘋果第一台內建有 iSight 攝影機與紅外線遙控器界面的筆記型電腦,MacBook Pro 也首度採用了以磁性方式連接機身的 MagSafe 電源接頭。\n\n與 iMac Core Duo 相同的,MacBook Pro 配備有 Intel 最新型的雙核心處理器,根據蘋果的官方數據,MacBook Pro 的運算效能平均要比 PowerBook G4 快上四倍有餘。 MacBook Pro 的重量為 5.6 磅 (約 2.54 公斤),內建有可以驅動 Apple 30 吋液晶顯示幕的 ATI X1600 繪圖晶片,目前預定在二月間出貨,其定價分別為美金 $1999 元(1.67Ghz CPU)以及美金 $2499 元 (1.83Ghz CPU)。
「2006/01/12 13:34」\n我是今年的福委之一,今天確定尾牙的內容就是只有歌唱比賽而已,沒有入門禮,沒有抽獎。為什麼?因為總經理決定要在今年辦國外的員工旅遊,我會去向時報旅遊的工頭堅詢價,時間大約是四月,地點目前有香港,琉球,石垣島,一個人的預算(7000+8000=15000),分成兩批出團,中間會合。
000361他工程DAILY實績管理系統 \n02程式設計 \n@@color(blue):進領存月報總表@@ \n2006/1/5 16.00 \n\n000361他工程DAILY實績管理系統 \n02程式設計 \n@@color(blue):日度品番入庫明細表@@ \n2006/1/11 16.00 \n\n000361他工程DAILY實績管理系統 \n02程式設計 \n@@color(blue):日度品番出庫明細表@@ \n2006/1/13 16.00 \n
20060115(日)\n下午四點我和鳥妹坐捷運到芝山站,和阿魯、紅猴、阿兔會合,開車到桃園南崁的台茂購物中心6F,我們大約五點半就到了,剛好新郎和新娘也到了,不過,時間還早,所以我們就順便逛了一下台茂購物中心,逛到六點半,原本我們以為大家都不會準時到的,結果我們錯了,竟然連蔡老師和石頭都坐定位了,我們卻沒有位子了,還好新郎官幫我們新開了一桌,開始的時候,全部的燈暗,很特別喔,首先由幾位可愛的小朋友拿著仙女棒進場,最後是新郎和新娘進場,\n\n\n\n我的相機在最後大家拍大合照的時候,我準備請另外一個人幫忙拍照,結果我的相機(Panasonic DMC-FX7)竟然被他摔到地上了,當然就掛了,鏡頭縮不回去,傷心~~\n
請輸入「2006/01/19 8:48」的記事內容\n!01.不知道,不清楚\n儘管這是最常發生的狀況,絕不可以就這麼把它當標準答案放在嘴上,說多了你自己都會覺得自己笨,更何況是你的同事老闆客戶?請用『我去了解一下』或是『我馬上去問清楚』之類的回應代替,這樣不是有行動力與建設性嗎?說話的目的是要溝通,不是終止談話,你是人,不是牆。\n!02.不在我的工作範圍之內\n錯,因為工作是沒有範圍的,工作最重要的是熱誠,這個熱誠的範圍越廣,你的發展空間就越大,限制自己的人,同時也限制了自己的潛力與成就。\n!03.沒有人告訴我\n這句話通常只適用於老闆說,你說了並不是點出別人的失職,而是說明了自己的被動與狀況外。\n!04.我還在學\n那你為什麼要領薪水?所有的學習都是必要的,可是絕對不要說出來,那是你內心深處最不為知的祕密,你來工作是來付出的,不是來體驗人生的。\n!05.我的壓力很大\n誰不是呢?不要把你的問題帶到工作上,你要展現的是解決問題的能力,不是製造問題的功力。\n!06.都沒有人帶我\n你又在增加別人的工作了,我再說一遍,解決你的問題,微笑著把事情做完。\n!07.我習慣/不習慣獨立作業\n不要成為別人的問題,也不要成為別人的負擔,當有人願意撥出他的時間幫你解決問題的時候,請善用老天的恩典,並提升你與人合作的能力,當你必須孤軍奮戰的時候,挑戰自己,不要浪費時間在抱怨上。\n!08.不公平\n你的父母在撫養你長大的過程,也這麼認為過,但是他們還是接受了。\n!09.沒有表現機會\n那是下一個工作的意思嗎?\n!10.客戶很爛\n因為你值得,好嗎?不要再把老掉牙的新聞重複播放了,你的能力與客戶沒關係,最後一次,解決你的問題,展現你的能力。\n\n摘錄自ppaper/14/200601
「2006/01/19」\n這份附錄所提供的建議,可以幫助你進行低階的程式設計,並幫助你寫碼。\n當然,這些都只是一種方針而不是硬性規則。你應該視它們為一種靈感來源。記住,\n某些情況你需要加以變通或甚至打破規則。\n!設計:\n1.優雅需要付出代價\n2.先求能動,再求快\n3.記住『各個擊破』的原理\n4.區分class開發者和class使用者(使用端程式員)\n5.當你撰寫class時,試著給予明瞭易懂的名稱,減少不必要的註解\n6.你的分析和設計必須讓系統中的classes保持最少,也必須讓其public interfaces保持最少,以及讓這些classes和其他classes之間的關連性(尤其是base classes)保持最少\n7.讓所有東西盡量自動化\n8.在你撰寫class之前先寫測試碼,以便驗證你的class是否設計完備\n9.所有軟體設計上的問題,都可以透過『引入額外的概念性間接層(conceptual indirection)』加以簡化\n10.間接層(indirection)應該要有意義(和準則9 一致)\n11.\n12.\n13.\n14.\n15.\n16.\n17.\n18.\n19.\n20.\n!實作:
20060114(六)\n星期六早上九點半坐捷運到淡水捷運站,拿出會旗掛在捷運的中庭,應該很醒目吧,陸陸續續有人來參加,今天的人數有11人,還有呂大哥和Jim十點在竹圍站和我們會合,\n因為昨天晚上我有設計了一份簡單的考題,有關淡水八里的知識,等到大家都到齊後,就開始講解考題,讓大家多認識淡水和八里,之後就去老街租單車,何大哥騎自己的單車,所以這次要租10台,順便還將一天四百殺價到一天三百元,牽完單車,拍完團照,就準備出發了,\n每到一個定點就要我簽名,集滿五個就可以兌換精美小禮物喔\n\n到紅樹林\n到關渡大橋\n到孔雀蛤\n到十三行博物館\n到八里渡船頭\n回到淡水\n還單車\n去淡水老街吃晚餐\n各自回家
2006.01.12(五)\n!藝妓回憶錄:Memoirs of a Geisha:\n演員 ﹕ \n章子怡 Zhang Ziyi 【臥虎藏龍 】【 英雄】, \n渡邊謙 Ken Watanabe【 末代武士】, \n鞏俐 Gong Li【大紅燈籠高高掛】, \n楊紫瓊 Michelle Yeoh【 臥虎藏龍】\n導演 ﹕ 勞柏馬歇爾 Rob Marshall(芝加哥)\n發行廠商: 博偉\n電影分級: 保\n電影類型: 華麗愛情史詩巨構\n上映日期: 2006/1/13\n!簡 介\n本片描繪在二次世界大戰的日本,一段藝伎與富商之間的禁戀。除揭露神秘的藝伎風情,更探索她們壓抑卻瘋狂的內心世界。本片根據亞瑟高登暢銷名著《藝伎回憶錄》改編,以章子怡飾演的小百合的一生,敘述日本藝伎面對生活的無奈、時而複雜時而空虛的內心世界、甚至彼此勾心鬥角的爾虞我詐。全片以華麗的藝伎生涯,編織出一段充滿異國風情、動人心弦又感人至深的愛情故事。\n\n地點:西門町獅子林新光影城\n成員:Gene,Loius,德瑤,阿信\n!觀後感:\n可以讓我們了解藝妓的一生,雖然也許不是正確的,至少有個認識,導演的拍法中規中矩,很用心,整個場景,服裝都很講究,小百合為什麼眼睛是藍色的?是因為這樣子看起來眼睛才會水汪汪的,因為她命中帶水,所以才會給她一對美麗深邃的藍色眼睛
「2006/01/20」\n一直以來想要在blogger上面加上文章分類,但是看過了很多文章,就是無法成功,今天又來試試,發現只要下面兩篇文章結合起來就可以在blogger上面完成了\n1.[[Blogger.com 分類by Furl|http://www.oui-blog.com/reder/archives/005906.html]]\n2.[[《Blog》Blogger.com的文章分類法|http://greenlost-mud.blogspot.com/2005/02/blogbloggercom.html]]\n\n\n!1.第一步驟\n[[Blogger.com 分類by Furl|http://www.oui-blog.com/reder/archives/005906.html]]\n如果大家還記得,我在之前貼過一篇Reder Planet 藍色瑞星球: [教學]Blogger分類法,之後在greenlost-mud.blogspot.com: 《Blog》Blogger.com的文章分類法這篇更是詳細。而今天剛好看到:euyoung's soliloquy: [Blog]文章分類教學 之2-Furl用法,忽然有種大徹大悟的感覺(笑)。為什麼呢?因為其實一切根本不需要這麼麻煩的…但是偏偏之前我就是不知道Furl的好呀!那麼讓我很快的把這個想法說明,如果有哪位熱心人士願意寫成step by step 我當然樂觀其成。\n\n首先當然是要有Furl帳號跟知道怎麼使用,這個部分參考上面euyoung那篇我想就很清楚了。而用同樣的方式將文章收藏到Furl之後,請進入My Tools下面,有一個Add Furl to My Site的選單,如下圖。\n[[furl1|http://static.flickr.com/13/13792679_f3a89bc868_o.jpg]]\n請選擇Advanced settings,會出現如下列的選單。\n[[furl2|http://static.flickr.com/9/13792947_a7857c0b50_o.jpg]]\n\n上面的地方,就是最多顯示多少篇。填個999,我想要blog到一個分類超過999篇不是什麼容易的事情吧?再也不用擔心什麼delicious的25上限。\n下面則是選擇哪一個分類,其他的部分依照個人需要選擇,最後選擇按鈕"update source code",上面就是我們要的 javascript。如果版面有麼不妥的,可以自己在稍加修飾code,其餘的部分就跟之前一樣。\n\n怎麼樣?是不是方便簡單的太多了呢?XD\n\n!2.第二步驟\n[[《Blog》Blogger.com的文章分類法|http://greenlost-mud.blogspot.com/2005/02/blogbloggercom.html]]
[[自訂文章分類選單|http://blog.yam.com/ecommerce/archives/511886.html]]\n\n有部分主機提供的Blog系統,沒有文章分類的功能,只能依據文章日期來讀取文章,這樣子的方式對讀者來說並不太方便,尤其是當讀者只想看自己有興趣的主題時。\n本程式可以提供作者自己做文章分類的管理,同時可以在Blog顯示文章分類的選單,該選單並有滑鼠點選展開與收合的效果,可以讓Blog版面簡潔單純.\n\n文章分類選單示範:\n網路商店(4)\n網路商店建置考量\n架設網路商店的虛擬主機選擇\n搜尋引擎最佳化 SEO\n書籍推薦-網路商店架設與管理\nBlog小技巧(4)\n顯示氣象雲圖\n每日漫畫學英語\n隨機切換樂多Blog網頁樣式\n把中文Blog翻譯成英文網頁\n\npowered by EZeShop\n\n\n\n程式碼1:\n\n<script src="http://www.ezeshop.com.tw/sidebar/show-catalog.php" language="JavaScript" type="text/javascript">\n</script>\n\n程式碼2:\n\n<style>\ndiv.catalog {\n cursor:hand;\n font-weight:bold;\n background-color:blue;\n color:white;\n}\n\ndiv.article {\n margin-left:10;\n background-color:yellow;\n}\n</style>\n\n<script type="text/javascript">\ncatalog_title = new Array();\narticle=new Array();\n\n/* add catalog title */\ncatalog_title[0]="網路商店;1";\ncatalog_title[1]="Blog小技巧";\n\n/* add article link */\narticle[0]=new Array(); /* 宣告「網路商店」分類標題所屬的文章陣列 */\narticle[0][0]="網路商店建置考量;http://blog.yam.com/ecommerce/archives/361941.html;1"\narticle[0][1]="搜尋引擎最佳化 SEO;http://blog.yam.com/ecommerce/archives/374658.html;1"\n\narticle[1]=new Array(); /* 宣告「Blog小技巧」分類標題所屬的文章陣列 */\narticle[1][0]="顯示氣象雲圖;http://blog.yam.com/ecommerce/archives/364258.html;1"\narticle[1][1]="每日漫畫學英語;http://blog.yam.com/ecommerce/archives/365612.html;1"\narticle[1][2]="隨機切換樂多Blog網頁樣式;http://blog.yam.com/ecommerce/archives/370522.html;1"\narticle[1][3]="把中文Blog翻譯成英文網頁;http://blog.yam.com/ecommerce/archives/407725.html;1"\n\nshowCatalog(catalog_title,article);\n</script>\n程式碼1是導入所使用的函數,程式碼2則是由作者自己維護的文章分類標題及文章連結.\n\n設定分類標題:\n\ncatalog_title[0]="網路商店;1";\n程式碼2中標註 add catalog title 的部分是設定分類標題的區塊,分類標題由catalog_title陣列控制,陣列註標由0開始。\ncatalog_title的陣列元素設定值有兩個,以分號「;」隔開,第一個設定值是標題文字,上列中的「網路商店」即是該分類的標題文字;第二個設定值設定為1時,代表該分類標題預設展開,設定為0或不設定時,該標題預設為收合。\n新增分類標題時只要增加catalog_title的陣列元素,依順序給新陣列元素註標。\n\n設定文章連結:\n\narticle[1][0]="顯示氣象雲圖;http://blog.yam.com/ecommerce/archives/364258.html;1"\n程式碼2中標註 add article link 的部分是設定文章連結的區塊,文章連結由article陣列控制,陣列註標由0開始,註標有兩組,第一組註標標示出是哪一個分類標題,對應到前述分類標題陣列的註標;第二組註標則標示出該分類標題的第幾篇文章。\narticle的陣列元素設定值有三個,以分號「;」隔開,第一個設定值是文章標題,上列中的「顯示氣象雲圖」即是該文章的標題文字;第二個值設定文章的連結位址;第三個設定值設定為1時,代表點選該文章連結會開啟新的瀏覽器視窗,設定為0或不設定時,則在原視窗顯示該篇文章內容。\n新增文章時只要增加article的陣列元素,同時注意依據該文章所屬分類給第一組註標,再依文章順序給第二組註標。\n新設定的分類標題要開始設定文章連結前,要先宣告該分類標題所屬的文章陣列,如下面的例子:\n\narticle[1]=new Array();\n其中的註標即是新分類標題的註標值。\n\n改變選單風格:\n程式碼2中以<style></style>標籤包起來的部分,即是文章分類選單的外觀設定CSS,其中div.catalog是設定分類標題,div.article是設定文章連結。\n