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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DateFormat::DateFormat]]'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DateFormat::shortDateFormat]]'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
<<importTiddlers>>
!Decriptions of Params
|!Params |%0|%1|%2|%3|%4|%5|
|!Descriptions|title|url|selections|descriptions|rererence|tags|
!Lingos of command button
{{{
''text:'' Bookmarks
''tooltip:'' Bookmark this tiddlers to ...
''popupNone:'' There are no bookmark services
}}}
!List of Services
{{{
''Services:'' Del.icio.us,Digg,Google,Yahoo,Furl,HemiDemi,MyShare,Baidu,Youpus,Technorati
}}}
!Definition of Services
{{{
''HemiDemi:''<br/>[[HemiDemi|http://www.hemidemi.com/user_bookmark/new?title=%0&url=%1&quotes=%2&description=%3&via=%4&tag_string=%5]]
''MyShare:''<br/>[[MyShare|http://myshare.url.com.tw/index.php?func=newurl&from=mysharepop&url=%1&desc=%0&contents=%3]]
''Baidu:''<br/>[[Baidu|http://cang.baidu.com/do/add?iu=%1&it=%0&dc=%3]]
''Google:''<br/>[[Google|http://www.google.com/bookmarks/mark?op=add&title=%0&bkmk=%1&annotation=%3&labels=%5]]
''Yahoo:''<br/>[[Yahoo|http://tw.myweb2.search.yahoo.com/myresults/bookmarklet?t=%1&u=%0&d=%3&ei=UTF-8]]
''Del.icio.us:''<br/>[[Del.icio.us|http://del.icio.us/post?title=%0&url=%1&notes=%3&tags=%5]]
''Digg:''<br/>[[Digg|http://digg.com/submit?phase=2&url=%0&title=%1&bodytext=%3]]
''Technorati:''<br/>[[Technorati|http://technorati.com/faves?add=%1&title=%0]]
''Furl:''<br/>[[Furl|http://www.furl.net/storeIt.jsp?t=%0&u=%1&r=%4&c=%2&p=1]]
''Youpush:''<br/>[[Youpush|http://www.youpush.net/submit.php?url=%1]]
}}}
[[最新消息]]
[[關於我|關於我]]
[[最新消息|最新消息]]
<<slider chkSlider  個人著作 個人著作 '個人著作'>>
<<slider chkSlider  課程相關 課程相關 '課程相關'>>
<<slider chkSlider  演講資訊 演講資訊 '演講資訊'>>
[[學生作品|學生作品]]
[[討論區|http://hftsai.freebbs.tw/index.php]]
<!--{{{-->
<!-- Borrowed -->
<script type="text/javascript" src="plugins/BigThemePack.js"></script>
<script type="text/javascript" src="plugins/NestedSlidersPlugin.js"></script>
<!--}}}-->
<!--{{{-->
<!-- PTW -->
<script type="text/javascript" src="plugins/ArchivedTimeline.js"></script>
<script type="text/javascript" src="plugins/ArchivedTimeline.zh-Hant.js"></script>
<script type="text/javascript" src="plugins/BreadCrumbs2.js"></script>
<script type="text/javascript" src="plugins/BookrmarksCommand.js"></script>
<script type="text/javascript" src="plugins/ListExtensionsCode.js"></script>
<script type="text/javascript" src="plugins/TiddlyCalendar.js"></script>
<script type="text/javascript" src="plugins/TiddlyCalendar.zh-Hant.js"></script>
<script type="text/javascript" src="plugins/XMLReader2.js"></script>
<!--}}}-->
<<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
Last Updated: 
Copyright © 
<<rssfeed asHtml "http://sourceforge.net/export/rss2_projfiles.php?group_id=150646">>
<!--{{{-->
<div id='header' class='header'>
<div class='headerShadow'>
<span class='searchBar' macro='search'></span>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>

</div>
<div id='mainMenu'>
<span refresh='content' tiddler='MainMenu'></span>
<span id='noticeBoard' refresh='content' tiddler='NoticeBoard'></span>

</div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='MochaSideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<div id='contentFooter' refresh='content' tiddler='contentFooter'></div>
<!--}}}-->
/***

''This plugin was previously called StyleChooser.''

|Name|SelectThemePlugin|
|Created by|SimonBaird and SaqImtiaz|
|Source|http://tw.lewcid.org/#SelectThemePlugin|
|Version|1.2.5|
|CoreVersion:|~TW2.x|
!Description
*An alternative style switcher, can be used to switch just stylesheets and/or pagetemplates, or a combination of both (a theme)
*you can add your own stylesheets and pagetemplates, or use a ThemePack, like BigThemePack.

!Usage
* You have to have fetch or create some styleSheets and pageTemplates to use this plugin.
**You can either get a ThemePack like BigThemePack which automatically adds themes to ThemeSelect.
**or create tiddlers with styleSheets and pageTemplates and tag them styleSheets and pageTemplates respectively.
* Put {{{<<themeSelect style 'Select theme'>>}}} in your SideBarOptions.

!Creating Theme Packs
*You can create your own theme pack if you like. Instructions can be found [[here.|CreateThemePack]]

!History
*20-Dec-06, v 1.2.5, fixed horizontal rules for IE (thanks Clint), compatibility fix with HoverMenuPlugin
* 08-Sept-06, v1.2.4, fixed bug with TW2.1
* 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).
* 28-Apr-o6, v1.2.2, fixed bug with opening TW after deleting themepacks. (Saq)
* 26-Apr-06, v1.2.1, more code optimization, dropdowns now updated on the fly. (Saq)
* 25-Apr-06, v1.2.0, added 3rd party ThemePack support, and made various other improvements.(Simon & Saq)
* 24-Apr-06, v1.1.0, added: no styles and default styles options,<<br>>support for ThemePack, support for tag variations(Saq)
* 21-Apr-06, v1.0.0, Reworked dropdowns to include option for pagetemplates (Saq)
* 21-Apr-06, v0.9.0, Rewrote and added Saq's lovely dropdown select (Simon)
* 20-Apr-06, v0.0.1, Basic switcher working (Simon)

!Examples
|!Source|!Output|h
|{{{<<themeSelect style>>}}} for a dropdown with StyleSheets|<<themeSelect style>>|
|{{{<<themeSelect pagetemplate>>}}} for a dropdown with PageTemplates|<<themeSelect pagetemplate>>|
|{{{<<themeSelect style customlabel>>}}} to use a customlabel|<<themeSelect style customlabel>>|
* When applying a stylesheet or template, it also looks for a template or stylesheet respectively based on naming convention, eg MyFunkyStyleSheet and MyFunkyPageTemplate.

!Notes
* See also http://www.tiddlytools.com/#SelectStyleSheetPlugin for a more feature-rich style sheet switcher

! Ideas
* do ViewTemplate also?
* Pretty up the [x] bit

!Code
***/
//{{{
// for compatibility with TW <2.0.9
if (!Array.prototype.contains)
   Array.prototype.contains = function(item)
   {
    return this.find(item) != null;
    };

// for compatibility with TW <2.0.9
if (!Array.prototype.containsAny)
   Array.prototype.containsAny = function(items)
   {
    for(var i=0; i<items.length; i++)
        if (this.contains(items[i]))
            return true;
    return false;
    };
//}}}

//{{{
version.extensions.SelectTheme = { major: 1, minor: 2, revision: 5, date: new Date(2006,12,20),
	source: "http://tw.lewcid.org/#SelectThemePlugin"
};

config.SelectTheme = {
	things: {
		style: {
			tag:        ["StyleSheets","StyleSheet","styleSheet","styleSheets","stylesheet","stylesheets"],
			theDefault: "StyleSheet",
			suffix:     "StyleSheet",
			notify:     refreshStyles,
			cookie:     "txtStyleSheet",
			otherThing: "pagetemplate",
			label:      "Choose StyleSheet: ",
			tooltip:     "Choose a StyleSheet",
			caseNone: { text:"None", title:"NoStyleSheet"},
                        caseDefault: { text:"Default", title:"StyleSheet" }

		},
		pagetemplate: {
			tag:        ["PageTemplates","PageTemplate","pageTemplates","pageTemplate","pagetemplate","pagetemplates"],
			theDefault: "PageTemplate",
			suffix:     "PageTemplate",
			notify:     refreshPageTemplate,
			cookie:     "txtPageTemplate",
			otherThing: "style",
			label: "Choose PageTemplate: ",
			tooltip:    "Choose a PageTemplate",
			caseNone: { text:"None", title:"NoPageTemplate"},
                        caseDefault: { text:"Default", title:"PageTemplate" }
		}

	},

                         specialCases: ["caseNone","caseDefault"]

};

TiddlyWiki.prototype.removeNotification = function(title,fn) {
	for (var i=0;i<this.namedNotifications.length;i++)
		if((this.namedNotifications[i].name == title) && (this.namedNotifications[i].notify == fn))
			this.namedNotifications.splice(i,1); // counting on it only being there once
}


var things = config.SelectTheme.things;
var specialCases=config.SelectTheme.specialCases;

for (var zz in things) {
	// make sure we have a value
	if (!config.options[things[zz].cookie])
		config.options[things[zz].cookie] = things[zz].theDefault;

	// remove core notify
	store.removeNotification(things[zz].theDefault,things[zz].notify);

	// and add our one
	store.addNotification(config.options[things[zz].cookie],things[zz].notify);

}

//checks to see if a tiddler exists in store or as a shadow.
TiddlyWiki.prototype.isTiddler= function (title)
        {return store.tiddlerExists(title) || store.isShadowTiddler(title)}

//hijack core function & make sure template exists
window.applyPageTemplate_themeSelect=window.applyPageTemplate;
window.applyPageTemplate=function(title){
           if(!store.isTiddler(title))
                       {title = things.pagetemplate.theDefault;}
           applyPageTemplate_themeSelect(title);
 }

TiddlyWiki.prototype.makeActiveTheme = function(what,title,alsoCheckOtherThing) {

	var thing = things[what];
        if (!store.isTiddler(title))
		title = thing.theDefault;

	var oldTitle = config.options[thing.cookie];

	if (what == "style") {
		// remove old style element from DOM
		var oldStyleElement = document.getElementById(oldTitle);
		if (oldStyleElement) oldStyleElement.parentNode.removeChild(oldStyleElement);
	}

	store.removeNotification(oldTitle,thing.notify);
	store.addNotification(title,thing.notify);
	store.notify(title);

	config.options[thing.cookie] = title;
	saveOptionCookie(thing.cookie);
	if (alsoCheckOtherThing)
		this.makeActiveTheme(thing.otherThing,
				title.replace(new RegExp(thing.suffix+"$"),"") + things[thing.otherThing].suffix,
						false);
};

if (config.hoverMenu)
    {
    old_hovermenu_makeActiveTheme = TiddlyWiki.prototype.makeActiveTheme;
    TiddlyWiki.prototype.makeActiveTheme = function(what,title,alsoCheckOtherThing)
        {
         old_hovermenu_makeActiveTheme.apply(this,arguments);
         if (!alsoCheckOtherThing)
                    config.hoverMenu.handler();
        };
    }

config.shadowTiddlers.NoStyleSheet = config.shadowTiddlers.StyleSheet;
config.shadowTiddlers.NoPageTemplate = config.shadowTiddlers.PageTemplate;


function switchTheme(e){
         if (!e) var e = window.event;
         var theTarget = resolveTarget(e);
         var theLink = theTarget;
         var switchTo= theLink.getAttribute("switchTo");
         var mode = theLink.getAttribute("mode");
         if ((config.options[things[mode].cookie])!=switchTo)
               {store.makeActiveTheme(mode,switchTo,true);};
         return(false);
}


config.macros.themeSelect={};
config.macros.themeSelect.dropdownchar = (document.all?"▼":"▾");
config.macros.themeSelect.handler = function(place,macroName,params,wikifier,paramString,tiddler){
         var arrow = config.macros.themeSelect.dropdownchar;
         var mode = params[0];
         var label = (params[1]?params[1]:things[mode].label) + arrow;
         var cookie = (config.options[things[mode].cookie]);

         var onclick = function(e)
             { if (!e) var e = window.event;
             var popup = Popup.create(this);

             var tagged=[];

	     store.forEachTiddler(function(title,tiddler) {
                  if ((tiddler.tags).containsAny(things[mode].tag)){
					tagged.push(tiddler.title);}
	     });

             //integrate ThemePacks
	     if (config.themes) {
		     // see what themes have been loaded...
		     for (var i=0;i<config.themes.length;i++) {
			    // see if there is one
			    var lookForThis = config.themes[i] + things[mode].suffix;
			    if (store.isShadowTiddler(lookForThis)) {
				   tagged.pushUnique(lookForThis);
			    }
		    }
		     tagged = tagged.sort();
             }

             //this function used later to create buttons
             var createThemeButton = function(switchTo){
                        var theButton = createTiddlyButton(createTiddlyElement(popup,"li"),text,null,switchTheme,useClass);
                        theButton.setAttribute("switchTo",switchTo);
                        theButton.setAttribute("mode",mode);};

            //create Buttons for None(shadow styles) & Default (StyleSheet)
                     // Default button is not created if StyleSheet doesnt exist.
             for(var t=0; t<specialCases.length; t++){
             var special = specialCases[t];
             var text = things[mode][special].text;
             var useClass = "tiddlyLinkExisting";   //redundant, optimize!
             if ((things[mode][special].title==cookie)||(special=="caseNone"&&!store.isTiddler(cookie)))
                      {text+= " [x]";
                      useClass = "currentlySelected";}
             if (!((special=="caseDefault")&&(!store.getTiddler(things[mode][special].title))))
             createThemeButton(things[mode][special].title);     }

             //insert horizontal rule
             //createTiddlyElement(createTiddlyElement(popup,"li"),"hr");
             createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");

             //create buttons for all other stylesheet tiddlers
             for(var t=0; t<tagged.length; t++)
                     { var useClass = "tiddlyLinkExisting";
                       var text = (tagged[t]).replace((things[mode].suffix),"");
                     if (tagged[t]==(cookie) )
                           {text+=" [x]"; useClass="currentlySelected";}
                     if ((tagged[t]!= (things[mode].theDefault))&&tagged[t]!= (things[mode].none))
                        {createThemeButton(tagged[t]);}}
             Popup.show(popup,false);
             e.cancelBubble = true;
             if (e.stopPropagation)
                e.stopPropagation();
             return(false);
             };

        var createdropperButton = function(place){
           var sp = createTiddlyElement(place,"span",null,"ThemeChooserButton");
           var theDropDownBtn = createTiddlyButton(sp,label,things[mode].tooltip,onclick);
        };

        createdropperButton(place);
};


setStylesheet(".popup li a.currentlySelected {background:#ccc;color:black;font-weight:bold;}","currentlySelectedStyle"); // could do better probably...

config.macros.layoutChooser=config.macros.themeSelect;

//shadow tiddler to hold instructions for creating ThemePacks
config.shadowTiddlers.ThemePack='See http://simonbaird.com/mptw/#CreateThemePack'; 

config.macros.applyTheme = {handler: function (place,macroName,params,wikifier,paramString,tiddler) {
	var theme = params[0];
	var label = params[1]?params[1]:'Apply theme "' + theme + '"';
        var tooltip = 'Apply the "'+theme+'" theme to this TiddlyWiki';
	createTiddlyButton(place,label,tooltip,function() {
		store.makeActiveTheme("style",theme+things.style.suffix,true);
	});
}};


// this means you can put #theme:ThemeName in url. suggested by Clint
config.paramifiers.theme = {
	onstart: function(themeName) {
		store.makeActiveTheme("style",themeName+config.SelectTheme.things.style.suffix,true);
	}
};

//}}}
<<slider chkOptionsPanel01 [[SideBarOptions##Panel01]] 輔助功能 '輔助功能'>><<slider chkOptionsPanel02 [[SideBarOptions##Panel02]] 進階功能 '進階功能'>><<slider chkOptionsPanel03 [[SideBarOptions##Panel03]] 管理面板 '管理面板'>>
/%
!OptionPanels
!Panel01
<<search>>
<<closeAll>>
<<permaview>>
<<newTiddler>>
<<newJournal YYYY0MM0DD>>
<<saveChanges>>
<<slider chkSliderOptionsPanel OptionsPanel 偏好設定 '變更 TiddlyWiki 選項'>>
!Panel02
[[匯入文章|ImportTiddlers]]
[[套件管理|PluginManager]]
[[外部 js|自外部 .js 載入之套件]]
!Panel03
<<tabs txtLookAndFeel
 網站設定 '主標題、副標題' [[SideBarOptions##Panel03_01]]
 選單 '主選單、副選單' [[SideBarOptions##Panel03_02]]
 樣式 '主樣式、更換樣式' [[SideBarOptions##Panel03_03]]
 >>
!!Panel03_01
[[主標題|SiteTitle]]
[[ 副標題|SiteSubtitle]]
[[首頁|DefaultTiddlers]]
[[網址|SiteUrl]]
!!Panel03_02
[[主選單|MainMenu]]
[[副選單|SideBarOptions]]
[[資料櫃|SideBarTabs]]
!!Panel03_03
[[主樣式|StyleSheet]]
[[樣式顏色|StyleSheetColors]]
[[樣式版面|StyleSheetLayout]]
[[列印樣式|StyleSheetPrint]]
[[顏色配置|ColorPalette]]
<<themeSelect style '選擇樣式 '>>
!End of Sections
%/
Hui Fang
e-mail :hftsai@dragon.nchu.edu.tw
phone:04 - 22840880 #206
蔡蕙芳個人教學網站
/*{{{*/
/*Mocha TiddlyWiki Theme*/
/*Version 1.0*/
/*Design and CSS originally by Anthonyy, ported to TiddlyWiki by Saq Imtiaz.*/
/*}}}*/
/*{{{*/
 #contentWrapper{
margin: 0 3.4em;

			font-family: Lucida Grande, Tahoma, Arial, Helvetica, sans-serif; /* Lucida Grande for the Macs, Tahoma for the PCs */
font-size: 11px;
			line-height: 1.6em;
			color: #666;
}

.header {
 background: #fff; 
			padding-top: 10px;
			clear: both;

border-bottom: 4px solid #948979;
}

.headerShadow {	padding: 2.6em 0em 0.5em 0em; }

.siteTitle {
			font-family: 'Trebuchet MS' sans-serif;
			font-weight: bold;
			font-size: 32px;
			color: #CC6633;
			margin-bottom: 30px;
			background-color: #FFF;
}

.siteTitle a{color:#CC6633; border-bottom:1px dotted #cc6633;}

.siteSubtitle {
	font-size: 1.0em;
        display: block;
        margin: .5em 3em; color: #999999;
}

#mainMenu {
position:relative;
float:left;
margin-bottom:1em;
display:inline;
text-align:left;
padding: 2em 0.5em 0.5em 0em;
width:13em;
font-size:1em;
}

#sidebar{
position:relative;
float:right;
margin-bottom:1em;
padding-top:2em;
display:inline;

}

#displayArea {
	margin: 0em 17em 0em 15em;
}

.tagClear {clear:none;}

#contentFooter {background:#575352; color:#BFB6B3; clear: both; padding: 0.5em 1em;}

		
		#contentFooter a {
			color: #BFB6B3;
			border-bottom: 1px dotted #BFB6B3;
		}
		
		#contentFooter a:hover {
			color: #FFFFFF;
			background-color:#575352;
		}

		a,#sidebarOptions .sliderPanel a{
			color:#CC6714;
			text-decoration: none;
		}

		a:hover,#sidebarOptions .sliderPanel a:hover {
			color:#CC6714;
			background-color: #F5F5F5; 
		}

.viewer .button, .editorFooter .button{
	color: #666;
	border: 1px solid #CC6714;
}

.viewer .button:hover, 
.editorFooter .button:hover{
	color: #fff;
	background: #CC6714;
	border-color: #CC6714;
}

.viewer .button:active, .viewer .highlight,.editorFooter .button:active, .editorFooter .highlight{color:#fff; background:#575352;border-color:#575352;}


		#mainMenu a {
			display: block;
			padding: 5px;
			border-bottom: 1px solid #CCC;
		}

		#mainMenu a:link, #navlist a:visited {
			color:#CC6714;
			text-decoration: none;
		}
		
		#mainMenu a:hover {
			background: #000000 url(arrow.gif) 96% 50% no-repeat;
			background-color: #F5F5F5;
			color:#CC6714;
		}
		
		#mainMenu a:hover, #mainMenu a:active, #mainMenu .highlight, #mainMenu .marked {
			background: #000000 url(arrow.gif) 96% 50% no-repeat;
			background-color: #F5F5F5;
			color:#CC6714;
		}

#mainMenu span {position:relative;}

#mainMenu br {display:none;}

#sidebarOptions a {
			color:#999;
			text-decoration: none;
		}

#sidebarOptions	a:hover {
			color:#4F4B45;
			background-color: #F5F5F5;border:1px solid #fff;
		}

#sidebarOptions {line-height:1.4em;}

		.tiddler {
			padding-bottom: 40px;
			border-bottom: 1px solid #DDDDDD; 
		}
.title {color:#CC6633;}
.subtitle, .subtitle a { color: #999999; font-size: 1.0em;margin:0.2em;}
.shadow .title{color:#948979;}

.selected .toolbar a {color:#999999;}
.selected .toolbar a:hover {color:#4F4B45; background:transparent;border:1px solid #fff;}

.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active{color:#4F4B45; background:transparent;border:1px solid #fff;}

 .listLink,#sidebarTabs .tabContents {line-height:1.5em;}
 .listTitle {color:#888;}

#sidebarTabs .tabContents {background:#fff;}
#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button{color:#999;}
#sidebarTabs .tabContents .tiddlyLink:hover,#sidebarTabs .tabContents .button:hover{color:#4F4B45;background:#fff}

#sidebarTabs .tabContents .button:hover, #sidebarTabs .tabContents .highlight, #sidebarTabs .tabContents .marked, #sidebarTabs .tabContents a.button:active{color:#4F4B45;background:#fff}

.tabSelected{color:#fff; background:#948979;}

.tabUnselected {
 background: #ccc;
}

 .tabSelected, .tabSelected:hover {
 color: #fff;
 background: #948979;
 border: solid 1px #948979;
padding-bottom:1px;
}

 .tabUnselected {
 color: #999;
 background: #eee;
 border: solid 1px #ccc;
padding-bottom:1px;
}

#sidebarTabs .tabUnselected { border-bottom: none;padding-bottom:3px;}
#sidebarTabs .tabSelected{padding-bottom:3px;}


#sidebarTabs .tabUnselected:hover { border-bottom: none;padding-bottom:3px;color:#4F4B45}

#sidebarOptions .sliderPanel {
	background: #fff; border:none;
	font-size: .9em;
}
#sidebarOptions .sliderPanel a {font-weight:normal;}
#sidebarOptions .sliderPanel input {border:1px solid #999;}

.viewer blockquote {
	border-left: 3px solid #948979;
}

.viewer table {
	border: 2px solid [[ColorPalette::TertiaryDark]];
}

.viewer th, thead td {
	background: #948979;
	border: 1px solid #948979;
	color: #fff;
}
.viewer pre {
	border: 1px solid #948979;
	background: #f5f5f5;
}

.viewer code {
	color: #2F2A29;
}

.viewer hr {
	border-top: dashed 1px #948979;
}

.editor input {
	border: 1px solid #948979;
}

.editor textarea {
	border: 1px solid #948979;
}

.popup {
	background: #948979;
	border: 1px solid #948979;
}

.popup li.disabled {
	color: #000;
}

.popup li a, .popup li a:visited {
	color: #eee;
	border: none;
}

.popup li a:hover {
	background: #575352;
	color: #fff;
	border: none;
}

.tagging, .tagged {
	border: 1px solid #eee;
	background-color: #F7F7F7;
}

.selected .tagging, .selected .tagged {
	background-color: #eee;
	border: 1px solid #BFBAB3;
}

 .tagging .listTitle, .tagged .listTitle {
	color: #bbb;
}

.selected .tagging .listTitle, .selected .tagged .listTitle {
	color: #666; 
}

.tagging .button, .tagged .button {
		color:#aaa;
}
.selected .tagging .button, .selected .tagged .button {
		color:#4F4B45;
}

.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}

.tagging .button:hover, .tagged .button:hover, .tagging .button:active, .tagged .button:active {
		border: none; background:transparent; text-decoration:underline; color:#000;
}

h1,h2,h3,h4,h5 { color: #666; background: transparent; padding-bottom:2px; font-family: Arial, Helvetica, sans-serif; }
h1 {font-size:18px;}
h2 {font-size:16px;}
h3 {font-size: 14px;}

#messageArea {
	border: 4px solid #948979;
	background: #f5f5f5;
	color: #999;
        font-size:90%;
}

#messageArea a:hover { background:#f5f5f5;}

#messageArea .button{
	color: #666;
	border: 1px solid #CC6714;
}

#messageArea .button:hover {
	color: #fff;
	background: #948979;
	border-color: #948979;
}


* html .viewer pre {
	margin-left: 0em;
}

* html .editor textarea, * html .editor input {
	width: 98%;
}

.searchBar {float:right;font-size: 1.0em;}
.searchBar .button {color:#999;display:block;}
.searchBar .button:hover {border:1px solid #fff;color:#4F4B45;}
.searchBar input {			
                        background-color: #FFF;
			color: #999999;
			border: 1px solid #CCC;		margin-right:3px;
}

#sidebarOptions .button:active, #sidebarOptions .highlight {background:#F5F5F5;}

*html #contentFooter { padding:0.25em 1em 0.5em 1em;}

#noticeBoard {font-size: 0.9em; color:#999; position:relative;display:block;background:#fff; clear: both; margin-right:0.5em; margin-top:60px; padding:5px; border-bottom: 1px dotted #CCC; border-top: 1px dotted #CCC;}
#mainMenu #noticeBoard a,#mainMenu #noticeBoard .tiddlyLink {display:inline;border:none;padding:5px 2px;color:#DF9153 }
#noticeBoard a:hover {border:none;}	

#noticeBoard br {display:inline;}

#mainMenu #noticeBoard  .button{
	color: #666;
	border: 1px solid #DF9153;padding:2px;
}

#mainMenu #noticeBoard  .button:hover{
	color: #fff;
	background: #DF9153;
	border-color: #DF9153;
}

.searchbar {position:relative; width:11em;}
.searchbar .button{margin:0; width:11em;}
#header {display:inline-block;}
/*}}}*/
<<tCalendar lastModified>>
[[TiddlyWiki|http://www.tiddlywiki.com]] © Osmosoft
//{{{
//This ensures that the footer sticks to the bottom of the screen when there are no tiddlers open. If that is not desirable, it can be deleted.
function setFooter() {
         if (document.getElementById && document.getElementById("contentFooter") ) {
            var windowHeight=findWindowHeight();
         if (windowHeight>0) {
            var contentHeight= document.getElementById('mainMenu').offsetHeight + document.getElementById("header").offsetHeight + document.getElementById("contentFooter").offsetHeight;
            var menu= document.getElementById('mainMenu');
            if (windowHeight-(contentHeight)>=0) {
               menu.style.position='relative';
               menu.style.marginBottom=(windowHeight-(contentHeight))+'px';
               }
            else {
                 menu.style.position='';
                 menu.style.marginBottom='';
                 }
            }
         }
}
window.onresize = function() {
  setFooter();
}

Story.prototype.refreshTiddler_footerhack=Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function (title,template,force)
{    
var theTiddler = Story.prototype.refreshTiddler_footerhack.apply(this,arguments);
setFooter();
   return theTiddler;}

//}}}
!!!<<slider chkSlider  刑法 刑法 '刑法'>>
!!!<<slider chkSlider  資訊刑法\電腦犯罪 資訊刑法\電腦犯罪 '資訊刑法\電腦犯罪'>>
!!![[經濟刑法|經濟刑法]]
!!![[比較刑法|比較法學]]
!!![[學位論文|學位論文]]
[[期刊論文|期刊論文]]
[[網路論文|網路論文]]
[[刑罰論|刑罰論]]
!(一)上課講義
>1. 刑法分則之第一次上課資料 [[download|downloads/course/new/sp.doc]]
>2.刑法分則上課補充講義(一)[[download|downloads/course/special/add -1.doc]]
>3.刑法分則上課補充講義(二)[[download|downloads/course/special/add -2.doc]]
>4.刑法分則上課補充講義(三)[[download|downloads/course/special/add -3.doc]]
>5.刑法分則上課補充講義(四)[[download|downloads/course/special/add -4.doc]]
>6.濫用自己卡片之判決 [[download|downloads/course/special/add -5.doc]]
>7.強盜、恐嚇取財得利罪 [[download|downloads/course/special/add -6.doc]]
>8.毀損罪之實務見解 [[download|downloads/course/special/add -7.doc]]
>9.牙保  [[download|downloads/course/special/add -8.doc]]

>*第一次刑法分則作業 [[download|downloads/course/special/1st_HW.doc]]

>刑法分則上課補充資料 :
>>過失致死罪與不能安全駕駛罪 [[download|downloads/course/special/add-3.doc]]
>>遺棄罪(安養院案例) [[download|downloads/course/special/add-4.doc]]
>>殺人罪、遺棄罪、肇事逃逸罪之判決 [[download|downloads/course/special/add-5.doc]]
>>加重竊盜罪與準強盜罪之實務見解 [[download|downloads/course/special/add-6.doc]]

!(二)實例演練
>姦淫、猥褻幼年又女罪之實務見解 [[download|downloads/course/special/04.pdf]]
!(三)判決資料
>公務員圖利有關判決(一) [[download|downloads/course/special/01.pdf]]
>公務員圖利有關判決(二) [[download|downloads/course/special/02.pdf]]
>肇事逃逸罪之判決 [[download|downloads/course/special/03.pdf]]
>與公務侵占、業務侵占有關之判決 [[download|downloads/course/special/05.pdf]]
>與背信罪有關之判決 [[download|downloads/course/special/04.pdf]]

!(四)立法資料
>刑法立法資料 
>大清刑律 [[download|downloads/course/library/1.pdf]]

>刑事法規類
>立院三讀刑法暨刑法施行法部分修正對照表 [[download|downloads/course/library/2.doc]]
>910816刑法部分修正草案條文對照表 [[download|downloads/course/library/3.doc]]
>台灣刑事法學會版刑法總則修正草案 [[download|downloads/course/library/4.doc]]

!(五)考題彙編
>各校歷屆法研所試題 [[download|downloads/course/text/research-institute.pdf]]
>犯罪學歷屆試題 [[download|downloads/course/text/crime.pdf]]
!(一)上課講義
>1. 專題一 刑法的基本概念 [[download|downloads/article/Criminal Law/subject 1.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:14,79
>2. 專題二 行為理論 [[download|downloads/article/Criminal Law/subject 2.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:13,868
>3. 專題三 因果關係與客觀歸責 [[download|downloads/article/Criminal Law/subject 3.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:8,777
>4. 專題四 故意與過失 [[download|downloads/article/Criminal Law/subject 4.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:27,208
>5. 專題五 違法性 [[download|downloads/article/Criminal Law/subject 5.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:6,811
>6. 專題六 罪責 [[download|downloads/article/Criminal Law/subject 6.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:9,579
>7. 專題七 錯誤理論 [[download|downloads/article/Criminal Law/subject 7.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:5,163
>8. 專題八 既遂與未遂 [[download|downloads/article/Criminal Law/subject 8.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:17,294
>9. 專題九 正犯與共犯 [[download|downloads/article/Criminal Law/subject 9.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:24,755
>10.專題十 競合理論 [[download|downloads/article/Criminal Law/subject 10.pdf]]
>作者:蔡蕙芳 出版年月:2006.9 字數:12,253
>*第一次刑法總則作業 [[download|downloads/article/Criminal Law/1st_HW.doc]]
>*第二次刑法總則因果關係作業 [[download|downloads/article/Criminal Law/2nd_HW.doc]]
>*刑事重要判決摘錄-因果關係與客觀歸責理論 [[download|downloads/article/Criminal Law/3nd.doc]]
>*刑法競合理論中之行為數判斷  [[download|downloads/article/Criminal   Conclusion/Microsoft...pdf]]
>作者:蔡惠芳 出版年月:2010.3 字數:67,849

!(二)實例演練
>1. 刑法總則實例研習-因果關係之條件理論與客觀歸責理論 [[download|downloads/article/examples/01.pdf]]
>作者:蔡蕙芳 出版年月 :2005.7 字數:6,849
>2. 刑法總則實例研習-故意犯罪(一)[[download|downloads/article/examples/02.pdf]]
>作者:蔡蕙芳 出版年月 :2005.7 字數:9,419
>3. 刑法總則實例研習-故意犯罪(二)客體錯誤與打擊錯誤 [[download|downloads/article/examples/03.pdf]]
>作者:蔡蕙芳 出版年月 :2005.8 字數:12,337
>4. 刑法總則實例研習-故意犯罪( 三)客觀處罰要件 [[download|downloads/article/examples/04.pdf]]
>作者:蔡蕙芳 出版年月 :2005.11 字數:9,042
>5. 刑法總則實例研習-故意犯罪( 四)欠缺正當防衛要件 [[download|downloads/article/examples/05.pdf]]
>作者:蔡蕙芳 出版年月 :2006,5 字數:12,814

!(三)判決資料
>構成要件錯誤與禁止錯誤之判決 [[download|downloads/course/general/1.pdf]]
>與責任能力有關之實務見解與判決 [[download|downloads/course/general/2.pdf]]
>與過失有關之實務判決 [[download|downloads/course/general/3.pdf]]
>與競合有關之實務判決 [[download|downloads/course/general/4.pdf]]

!(四)立法資料
>刑法立法資料 
>大清刑律 [[download|downloads/course/library/1.pdf]]

>刑事法規類
>立院三讀刑法暨刑法施行法部分修正對照表 [[download|downloads/course/library/2.doc]]
>910816刑法部分修正草案條文對照表 [[download|downloads/course/library/3.doc]]
>台灣刑事法學會版刑法總則修正草案 [[download|downloads/course/library/4.doc]]

!(五)考題彙編
>各校歷屆法研所試題 [[download|downloads/course/text/research-institute.pdf]]
>犯罪學歷屆試題 [[download|downloads/course/text/crime.pdf]]
 1. 2005年刑法修正之介紹-刑與緩刑 [[downloads|downloads/article/Criminal%20Law_punish/a1.pdf]]
作者:蔡蕙芳 登載: 出版年月 :2005.3 字數:33,862
1.從危險理論論不能安全駕駛罪 [[Download|downloads/article/thesis/1-1.pdf]]
>作者:蔡蕙芳 登載:國立台灣大學法律研究所博士論文
>日期:2000.6 字數:158,129
>摘要:危險的概念與其判斷 、不能安全駕駛罪的規定檢討

2. 電腦犯罪和刑事立法的課題 [[Download|downloads/article/thesis/1-2.pdf]]
>作者:蔡蕙芳 登載:國立台灣大學法律研究所碩士論文、
>月旦法學雜誌創刊號(第0期)頁103-137 日期:1994.6 字數:6,209
>摘要:電腦犯罪如何適用刑法與當刑法存在處罰漏洞時
>應如何立法以補其漏洞 
!!經濟刑法
>行騙台灣 : 財法四 石厚瑢 何彥勳  [[word|downloads/portfolio/port1-1.doc]]  [[PowerPoint|downloads/portfolio/port1-2.ppt]]
>保險詐欺 : 以理性選擇模式分析殺人詐領保險金-李政萱、劉徽源、林怡吟、李俞萱 [[word|downloads/portfolio/port2-1]]  [[PowerPoint|downloads/portfolio/port2-2.ppt]]
>淺談保險詐欺犯罪 : 梁郁翎 [[word|downloads/portfolio/port3-1.doc]]  [[PowerPoint|downloads/portfolio/port3-2.ppt]]
>公司犯罪-從訊碟案分析我國內線交易法制  : 財法二 余席文 財法四 宋紹庭 王象詮 [[word|downloads/portfolio/port4-1.doc]]  [[PowerPoint|downloads/portfolio/port4-2.ppt]]
>內線交易等金融犯罪之犯罪探討 - 蕃薯  [[PowerPoint|downloads/portfolio/port5.ppt]]
[[刑法競合理論中之行為數之判斷|downloads/article/Criminal   Conclusion/Microsoft...pdf]]

[[加重竊盜罪與準強盜罪之實務見解|downloads/course/special/add-6.doc]]

[[網路時代之新型態侵權責任-著作權法第87條第1項第7款引誘侵權責任|downloads/course/info/3.pdf]]

[[刑事重要判決摘錄-因果關係與客觀歸責理論 |downloads/course/general/3nd.doc]]

刑法分則上課補充資料 :
[[過失致死罪與不能安全駕駛罪 |downloads/course/special/add-3.doc]]
[[遺棄罪(安養院案例)|downloads/course/special/add-4.doc]]
[[殺人罪、遺棄罪、肇事逃逸罪之判決|downloads/course/special/add-5.doc]]
1.傷害致死罪之適用-最高法院判例與判決之評釋  [[Download|downloads/article/thesis/2-2.pdf]]
>作者:蔡蕙芳 登載:台灣本土法學雜誌 ,第61期,頁49-67
>出版日期:2004.8 字數:19,165
>>摘要:本文參考德國刑法上結果加重犯理論,提出適用傷害致死罪必須具備之要件,
>>包括:死亡結果必須來自傷害行為本身蘊含「特有危險」之實現,此即德國刑法理論上所稱「直接性」 ,
>>同時,更進一步闡釋行為人對死亡結果必須具備過失。

2.刑法實例解析-複數犯罪參與人之判斷 [[Download|downloads/article/thesis/2-2.pdf]]
>作者:蔡蕙芳 登載:輔仁法學 第28期 頁279-314
>出版日期:2005.1 字數:10,721

3.結果加重犯之共犯問題 [[Download|downloads/article/thesis/2-3.pdf]]
>作者:蔡蕙芳 登載:月旦法學雜誌 第118期 頁18-29
>出版日期:2005.2 字數:11,286

4.結果加重犯之未遂問題 [[Download|downloads/article/thesis/2-4.pdf]]
>作者:蔡蕙芳 登載:蘇俊雄教授七秩祝壽論文集
>出版日期:2005.7 字數:22,723

5.責任能力與原因自由行為 [[Download|downloads/article/thesis/2-5.pdf]]
>作者:蔡蕙芳 登載:月旦法學教室第三十七期
>出版日期:2005.10 字數:11,495
1.英美法上重罪謀殺罪原則的介紹與評析 [[Download|downloads/article/comparative/1.pdf]]
>作者:蔡蕙芳 登載:甘添貴教授六秩祝壽論文集,第二卷 刑法各論
>頁49-109 出版年月:2001.12 字數:29,510

2.德國法上結果加重犯之歸責理論 [[Download|downloads/article/comparative/2.pdf]]
>作者:蔡蕙芳 登載:刑事法學新趨勢-Lothar Philipps教授七秩祝壽論文集
>頁259-306 出版年月:2004.2 字數:34,352

3.組織體犯罪與組織體罪責-英美法上組織體罪責理論的介紹與評析 [[Download|downloads/article/comparative/3.pdf]]
>作者:蔡蕙芳 登載:逢甲人文社會學報第1期 ,頁325-356
>出版年月:2004.9 字數:25,777

4.聯合國兒童權利公約在我國少年司法之落實-以少年事件處理法為討論中心 [[Download|downloads/article/comparative/4.pdf]]
>作者:蔡蕙芳 登載:律師雜誌第278期,頁34-50
>出版年月: 2004.1 字數:9,474

5.從英美法理論論蔡墩銘教授的期待可能性思想 [[Download|downloads/article/comparative/5.pdf]]
>作者:蔡蕙芳 登載:蔡墩銘教授六秩晉五祝壽論文集
>頁529-546 出版年月: 1997.12 字數:9,987
>1. 刑法的解釋與適用(一) [[download|downloads/article/Criminal%20Law_explain/1.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:56,742

>2. 刑法的解釋與適用(二) [[download|downloads/article/Criminal%20Law_explain/2.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:33,697

>3. 刑法的解釋與適用(三) [[download|downloads/article/Criminal%20Law_explain/3.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:49,723

>4. 刑法的解釋與適用(四) [[download|downloads/article/Criminal%20Law_explain/4.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:55,465
!(一)上課講義
>隱私與執行法 (一) [[download|downloads/course/law&life/private1.doc]]
>隱私與執行法 (二) [[download|downloads/course/law&life/private2.doc]]
>隱私與執行法 (三) [[download|downloads/course/law&life/private3.doc]]
>出賣資訊之序文 [[download|downloads/course/law&life/d.pdf]]
>刑事訴訟交互詰問之補充資料 [[download|downloads/course/law&life/a.doc]]
!(二)實例演練
!(三)判決資料
!(四)立法資料
!(五)考題彙編
[[講演資訊|講演資訊]]
[[研討會資訊|研討會資訊]]
| !研討會名稱 | !舉辦日期 | !舉辦地點 | !舉辦單位 | !議程 | !資料下載 |
| 1. 刑法實例解析 | 2004.10.23 | 輔大百鍊中心 | 刑事法學會 | | [[download|downloads/article/thesis/2-2.pdf]] |
| 2. 近年來變動之刑事學研討會 | 2004.12.10~12.11 | 台大法律學院國際會議廳(北市徐州路21號) |  韓忠謨教授法學基金會;月旦法學雜誌;台大法律學院刑事法研究中心 | [[download|downloads/lecture/2-agenda.doc]] | |
| 3. 2004網路犯罪與智權保護研討會 | 2004.12.24 | 台北地檢署5F會議室 |  法務部    交通大學科技法律研究所 | [[download|downloads/lecture/3-agenda.doc]] | |
| 4.「二00五年刑法總則修正之介紹與評析」研討會 | 2005.3.1~3.2 | 福華國際文化會館 | 台灣刑事法學會      法務部 | [[download|downloads/lecture/4-agenda.doc]] | [[download|downloads/lecture/4.doc]] |
| 5.刑事法學與憲法學整合之學術研討會 | 2004.8.6 | 台大法學院國際演講廳 | 台灣大學法學院刑事法研究中心、台灣刑事法學會 | | [[download|downloads/lecture/13.doc]] |
| 6.2005年全國科技法律研討會 | 2005.11.18 | 交通大學電子資訊大樓 |  | [[download|downloads/lecture/13.doc]] |  |
| 7.2006刑法分則共同議題之探討 | 2006.5.20 | 東吳大學城區部第五大樓 |  | [[download|downloads/lecture/14.doc]] |  | 
1.色情網站內犯罪行為之規範 [[Download|downloads/article/thesis/3-1.pdf]]
>作者:蔡蕙芳 登載:教育部校園網路法律知識宣導網站
>出版年月:2003.12 字數:2,910

2.網路上之妨害名譽罪之問題 [[Download|downloads/article/thesis/3-2.pdf]]
>作者:蔡蕙芳 登載:教育部校園網路法律知識宣導網站
>出版年月:2004.1 字數:1,711
<<listExtCode>>
[[刑法總則|刑法總則]]
[[刑法分則|刑法分則]]
[[資訊刑法|資訊刑法]]
[[經濟刑法|經濟刑法]]
[[法律與生活|法律與生活]]
[[法學緒論|法學緒論]]
網路上之商業犯罪行為 2003.8.11   [[download|downloads/lecture/1.ppt]]

資訊法立法動向介紹 2003.12.19    [[download|downloads/lecture/2.ppt]]

財產犯罪與經濟犯罪 2004.10.24      [[download|downloads/lecture/3.ppt]]

單元一 網際網路相關法律介紹 2004.12.1   [[download|downloads/lecture/4.ppt]]

單元二 網路法律糾紛之管轄權 2004.12.1     [[download|downloads/lecture/5.ppt]]
  
單元三 網路上著作權法之爭議 2004.12.1   [[download|downloads/lecture/6.ppt]]

單元四 電子簽章法簡介 2004.12.1            [[download|downloads/lecture/7.ppt]]

TRIPS協定與營業秘密之保護 2005.8.3        [[download|downloads/lecture/8.ppt]]

結果加重犯之未遂問題 2005.8.3                [[download|downloads/lecture/10.ppt]]

用戶著作權侵權之網路服務業者責任 2005.8.5   [[download|downloads/lecture/11.ppt]]

P2P網站經營者在刑法共犯及民事共同侵權責任之比較 2005.11.18 [[download|downloads/lecture/12.ppt]]
!(一)上課講義
>資訊刑法 (criminal information law) [[download|downloads/course/info/2.pdf]]
>網路時代之新型態侵權責任-著作權法第87條第1項第7款引誘侵權責任 [[download|downloads/course/info/3.pdf]]
!(二)實例演練
!(三)判決資料
!(四)立法資料
>管制垃圾郵件相關草案 [[download|downloads/course/info/1.pdf]]
>910816電腦犯罪修正草案總說明 [[download|downloads/course/library/5.pdf]]
>電腦處理個人資料保護法 [[download|downloads/course/library/6.pdf]]
>電子簽章法 [[download|downloads/course/library/7.pdf]]
>政府資訊公開法草案 [[download|downloads/course/library/8.pdf]]
!(五)考題彙編 
[[資訊法|資訊法]]
[[電腦犯罪|電腦犯罪]]
1.資訊法律導論 [[Download|downloads/article/information/1.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:13,814 最新更新日期:2005.10

2.資訊生產過程中之資訊法 [[Download|downloads/article/information/2.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:93,675

3.資訊使用過程中之資訊法 [[Download|downloads/article/information/3.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:24,768

4.資訊取得過程中之資訊法 [[Download|downloads/article/information/4.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:44,847

5.資訊傳播過程中之資訊法 [[Download|downloads/article/information/5.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:52,115

6.資訊處理過程中之資訊法 [[Download|downloads/article/information/6.pdf]]
>作者:蔡蕙芳 出版年月:2004.10 字數:11,651
學歷:
Ph.D., LL.M., LL.B. 
National Taiwan University, College of Law, Taiwan; 
LL.M.,Connecticut University School of Law, U.S.A. 

教學與研究領域:

Criminal Law
Information Law 
Evidence
American Criminal Law

目前任教、論文發表:

Criminal Law: 
General Part
Criminal Law: 
Special Part 
Criminal Information Law 
	and Information Crime
Technology and the Right
		    to Privacy
Torts law
1.網路監聽可能涉及刑罰規定之介紹 [[Download|downloads/article/computer/1.pdf]]
>作者:蔡蕙芳 登載:資訊安全論壇(Internet Security Solutions)第十九期,
>頁35-43 出版年月:2004.9.15 字數:9,413

2.自動化設備濫用行為之刑法規範 [[Download|downloads/article/computer/2.pdf]]
>作者:蔡蕙芳 登載:中原財經法學第十一期 ,頁43-77
> 出版年月:2003.12 字數:20,263

3.電磁紀錄無權取得行為之刑法規範 [[Download|downloads/article/computer/3.pdf]]
>作者:蔡蕙芳 登載:中正大學法學集刊第十三期(2003年)
>頁97-196 出版年月:2003.7 字數:50,922

4.電腦詐欺行為之刑法規範 [[Download|downloads/article/computer/4.pdf]]
>作者:蔡蕙芳 登載:東海法學研究第十八期 ,頁23-98
>出版年月:2003.6 字數:38,995

5.用戶著作權侵權之網路服務業者責任 [[Download|downloads/article/computer/5.pdf]]
>作者:蔡蕙芳 登載:科技法學評論(Technology Law Review)
>第一卷.第二期,October 15, 2004,頁295-343 出版年月:2004.9 字數:31,387

6.新修正著作權法防盜拷措施相關規定之介紹 [[Download|downloads/article/computer/6.pdf]]
>作者:蔡蕙芳 登載:台灣通訊 (Taiwan Telecom),頁27-30。
>出版年月:2004.11.18 字數:3,738

7.與垃圾郵件有關的刑法問題 [[Download|downloads/article/computer/7.pdf]]
>作者:蔡蕙芳 登載:律師雜誌,第311期
>出版年月:2005.8 字數:11,540

8.不正利用收費設備取財得利罪 [[Download|downloads/article/computer/8.pdf]]
>作者:蔡蕙芳 登載:月旦法學教室,第四十四期
>出版年月:2006.6 字數:9,329

9.P2P網站經營者與其會員成立共同正犯之可能性---ezPeer 與Kuro案之分析與檢討 [[Download|downloads/article/computer/9.pdf]]
>作者:蔡蕙芳 登載:科技法學評論(Technology Law Review)
>第三卷第一期,p45-73 出版年月:2006.6 字數:18,813

10.P2P網站經營者之作為幫助犯責任與中性業務行為理論之適用[[Download|downloads/article/computer/10.pdf]]
>作者:蔡蕙芳 登載日期:2006.6 字數:27,185

11.不正利用電腦取財得利罪 [[Download|downloads/article/computer/11.pdf]]
>作者:蔡蕙芳 登載日期:2006.7 字數:10, 687]

12.刑法第三三九條之一不正利用收費設備取財得利罪之適用問題 [[Download|downloads/article/computer/12.doc]]
>作者:蔡蕙芳 登載:月旦法學雜誌第136期 出版日期:2006.9 字數:12,086

13.不正利用自動收費設備取財得利罪 [[Download|downloads/article/computer/13.pdf]]
>作者:蔡蕙芳 登載:月旦法學教室第49期 出版日期:2006.10 字數:12,289