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
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

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

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

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' 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' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
[[Startup]]
//{{{\n// override onClickTag(ev)\n// (Nov 22, 2015): add ofset:y of Popup.show(), fix scroll top when popup.show()\n// Event handler for clicking on a tiddler tag\nfunction onClickTag(ev)\n{\n var e = ev || window.event;\n var popup = Popup.create(this);\n jQuery(popup).addClass("taggedTiddlerList");\n var tag = this.getAttribute("tag");\n var title = this.getAttribute("tiddler");\n if(popup && tag) {\n var tagged = tag.indexOf("[")==-1 ? store.getTaggedTiddlers(tag) : store.filterTiddlers(tag);\n var sortby = this.getAttribute("sortby");\n if(sortby&&sortby.length) {\n store.sortTiddlers(tagged,sortby);\n }\n var titles = [];\n var r;\n for(r=0;r<tagged.length;r++) {\n if(tagged[r].title != title)\n titles.push(tagged[r].title);\n }\n var lingo = config.views.wikified.tag;\n if(titles.length > 0) {\n var openAll = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.openAllText.format([tag]),lingo.openAllTooltip,onClickTagOpenAll);\n openAll.setAttribute("tag",tag);\n openAll.setAttribute("sortby",sortby);\n createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");\n for(r=0; r<titles.length; r++) {\n createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);\n }\n } else {\n createTiddlyElement(popup,"li",null,"disabled",lingo.popupNone.format([tag]));\n }\n createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");\n var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);\n createTiddlyText(h,lingo.openTag.format([tag]));\n }\n\n // add ofset:y of Popup.show(), fix scroll top when popup.show()\n // Popup.show();\n\n if (jQuery(this).hasClass('button')) {\n var tagElem = this.getBoundingClientRect();\n Popup.show();\n var scrollY = findPosY(this) - tagElem.top;\n window.scrollTo(0, scrollY);\n\n } else if (jQuery(this).hasClass('tiddlyLink')) {\n var winTop = findScrollY();\n var scrollY = document.getElementById('sidebar').scrollTop\n Popup.show("", "", {x:0, y:-(scrollY - winTop)});\n\n } else {\n Popup.show();\n //console.log("className = " + this.className);\n }\n\n e.cancelBubble = true;\n if(e.stopPropagation) e.stopPropagation();\n return false;\n}\n\n//}}}
//{{{\n// override: Story.prototype.onTiddlerDblClick\n// (Jul 2, 2015): fix scroll position of the tiddler when editing\n//\nStory.prototype.onTiddlerDblClick = function(ev)\n{\n var e = ev || window.event;\n var target = resolveTarget(e);\n if(target && target.nodeName.toLowerCase() != "input" && target.nodeName.toLowerCase() != "textarea") {\n\n if(document.selection && document.selection.empty)\n document.selection.empty();\n\n config.macros.toolbar.invokeCommand(this,"defaultCommand",e);\n e.cancelBubble = true;\n if(e.stopPropagation) e.stopPropagation();\n\n // fix scroll position of the tiddler when editing\n var tiddlerElem = document.getElementById(this.id);\n var tiddlerHeight = tiddlerElem.scrollHeight;\n var windowHeight = findWindowHeight();\n var editorHeight = jQuery(".editor textarea").height();\n var fixHeight = windowHeight + editorHeight - tiddlerHeight;\n\n jQuery(".editor textarea").height(fixHeight);\n window.scrollTo(0, findPosY(tiddlerElem));\n\n return true;\n }\n return false;\n};\n//}}}\n\n
//{{{\n// override tagChooser.onClick()\n// (Jul 3, 2015): add ofset:y of Popup.show(), fix scroll top when popup.show()\n// Note that if you want to run this macro properly.\n// require to uncheck the checkbox which "Enable Animations" of Menu Options.\n//\nconfig.macros.tagChooser.onClick = function(ev)\n{\n var e = ev || window.event;\n var lingo = config.views.editor.tagChooser;\n var popup = Popup.create(this);\n var tags = store.getTags(this.getAttribute("tags"));\n if(tags.length == 0)\n jQuery("<li/>").text(lingo.popupNone).appendTo(popup);\n var t;\n for(t=0; t<tags.length; t++) {\n var tag = createTiddlyButton(createTiddlyElement(popup,"li"),tags[t][0],lingo.tagTooltip.format([tags[t][0]]),config.macros.tagChooser.onTagClick);\n tag.setAttribute("tag",tags[t][0]);\n tag.setAttribute("tiddler",this.getAttribute("tiddler"));\n }\n\n // add ofset:y of Popup.show(), fix scroll top when popup.show()\n // Popup.show("", "", {x:0, y:-300});\n\n var tag_offset = jQuery('ol.popup').height() + 70;\n Popup.show("", "", {x:0, y:-tag_offset});\n\n var tiddlerId = jQuery(this).closest('div.tiddler').attr('id');\n var tiddlerElem = document.getElementById(tiddlerId);\n var PosY = findPosY(tiddlerElem);\n window.scrollTo(0, PosY);\n\n e.cancelBubble = true;\n if(e.stopPropagation) e.stopPropagation();\n return false;\n};\n//}}}
<md>\nquotation from \nhttp://github.github.com/github-flavored-markdown/sample_content.html\n\n\n\nGitHub Flavored Markdown\n================================\n\n*View the [source of this content](http://github.github.com/github-flavored-markdown/sample_content.html).*\n\nLet's get the whole "linebreak" thing out of the way. The next paragraph contains two phrases separated by a single newline character:\n\nRoses are red\nViolets are blue\n\nThe next paragraph has the same phrases, but now they are separated by two spaces and a newline character:\n\nRoses are red \nViolets are blue\n\nOh, and one thing I cannot stand is the mangling of words with multiple underscores in them like perform_complicated_task or do_this_and_do_that_and_another_thing.\n\nA bit of the GitHub spice\n-------------------------\n\nIn addition to the changes in the previous section, certain references are auto-linked:\n\n* SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User/Project@SHA: mojombo/god@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* \s#Num: #1\n* User/#Num: mojombo#1\n* User/Project#Num: mojombo/god#1\n\nThese are dangerous goodies though, and we need to make sure email addresses don't get mangled:\n\nMy email addy is tom@github.com.\n\nMath is hard, let's go shopping\n-------------------------------\n\nIn first grade I learned that 5 > 3 and 2 < 7. Maybe some arrows. 1 -> 2 -> 3. 9 <- 8 <- 7.\n\nTriangles man! a^2 + b^2 = c^2\n\nWe all like making lists\n------------------------\n\nThe above header should be an H2 tag. Now, for a list of fruits:\n\n* Red Apples\n* Purple Grapes\n* Green Kiwifruits\n\nLet's get crazy:\n\n1. This is a list item with two paragraphs. Lorem ipsum dolor\n sit amet, consectetuer adipiscing elit. Aliquam hendrerit\n mi posuere lectus.\n\n Vestibulum enim wisi, viverra nec, fringilla in, laoreet\n vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\n sit amet velit.\n\n2. Suspendisse id sem consectetuer libero luctus adipiscing.\n\nWhat about some code **in** a list? That's insane, right?\n\n1. In Ruby you can map like this:\n\n ['a', 'b'].map { |x| x.uppercase }\n\n2. In Rails, you can do a shortcut:\n\n ['a', 'b'].map(&:uppercase)\n\nSome people seem to like definition lists\n\n<dl>\n <dt>Lower cost</dt>\n <dd>The new version of this product costs significantly less than the previous one!</dd>\n <dt>Easier to use</dt>\n <dd>We've changed the product so that it's much easier to use!</dd>\n</dl>\n\nI am a robot\n------------\n\nMaybe you want to print `robot` to the console 1000 times. Why not?\n\n def robot_invasion\n puts("robot " * 1000)\n end\n\nYou see, that was formatted as code because it's been indented by four spaces.\n\nHow about we throw some angle braces and ampersands in there?\n\n <div class="footer">\n &copy; 2004 Foo Corporation\n </div>\n\nSet in stone\n------------\n\nPreformatted blocks are useful for ASCII art:\n\n<pre>\n ,-. \n , ,-. ,-. \n / \s ( )-( ) \n \s | ,.>-( )-< \n \s|,' ( )-( ) \n Y ___`-' `-' \n |/__/ `-' \n | \n | \n | -hrr- \n ___|_____________ \n</pre>\n\nPlaying the blame game\n----------------------\n\nIf you need to blame someone, the best way to do so is by quoting them:\n\n> I, at any rate, am convinced that He does not throw dice.\n\nOr perhaps someone a little less eloquent:\n\n> I wish you'd have given me this written question ahead of time so I\n> could plan for it... I'm sure something will pop into my head here in\n> the midst of this press conference, with all the pressure of trying to\n> come up with answer, but it hadn't yet...\n>\n> I don't want to sound like\n> I have made no mistakes. I'm confident I have. I just haven't - you\n> just put me under the spot here, and maybe I'm not as quick on my feet\n> as I should be in coming up with one.\n\nTable for two\n-------------\n\n<table>\n <tr>\n <th>ID</th><th>Name</th><th>Rank</th>\n </tr>\n <tr>\n <td>1</td><td>Tom Preston-Werner</td><td>Awesome</td>\n </tr>\n <tr>\n <td>2</td><td>Albert Einstein</td><td>Nearly as awesome</td>\n </tr>\n</table>\n\nCrazy linking action\n--------------------\n\nI get 10 times more traffic from [Google] [1] than from\n[Yahoo] [2] or [MSN] [3].\n\n [1]: http://google.com/ "Google"\n [2]: http://search.yahoo.com/ "Yahoo Search"\n [3]: http://search.msn.com/ "MSN Search"\n\n\n</md>
! TiddlyWikiでGravizoを使う\n\n[[Gravizo|http://www.gravizo.com/]] はグラフのレンダリングエンジン [[Graphviz|http://www.graphviz.org]] を使ったWebサービスです。DOT言語で記述したテキストを渡すと画像データを返してくれます。\n\n\n! tiddlerマクロと組み合わせて使う\n\nTiddlyWiki の便利機能 tiddlerトランスクルージョンを使ってみましょう。\n\nGraphviz 用の tiddler トランスクルージョンを [["embed" tiddler|embed]] に記述します。\n{{{\n!graphviz\n<html>\n<img src='http://g.gravizo.com/g?$1'/>\n</html>\n!end\n}}}\n\n!! 使い方\n\nマクロの引数の DOT テキストを、''シングルクオート''で囲んで渡してやります。\n{{{\n<<tiddler [[embed##graphviz]] with:'\n ここにDOTテキストを記述します\n'>>\n}}}\n\n{{{\n<<tiddler [[embed##graphviz]] with:'\ndigraph G {\n node [shape=plaintext]\n a [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2" ROWSPAN="2">two</TD></TR>\n <TR><TD PORT="3">three</TD></TR>\n </TABLE> >];\n b [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2">two</TD></TR>\n <TR><TD PORT="3" COLSPAN="2">three</TD></TR>\n </TABLE> >];\n a:1 -> b:2;\n b:1 -> a:2;\n b:3 -> a:3;\n}\n'>>\n}}}\n\n<<tiddler [[embed##graphviz]] with:' \ndigraph G {\n node [shape=plaintext]\n a [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2" ROWSPAN="2">two</TD></TR>\n <TR><TD PORT="3">three</TD></TR>\n </TABLE> >];\n b [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2">two</TD></TR>\n <TR><TD PORT="3" COLSPAN="2">three</TD></TR>\n </TABLE> >];\n a:1 -> b:2;\n b:1 -> a:2;\n b:3 -> a:3;\n}\n' >>\n\n! tiddler マクロで graphviz を使う場合の注意点\n\nマクロ引数のDOTテキストの中に{{{<<...>>}}}があるとパースに失敗します。\n\nこのように表示されます\n<<tiddler [[embed##graphviz]] with:' \ndigraph G {\n node [shape=plaintext]\n a [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2" ROWSPAN="2">two</TD></TR>\n <TR><TD PORT="3">three</TD></TR>\n </TABLE>>];\n b [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2">two</TD></TR>\n <TR><TD PORT="3" COLSPAN="2">three</TD></TR>\n </TABLE>>];\n a:1 -> b:2;\n b:1 -> a:2;\n b:3 -> a:3;\n}\n' >>\n\nTiddly 記法では、例えば{{{<<TABLE ... >>}}}の記述があると TABLE マクロの呼び出しと解釈してしまいます。そこで、このような場合はスペースを追加して{{{< <TABLE ... > >}}}のように記述するとうまくいきます。\n\n<<tiddler [[embed##graphviz]] with:' \ndigraph G {\n node [shape=plaintext]\n a [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2" ROWSPAN="2">two</TD></TR>\n <TR><TD PORT="3">three</TD></TR>\n </TABLE> >];\n b [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">\n <TR><TD PORT="1">one</TD><TD PORT="2">two</TD></TR>\n <TR><TD PORT="3" COLSPAN="2">three</TD></TR>\n </TABLE> >];\n a:1 -> b:2;\n b:1 -> a:2;\n b:3 -> a:3;\n}\n' >>\n\n\n\n! sequence diagram\n\n{{{\n<<tiddler [[embed##graphviz]] with:'\n@startuml;\n\nactor User;\nparticipant "First Class" as A;\nparticipant "Second Class" as B;\nparticipant "Last Class" as C;\n\nUser -> A: DoWork;\nactivate A;\n\nA -> B: Create Request;\nactivate B;\n\nB -> C: DoWork;\nactivate C;\n\nC --> B: WorkDone;\ndestroy C;\n\nB --> A: Request Created;\ndeactivate B;\n\nA --> User: Done;\ndeactivate A;\n\n@enduml\n'>>\n}}}\n\n\n<<tiddler [[embed##graphviz]] with:'\n@startuml;\n\nactor User;\nparticipant "First Class" as A;\nparticipant "Second Class" as B;\nparticipant "Last Class" as C;\n\nUser -> A: DoWork;\nactivate A;\n\nA -> B: Create Request;\nactivate B;\n\nB -> C: DoWork;\nactivate C;\n\nC --> B: WorkDone;\ndestroy C;\n\nB --> A: Request Created;\ndeactivate B;\n\nA --> User: Done;\ndeactivate A;\n\n@enduml\n'>>\n\n\n\n! class diagram\n\n{{{\n<<tiddler [[embed##graphviz]] with:'\n/**\n*Structural Things\n*@opt commentname\n*@note Notes can\n*be extended to\n*span multiple lines\n*/\nclass Structural{}\n\n/**\n*@opt all\n*@note Class\n*/\nclass Counter extends Structural {\n static public int counter;\n public int getCounter%28%29;\n}\n\n/**\n*@opt shape activeclass\n*@opt all\n*@note Active Class\n*/\nclass RunningCounter extends Counter{}\n'>>\n}}}\n\n<<tiddler [[embed##graphviz]] with:'\n/**\n*Structural Things\n*@opt commentname\n*@note Notes can\n*be extended to\n*span multiple lines\n*/\nclass Structural{}\n\n/**\n*@opt all\n*@note Class\n*/\nclass Counter extends Structural {\n static public int counter;\n public int getCounter%28%29;\n}\n\n/**\n*@opt shape activeclass\n*@opt all\n*@note Active Class\n*/\nclass RunningCounter extends Counter{}\n'>>\n\n\n! activity diagram\n\n{{{\n<<tiddler [[embed##graphviz]] with:'\n@startuml;\n\n(*) --> if "Some Test" then;\n\n -->[true] "activity 1";\n\n if "" then;\n -> "activity 3" as a3;\n else;\n if "Other test" then;\n -left-> "activity 5";\n else;\n --> "activity 6";\n endif;\n endif;\n\nelse;\n\n ->[false] "activity 2";\n\nendif;\n\na3 --> if "last test" then;\n --> "activity 7";\nelse;\n -> "activity 8";\nendif;\n\n@enduml\n'>>\n}}}\n\n<<tiddler [[embed##graphviz]] with:'\n@startuml;\n\n(*) --> if "Some Test" then;\n\n -->[true] "activity 1";\n\n if "" then;\n -> "activity 3" as a3;\n else;\n if "Other test" then;\n -left-> "activity 5";\n else;\n --> "activity 6";\n endif;\n endif;\n\nelse;\n\n ->[false] "activity 2";\n\nendif;\n\na3 --> if "last test" then;\n --> "activity 7";\nelse;\n -> "activity 8";\nendif;\n\n@enduml\n'>>\n
/***\n|''Name:''|JapaneseTranslationPlugin |\n|''Description:''|Translation of TiddlyWiki into Japanese |\n|''Author:''|OGOSHI Masayuki &lt;ogoshima@gmail.com&gt; |\n|''Source:''|http://ogoshi.tiddlyspot.com/#JapaneseTranslationPlugin |\n|''Version:''|0.4.1-ja|\n|''Date:''|Apr 29, 2010|\n|''License:''|[[Creative Commons Attribution-ShareAlike 2.1 Japan |http://creativecommons.org/licenses/by-sa/2.1/jp/]] |\n|''~CoreVersion:''|2.6.0|\n\nTiddlyWiki を日本語化するプラグイン。TiddlyWiki Version 2.6 上で動作を確認しました。\nライセンスは英語版のCCライセンスに準じる日本語版の CC-by-SA 2.1 ライセンスとします。\n\nオリジナルとなる英語版のクレジットは以下のとおり。\n|''Name:''|EnglishTranslationPlugin|\n|''Description:''|Translation of TiddlyWiki into English|\n|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|\n|''CodeRepository:''|http://svn.tiddlywiki.org/Trunk/association/locales/core/en/locale.en.js |\n|''Version:''|0.4.1|\n|''Date:''|Mar 10, 2010|\n|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |\n|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]] |\n|''~CoreVersion:''|2.6.0|\n***/\n\n//{{{\n//--\n//-- Translateable strings\n//--\n\n// Strings in "double quotes" should be translated; strings in 'single quotes' should be left alone\n\nconfig.locale = "ja"; // W3C language tag\n\nif (config.options.txtUserName == 'YourName') // do not translate this line, but do translate the next line\n merge(config.options,{txtUserName: "氏名"});\n\nmerge(config.tasks,{\n save: {text: "保存", tooltip: "このTiddlyWikiを保存します", action: saveChanges},\n sync: {text: "同期", tooltip: "他のTiddlyWikiファイルやサーバと同期をとります", content: '<<sync>>'},\n importTask: {text: "取り込み", tooltip: "他のTiddlyWikiファイルやサーバからtiddlerやプラグインを取り込みます", content: '<<importTiddlers>>'},\n tweak: {text: "詳細設定", tooltip: "TiddlyWikiの細かな振る舞いを設定します", content: '<<options>>'},\n upgrade: {text: "アップグレード", tooltip: "TiddlyWiki本体をバージョンアップします", content: '<<upgrade>>'},\n plugins: {text: "プラグイン", tooltip: "インストール済みのプラグインを管理します", content: '<<plugins>>'}\n});\n\n// Options that can be set in the options panel and/or cookies\nmerge(config.optionsDesc,{\n txtUserName: "編集したtiddlerに記録されるユーザ名",\n chkRegExpSearch: "検索に正規表現を使います",\n chkCaseSensitiveSearch: "検索で大文字小文字を区別します",\n chkIncrementalSearch: "インクリメンタルサーチを行います",\n chkAnimate: "アニメーションを許可します",\n chkSaveBackups: "保存時にバックアップファイルを残します",\n chkAutoSave: "自動保存します",\n chkGenerateAnRssFeed: "保存時にRSSフィードを生成します",\n chkSaveEmptyTemplate: "空のテンプレートファイルを保存時に生成します",\n chkOpenInNewWindow: "外部へのリンクを新しいウィンドウで開きます",\n chkToggleLinks: "tiddlerへのリンククリックでtiddlerを閉じます",\n chkHttpReadOnly: "HTTP経由で開いているときに編集機能を隠します",\n chkForceMinorUpdate: "更新時にユーザ名と日付を変更しません",\n chkConfirmDelete: "tiddlerを消去する時に確認をします",\n chkInsertTabs: "タブキーを押したとき、フィールド間の移動ではなくタブ文字を挿入します",\n txtBackupFolder: "バックアップ用フォルダの名前",\n txtMaxEditRows: "編集領域の最大行数",\n txtTheme: "使用するテーマ名",\n txtFileSystemCharSet: "保存時のデフォルト文字コード(Firefox/Mozillaのみ)"});\n\nmerge(config.messages,{\n customConfigError: "プラグインの読み込み時に問題が発生しました。詳細は PluginManager をご覧ください",\n pluginError: "エラー: %0",\n pluginDisabled: "'systemConfigDisable'タグによって実行が禁止されています",\n pluginForced: "'systemConfigForce'タグによって強制実行されました",\n pluginVersionError: "このプラグインの実行には、新しいバージョンの TiddlyWiki が必要です。",\n nothingSelected: "何も選択されていません。一つ以上選択する必要があります。",\n savedSnapshotError: "この~TiddlyWikiは正常に保存されていません。詳細は http://www.tiddlywiki.com/#DownloadSoftware をご覧ください。",\n subtitleUnknown: "(unknown)",\n undefinedTiddlerToolTip: "この tiddler '%0' はまだ作成されていません",\n shadowedTiddlerToolTip: "この tiddler '%0' はまだ作成されていませんが、隠された規定値があります",\n tiddlerLinkTooltip: "%0 - %1, %2",\n externalLinkTooltip: "(外部へのリンク) %0",\n noTags: "タグの付いた tiddler はありません",\n notFileUrlError: "変更を保存するにはこの~TiddlyWikiをファイルとして保存(ダウンロード)する必要があります",\n cantSaveError: "変更を保存できませんでした。以下の理由が考えられます:\sn- 使用しているブラウザが保存に対応していない(Firefox/Internet Explorer/Safari/Operaは、正しく設定していれば保存できます)\sn- TiddlyWikiファイルの保存path名に不正な文字が含まれている\sn- TiddlyWiki HTMLファイルが移動または名前を変更された",\n invalidFileError: "元のファイル '%0' は正しい~TiddlyWikiファイルではありません",\n backupSaved: "バックアップを保存しました",\n backupFailed: "バックアップの保存に失敗しました",\n rssSaved: "RSSフィードを保存しました",\n rssFailed: "RSSフィードの保存に失敗しました",\n emptySaved: "空のテンプレートファイルを保存しました",\n emptyFailed: "空のテンプレートファイルの保存に失敗しました",\n mainSaved: "TiddlyWikiファイルを保存しました",\n mainFailed: "TiddlyWikiファイルの保存に失敗しました。変更した内容は保存されていません",\n macroError: "次のマクロでエラー発生 <<\s%0>>",\n macroErrorDetails: "次のマクロを実行中にエラー発生 <<\s%0>>:\sn%1",\n missingMacro: "マクロがありません",\n overwriteWarning: "'%0'という名前のtiddlerはすでに存在します。OKで上書きします",\n unsavedChangesWarning: "注意! TiddlyWiki の変更が保存されていません。\sn\sn'OK'で保存\sn'キャンセル'で変更を破棄",\n confirmExit: "--------------------------------\sn\snTiddlyWikiの変更が保存されていません。このまま続けると変更が失われます\sn\sn--------------------------------",\n saveInstructions: "変更を保存",\n unsupportedTWFormat: "次の TiddlyWiki フォーマットには対応していません '%0'",\n tiddlerSaveError: "tiddler '%0' を保存時にエラー発生",\n tiddlerLoadError: "tiddler '%0' の読込時にエラー発生",\n wrongSaveFormat: "保存フォーマット '%0' で保存できません。標準フォーマットで保存します",\n invalidFieldName: "%0 は不正なファイル名です",\n fieldCannotBeChanged: "領域 '%0' は変更できません",\n loadingMissingTiddler: "tiddler '%0' の '%1' サーバーからの回復を試しています:\sn\snワークスペース '%3' の中の '%2'",\n upgradeDone: "バージョン %0 へのアップグレードが完了しました。\sn'OK' をクリックすると新しくなったTiddlyWikiをリロードします。"});\n\nmerge(config.messages.messageClose,{\n text: "閉じる",\n tooltip: "このメッセージを閉じます"});\n\nconfig.messages.backstage = {\n open: {text: "クイックメニュー", tooltip: "クイックメニューを開きます"},\n close: {text: "閉じる", tooltip: "クイックメニューを閉じます"},\n prompt: "クイックメニュー: ",\n decal: {\n edit: {text: "編集", tooltip: "tiddler '%0' を編集します"}\n }\n};\n\nconfig.messages.listView = {\n tiddlerTooltip: "このtiddlerのテキスト全体を表示します",\n previewUnavailable: "(プレビューがありません)"\n};\n\nconfig.messages.dates.months = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月","12月"];\nconfig.messages.dates.days = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"];\nconfig.messages.dates.shortMonths = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];\nconfig.messages.dates.shortDays = ["日", "月", "火", "水", "木", "金", "土"];\n// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"\nconfig.messages.dates.daySuffixes = ["日","日","日","日","日","日","日","日","日","日",\n "日","日","日","日","日","日","日","日","日","日",\n "日","日","日","日","日","日","日","日","日","日",\n "日"];\nconfig.messages.dates.am = "am";\nconfig.messages.dates.pm = "pm";\n\nmerge(config.messages.tiddlerPopup,{\n });\n\nmerge(config.views.wikified.tag,{\n labelNoTags: "タグ無し",\n labelTags: "タグ: ",\n openTag: "'%0' タグを開く",\n tooltip: "'%0' タグの付いたtiddlerを表示",\n openAllText: "全て開く",\n openAllTooltip: "以下のtiddlerを全て開く",\n popupNone: "'%0' タグの付いたtiddlerは他にありません"});\n\nmerge(config.views.wikified,{\n defaultText: "tiddler '%0' はまだ作成されていません。ダブルクリックで作成できます",\n defaultModifier: "(missing)",\n shadowModifier: "(built-in shadow tiddler)",\n dateFormat: "YYYY.MM.DD", // use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D\n createdPrompt: "作成"});\n\nmerge(config.views.editor,{\n tagPrompt: "スペース区切りでタグを入力。スペースを含める場合は[[二重の角括弧]]で囲みます。既存のタグを選択≫",\n defaultText: "'%0' の内容を入力してください"});\n\nmerge(config.views.editor.tagChooser,{\n text: "タグ",\n tooltip: "既存のタグを選択して追加します",\n popupNone: "タグが定義されていません",\n tagTooltip: "'%0' タグを追加します"});\n\nmerge(config.messages,{\n sizeTemplates:\n [\n {unit: 1024*1024*1024, template: "%0\su00a0GB"},\n {unit: 1024*1024, template: "%0\su00a0MB"},\n {unit: 1024, template: "%0\su00a0KB"},\n {unit: 1, template: "%0\su00a0B"}\n ]});\n\nmerge(config.macros.search,{\n label: "検索",\n prompt: "この TiddlyWiki 内を検索します",\n accessKey: "F",\n successMsg: "%0 件のtiddlerで %1 が見つかりました",\n failureMsg: "%0 は見つかりませんでした"});\n\nmerge(config.macros.tagging,{\n label: "タグあり: ",\n labelNotTag: "タグなし",\n tooltip: "'%0' タグを付けたtiddlerリスト"});\n\nmerge(config.macros.timeline,{\n dateFormat: "YYYY年MM月DD日"});// use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D\n\nmerge(config.macros.allTags,{\n tooltip: "'%0' タグの付いたtiddlerを表示",\n noTags: "タグの付いたtiddlerがありません"});\n\nconfig.macros.list.all.prompt = "アルファベット順 全tiddler";\nconfig.macros.list.missing.prompt = "リンクがあるのに存在しないtiddler";\nconfig.macros.list.orphans.prompt = "どこからもリンクされていないtiddler";\nconfig.macros.list.shadowed.prompt = "規定で隠されているtiddler";\nconfig.macros.list.touched.prompt = "ローカルに変更されているtiddler";\n\nmerge(config.macros.closeAll,{\n label: "全て閉じる",\n prompt: "表示されている全てのtiddlerを閉じます (編集中を除く)"});\n\nmerge(config.macros.permaview,{\n label: "現況リンク",\n prompt: "現在のtiddler表示状態を再現するURLをアドレス欄に生成します"});\n\nmerge(config.macros.saveChanges,{\n label: "保存",\n prompt: "全てのtiddlerを保存します",\n accessKey: "S"});\n\nmerge(config.macros.newTiddler,{\n label: "新規作成",\n prompt: "新しいtiddlerを作成します",\n title: "新規作成",\n accessKey: "N"});\n\nmerge(config.macros.newJournal,{\n label: "新規ジャーナル",\n prompt: "現在日時がタイトルの新しいtiddlerを作成します",\n accessKey: "J"});\n\nmerge(config.macros.options,{\n wizardTitle: "詳細設定",\n step1Title: "これらのオプション設定はブラウザのcookieに保存されます",\n step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>未知のオプションを表示</input>",\n unknownDescription: "//(未知)//",\n listViewTemplate: {\n columns: [\n {name: 'Option', field: 'option', title: "オプション設定", type: 'String'},\n {name: 'Description', field: 'description', title: "説明", type: 'WikiText'},\n {name: 'Name', field: 'name', title: "オプション名", type: 'String'}\n ],\n rowClasses: [\n {className: 'lowlight', field: 'lowlight'}\n ]}\n });\n\nmerge(config.macros.plugins,{\n wizardTitle: "プラグイン管理",\n step1Title: "ロードされているプラグイン",\n step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE\n skippedText: "(このプラグインは起動後に追加されたので実行されていません)",\n noPluginText: "プラグインはインストールされていません",\n confirmDeleteText: "本当にこのプラグインを削除して良いですか?:\sn\sn%0",\n removeLabel: "systemConfig タグを除去",\n removePrompt: "systemConfig タグを除去します",\n deleteLabel: "削除",\n deletePrompt: "これらのtiddlerを削除します",\n listViewTemplate: {\n columns: [\n {name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},\n {name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},\n {name: 'Description', field: 'Description', title: "説明", type: 'String'},\n {name: 'Version', field: 'Version', title: "バージョン", type: 'String'},\n {name: 'Size', field: 'size', tiddlerLink: 'size', title: "サイズ", type: 'Size'},\n {name: 'Forced', field: 'forced', title: "強制実行", tag: 'systemConfigForce', type: 'TagCheckbox'},\n {name: 'Disabled', field: 'disabled', title: "無効化", tag: 'systemConfigDisable', type: 'TagCheckbox'},\n {name: 'Executed', field: 'executed', title: "ロード済み", type: 'Boolean', trueText: "Yes", falseText: "No"},\n {name: 'Startup Time', field: 'startupTime', title: "起動時実行", type: 'String'},\n {name: 'Error', field: 'error', title: "ステータス", type: 'Boolean', trueText: "Error", falseText: "OK"},\n {name: 'Log', field: 'log', title: "ログ", type: 'StringList'}\n ],\n rowClasses: [\n {className: 'error', field: 'error'},\n {className: 'warning', field: 'warning'}\n ]}\n });\n\nmerge(config.macros.toolbar,{\n moreLabel: "その他",\n morePrompt: "その他のコマンドも表示します",\n lessLabel: "隠す",\n lessPrompt: "その他のコマンドを隠します",\n separator: "|"\n });\n\nmerge(config.macros.refreshDisplay,{\n label: "再表示",\n prompt: "TiddlyWiki全体を再描画します"\n });\n\nmerge(config.macros.importTiddlers,{\n readOnlyWarning: "読込専用のTiddlyWikiには取り込めません。TiddlyWikiファイルを file:// 形式のURLで開いてみてください",\n wizardTitle: "他のファイルあるいはサーバーからtiddlerを取り込む",\n step1Title: "手順 1: TiddlyWikiファイルあるいはサーバーの位置を指定します",\n step1Html: "種別指定: <select name='selTypes'><option value=''>選択...</option></select><br>URLまたはパス名を入力: <input type='text' size=50 name='txtPath'><br>またはファイルを選択: <input type='file' size=50 name='txtBrowse'><br><hr>または既定のフィードを選択: <select name='selFeeds'><option value=''>選択...</option></select>",\n openLabel: "開く",\n openPrompt: "このファイルあるいはサーバーへ接続する",\n openError: "TiddlyWikiファイルを取り込む際に問題が発生しました",\n statusOpenHost: "ホストをオープン中",\n statusGetWorkspaceList: "有効なワークスペースのリストを取得中",\n step2Title: "手順 2: ワークスペースの選択",\n step2Html: "ワークスペース名を入力: <input type='text' size=50 name='txtWorkspace'><br>またはワークスペースを選択: <select name='selWorkspace'><option value=''>選択...</option></select>",\n cancelLabel: "キャンセル",\n cancelPrompt: "この取り込みをキャンセルする",\n statusOpenWorkspace: "ワークスペースをオープン中",\n statusGetTiddlerList: "有効なtiddlerのリストを取得中",\n errorGettingTiddlerList: "tiddlerのリストを取得中にエラーが発生しました。'キャンセル'でやり直します。",\n step3Title: "手順 3: 取り込むtiddlerの選択",\n step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>変更を同期できるよう、各tiddlerにこのサーバー(ファイル)へのリンクを保持する</input><br><input type='checkbox' name='chkSave'>'systemServer' タグを付けたtiddlerにこのサーバーの詳細を保存する:</input> <input type='text' size=25 name='txtSaveTiddler'>",\n importLabel: "取込",\n importPrompt: "これらのtiddlerを取り込む",\n confirmOverwriteText: "本当にこれらのtiddlerを上書きして良いですか? :\sn\sn%0",\n step4Title: "手順 4: tiddler %0 を取り込み",\n step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE\n doneLabel: "完了",\n donePrompt: "ウィザードを閉じる",\n statusDoingImport: "tidderlを取り込み中",\n statusDoneImport: "全てのtiddlerを取り込みました",\n systemServerNamePattern: "%1 / %2",\n systemServerNamePatternNoWorkspace: "%1",\n confirmOverwriteSaveTiddler: "'%0' というtiddlerは既に存在します。'OK'で上書きします。'キャンセル'で変更しません。",\n serverSaveTemplate: "|''種別:''|%0|\sn|''URL:''|%1|\sn|''ワークスペース:''|%2|\sn\snこのtiddlerはこのサーバーの詳細情報を記録するために自動的に作成されました",\n serverSaveModifier: "(System)",\n listViewTemplate: {\n columns: [\n {name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},\n {name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},\n {name: 'Size', field: 'size', tiddlerLink: 'size', title: "サイズ", type: 'Size'},\n {name: 'Tags', field: 'tags', title: "タグ", type: 'Tags'}\n ],\n rowClasses: [\n ]}\n });\n\nmerge(config.macros.upgrade,{\n wizardTitle: "TiddlyWiki本体のアップグレード",\n step1Title: "このTiddlyWikiを最新版へ更新(あるいは修復)",\n step1Html: "TiddlyWiki本体のバージョンを <a href='%0' class='externalLink' target='_blank'>%1</a> から最新版に更新しようとしています。この更新をしてもあなたの作成したデータが削除されることはありません。<br><br>なお、本体をアップデートすることで旧プラグインの動作に支障が出る可能性があります。もし更新後の動作に問題が生じたときは、次のサイトを参照してください。<a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",\n errorCantUpgrade: "このTiddlyWikiを更新できませんでした。ローカルに保存したファイルにしか、TiddlyWikiの更新はできません。",\n errorNotSaved: "更新を行う前にまずファイルを保存してください。",\n step2Title: "更新作業の詳細を確認",\n step2Html_downgrade: "TiddlyWikiのバージョンを %0 から %1 へダウングレードしようとしています。<br><br>TiddlyWiki本体を旧バージョンにダウングレードすることは推奨されません。",\n step2Html_restore: "このTiddlyWikiはすでに最新版(%0)です。<br><br>もちろんTiddlyWiki本体が破損していたときなどのために、このまま更新を継続することもできます。",\n step2Html_upgrade: "TiddlyWikiのバージョンを %0 から %1 に更新しようとしています。",\n upgradeLabel: "更新",\n upgradePrompt: "更新処理の準備",\n statusPreparingBackup: "バックアップの準備中",\n statusSavingBackup: "バックアップファイル保存中",\n errorSavingBackup: "バックアップファイルの保存中にエラーが発生しました",\n statusLoadingCore: "本体プログラムを読み込み中",\n errorLoadingCore: "本体プログラムの読み込み中にエラーが発生しました",\n errorCoreFormat: "新しいプログラムにエラーが発生しました",\n statusSavingCore: "本体プログラムの保存中",\n statusReloadingCore: "本体プログラムのリロード中",\n startLabel: "開始",\n startPrompt: "更新処理を開始する",\n cancelLabel: "キャンセル",\n cancelPrompt: "更新処理を中断する",\n step3Title: "更新処理を中断",\n step3Html: "更新処理を中断しました"\n });\n\nmerge(config.macros.sync,{\n listViewTemplate: {\n columns: [\n {name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},\n {name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},\n {name: 'Server Type', field: 'serverType', title: "種別", type: 'String'},\n {name: 'Server Host', field: 'serverHost', title: "サーバーホスト", type: 'String'},\n {name: 'Server Workspace', field: 'serverWorkspace', title: "ワークスペース", type: 'String'},\n {name: 'Status', field: 'status', title: "同期ステータス", type: 'String'},\n {name: 'Server URL', field: 'serverUrl', title: "サーバーURL", text: "開く", type: 'Link'}\n ],\n rowClasses: [\n ],\n buttons: [\n {caption: "これらのtiddlerを同期", name: 'sync'}\n ]},\n wizardTitle: "外部サーバーやファイルとの同期",\n step1Title: "同期したいtiddlerを選択してください",\n step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE\n syncLabel: "同期",\n syncPrompt: "各tiddlerを同期します",\n hasChanged: "ローカル側変更あり",\n hasNotChanged: "ローカル側変更なし",\n syncStatusList: {\n none: {text: "...", display:null, className:'notChanged'},\n changedServer: {text: "サーバー側で変更あり", display:null, className:'changedServer'},\n changedLocally: {text: "ローカル側で変更あり", display:null, className:'changedLocally'},\n changedBoth: {text: "双方で変更あり", display:null, className:'changedBoth'},\n notFound: {text: "サーバーに見つかりません", display:null, className:'notFound'},\n putToServer: {text: "更新をサーバーに保存しました", display:null, className:'putToServer'},\n gotFromServer: {text: "サーバーから更新を取得しました", display:null, className:'gotFromServer'}\n }\n });\n\nmerge(config.commands.closeTiddler,{\n text: "閉じる",\n tooltip: "このtiddlerを閉じます"});\n\nmerge(config.commands.closeOthers,{\n text: "他を閉じる",\n tooltip: "他の全てのtiddlerを閉じます"});\n\nmerge(config.commands.editTiddler,{\n text: "編集",\n tooltip: "このtiddlerを編集します",\n readOnlyText: "閲覧",\n readOnlyTooltip: "このtiddlerのソースを表示します"});\n\nmerge(config.commands.saveTiddler,{\n text: "確定",\n tooltip: "このtiddlerへの変更を保存します"});\n\nmerge(config.commands.cancelTiddler,{\n text: "キャンセル",\n tooltip: "このtiddlerへの変更を破棄します",\n warning: "本当に '%0' の変更を破棄して良いですか?",\n readOnlyText: "終了",\n readOnlyTooltip: "このtiddlerを通常表示にします"});\n\nmerge(config.commands.deleteTiddler,{\n text: "削除",\n tooltip: "このtiddlerを削除します",\n warning: "本当に '%0' を削除して良いですか?"});\n\nmerge(config.commands.permalink,{\n text: "リンクURL",\n tooltip: "このtiddlerへのURLをアドレス欄に生成します"});\n\nmerge(config.commands.references,{\n text: "参照一覧",\n tooltip: "このtiddlerへの参照を一覧表示します",\n popupNone: "参照がありません"});\n\nmerge(config.commands.jump,{\n text: "ジャンプ",\n tooltip: "他に開いているtiddlerへジャンプ"});\n\nmerge(config.commands.syncing,{\n text: "同期",\n tooltip: "このtiddlerと外部のサーバー(ファイル)との同期を制御します",\n currentlySyncing: "<div>現在の同期状態<br>種別: <span class='popupHighlight'>'%0'</span><br></"+"div><div>ホスト: <span class='popupHighlight'>%1</span></"+"div><br><div>ワークスペース: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag\n notCurrentlySyncing: "同期されていません",\n captionUnSync: "このtiddlerの同期を停止",\n chooseServer: "このtiddlerを次のサーバーと同期する:",\n currServerMarker: "\su25cf ",\n notCurrServerMarker: " "});\n\nmerge(config.commands.fields,{\n text: "拡張情報",\n tooltip: "このtiddlerの拡張情報を表示します",\n emptyText: "このtiddlerには拡張情報がありません",\n listViewTemplate: {\n columns: [\n {name: 'Field', field: 'field', title: "項目", type: 'String'},\n {name: 'Value', field: 'value', title: "値", type: 'String'}\n ],\n rowClasses: [\n ],\n buttons: [\n ]}});\n\nmerge(config.shadowTiddlers,{\n DefaultTiddlers: "[[TranslatedGettingStarted]]",\n MainMenu: "[[TranslatedGettingStarted]]\sn\sn\sn^^~TiddlyWiki version <<version>>\sn(c) 2010 [[UnaMesa|http://www.unamesa.org/]]^^",\n TranslatedGettingStarted: "この空の~TiddlyWikiを使い始めるにあたって、まずは以下のtiddlerを編集してください。:\sn;SiteTitle & SiteSubtitle: \sn:このサイトのタイトルおよびサブタイトル。この上に表示されています。<br>保存後はブラウザのタイトルバーにも表示されます。\sn;MainMenu: \sn:メニュー。たいていは左側に表示されています。\sn;DefaultTiddlers: \sn:ここにtiddlerの名前が書かれていると、この TiddlyWiki を開いたときに、<br>そのtiddlerが初期表示されます。\snあなたの名前(編集したtiddlerに表示されます): <<option txtUserName>>",\n SiteTitle: "My TiddlyWiki",\n SiteSubtitle: "a reusable non-linear personal web notebook",\n SiteUrl: "",\n OptionsPanel: "これらの~TiddlyWikiを制御する各オプションの設定は、使用中のブラウザに保存されます。\sn\sn署名として使用するあなたの名前を~WikiWord形式(例 JoeBloggs)で入力してください。\sn<<option txtUserName>>\sn\sn<<option chkSaveBackups>> バックアップを保存\sn<<option chkAutoSave>> 自動保存\sn<<option chkRegExpSearch>> 正規表現で検索\sn<<option chkCaseSensitiveSearch>> 検索で大文字小文字を区別\sn<<option chkAnimate>> アニメーション\sn\sn----\sn詳細設定 [[TranslatedAdvancedOptions|AdvancedOptions]]",\n SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "YYYY年MM月DD日" "ジャーナル">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "オプション \su00bb" "TiddlyWiki の詳細設定">>',\n SideBarTabs: '<<tabs txtMainTab "時系列" "更新時刻の降順" TabTimeline "全て" "全てのtiddler" TabAll "タグ別" "全てのタグ" TabTags "その他" "その他の一覧" TabMore>>',\n TabMore: '<<tabs txtMoreTab "未作成" "リンクがあるのに存在しないtiddler" TabMoreMissing "孤立" "どこからもリンクされていないtiddler" TabMoreOrphans "隠し" "隠されているtiddler" TabMoreShadowed>>'});\n\nmerge(config.annotations,{\n AdvancedOptions: "このtiddlerでは詳細オプションを設定できます",\n ColorPalette: "この隠しtiddlerで設定された各値によって、この~TiddlyWikiでの色の枠組みが規定されます。",\n DefaultTiddlers: "この隠しtiddlerに列挙された各tiddlerは、この~TiddlyWIkiを開くと同時に自動的に表示されます。",\n EditTemplate: "この隠しtiddlerにあるHTMLテンプレートは、tiddler編集中の表示方法を決定します。",\n GettingStarted: "この隠しtiddlerは基本的な使用方法を説明します。",\n ImportTiddlers: "この隠しtiddlerは他のtiddlerの取り込み機能を提供します。",\n MainMenu: "この隠しtiddlerの内容は「メインメニュー」に表示されます。画面左手に表示されます。",\n MarkupPreHead: "この隠しtiddlerの内容は、このTiddlyWikiHTMLファイルの<head>セクション開始直後に挿入されます。",\n MarkupPostHead: "この隠しtiddlerの内容は、このTiddlyWikiHTMLファイルの<head>セクション終了直前に挿入されます。",\n MarkupPreBody: "この隠しtiddlerの内容は、このTiddlyWikiHTMLファイルの<body>セクション開始直後に挿入されます。",\n MarkupPostBody: "この隠しtiddlerの内容は、このTiddlyWikiHTMLファイルのスクリプトブロック直後にある、<body>セクション終了直前に挿入されます。",\n OptionsPanel: "この隠しtiddlerの内容は、右手のサイドバー内でスライド式のオプションパネルとして表示されます。",\n PageTemplate: "この隠しtiddlerにあるHTMLテンプレートは、~TiddlyWiki全体のレイアウトを決定します。",\n PluginManager: "この隠しtiddlerはプラグインマネージャ機能を提供します。",\n SideBarOptions: "この隠しtiddlerの内容は右手のサイドバー内のオプションパネルとして表示されます。",\n SideBarTabs: "この隠しtiddlerの内容は右手のサイドバー内にタブパネルとして表示されます。",\n SiteSubtitle: "この隠しtiddlerはページのサブタイトルとして利用されます。",\n SiteTitle: "この隠しtiddlerはページのメインタイトルとして利用されます。",\n SiteUrl: "この隠しtiddlerには、このTiddlyWikiを公開する際のURLを指定する必要があります。",\n StyleSheetColors: "この隠しtiddlerはページ内各要素の色に関するCSSを規定します。このtiddlerを編集しないでください。色を修正するには代わりに StyleSheet 隠しtiddler を編集してください。",\n StyleSheet: "この隠しtiddlerはカスタムCSSを規定します。",\n StyleSheetLayout: "この隠しtiddlerはページ内各要素のレイアウトに関するCSSを規定します。このtiddlerを編集しないでください。レイアウトを修正するには代わりに StyleSheet 隠しtiddler を編集してください。",\n StyleSheetLocale: "この隠しtiddlerはページ内各要素の翻訳ロケールに関するCSSを規定します。",\n StyleSheetPrint: "この隠しtiddlerは印刷に関するCSSを規定します。",\n TabAll: "この隠しtiddlerの内容は右手のサイドバー内「全て」タブに表示されます。",\n TabMore: "この隠しtiddlerの内容は右手のサイドバー内「その他」タブに表示されます。",\n TabMoreMissing: "この隠しtiddlerの内容は右手のサイドバー内「未作成」タブに表示されます。",\n TabMoreOrphans: "この隠しtiddlerの内容は右手のサイドバー内「孤立」タブに表示されます。",\n TabMoreShadowed: "この隠しtiddlerの内容は右手のサイドバー内「隠し」タブに表示されます。",\n TabTags: "この隠しtiddlerの内容は右手のサイドバー内「タグ別」タブに表示されます。",\n TabTimeline: "この隠しtiddlerの内容は右手のサイドバー内「時系列」タブに表示されます。",\n ToolbarCommands: "この隠しtiddlerはtiddlerツールバーにどのようなコマンドを表示するかを決定します。",\n ViewTemplate: "この隠しtiddlerにあるHTMLテンプレートは、各tiddlerの表示方法を決定します。"\n });\n//}}}
[[Menu|Startup]]\n^^TiddlyWiki version <<version>>^^\n<<search>>\n
<md>\nquotation from \nhttps://daringfireball.net/projects/markdown/basics.text\n\n\nMarkdown: Basics\n================\n\n<ul id="ProjectSubmenu">\n <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\n <li><a class="selected" title="Markdown Basics">Basics</a></li>\n <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>\n <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\n <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\n</ul>\n\n\nGetting the Gist of Markdown's Formatting Syntax\n------------------------------------------------\n\nThis page offers a brief overview of what it's like to use Markdown.\nThe [syntax page] [s] provides complete, detailed documentation for\nevery feature, but Markdown should be very easy to pick up simply by\nlooking at a few examples of it in action. The examples on this page\nare written in a before/after style, showing example syntax and the\nHTML output produced by Markdown.\n\nIt's also helpful to simply try Markdown out; the [Dingus] [d] is a\nweb application that allows you type your own Markdown-formatted text\nand translate it to XHTML.\n\n**Note:** This document is itself written using Markdown; you\ncan [see the source for it by adding '.text' to the URL] [src].\n\n [s]: /projects/markdown/syntax "Markdown Syntax"\n [d]: /projects/markdown/dingus "Markdown Dingus"\n [src]: /projects/markdown/basics.text\n\n\n## Paragraphs, Headers, Blockquotes ##\n\nA paragraph is simply one or more consecutive lines of text, separated\nby one or more blank lines. (A blank line is any line that looks like\na blank line -- a line containing nothing but spaces or tabs is\nconsidered blank.) Normal paragraphs should not be indented with\nspaces or tabs.\n\nMarkdown offers two styles of headers: *Setext* and *atx*.\nSetext-style headers for `<h1>` and `<h2>` are created by\n"underlining" with equal signs (`=`) and hyphens (`-`), respectively.\nTo create an atx-style header, you put 1-6 hash marks (`#`) at the\nbeginning of the line -- the number of hashes equals the resulting\nHTML header level.\n\nBlockquotes are indicated using email-style '`>`' angle brackets.\n\nMarkdown:\n\n A First Level Header\n ====================\n \n A Second Level Header\n ---------------------\n\n Now is the time for all good men to come to\n the aid of their country. This is just a\n regular paragraph.\n\n The quick brown fox jumped over the lazy\n dog's back.\n \n ### Header 3\n\n > This is a blockquote.\n > \n > This is the second paragraph in the blockquote.\n >\n > ## This is an H2 in a blockquote\n\n\nOutput:\n\n <h1>A First Level Header</h1>\n \n <h2>A Second Level Header</h2>\n \n <p>Now is the time for all good men to come to\n the aid of their country. This is just a\n regular paragraph.</p>\n \n <p>The quick brown fox jumped over the lazy\n dog's back.</p>\n \n <h3>Header 3</h3>\n \n <blockquote>\n <p>This is a blockquote.</p>\n \n <p>This is the second paragraph in the blockquote.</p>\n \n <h2>This is an H2 in a blockquote</h2>\n </blockquote>\n\n\n\n### Phrase Emphasis ###\n\nMarkdown uses asterisks and underscores to indicate spans of emphasis.\n\nMarkdown:\n\n Some of these words *are emphasized*.\n Some of these words _are emphasized also_.\n \n Use two asterisks for **strong emphasis**.\n Or, if you prefer, __use two underscores instead__.\n\nOutput:\n\n <p>Some of these words <em>are emphasized</em>.\n Some of these words <em>are emphasized also</em>.</p>\n \n <p>Use two asterisks for <strong>strong emphasis</strong>.\n Or, if you prefer, <strong>use two underscores instead</strong>.</p>\n \n\n\n## Lists ##\n\nUnordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,\n`+`, and `-`) as list markers. These three markers are\ninterchangable; this:\n\n * Candy.\n * Gum.\n * Booze.\n\nthis:\n\n + Candy.\n + Gum.\n + Booze.\n\nand this:\n\n - Candy.\n - Gum.\n - Booze.\n\nall produce the same output:\n\n <ul>\n <li>Candy.</li>\n <li>Gum.</li>\n <li>Booze.</li>\n </ul>\n\nOrdered (numbered) lists use regular numbers, followed by periods, as\nlist markers:\n\n 1. Red\n 2. Green\n 3. Blue\n\nOutput:\n\n <ol>\n <li>Red</li>\n <li>Green</li>\n <li>Blue</li>\n </ol>\n\nIf you put blank lines between items, you'll get `<p>` tags for the\nlist item text. You can create multi-paragraph list items by indenting\nthe paragraphs by 4 spaces or 1 tab:\n\n * A list item.\n \n With multiple paragraphs.\n\n * Another item in the list.\n\nOutput:\n\n <ul>\n <li><p>A list item.</p>\n <p>With multiple paragraphs.</p></li>\n <li><p>Another item in the list.</p></li>\n </ul>\n \n\n\n### Links ###\n\nMarkdown supports two styles for creating links: *inline* and\n*reference*. With both styles, you use square brackets to delimit the\ntext you want to turn into a link.\n\nInline-style links use parentheses immediately after the link text.\nFor example:\n\n This is an [example link](http://example.com/).\n\nOutput:\n\n <p>This is an <a href="http://example.com/">\n example link</a>.</p>\n\nOptionally, you may include a title attribute in the parentheses:\n\n This is an [example link](http://example.com/ "With a Title").\n\nOutput:\n\n <p>This is an <a href="http://example.com/" title="With a Title">\n example link</a>.</p>\n\nReference-style links allow you to refer to your links by names, which\nyou define elsewhere in your document:\n\n I get 10 times more traffic from [Google][1] than from\n [Yahoo][2] or [MSN][3].\n\n [1]: http://google.com/ "Google"\n [2]: http://search.yahoo.com/ "Yahoo Search"\n [3]: http://search.msn.com/ "MSN Search"\n\nOutput:\n\n <p>I get 10 times more traffic from <a href="http://google.com/"\n title="Google">Google</a> than from <a href="http://search.yahoo.com/"\n title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"\n title="MSN Search">MSN</a>.</p>\n\nThe title attribute is optional. Link names may contain letters,\nnumbers and spaces, but are *not* case sensitive:\n\n I start my morning with a cup of coffee and\n [The New York Times][NY Times].\n\n [ny times]: http://www.nytimes.com/\n\nOutput:\n\n <p>I start my morning with a cup of coffee and\n <a href="http://www.nytimes.com/">The New York Times</a>.</p>\n\n\n### Images ###\n\nImage syntax is very much like link syntax.\n\nInline (titles are optional):\n\n ![alt text](/path/to/img.jpg "Title")\n\nReference-style:\n\n ![alt text][id]\n\n [id]: /path/to/img.jpg "Title"\n\nBoth of the above examples produce the same output:\n\n <img src="/path/to/img.jpg" alt="alt text" title="Title" />\n\n\n\n### Code ###\n\nIn a regular paragraph, you can create code span by wrapping text in\nbacktick quotes. Any ampersands (`&`) and angle brackets (`<` or\n`>`) will automatically be translated into HTML entities. This makes\nit easy to use Markdown to write about HTML example code:\n\n I strongly recommend against using any `<blink>` tags.\n\n I wish SmartyPants used named entities like `&mdash;`\n instead of decimal-encoded entites like `&#8212;`.\n\nOutput:\n\n <p>I strongly recommend against using any\n <code>&lt;blink&gt;</code> tags.</p>\n \n <p>I wish SmartyPants used named entities like\n <code>&amp;mdash;</code> instead of decimal-encoded\n entites like <code>&amp;#8212;</code>.</p>\n\n\nTo specify an entire block of pre-formatted code, indent every line of\nthe block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`,\nand `>` characters will be escaped automatically.\n\nMarkdown:\n\n If you want your page to validate under XHTML 1.0 Strict,\n you've got to put paragraph tags in your blockquotes:\n\n <blockquote>\n <p>For example.</p>\n </blockquote>\n\nOutput:\n\n <p>If you want your page to validate under XHTML 1.0 Strict,\n you've got to put paragraph tags in your blockquotes:</p>\n \n <pre><code>&lt;blockquote&gt;\n &lt;p&gt;For example.&lt;/p&gt;\n &lt;/blockquote&gt;\n </code></pre>\n\n</md>
<!--{{{-->\n<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />\n<link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIklEQVQ4jXWTX0xTdxzFf5mPC2wlkxlRprK9DIJbMrPgRpxLnC+LybLF8AAyspk9sIcpGoYKtmXQqUXEODPHjKUq0N723rb38r/Iyv49LGFsgGBLaQFbCoWKGboMk3320KzaLHs4j+eTk/P9HvHRyXoudg9jlvsxK/2ck/swKwM0ubyYbBqGNgmj1YnR6khJb5Ew2TQqagwIvUWiWb3FFzcUzjp6MCsDmDpV6m/IXP1+lJ7IGlr4HtrsakpqKIE3vo7JpiEqG8+TV7CTTbnbyHhWx1MbNpCz40WeyXqO8urTdM3dxzY2i3T7bkr28TnUUAK9RUIYrU608D28S39RXl3H81tfQA0lUAKLOKei2CfmcU5F0yRNzOOZWcFodSCMVgeemWX6Y39SdvwU2TlbcQfjOCYjuKbj9EbX0syOyQiyP8ZQ4m+MVmcS4A4u07fwkLJjSYArsIQ7GOfK0C9UNV9JM7uml2gdHqH22w70FvvjBH1PJFD8MXoif3Cq9SaZuiw6fw8j+2PYxsL0RNb4/KtrbH+5gPrr8v8AAotos6ucdfai25iN5edxPKEV3ME4vdEHfHbuEvm7ijgjdT8BWHjIoeO1ZG/JxRVYRA0luNT3Ixm6LFp9I3T8NkPDTReD8UccrmvklTffwqz0p5dYWnWSjZu34JpOdnDtpzGezsjk6g+jHGm6jBACdzBOeXUdRfvf5bxn8F/ACr3RB3xc20BefiGu6SWUwCLtvwbJ1GXR0uVj38FShBAY2iRKq07w9vslXNC+SwK02VUckxHs43N0jM7gnIoi31lAmphn8/Y8KhubeW3vPt4pKWPPgQ947/CnHKj4hIvdw48B0u27yHcWUPyx1Nlkf4yC13ez84097C85RKtvhJwdL1G4u5gPq08nE+gtEmoogX18LvmqE/Opd/WEVni1eC9CCI61fIM3vk5hUTFCCI40XcasDCBMNg1vfB01lPjPYAaXH3Gw8ij5u4qwjYXx3YcTX1vZlLuNli4fF7QhREWNAZNNQ2+R0iZrtDowtDloaHfzpb2L+usyhjaJhnY3pk6VM1I3FTUG/gEHGNeMoFv3zwAAAABJRU5ErkJggg==" />\n<!--}}}-->\n
<md>\n# MathJax in Markdown notation\n\n## inline equation `$---$`\n``` console\nThis is an inline equation $P(E) = {n \schoose k} p^k (1-p)^{ n-k}$ \n```\nThis is an inline equation $P(E) = {n \schoose k} p^k (1-p)^{ n-k}$ \n\n## inline equation `\s\s(---\s\s)`\n``` console\nThis is an inline equation \s\s(P(E) = {n \schoose k} p^k (1-p)^{ n-k}\s\s)\n```\nThis is an inline equation \s\s(P(E) = {n \schoose k} p^k (1-p)^{ n-k}\s\s)\n \n## displayed equation `$$---$$`\n``` console\nthis is a displayed equation: \n$$\nP(E) = {n \schoose k} p^k (1-p)^{ n-k}\n$$\n```\nthis is a displayed equation: \n$$\nP(E) = {n \schoose k} p^k (1-p)^{ n-k}\n$$\n\n## displayed equation `\s\s[---\s\s]`\n``` console\nthis is a displayed equation: \n\s\s[\n\sGamma(z) = \sint_0^\sinfty t^{z-1}e^{-t}dt\s,.\n\s\s]\n```\nthis is a displayed equation: \n\s\s[\n\sGamma(z) = \sint_0^\sinfty t^{z-1}e^{-t}dt\s,.\n\s\s]\n\n## equation numbers\n``` console\n\sbegin{equation}\n E = mc^2\n\send{equation}\n```\nwill be numbered, while\n\sbegin{equation}\n E = mc^2\n\send{equation}\n\n\sbegin{equation}\n E = mc^2\n\send{equation}\n\n\sbegin{equation}\n E = mc^2\n\send{equation}\n\n``` console\n\sbegin{equation\s*}\n e^{\spi i} + 1 = 0\n\send{equation\s*}\n```\nwon’t be numbered.\n\n\sbegin{equation\s*}\n e^{\spi i} + 1 = 0\n\send{equation\s*}\n\n\nlabeled equation and a reference.\n``` console\nIn equation $\seqref{eq:sample}$, we find the value of an\ninteresting integral:\n\n\sbegin{equation}\n \sint_0^\sinfty \sfrac{x^3}{e^x-1}\s,dx = \sfrac{\spi^4}{15}\n \slabel{eq:sample}\n\send{equation}\n```\nIn equation $\seqref{eq:sample}$, we find the value of an\ninteresting integral:\n\n\sbegin{equation}\n \sint_0^\sinfty \sfrac{x^3}{e^x-1}\s,dx = \sfrac{\spi^4}{15}\n \slabel{eq:sample}\n\send{equation}\n\n\n### If you writing the dollar sign into a tiddler. To use escape the `$` sign for `\s\s$` notation.\n``` console\n13‑inch starts at \s\s$1299, 15‑inch starts at \s\s$1999\n```\n13‑inch starts at \s\s$1299, 15‑inch starts at \s\s$1999\n\n</md>
/***\n|<html><a name="Top"/></html>''Name:''|PartTiddlerPlugin|\n|''Version:''|1.0.10 (2011-05-23)|\n|''Source:''|http://tiddlywiki.abego-software.de/#PartTiddlerPlugin|\n|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|\n|''Licence:''|[[BSD open source license]]|\n|''CoreVersion:''|2.1.3|\n|''Browser:''|Firefox 1.0.4+; InternetExplorer 6.0|\n!Table of Content<html><a name="TOC"/></html>\n* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Description',null, event)">Description, Syntax</a></html>\n* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Applications',null, event)">Applications</a></html>\n** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('LongTiddler',null, event)">Refering to Paragraphs of a Longer Tiddler</a></html>\n** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Citation',null, event)">Citation Index</a></html>\n** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('TableCells',null, event)">Creating "multi-line" Table Cells</a></html>\n** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Tabs',null, event)">Creating Tabs</a></html>\n** <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Sliders',null, event)">Using Sliders</a></html>\n* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Revisions',null, event)">Revision History</a></html>\n* <html><a href="javascript:;" onclick="window.scrollAnchorVisible('Code',null, event)">Code</a></html>\n!Description<html><a name="Description"/></html>\nWith the {{{<part aPartName> ... </part>}}} feature you can structure your tiddler text into separate (named) parts. \nEach part can be referenced as a "normal" tiddler, using the "//tiddlerName//''/''//partName//" syntax (e.g. "About/Features"). E.g. you may create links to the parts (e.g. {{{[[Quotes/BAX95]]}}} or {{{[[Hobbies|AboutMe/Hobbies]]}}}), use it in {{{<<tiddler...>>}}} or {{{<<tabs...>>}}} macros etc.\n\n\n''Syntax:'' \n|>|''<part'' //partName// [''hidden''] ''>'' //any tiddler content// ''</part>''|\n|//partName//|The name of the part. You may reference a part tiddler with the combined tiddler name "//nameOfContainerTidder//''/''//partName//. <<br>>If you use a partName containing spaces you need to quote it (e.g. {{{"Major Overview"}}} or {{{[[Shortcut List]]}}}).|\n|''hidden''|When defined the content of the part is not displayed in the container tiddler. But when the part is explicitly referenced (e.g. in a {{{<<tiddler...>>}}} macro or in a link) the part's content is displayed.|\n|<html><i>any&nbsp;tiddler&nbsp;content</i></html>|<html>The content of the part.<br>A part can have any content that a "normal" tiddler may have, e.g. you may use all the formattings and macros defined.</html>|\n|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!Applications<html><a name="Applications"/></html>\n!!Refering to Paragraphs of a Longer Tiddler<html><a name="LongTiddler"/></html>\nAssume you have written a long description in a tiddler and now you want to refer to the content of a certain paragraph in that tiddler (e.g. some definition.) Just wrap the text with a ''part'' block, give it a nice name, create a "pretty link" (like {{{[[Discussion Groups|Introduction/DiscussionGroups]]}}}) and you are done.\n\nNotice this complements the approach to first writing a lot of small tiddlers and combine these tiddlers to one larger tiddler in a second step (e.g. using the {{{<<tiddler...>>}}} macro). Using the ''part'' feature you can first write a "classic" (longer) text that can be read "from top to bottom" and later "reuse" parts of this text for some more "non-linear" reading.\n\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!!Citation Index<html><a name="Citation"/></html>\nCreate a tiddler "Citations" that contains your "citations". \nWrap every citation with a part and a proper name. \n\n''Example''\n{{{\n<part BAX98>Baxter, Ira D. et al: //Clone Detection Using Abstract Syntax Trees.// \nin //Proc. ICSM//, 1998.</part>\n\n<part BEL02>Bellon, Stefan: //Vergleich von Techniken zur Erkennung duplizierten Quellcodes.// \nThesis, Uni Stuttgart, 2002.</part>\n\n<part DUC99>Ducasse, St�fane et al: //A Language Independent Approach for Detecting Duplicated Code.// \nin //Proc. ICSM//, 1999.</part>\n}}}\n\nYou may now "cite" them just by using a pretty link like {{{[[Citations/BAX98]]}}} or even more pretty, like this {{{[[BAX98|Citations/BAX98]]}}}.\n\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!!Creating "multi-line" Table Cells<html><a name="TableCells"/></html>\nYou may have noticed that it is hard to create table cells with "multi-line" content. E.g. if you want to create a bullet list inside a table cell you cannot just write the bullet list\n{{{\n* Item 1\n* Item 2\n* Item 3\n}}}\ninto a table cell (i.e. between the | ... | bars) because every bullet item must start in a new line but all cells of a table row must be in one line.\n\nUsing the ''part'' feature this problem can be solved. Just create a hidden part that contains the cells content and use a {{{<<tiddler >>}}} macro to include its content in the table's cell.\n\n''Example''\n{{{\n|!Subject|!Items|\n|subject1|<<tiddler ./Cell1>>|\n|subject2|<<tiddler ./Cell2>>|\n\n<part Cell1 hidden>\n* Item 1\n* Item 2\n* Item 3\n</part>\n...\n}}}\n\nNotice that inside the {{{<<tiddler ...>>}}} macro you may refer to the "current tiddler" using the ".".\n\nBTW: The same approach can be used to create bullet lists with items that contain more than one line.\n\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!!Creating Tabs<html><a name="Tabs"/></html>\nThe build-in {{{<<tabs ...>>}}} macro requires that you defined an additional tiddler for every tab it displays. When you want to have "nested" tabs you need to define a tiddler for the "main tab" and one for every tab it contains. I.e. the definition of a set of tabs that is visually displayed at one place is distributed across multiple tiddlers.\n\nWith the ''part'' feature you can put the complete definition in one tiddler, making it easier to keep an overview and maintain the tab sets.\n\n''Example''\nThe standard tabs at the sidebar are defined by the following eight tiddlers:\n* SideBarTabs\n* TabAll\n* TabMore\n* TabMoreMissing\n* TabMoreOrphans\n* TabMoreShadowed\n* TabTags\n* TabTimeline\n\nInstead of these eight tiddlers one could define the following SideBarTabs tiddler that uses the ''part'' feature:\n{{{\n<<tabs txtMainTab \n Timeline Timeline SideBarTabs/Timeline \n All 'All tiddlers' SideBarTabs/All \n Tags 'All tags' SideBarTabs/Tags \n More 'More lists' SideBarTabs/More>>\n<part Timeline hidden><<timeline>></part>\n<part All hidden><<list all>></part>\n<part Tags hidden><<allTags>></part>\n<part More hidden><<tabs txtMoreTab \n Missing 'Missing tiddlers' SideBarTabs/Missing \n Orphans 'Orphaned tiddlers' SideBarTabs/Orphans \n Shadowed 'Shadowed tiddlers' SideBarTabs/Shadowed>></part>\n<part Missing hidden><<list missing>></part>\n<part Orphans hidden><<list orphans>></part>\n<part Shadowed hidden><<list shadowed>></part>\n}}}\n\nNotice that you can easily "overwrite" individual parts in separate tiddlers that have the full name of the part.\n\nE.g. if you don't like the classic timeline tab but only want to see the 100 most recent tiddlers you could create a tiddler "~SideBarTabs/Timeline" with the following content:\n{{{\n<<forEachTiddler \n sortBy 'tiddler.modified' descending \n write '(index < 100) ? "* [["+tiddler.title+"]]\sn":""'>>\n}}}\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!!Using Sliders<html><a name="Sliders"/></html>\nVery similar to the build-in {{{<<tabs ...>>}}} macro (see above) the {{{<<slider ...>>}}} macro requires that you defined an additional tiddler that holds the content "to be slid". You can avoid creating this extra tiddler by using the ''part'' feature\n\n''Example''\nIn a tiddler "About" we may use the slider to show some details that are documented in the tiddler's "Details" part.\n{{{\n...\n<<slider chkAboutDetails About/Details details "Click here to see more details">>\n<part Details hidden>\nTo give you a better overview ...\n</part>\n...\n}}}\n\nNotice that putting the content of the slider into the slider's tiddler also has an extra benefit: When you decide you need to edit the content of the slider you can just doubleclick the content, the tiddler opens for editing and you can directly start editing the content (in the part section). In the "old" approach you would doubleclick the tiddler, see that the slider is using tiddler X, have to look for the tiddler X and can finally open it for editing. So using the ''part'' approach results in a much short workflow.\n\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!Revision history<html><a name="Revisions"/></html>\n* v1.0.10 (2011-05-23)\n** Adapt to TW 2.6.2 default behaviour when existing tiddlers are opened (don't select text) and fixed Firefox 4 issue. Thanks to dave for reporting the issue.\n* v1.0.9 (2007-07-14)\n** Bugfix: Error when using the SideBarTabs example and switching between "More" and "Shadow". Thanks to cmari for reporting the issue.\n* v1.0.8 (2007-06-16)\n** Speeding up display of tiddlers containing multiple pard definitions. Thanks to Paco Rivi�re for reporting the issue.\n** Support "./partName" syntax inside {{{<<tabs ...>>}}} macro\n* v1.0.7 (2007-03-07)\n** Bugfix: <<tiddler "./partName">> does not always render correctly after a refresh (e.g. like it happens when using the "Include" plugin). Thanks to Morris Gray for reporting the bug.\n* v1.0.6 (2006-11-07)\n** Bugfix: cannot edit tiddler when UploadPlugin by Bidix is installed. Thanks to Jos� Luis Gonz�lez Castro for reporting the bug.\n* v1.0.5 (2006-03-02)\n** Bugfix: Example with multi-line table cells does not work in IE6. Thanks to Paulo Soares for reporting the bug.\n* v1.0.4 (2006-02-28)\n** Bugfix: Shadow tiddlers cannot be edited (in TW 2.0.6). Thanks to Torsten Vanek for reporting the bug.\n* v1.0.3 (2006-02-26)\n** Adapt code to newly introduced Tiddler.prototype.isReadOnly() function (in TW 2.0.6). Thanks to Paulo Soares for reporting the problem.\n* v1.0.2 (2006-02-05)\n** Also allow other macros than the "tiddler" macro use the "." in the part reference (to refer to "this" tiddler)\n* v1.0.1 (2006-01-27)\n** Added Table of Content for plugin documentation. Thanks to RichCarrillo for suggesting.\n** Bugfix: newReminder plugin does not work when PartTiddler is installed. Thanks to PauloSoares for reporting.\n* v1.0.0 (2006-01-25)\n** initial version\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!Code<html><a name="Code"/></html>\n<html><sub><a href="javascript:;" onclick="window.scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n***/\n//{{{\n//============================================================================\n// PartTiddlerPlugin\n\n// Ensure that the PartTiddler Plugin is only installed once.\n//\nif (!version.extensions.PartTiddlerPlugin) {\n\n\n\nversion.extensions.PartTiddlerPlugin = {\n major: 1, minor: 0, revision: 10,\n date: new Date(2011, 4, 23), \n type: 'plugin',\n source: "http://tiddlywiki.abego-software.de/#PartTiddlerPlugin"\n};\n\nif (!window.abego) window.abego = {};\nif (version.major < 2) alertAndThrow("PartTiddlerPlugin requires TiddlyWiki 2.0 or newer.");\n\n//============================================================================\n// Common Helpers\n\n// Looks for the next newline, starting at the index-th char of text. \n//\n// If there are only whitespaces between index and the newline \n// the index behind the newline is returned, \n// otherwise (or when no newline is found) index is returned.\n//\nvar skipEmptyEndOfLine = function(text, index) {\n var re = /(\sn|[^\ss])/g;\n re.lastIndex = index;\n var result = re.exec(text);\n return (result && text.charAt(result.index) == '\sn') \n ? result.index+1\n : index;\n}\n\n\n//============================================================================\n// Constants\n\nvar partEndOrStartTagRE = /(<\s/part>)|(<part(?:\ss+)((?:[^>])+)>)/mg;\nvar partEndTagREString = "<\s\s/part>";\nvar partEndTagString = "</part>";\n\n//============================================================================\n// Plugin Specific Helpers\n\n// Parse the parameters inside a <part ...> tag and return the result.\n//\n// @return [may be null] {partName: ..., isHidden: ...}\n//\nvar parseStartTagParams = function(paramText) {\n var params = paramText.readMacroParams();\n if (params.length == 0 || params[0].length == 0) return null;\n \n var name = params[0];\n var paramsIndex = 1;\n var hidden = false;\n if (paramsIndex < params.length) {\n hidden = params[paramsIndex] == "hidden";\n paramsIndex++;\n }\n \n return {\n partName: name, \n isHidden: hidden\n };\n}\n\n// Returns the match to the next (end or start) part tag in the text, \n// starting the search at startIndex.\n// \n// When no such tag is found null is returned, otherwise a "Match" is returned:\n// [0]: full match\n// [1]: matched "end" tag (or null when no end tag match)\n// [2]: matched "start" tag (or null when no start tag match)\n// [3]: content of start tag (or null if no start tag match)\n//\nvar findNextPartEndOrStartTagMatch = function(text, startIndex) {\n var re = new RegExp(partEndOrStartTagRE);\n re.lastIndex = startIndex;\n var match = re.exec(text);\n return match;\n}\n\n//============================================================================\n// Formatter\n\n// Process the <part ...> ... </part> starting at (w.source, w.matchStart) for formatting.\n//\n// @return true if a complete part section (including the end tag) could be processed, false otherwise.\n//\nvar handlePartSection = function(w) {\n var tagMatch = findNextPartEndOrStartTagMatch(w.source, w.matchStart);\n if (!tagMatch) return false;\n if (tagMatch.index != w.matchStart || !tagMatch[2]) return false;\n\n // Parse the start tag parameters\n var arguments = parseStartTagParams(tagMatch[3]);\n if (!arguments) return false;\n \n // Continue processing\n var startTagEndIndex = skipEmptyEndOfLine(w.source, tagMatch.index + tagMatch[0].length);\n var endMatch = findNextPartEndOrStartTagMatch(w.source, startTagEndIndex);\n if (endMatch && endMatch[1]) {\n if (!arguments.isHidden) {\n w.nextMatch = startTagEndIndex;\n w.subWikify(w.output,partEndTagREString);\n }\n w.nextMatch = skipEmptyEndOfLine(w.source, endMatch.index + endMatch[0].length);\n \n return true;\n }\n return false;\n}\n\nconfig.formatters.push( {\n name: "part",\n match: "<part\s\ss+[^>]+>",\n \n handler: function(w) {\n if (!handlePartSection(w)) {\n w.outputText(w.output,w.matchStart,w.matchStart+w.matchLength);\n }\n }\n} )\n\n//============================================================================\n// Extend "fetchTiddler" functionality to also recognize "part"s of tiddlers \n// as tiddlers.\n\nvar currentParent = null; // used for the "." parent (e.g. in the "tiddler" macro)\n\n// Return the match to the first <part ...> tag of the text that has the\n// requrest partName.\n//\n// @return [may be null]\n//\nvar findPartStartTagByName = function(text, partName) {\n var i = 0;\n \n while (true) {\n var tagMatch = findNextPartEndOrStartTagMatch(text, i);\n if (!tagMatch) return null;\n\n if (tagMatch[2]) {\n // Is start tag\n \n // Check the name\n var arguments = parseStartTagParams(tagMatch[3]);\n if (arguments && arguments.partName == partName) {\n return tagMatch;\n }\n }\n i = tagMatch.index+tagMatch[0].length;\n }\n}\n\n// Return the part "partName" of the given parentTiddler as a "readOnly" Tiddler \n// object, using fullName as the Tiddler's title. \n//\n// All remaining properties of the new Tiddler (tags etc.) are inherited from \n// the parentTiddler.\n// \n// @return [may be null]\n//\nvar getPart = function(parentTiddler, partName, fullName) {\n var text = parentTiddler.text;\n var startTag = findPartStartTagByName(text, partName);\n if (!startTag) return null;\n \n var endIndexOfStartTag = skipEmptyEndOfLine(text, startTag.index+startTag[0].length);\n var indexOfEndTag = text.indexOf(partEndTagString, endIndexOfStartTag);\n\n if (indexOfEndTag >= 0) {\n var partTiddlerText = text.substring(endIndexOfStartTag,indexOfEndTag);\n var partTiddler = new Tiddler();\n partTiddler.set(\n fullName,\n partTiddlerText,\n parentTiddler.modifier,\n parentTiddler.modified,\n parentTiddler.tags,\n parentTiddler.created);\n partTiddler.abegoIsPartTiddler = true;\n return partTiddler;\n }\n \n return null;\n}\n\n// Hijack the store.fetchTiddler to recognize the "part" addresses.\n//\nvar hijackFetchTiddler = function() {\n var oldFetchTiddler = store.fetchTiddler ;\n store.fetchTiddler = function(title) {\n var result = oldFetchTiddler.apply(this, arguments);\n if (!result && title) {\n var i = title.lastIndexOf('/');\n if (i > 0) {\n var parentName = title.substring(0, i);\n var partName = title.substring(i+1);\n var parent = (parentName == ".") \n ? store.resolveTiddler(currentParent)\n : oldFetchTiddler.apply(this, [parentName]);\n if (parent) {\n return getPart(parent, partName, parent.title+"/"+partName);\n }\n }\n }\n return result; \n };\n};\n\n// for debugging the plugin is not loaded through the systemConfig mechanism but via a script tag. \n// At that point in the "store" is not yet defined. In that case hijackFetchTiddler through the restart function.\n// Otherwise hijack now.\nif (!store) {\n var oldRestartFunc = restart;\n window.restart = function() {\n hijackFetchTiddler();\n oldRestartFunc.apply(this,arguments);\n };\n} else\n hijackFetchTiddler();\n\n\n\n\n// The user must not edit a readOnly/partTiddler\n//\n\nconfig.commands.editTiddler.oldIsReadOnlyFunction = Tiddler.prototype.isReadOnly;\n\nTiddler.prototype.isReadOnly = function() {\n // Tiddler.isReadOnly was introduced with TW 2.0.6.\n // For older version we explicitly check the global readOnly flag\n if (config.commands.editTiddler.oldIsReadOnlyFunction) {\n if (config.commands.editTiddler.oldIsReadOnlyFunction.apply(this, arguments)) return true;\n } else {\n if (readOnly) return true;\n }\n\n return this.abegoIsPartTiddler;\n}\n\nconfig.commands.editTiddler.handler_PartTiddlerPlugin = config.commands.editTiddler.handler;\n\nconfig.commands.editTiddler.handler = function(event,src,title)\n{\n var t = store.getTiddler(title);\n // Edit the tiddler if it either is not a tiddler (but a shadowTiddler)\n // or the tiddler is not readOnly\n if(!t || !t.abegoIsPartTiddler)\n {\n return config.commands.editTiddler.handler_PartTiddlerPlugin(event,src,title);\n }\n return false;\n}\n\n// To allow the "./partName" syntax in macros we need to hijack \n// the invokeMacro to define the "currentParent" while it is running.\n// \nvar oldInvokeMacro = window.invokeMacro;\nfunction myInvokeMacro(place,macro,params,wikifier,tiddler) {\n var oldCurrentParent = currentParent;\n if (tiddler) currentParent = tiddler;\n try {\n oldInvokeMacro.apply(this, arguments);\n } finally {\n currentParent = oldCurrentParent;\n }\n}\nwindow.invokeMacro = myInvokeMacro;\n\n// To correctly support the "./partName" syntax while refreshing we need to hijack \n// the config.refreshers.tiddlers to define the "currentParent" while it is running.\n// \n(function() {\n var oldTiddlerRefresher= config.refreshers.tiddler;\n config.refreshers.tiddler = function(e,changeList) {\n var oldCurrentParent = currentParent;\n try {\n currentParent = e.getAttribute("tiddler");\n return oldTiddlerRefresher.apply(this,arguments);\n } finally {\n currentParent = oldCurrentParent;\n }\n };\n})();\n\n// Support "./partName" syntax inside <<tabs ...>> macro\n(function() {\n var extendRelativeNames = function(e, title) {\n var nodes = e.getElementsByTagName("a");\n for(var i=0; i<nodes.length; i++) {\n var node = nodes[i];\n var s = node.getAttribute("content");\n if (s && s.indexOf("./") == 0)\n node.setAttribute("content",title+s.substr(1));\n }\n };\n var oldHandler = config.macros.tabs.handler;\n config.macros.tabs.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n var result = oldHandler.apply(this,arguments);\n if (tiddler)\n extendRelativeNames(place, tiddler.title);\n return result;\n };\n})();\n\n// Scroll the anchor anchorName in the viewer of the given tiddler visible.\n// When no tiddler is defined use the tiddler of the target given event is used.\nwindow.scrollAnchorVisible = function(anchorName, tiddler, evt) {\n var tiddlerElem = null;\n if (tiddler) {\n tiddlerElem = document.getElementById(story.idPrefix + tiddler);\n }\n if (!tiddlerElem && evt) {\n var target = resolveTarget(evt);\n tiddlerElem = story.findContainingTiddler(target);\n }\n if (!tiddlerElem) return;\n\n var children = tiddlerElem.getElementsByTagName("a");\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n var name = child.getAttribute("name");\n if (name == anchorName) {\n var y = findPosY(child);\n window.scrollTo(0,y);\n return;\n }\n }\n}\n\n} // of "install only once"\n//}}}\n\n/***\n<html><sub><a href="javascript:;" onclick="scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n\n!Licence and Copyright\nCopyright (c) abego Software ~GmbH, 2011 ([[www.abego-software.de|http://www.abego-software.de]])\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or other\nmaterials provided with the distribution.\n\nNeither the name of abego Software nor the names of its contributors may be\nused to endorse or promote products derived from this software without specific\nprior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\n<html><sub><a href="javascript:;" onclick="scrollAnchorVisible('Top',null, event)">[Top]</sub></a></html>\n***/\n
/***\n|''Name''|PluginMarkdown|\n|''Description''|Allows to use Markdown syntax and syntax highlight in a tiddler|\n|''Author''|icm7216 aka babooshka|\n|''Version''|1.2.4|\n|''date''|Nov. 21, 2018|\n|''Requires''|[[chjj/marked.js|https://github.com/chjj/marked]] <br> [[google/code-prettify.js|https://github.com/google/code-prettify]]|\n|''Source''|[[icm7216/TWC-Markdown-plugin|https://github.com/icm7216/TWC-Markdown-plugin]]|\n|''License''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|''~CoreVersion''|2.8.1|\n|''Change log''|(write in Japanese) [[icm7216/TWC-Markdown-plugin/CHANGES.md|https://github.com/icm7216/TWC-Markdown-plugin/blob/master/CHANGES.md]]|\n\n\nThis plugin are adapted from ShowDown.js (on [[TiddlyWikiPlugins/ShowDown.js|https://github.com/tobibeer/TiddlyWikiPlugins/blob/master/plugins/ShowDown.js]]).\nThanks [[tobibeer/TiddlyWikiPlugins|https://github.com/tobibeer/TiddlyWikiPlugins]].\n\nChanges from the original\n* Change Markdown parser from ShowDown to marked.\n* Added syntax highlighting.\n* Added stylesheet for Markdown.\n\ncredit of original author\n<<<\n||''Name''|ShowDown|\n||''Description''|Allows to use MarkDown syntax in a tiddler|\n||''Documentation''|http://tobibeer.tiddlyspace.com/#ShowDown|\n||''Author''|Tobias Beer|\n||''Contributions''|Mario Pietsch, Paul Downey|\n||''Version''|0.9.1|\n||''Requires''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/resources/ShowDown/ShowDown.js|\n||''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/ShowDown.js|\n||''License''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n||''~CoreVersion''|2.5.3|\n||''Type''|plugin|\n<<<\n\n\n-----\n\n\n!Description\n* allows to write in the [[GFM|https://help.github.com/articles/github-flavored-markdown]] notation.\n* allows to [[syntax highlighting|https://github.com/google/code-prettify]] of source code snippets for {{{<pre>}}} code blocks.<br>This plugin adds a new formatter for {{{<pre class='prettyprint linenums'>}}} within the Markdown contents. \n\n!Usage\n* [[Markdown|http://daringfireball.net/projects/markdown/syntax]] contents wrapped in a {{{<md>...</md>}}} tag. These contents are converted into a tiddler text wrapped in a {{{<html>-</html>}}} tag.\n\nFor example\n{{{\n<md>\nThis is an h1 header\n====================\n\nUnordered list\n--------------\n\n* Item one \n* Item two\n * Item A\n * Item B\n\ncode blocks\n-----------\n\n```\nloadStylesheet : function(src) {\n var MdStyleSheet = document.createElement( 'link' );\n MdStyleSheet.type = 'text/css';\n MdStyleSheet.rel = 'stylesheet';\n MdStyleSheet.href = src;\n document.getElementsByTagName( 'head' )[0].appendChild( MdStyleSheet );\n},\n```\n\n```console\n ~: $ pry\n[1] pry(main)> puts "Hello TiddlyWiki"\nHello TiddlyWiki\n=> nil\n[2] pry(main)>\n```\n\nteble\n-----\n\n|Left align |Center align |Right align\n|:-----------|:------------:|-------------:\n|0001 |apple |1234\n|0002 |`Strawberry` |56789\n\nLink\n----\n\nTiddlyLink\n[Open MainMenu](MainMenu)\n\nOpen External link in a new wndow\n[Open TiddlyWiki classic](http://classic.tiddlywiki.com/)\n\n</md>\n}}}\n\nDisplays as:\n<md>\nThis is an h1 header\n====================\n\nUnordered list\n--------------\n\n* Item one \n* Item two\n * Item A\n * Item B\n\ncode blocks\n-----------\n\n```\nloadStylesheet : function(src) {\n var MdStyleSheet = document.createElement( 'link' );\n MdStyleSheet.type = 'text/css';\n MdStyleSheet.rel = 'stylesheet';\n MdStyleSheet.href = src;\n document.getElementsByTagName( 'head' )[0].appendChild( MdStyleSheet );\n},\n```\n\n```console\n ~: $ pry\n[1] pry(main)> puts "Hello TiddlyWiki"\nHello TiddlyWiki\n=> nil\n[2] pry(main)>\n```\n\nteble\n-----\n\n|Left align |Center align |Right align\n|:-----------|:------------:|-------------:\n|0001 |apple |1234\n|0002 |`Strawberry` |56789\n\nLink\n----\n\nTiddlyLink\n[Open MainMenu](MainMenu)\n\nOpen External link in a new wndow\n[Open TiddlyWiki classic](http://classic.tiddlywiki.com/)\n\n</md>\n\n!Tips!\n\n!!Offline use in the local library\n\nWhen you want to use offline. Require to install "marked.js" and "prettify.js", "prettify.css" on your PC.\n\n\n!!How to local installation\n\n!!!setp1.\nDownload and install marked and google-code-prettify zip files. and then extract files using any extract tool. For example, [[7-Zip|http://www.7-zip.org/]], [[Lhaplus|http://www.forest.impress.co.jp/library/software/lhaplus/]], etc.\n\nDownload marked.js from here\n* [[marked-master.zip|https://github.com/chjj/marked/tree/master/]]\n\nDownload prettify.js and prettify.css from here\n* [[code-prettify-master.zip|https://github.com/google/code-prettify/tree/master]]\n\nThese files should be installed under the directory of TiddlyWiki.\n\nlike this\n{{{\nTiddlyWiki/\n +--- memo.html <== your TiddlyWiki file\n +--- marked-master/\n | +--- lib/ \n | +---marked.js <== "marked-master/lib/marked.js"\n +--- google-code-prettify/\n +--- prettify.js <== "google-code-prettify/prettify.js"\n +--- prettify.css <== "google-code-prettify/prettify.css"\n}}}\n\n\n!!!step2.\nEnable the Pulgin Options ''chkMarkdownOffline'' checkbox below.\n\n\n!!!step3.\nSave the TiddlyWiki. Reload the TiddlyWiki browser window.\n\n\n!Options\n\nOffline use in the local library if enabled.\n<<option chkMarkdownOffline>> ''chkMarkdownOffline''\n\n\n!Code\n***/\n//{{{\nif(!version.extensions.PluginMarkdown) {\n version.extensions.PluginMarkdown = { installed: true };\n\n if (typeof config.options.chkMarkdownOffline === "undefined") {\n config.options.chkMarkdownOffline = false; \n }\n\n // ## define newMarkdown macro ##\n config.macros.newMarkdown = {};\n merge(config.macros.newMarkdown, {\n label: "new Markdown",\n prompt: "Create a new Markdown",\n title: "New Markdown",\n text: `<md>\snType the Markdown text for "New Tiddler"\sn</md>`,\n accessKey: ""\n });\n\n config.macros.newMarkdown.handler = function(place,macroName,params) {\n if(!readOnly) {\n params = [];\n params[0] = {text: [this.text]};\n config.macros.newTiddler.createNewTiddlerButton(place, this.title, params, this.label, this.prompt, this.accessKey, "title", false);\n }\n };\n\n config.extensions.PluginMarkdown = {\n\n // ## plugin loading check ##\n ErrorCount : 0,\n ErrorCountLimit : 30,\n\n // ## Online use ##\n CDN_Marked : "https://cdnjs.cloudflare.com/ajax/libs/marked/0.5.1/marked.min.js",\n CDN_Prettify : "https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.js",\n CDN_cssPrettify : "https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css",\n\n // ## Offline use ##\n Local_Marked : "marked-master/lib/marked.js",\n Local_Prettify : "google-code-prettify/prettify.js",\n Local_cssPrettify : "google-code-prettify/prettify.css",\n\n // ## custom StyleSheet ##\n MyStyleSheet : { text:\n '/*{{{*/\sn'\n +'.viewer .MarkdownBody {\sn'\n +' background-color : rgb(251, 251, 251);\sn'\n +' border: 1px solid rgb(200, 200, 200);\sn'\n +' padding : 1em;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody h1,\sn'\n +'.viewer .MarkdownBody h2,\sn'\n +'.viewer .MarkdownBody h3,\sn'\n +'.viewer .MarkdownBody h4,\sn'\n +'.viewer .MarkdownBody h5,\sn'\n +'.viewer .MarkdownBody h6 {\sn'\n +' font-weight: normal;\sn'\n +' line-height: 1;\sn'\n +' font-weight: bold;\sn'\n +' color: rgb(20, 20, 20);\sn'\n +' margin: 2em 0em 1em 0em;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody h1,\sn'\n +'.viewer .MarkdownBody h2,\sn'\n +'.viewer .MarkdownBody h3 {\sn'\n +' border-bottom:1px solid rgb(190, 190, 190);\sn'\n +'}\sn'\n +'.viewer .MarkdownBody h1 { font-size: 2.5em; }\sn'\n +'.viewer .MarkdownBody h2 { font-size: 2.0em; }\sn'\n +'.viewer .MarkdownBody h3 { font-size: 1.5em; }\sn'\n +'.viewer .MarkdownBody h4 { font-size: 1.2em; }\sn'\n +'.viewer .MarkdownBody h5 { font-size: 1.0em; }\sn'\n +'.viewer .MarkdownBody h6 { font-size: 0.9em; }\sn'\n +'.viewer .MarkdownBody pre.prettyprint {\sn'\n +' border-radius: 3px;\sn'\n +' border: 1px solid rgb(200, 200, 200);\sn'\n +' background-color: rgb(245, 245, 245);\sn'\n +' padding: 0px;\sn'\n +' margin: 1em;\sn'\n +'}\sn' \n +'.viewer .MarkdownBody code {\sn'\n +' border-radius: 3px;\sn'\n +' border: 1px solid rgb(180, 180, 180);\sn'\n +' background-color: rgb(240, 240, 240);\sn'\n +' margin: 0px 2px;\sn'\n +' padding: 0px 5px;\sn'\n +' color: rgb(10, 10, 10);\sn'\n +' font-size: 0.9em;\sn'\n +' line-height: 1.4em;\sn'\n +' display: inline-block;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody code.prettyprint {\sn'\n +' border-radius: 0px;\sn'\n +' border: none;\sn'\n +' background-color: rgb(245, 245, 245);\sn'\n +' box-shadow: 38px 0px 0px rgb(251, 251, 251) inset, 40px 0px 0px rgb(230, 230, 230) inset;\sn'\n +' display: block;\sn'\n +' margin: 0px 0px 0px 0px;\sn'\n +' padding: 0px 0px 0px 0px;\sn'\n +' font-family: Consolas, "DejaVu Sans Mono", verdana, monospace;\sn'\n +' font-size: 0.9em;\sn'\n +' line-height: 1.4em;\sn'\n +' white-space:pre;\sn'\n +' word-wrap: normal;\sn'\n +' overflow: auto;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody ol.linenums {\sn'\n +' background-color: transparent;\sn'\n +' color: rgb(160, 160, 160);\sn'\n +' margin: 5px 0px 0px 0px;\sn'\n +' padding: 0px 0px 0px 40px;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody ol.linenums li {\sn'\n +' list-style-type: decimal;\sn'\n +' padding-left: 5px;\sn'\n +' margin: 0px;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody table {\sn'\n +' border: 1px solid rgb(220, 220, 220);\sn'\n +' border-collapse: collapse;\sn'\n +' border-spacing: 0px;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody table tr {\sn'\n +' background-color: rgb(255, 255, 255);\sn'\n +'}\sn'\n +'.viewer .MarkdownBody table tr:nth-child(2n+1) {\sn'\n +' background-color: rgb(245, 245, 245);\sn'\n +'}\sn'\n +'.viewer .MarkdownBody table th,\sn'\n +'.viewer .MarkdownBody table td {\sn'\n +' border: 1px solid rgb(220, 220, 220);\sn'\n +' padding: 0.1em 0.5em;\sn'\n +' color: rgb(0, 0, 0);\sn'\n +'}\sn'\n +'.viewer .MarkdownBody table th {\sn'\n +' background-color: rgb(255, 255, 255);\sn'\n +' font-weight: bold;\sn'\n +'}\sn'\n\n +'.viewer .MarkdownBody code.lang-console {\sn'\n +' background-color: rgb(238, 238, 238);\sn'\n +' box-shadow: none;\sn'\n +' font-size: 13px;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody code.lang-console ol.linenums li {\sn'\n +' list-style-type: none;\sn'\n +' margin-left: -30px;\sn'\n +'}\sn'\n +'.viewer .MarkdownBody code.lang-console ol.linenums {\sn'\n +' margin: 5px 0px 0px;\sn'\n +' padding-bottom: 5px;\sn'\n +'}\sn'\n +'/*}}}*/\sn'\n },\n\n loadScript: function(src, callback) {\n var elem = document.createElement('script');\n elem.type = 'text/javascript';\n elem.src = src;\n document.getElementsByTagName('head')[0].appendChild(elem);\n\n if ( callback && typeof(callback) === 'function' ) {\n if ( document.addEventListener ) { \n elem.addEventListener('load', callback, false);\n } else {\n elem.onreadystatechange = function() { //IE8\n if ( elem.readyState in {complete: 1, loaded: 1 }) {\n elem.onreadystatechange = null;\n callback();\n }\n };\n }\n }\n },\n\n // ## Open external links in a new window ##\n createExternalLinkNewWindow: function(place,url)\n {\n var link = document.createElement("a");\n link.className = "externalLink";\n link.href = url;\n var f = "Open in a new wndow, External link to %0";\n link.title = f.format([url]);\n link.target = "_blank";\n place.appendChild(link);\n return link;\n },\n\n // ## Markdown link to Tiddly Link ##\n ChangeTiddlyLink: function(tiddler_elem) {\n var anchor_nodes = tiddler_elem.querySelectorAll('a');\n var regex = /<a[^>].*?href="(.*?)".*?>(.*?)<\s/a>/g;\n var parent_node, anchor_text, anchor_class;\n var match,text,link,e;\n \n for (var n = 0; n < anchor_nodes.length; n++) {\n anchor_node = anchor_nodes[n];\n if (!jQuery(anchor_node).hasClass('tiddlyLink') && !jQuery(anchor_node).hasClass('externalLink')) {\n parent_node = anchor_node.parentNode;\n anchor_text = anchor_node.outerHTML;\n \n while (match = regex.exec(anchor_text)) {\n link = match[1].replace(/%20/g,' ');\n text = match[2];\n\n e = (config.formatterHelpers.isExternalLink(link)) ?\n config.extensions.PluginMarkdown.createExternalLinkNewWindow(parent_node, link) :\n createTiddlyLink(parent_node, link, false, null, false, null, true);\n createTiddlyText(e, text);\n parent_node.replaceChild(e, anchor_node);\n }\n }\n }\n },\n\n install: function() {\n var _PluginMarkdown = config.extensions.PluginMarkdown;\n var scriptMarked = config.options.chkMarkdownOffline ? _PluginMarkdown.Local_Marked : _PluginMarkdown.CDN_Marked;\n var scriptPrettify = config.options.chkMarkdownOffline ? _PluginMarkdown.Local_Prettify : _PluginMarkdown.CDN_Prettify;\n var cssPrettify = config.options.chkMarkdownOffline ? _PluginMarkdown.Local_cssPrettify : _PluginMarkdown.CDN_cssPrettify;\n\n // ## load Prettify script and css ##\n var elecss = document.createElement( 'link' );\n elecss.type = 'text/css';\n elecss.rel = 'stylesheet';\n elecss.href = cssPrettify;\n document.getElementsByTagName( 'head' )[0].appendChild( elecss );\n\n _PluginMarkdown.loadScript( scriptPrettify );\n\n // ## set custom css ##\n setStylesheet( _PluginMarkdown.MyStyleSheet.text, 'PluginMarkdown' );\n\n // ## load marked and Options settings ##\n _PluginMarkdown.loadScript( scriptMarked, function() {\n marked.setOptions({\n gfm: true,\n tables: true,\n breaks: false,\n pedantic: false,\n sanitize: false,\n mangle: true,\n smartLists: true,\n smartypants: false,\n langPrefix: 'lang-',\n\n // ## highlighting with google-code-prettify ##\n highlight: function(code, lang) {\n var htmltext = String(code)\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/"/g, '&quot;')\n .replace(/'/g, '&#39;');\n return prettyPrintOne(htmltext, lang, true)\n }\n });\n });\n\n // ## add "new Markdown" button to SideBarOptions ##\n var title = "SideBarOptions";\n var backup_title = "SideBarOptions_backup";\n var sidebar_regex = /(^.*?)(<<newTiddler>>.*?$)/;\n var md_button = '<<newMarkdown>>';\n var is_md_button = new RegExp(md_button);\n var cur_text = store.getTiddlerText(title);\n\n if(is_md_button.test(cur_text) == false) {\n // backup SideBarOptions\n store.createTiddler(backup_title);\n store.saveTiddler(backup_title, backup_title, cur_text);\n\n // update SideBarOptions, add "new Markdown" button.\n var new_text = cur_text.replace(sidebar_regex, `$1${md_button}$2`)\n store.saveTiddler(title, title, new_text);\n\n } else {\n console.log("newMarkdown button already exists in SideBarOptions.");\n }\n }\n };\n\n config.formatters.push({\n\n name: "PluginMarkdown",\n match: "<[Mm][Dd]>",\n lookaheadRegExp: /<[Mm][Dd]>((?:.|\sn)*?)<\s/[Mm][Dd]>/mg,\n\n handler: function(w) {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var match = this.lookaheadRegExp.exec( w.source );\n\n if ( match && match.index == w.matchStart ) {\n \n // ## marked.js is available? ##\n try {\n var t = marked( match[1] );\n } catch(e) {\n config.extensions.PluginMarkdown.ErrorCount += 1;\n if (config.extensions.PluginMarkdown.ErrorCount < config.extensions.PluginMarkdown.ErrorCountLimit) {\n setTimeout(function() {\n story.refreshTiddler(w.tiddler.title,null,true);\n }, 500);\n }else{\n t = "*** ERROR *** marked.js are not available. Please check the path of marked.js"\n }\n }\n\n var html = '<html>' + t + '</html>'\n var e = createTiddlyElement( w.output, 'div', null, 'MarkdownBody' );\n wikify( html, e );\n config.extensions.PluginMarkdown.ChangeTiddlyLink(e);\n\n // ## syntax highlighting and linenums ## \n addClass( '.MarkdownBody pre', 'prettyprint linenums' );\n addClass( '.MarkdownBody pre code', 'prettyprint linenums' );\n w.nextMatch = this.lookaheadRegExp.lastIndex; \n }\n }\n });\n\n config.extensions.PluginMarkdown.install();\n}\n//}}}\n\n\n\n
/***\n|''Name:''|PluginMathJax|\n|''Description:''|Enable LaTeX formulas for TiddlyWiki|\n|''Author:''|icm7216 aka babooshka|\n|''Version:''|1.1.10|\n|''Date:''|Jan. 05, 2022|\n|''Requires''|[[MathJax|http://www.mathjax.org/]]|\n|''Source''|[[icm7216/TWC-MathJax-plugin|https://github.com/icm7216/TWC-MathJax-plugin]]|\n|''License:''|[[MIT|https://opensource.org/licenses/MIT]]|\n|''~CoreVersion:''|2.5.0|\n|''Change log''|(write in Japanese) [[icm7216/TWC-MathJax-plugin/CHANGES.md|https://github.com/icm7216/TWC-MathJax-plugin/blob/master/CHANGES.md]]|\n\n\nThis plugin are adapted from {{{latex-for-tiddlywiki-a-mathjax-plugin}}} (on [[LaTeX for TiddlyWiki – A MathJax Plugin - Guy Rutenberg|https://www.guyrutenberg.com/2011/06/25/latex-for-tiddlywiki-a-mathjax-plugin/]]).\nThanks [[Guy Rutenberg - MathJax Plugin|https://www.guyrutenberg.com/2011/06/25/latex-for-tiddlywiki-a-mathjax-plugin/]].\n\nChanges from the original\n* allows to use MathJax in TiddlyWiki Classic.\n* added inline equation {{{$---$}}}.\n* allows to use offline.\n* an equation numbers are reset by loading of a tiddler when using autoNumber.\n\ncredit of original author\n<<<\n||''Name:''|MathJaxPlugin|\n||''Description:''|Enable LaTeX formulas for TiddlyWiki|\n||''Version:''|1.0.1|\n||''Date:''|Feb 11, 2012|\n||''Source:''|http://www.guyrutenberg.com/2011/06/25/latex-for-tiddlywiki-a-mathjax-plugin|\n||''Author:''|Guy Rutenberg|\n||''License:''|[[BSD open source license]]|\n||''~CoreVersion:''|2.5.0|\n<<<\n\n\n----\n\n\n!Description\n\n* allows to use MathJax in TiddlyWiki Classic.\n* added inline equation {{{$---$}}}.\n* allows to use offline.\n* an equation numbers are reset by loading of a tiddler when using autoNumber.\n\n\n!Usage\n\n!! inline equation {{{$---$}}}\n{{{\nThis is an inline equation $P(E) = {n \schoose k} p^k (1-p)^{ n-k}$ \n}}}\nThis is an inline equation $P(E) = {n \schoose k} p^k (1-p)^{ n-k}$ \n\n!! inline equation {{{\s(---\s)}}}\n{{{\nThis is an inline equation \s(P(E) = {n \schoose k} p^k (1-p)^{ n-k}\s)\n}}}\nThis is an inline equation \s(P(E) = {n \schoose k} p^k (1-p)^{ n-k}\s)\n \n!! displayed equation {{{$$---$$}}}\n{{{\nthis is a displayed equation: \n$$\nP(E) = {n \schoose k} p^k (1-p)^{ n-k}\n$$\n}}}\nthis is a displayed equation: \n$$\nP(E) = {n \schoose k} p^k (1-p)^{ n-k}\n$$\n\n!! displayed equation {{{\s[---\s]}}}\n{{{\nthis is a displayed equation: \n\s[\n\sGamma(z) = \sint_0^\sinfty t^{z-1}e^{-t}dt\s,.\n\s]\n}}}\nthis is a displayed equation: \n\s[\n\sGamma(z) = \sint_0^\sinfty t^{z-1}e^{-t}dt\s,.\n\s]\n\n!!equation numbers\n{{{\n\sbegin{equation}\n E = mc^2\n\send{equation}\n}}}\nwill be numbered, while\n\sbegin{equation}\n E = mc^2\n\send{equation}\n\n\sbegin{equation}\n E = mc^2\n\send{equation}\n\n\sbegin{equation}\n E = mc^2\n\send{equation}\n\n{{{\n\sbegin{equation*}\n e^{\spi i} + 1 = 0\n\send{equation*}\n}}}\nwon’t be numbered.\n\n\sbegin{equation*}\n e^{\spi i} + 1 = 0\n\send{equation*}\n\n\nlabeled equation and a reference.\n{{{\nIn equation $\seqref{eq:sample}$, we find the value of an\ninteresting integral:\n\n\sbegin{equation}\n \sint_0^\sinfty \sfrac{x^3}{e^x-1}\s,dx = \sfrac{\spi^4}{15}\n \slabel{eq:sample}\n\send{equation}\n}}}\nIn equation $\seqref{eq:sample}$, we find the value of an\ninteresting integral:\n\n\sbegin{equation}\n \sint_0^\sinfty \sfrac{x^3}{e^x-1}\s,dx = \sfrac{\spi^4}{15}\n \slabel{eq:sample}\n\send{equation}\n\n\n!!!If you writing the dollar sign into a tiddler. To use escape the "$" sign for "\s$" notation.\n{{{\n13‑inch starts at \s$1299, 15‑inch starts at \s$1999\n}}}\n13‑inch starts at \s$1299, 15‑inch starts at \s$1999\n\n\n\n\n----\n\n\n!Tips!\n\n!!Offline use in the local library\nWhen you want to use offline. Require to install "MathJax" on your PC.\n\n!!How to local installation\n\n!!!setp1.\nDownload MathJax zip file. Extract zip file using any extract tool. For example, [[7-Zip|http://www.7-zip.org/]], [[Lhaplus|http://www.forest.impress.co.jp/library/software/lhaplus/]], etc.\n\nDownload MathJax from here.\n* [[MathJax|http://docs.mathjax.org/en/latest/installation.html]]\n\nExtract "MathJax-2.x.zip" files. ("x" is any number of MathJax Current Version.) \nRename the directory name to "MathJax" from "MathJax-2.x". \nCopy the "MathJax" directory to your TiddlyWiki directory.\n\nThese files should be installed under the directory of TiddlyWiki.\nlike this\n{{{\nTiddlyWiki/\n +-- memo.html <== your TiddlyWiki file\n +-- MathJax/ <== MathJax directory is here\n +-- config/\n +-- docs/\n +-- extensions/\n +-- fonts/\n +-- images/\n +-- jax/\n +-- localization/\n +-- test/\n +-- unpacked/\n +-- MathJax.js\n *** etc. *** \n}}}\n\n!!!step2.\nEnable the Pulgin Options ''chkMathJaxOffline'' checkbox below.\n\n!!!step3.\nSave the TiddlyWiki. Reload the TiddlyWiki browser window.\n\n----\n\n\n!Options\n\nOffline use in the local library if enabled.\n<<option chkMathJaxOffline>> ''chkMathJaxOffline''\n\n\n! Code\n***/\n//{{{\nif (typeof config.options.chkMathJaxOffline === "undefined") {\n config.options.chkMathJaxOffline = false; \n}\n\nconfig.extensions.MathJax = {\n\n // ## Offine use ##\n Local_MathJax: "MathJax/MathJax.js?config=TeX-AMS_HTML",\n\n // ## Online use ##\n CDN_MathJax: "https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_CHTML",\n\n\n // ## MathJax Configuration Options. MathJax.Hub.Config() ##\n HubConfig: {\n menuSettings: { locale: "en" }, // if setting Menu language "japanese" is "ja"\n extensions: [ "tex2jax.js", "MathMenu.js", "MathZoom.js" ],\n TeX: {\n extensions: [ "AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js" ],\n noErrors: { disabled: true },\n noUndefined: { disabled: true },\n equationNumbers: { autoNumber: "AMS" } \n },\n jax: [ "input/TeX", "output/HTML-CSS" ],\n tex2jax: {\n inlineMath: [ ['$','$'], ["\s\s(","\s\s)"] ],\n displayMath: [ ['$$','$$'], ["\s\s[","\s\s]"] ],\n processEscapes: true,\n processEnvironments: true\n },\n "HTML-CSS": {\n scale: 100,\n undefinedFamily: "Consolas, Meiryo, verdana, STIXGeneral"\n },\n styles: { ".MathJax": { color:"black"} },\n noErrors: {\n inlineDelimiters: [['$','$'], ["\s\s(","\s\s)"]],\n multiLine: true, // false for TeX on all one line\n style: {\n "font-size": "80%",\n "text-align": "left",\n "color": "green",\n "padding": "1px 3px",\n "border": "1px solid"\n // add any additional CSS styles that you want\n // ( be sure there is no extra comma at the end of the last item )\n }\n },\n noUndefined: {\n attributes: {\n mathcolor: "red",\n mathbackground: "#FFEEEE",\n mathsize: "90%"\n }\n }\n },\n\n displayTiddler: function( TiddlerName ) {\n config.extensions.MathJax.displayTiddler_old.apply( this, arguments );\n MathJax.Hub.Queue(\n [ "resetEquationNumbers", MathJax.InputJax.TeX ],\n [ "Typeset", MathJax.Hub ]\n );\n },\n\n loadScript: function(src, callback) {\n var elem = document.createElement('script');\n elem.type = 'text/javascript';\n elem.src = src\n\n if ( elem.addEventListener ) { \n elem.addEventListener('load', callback, false);\n } else {\n elem.onreadystatechange = function() { // ## IE8 ##\n if ( elem.readyState in {complete: 1, loaded: 1 }) {\n elem.onreadystatechange = null;\n callback();\n }\n };\n }\n document.getElementsByTagName('head')[0].appendChild(elem);\n },\n\n install: function() {\n var _mathjax = config.extensions.MathJax;\n var mathJaxScript = config.options.chkMathJaxOffline ? _mathjax.Local_MathJax : _mathjax.CDN_MathJax;\n \n _mathjax.loadScript( mathJaxScript, function () {\n MathJax.Localization.setLocale("ja"); // ## setting locale "Japan" ##\n MathJax.Hub.Config( _mathjax.HubConfig );\n MathJax.Hub.Startup.onload();\n _mathjax.displayTiddler_old = story.displayTiddler;\n story.displayTiddler = _mathjax.displayTiddler;\n });\n }\n};\n\nconfig.formatters.push({\n name: "escapeSingleDollar",\n match: "\s\s\s\s\s\s$",\n handler: function(w) {\n createTiddlyElement( w.output, "span" ).innerHTML = "&#36;";\n w.nextMatch = w.matchStart+2;\n }\n});\n\nconfig.formatters.push({\n name: "mathJaxFormula",\n match: "\s\s\s\s\s\s[|\s\s$\s\s$|\s\s\s\s\s\s(|\s\s$",\n handler: function(w) {\n switch( w.matchText ) {\n case "\s\s[": // displayed equations\n this.lookaheadRegExp = /\s\s\s[((?:.|\sn)*?)(\s\s\s])/mg;\n break;\n case "$$": // displayed equations\n this.lookaheadRegExp = /\s$\s$((?:.|\sn)*?)(\s$\s$)/mg;\n break;\n case "\s\s(": // inline equations\n this.lookaheadRegExp = /\s\s\s(((?:.)*?)(\s\s\s))/mg;\n break;\n case "$": // inline equations\n this.lookaheadRegExp = /\s$((?:.)*?)(\s$)/mg;\n break;\n\n default:\n break;\n }\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec( w.source );\n\n if( lookaheadMatch && lookaheadMatch.index == w.matchStart ) {\n createTiddlyElement( w.output, "span", null, "TW-math", lookaheadMatch[0] );\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n }\n\n try {\n if(typeof MathJax.version == "undefined") {}\n } catch (e) {\n var _mathjax = config.extensions.MathJax;\n var mathJaxScript = config.options.chkMathJaxOffline ? _mathjax.Local_MathJax : _mathjax.CDN_MathJax;\n console.log("MathJax load error, " + mathJaxScript + " not found.");\n }\n }\n});\n\nconfig.extensions.MathJax.install();\n//}}}\n
<<list filter "[tag[MyPlugins]] [sort[-modified]]">>\n!Markdown sample text\n<<list filter "[tag[Markdown]] [sort[-modified]]">>
<<search>><<closeAll>><<permaview>><<newMarkdown>><<newTiddler>><<newJournal "YYYY年MM月DD日" "ジャーナル">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "オプション »" "TiddlyWiki の詳細設定">>
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "YYYY年MM月DD日" "ジャーナル">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "オプション »" "TiddlyWiki の詳細設定">>
/***\n|''Name''|SimpleSearchPlugin|\n|''Description''|displays search results as a simple list of matching tiddlers|\n|''Authors''|FND, (v0.4.2 modified by babooshka)|\n|''Version''|0.4.2|\n|''Status''|stable|\n|''Source''|http://devpad.tiddlyspot.com/#SimpleSearchPlugin <br/> http://babooshka.tiddlyspot.com/#SimpleSearchPlugin|\n|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/SimpleSearchPlugin.js|\n|''License''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|\n|''Keywords''|search|\n!Revision History\n!!v0.2.0 (2008-08-18)\n* initial release\n!!v0.3.0 (2008-08-19)\n* added Open All button (renders Classic Search option obsolete)\n* sorting by relevance (title matches before content matches)\n!!v0.4.0 (2008-08-26)\n* added tag matching\n!!v0.4.2 (2015-02-20)\n* modify sorted by the modified date descendingly\n* add Date for results list\n\n!To Do\n* tag matching optional\n* animations for container creation and removal\n* when clicking on search results, do not scroll to the respective tiddler (optional)\n* use template for search results\n!Code\n***/\n//{{{\nif(!version.extensions.SimpleSearchPlugin) { //# ensure that the plugin is only installed once\nversion.extensions.SimpleSearchPlugin = { installed: true };\n\nif(!config.extensions) { config.extensions = {}; }\n\nconfig.extensions.SimpleSearchPlugin = {\n heading: "Search Results",\n containerId: "searchResults",\n btnCloseLabel: "close",\n btnCloseTooltip: "dismiss search results",\n btnCloseId: "search_close",\n btnOpenLabel: "Open all",\n btnOpenTooltip: "open all search results",\n btnOpenId: "search_open",\n\n displayResults: function(matches, query) {\n story.refreshAllTiddlers(true); // update highlighting within story tiddlers\n var el = document.getElementById(this.containerId);\n query = '"""' + query + '"""'; // prevent WikiLinks\n if(el) {\n removeChildren(el);\n } else { //# fallback: use displayArea as parent\n var container = document.getElementById("displayArea");\n el = document.createElement("div");\n el.id = this.containerId;\n el = container.insertBefore(el, container.firstChild);\n }\n var msg = "!" + this.heading + "\sn";\n if(matches.length > 0) {\n msg += "''" + config.macros.search.successMsg.format([matches.length.toString(), query]) + ":''\sn";\n this.results = [];\n for(var i = 0 ; i < matches.length; i++) {\n this.results.push(matches[i].title);\n// add Date for results list\n msg += "* " + matches[i].modified.formatString("[ YYYY-0MM-0DD ]");\n msg += " [[" + matches[i].title + "]]\sn";\n }\n } else {\n msg += "''" + config.macros.search.failureMsg.format([query]) + "''"; // XXX: do not use bold here!?\n }\n createTiddlyButton(el, this.btnCloseLabel, this.btnCloseTooltip, config.extensions.SimpleSearchPlugin.closeResults, "button", this.btnCloseId);\n wikify(msg, el);\n if(matches.length > 0) { // XXX: redundant!?\n createTiddlyButton(el, this.btnOpenLabel, this.btnOpenTooltip, config.extensions.SimpleSearchPlugin.openAll, "button", this.btnOpenId);\n }\n },\n\n closeResults: function() {\n var el = document.getElementById(config.extensions.SimpleSearchPlugin.containerId);\n removeNode(el);\n config.extensions.SimpleSearchPlugin.results = null;\n highlightHack = null;\n },\n\n openAll: function(ev) {\n story.displayTiddlers(null, config.extensions.SimpleSearchPlugin.results);\n return false;\n }\n};\n\nconfig.shadowTiddlers.StyleSheetSimpleSearch = "/*{{{*/\sn" +\n "#" + config.extensions.SimpleSearchPlugin.containerId + " {\sn" +\n "\stoverflow: auto;\sn" +\n "\stpadding: 5px 1em 10px;\sn" +\n "\stbackground-color: [[ColorPalette::TertiaryPale]];\sn" +\n "}\sn\sn" +\n "#" + config.extensions.SimpleSearchPlugin.containerId + " h1 {\sn" +\n "\stmargin-top: 0;\sn" +\n "\stborder: none;\sn" +\n "}\sn\sn" +\n "#" + config.extensions.SimpleSearchPlugin.containerId + " ul {\sn" +\n "\stmargin: 0.5em;\sn" +\n "\stpadding-left: 1.5em;\sn" +\n "}\sn\sn" +\n "#" + config.extensions.SimpleSearchPlugin.containerId + " .button {\sn" +\n "\stdisplay: block;\sn" +\n "\stborder-color: [[ColorPalette::TertiaryDark]];\sn" +\n "\stpadding: 5px;\sn" +\n "\stbackground-color: [[ColorPalette::TertiaryLight]];\sn" +\n "}\sn\sn" +\n "#" + config.extensions.SimpleSearchPlugin.containerId + " .button:hover {\sn" +\n "\stborder-color: [[ColorPalette::SecondaryMid]];\sn" +\n "\stbackground-color: [[ColorPalette::SecondaryLight]];\sn" +\n "}\sn\sn" +\n "#" + config.extensions.SimpleSearchPlugin.btnCloseId + " {\sn" +\n "\stfloat: right;\sn" +\n "\stmargin: -5px -1em 5px 5px;\sn" +\n "}\sn\sn" +\n "#" + config.extensions.SimpleSearchPlugin.btnOpenId + " {\sn" +\n "\stfloat: left;\sn" +\n "\stmargin-top: 5px;\sn" +\n "}\sn" +\n "/*}}}*/";\nstore.addNotification("StyleSheetSimpleSearch", refreshStyles);\n\n// override Story.search()\nStory.prototype.search = function(text, useCaseSensitive, useRegExp) {\n highlightHack = new RegExp(useRegExp ? text : text.escapeRegExp(), useCaseSensitive ? "mg" : "img");\n var matches = store.search(highlightHack, null, "excludeSearch");\n var q = useRegExp ? "/" : "'";\n config.extensions.SimpleSearchPlugin.displayResults(matches, q + text + q);\n};\n\n// override TiddlyWiki.search() to sort by relevance\nTiddlyWiki.prototype.search = function(searchRegExp, sortField, excludeTag, match) {\n var candidates = this.reverseLookup("tags", excludeTag, !!match);\n var primary = [];\n var secondary = [];\n var tertiary = [];\n for(var t = 0; t < candidates.length; t++) {\n if(candidates[t].title.search(searchRegExp) != -1) {\n primary.push(candidates[t]);\n } else if(candidates[t].tags.join(" ").search(searchRegExp) != -1) {\n secondary.push(candidates[t]);\n } else if(candidates[t].text.search(searchRegExp) != -1) {\n tertiary.push(candidates[t]);\n }\n }\n var results = primary.concat(secondary).concat(tertiary);\n\n// comment out sort function\n// if(sortField) {\n// results.sort(function(a, b) {\n// return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);\n// });\n// }\n\n// modify sorted by the modified date descendingly\n sortField = "-modified";\n this.sortTiddlers(results,sortField);\n\n return results;\n};\n\n} //# end of "install only once"\n//}}}
いろいろメモ、自分用備忘録。
My ~TiddlyWiki
!menu\n\n<<tabs txtMenuTab\n "ファイル" "新規tiddlerを作成 ファイルを保存する" ./menu1\n "tiddlerリスト" "tiddlerのリストを開きます" SideBarTabs\n "スタート" "スタートメニューを開きます" ./menu2\n "about" "about" ./menu3\n>>\n<part menu1 hidden>\n!ファイルメニュー\n@@color:#000;background-color:#FFF;\n<<newTiddler label:"新規Markdown" prompt:"新しいMarkdownTiddlerを作成します。" text:"<md>\ntext\n</md>" focus:field>> <<newTiddler>> <<saveChanges>> <<closeAll>> <<permaview>> <<slider chkSliderOptionsPanel OptionsPanel "オプション »" "TiddlyWiki の詳細設定">>\n@@\n</part>\n<part menu2 hidden>\n<<tiddler [[MainMenu]]>>\n----\n<<tiddler [[GettingStarted]]>>\n</part>\n<part menu3 hidden>\n[[TiddlyWiki|http://www.tiddlywiki.com/]] version <<version>>\n\n!about\n\nbabooshka\n\nhttps://github.com/icm7216\n</part>\n\n\n!My Plugins\n<<tiddler Plugins>>\n \n!tiddler Transclude\n*[[TranscludeSample]]\n*[[Gravizo on tiddler]]\n
/***\nカスタムCSS\n***/\n\n/*{{{*/\nbody {\n font-family: "Source Han Sans JP", Consolas, "メイリオ";\n font-size: 0.9em;\n}\n.tagging, .tagged {\n margin: 0em 0em 0em 0em;\n}\n.editor {\n font-family: Consolas, "DejaVu Sans Mono", "メイリオ", "Source Han Sans JP", verdana;\n font-size: 1em;\n font-weight:normal;\n}\n.viewer pre {\n font-family: Consolas, "DejaVu Sans Mono", "メイリオ", verdana;\n}\n.viewer code {\n font-family: Consolas, "DejaVu Sans Mono", "メイリオ", verdana;\n}\n.viewer{\n font-family: "Source Han Sans JP", Consolas, "メイリオ", "DejaVu Sans Mono", verdana;\n}\n.viewer p{\n font-size: 14px;\n font-weight:normal;\n line-height: 1.6em;\n}\n.viewer li{\n margin: 0.5em 0em;\n}\n.viewer code.console {\n display: block;\n word-wrap: normal;\n white-space: pre;\n overflow: auto;\n margin: 2em 3em;\n padding: 0em 2em 1em 2em;\n border: 1px solid rgb(150, 150, 150);\n border-radius: 5px;\n background: none repeat scroll 0% 0% rgb(238, 238, 238);\n line-height: 1.6;\n font-size: 0.9em;\n color: rgb(0, 0, 0);\n}\n.editor textarea {\n height: 350px;\n font-family: Consolas, "DejaVu Sans Mono", "Source Han Sans JP", "メイリオ", verdana;\n font-size: 1em;\n line-height:150%;\n letter-spacing:1px;\n}\n.editor textarea, pre {\n -moz-tab-size: 2;\n -o-tab-size: 2;\n tab-size: 2;\n}\n\n\n#popup {\n width: 60%!important;\n left: 18%!important;\n}\n#popup li {\n display:inline-block;\n}\n.bq {\n width: auto;\n border: 1px solid rgb(102, 102, 102);\n background: url('quote.gif') no-repeat scroll left top transparent;\n box-shadow: 1px 1px 2px rgba(204, 204, 204, 0.9), 0px 1px 0px rgba(255, 255, 255, 0.4) inset;\n border-radius: 25px;\n margin: 10px 30px 10px 30px;\n padding: 10px 10px 10px 30px;\n}\n.viewer .MarkdownBody pre.con {\n font-size: 0.9em;\n background-color: rgb(238, 238, 238);\n padding: 1em;\n}\n.viewer .MarkdownBody pre.con ol.linenums li {\n line-height: 1.6!important;\n background-color: rgb(238, 238, 238);\n}\n#tiddlersBar {\n font-size: 0.8em;\n}\n.viewer table, table.twtable {\n margin: 1px;\n}\n#sidebar {\n /* overflow-y: scroll; */\n /* height: 550px; */\n width: 230px;\n top: 100px;\n position: fixed;\n}\n#sidebarTabs .tabContents {\n width:auto;\n overflow-y: scroll;\n height: 550px;\n}\n.headerForeground {\n padding: 0px;\n left: 5px;\n top: 0px;\n}\n.headerShadow {\n padding: 0px;\n left: 8px;\n top: 2px;\n}\nimg{\n max-width: 100%;\n height: auto;\n}\n\n\n@media screen and (max-width: 1200px) {\n .headerForeground {\n padding: 0px;\n }\n .headerShadow {\n padding: 0px;\n }\n #mainMenu {\n float: right;\n width: 20%;\n text-align: left;\n position: relative;\n line-height: 1.4em;\n padding: 1em 0.5em 1em 0.5em;\n font-size: 0.9em;\n margin-right: 5px;\n margin-top: 10px; \n }\n #sidebar {\n float: right; \n right: 5px;\n width: 185px;\n /* height: 450px; */\n margin-top: 81px;\n line-height: 1.4em;\n padding: 0px;\n font-size: 0.9em;\n }\n #displayArea {\n margin: 1em 1em 1em 1em;\n float: left;\n position: absolute;\n width: 75%;\n }\n #popup {\n width: 66%!important;\n left: 5%!important;\n }\n #popup li {\n display:inline-block;\n }\n}\n@media screen and (max-width: 970px) {\n .header {\n height: 40px;\n }\n .siteTitle {\n font-size: 1.5em;\n }\n .siteSubtitle {\n display: none;\n }\n #mainMenu {\n float: left;\n width: 95%;\n text-align: left;\n margin: 0px 10px 0px 10px;\n padding-top: 10px;\n }\n #mainMenu br {\n display: none;\n }\n #mainMenu sup {\n margin: 0px 20px;\n font-size: 0.9em;\n vertical-align: middle;\n }\n #sidebar {\n display: none;\n }\n #displayArea {\n margin-top: 0px;\n float: left;\n position: relative;\n width: 97%;\n }\n #popup {\n width: 85%!important;\n left: 7%!important;\n }\n #popup li {\n display:inline-block;\n }\n}\n\n@media screen and (max-height: 1080px) {\n #sidebarTabs .tabContents {height: 550px;}\n}\n@media screen and (max-width: 1200px) and (max-height: 1080px) {\n #sidebarTabs .tabContents {height: 500px;}\n}\n@media screen and (max-height: 768px) {\n #sidebarTabs .tabContents {height: 250px;}\n}\n@media screen and (max-width: 1200px) and (max-height: 768px) {\n #sidebarTabs .tabContents {height: 200px;}\n}\n/*}}}*/
/***\n|''Name:''|TiddlersBarPlugin|\n|''Description:''|Provides browser-like tabs to switch between tiddlers.|\n|''Author:''|Pascal Collin / fork: [[Tobias Beer|http://tobibeer.tiddlyspace.com]]|\n|''Version:''|1.3.7 (2013-10-06)|\n|''~CoreVersion:''|2.5.2|\n|''Source:''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/forked/TiddlersBarPlugin.js|\n|''License:''|[[BSD Open Source License|http://visualtw.ouvaton.org/VisualTW.html#License]]|\n!Installation\n#import this tiddler\n#*tag it <<tag systemConfig>>\n#save and reload\n#when using a custom [[PageTemplate]], add the following before {{{<div id='tiddlerDisplay'></div>}}}:\n#* {{{<div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'></div>}}}\n#optionally, adjust StyleSheetTiddlersBar\n!Usage\n*doubleclick on the tiddlers bar (where there is no tab) to create a new tiddler.\n*tabs include a button to close {{{x}}} or save {{{!}}} the tiddler.\n*by default, clicking on the current tab close all others tiddlers.\n!Options \n<<option chkDisableTabsBar>> ''chkDisableTabsBar'' &nbsp; <<option chkHideTabsBarWhenSingleTab>> ''chkHideTabsBarWhenSingleTab''\n;txtSelectedTiddlerTabButton\n:<<option txtSelectedTiddlerTabButton>> (selected tab command)\n;txtPreviousTabKey\n:<<option txtPreviousTabKey>> (access key)\n;txtNextTabKey\n:<<option txtNextTabKey>> (access key)\n!Code\n***/\n//{{{\n(function($){\n\n//shortcut\nvar co = config.options;\n\n//default options\n$.each({\n chkDisableTabsBar:false,\n chkHideTabsBarWhenSingleTab:false,\n txtSelectedTiddlerTabButton:"closeOthers",\n txtPreviousTabKey:"",\n txtNextTabKey:""\n//loop them\n},function(key,val){\n //set if not existing\n if(co[key] == undefined)co[key] = val;\n});\n\nvar me = config.macros.tiddlersBar = {\n tooltip : "Show %0...",\n tooltipClose : "Close tiddler...",\n tooltipSave : "Save tiddler...",\n promptRename : "Enter new tiddler name",\n\n previousState : false,\n previousKey : co.txtPreviousTabKey,\n nextKey : co.txtNextTabKey, \n\n //use document.getElementById("tiddlerDisplay") if you need animation on tab switching\n tabsAnimationSource : null,\n\n handler: function(place,macroName,params) {\n var btn, c, d, isDirty,\n previous = null;\n\n if (me.isShown()){\n story.forEachTiddler(function(title,e){\n if (title == me.currentTab){\n d = createTiddlyElement(null,"span",null,"tab tabSelected");\n me.createActiveTabButton(d,title);\n if (previous && me.previousKey)\n previous.setAttribute("accessKey", me.nextKey);\n previous = "active";\n } else {\n d = createTiddlyElement(place,"span",null,"tab tabUnselected");\n btn = createTiddlyButton(\n d,\n title,\n me.tooltip.format([title]),\n me.onSelectTab\n );\n btn.setAttribute("tiddler", title);\n if (previous=="active" && me.nextKey)\n btn.setAttribute("accessKey",me.previousKey);\n previous = btn;\n }\n isDirty = story.isDirty(title);\n c = createTiddlyButton(\n d,\n isDirty ? "!" : "x",\n isDirty ? me.tooltipSave : me.tooltipClose,\n isDirty ? me.onTabSave : me.onTabClose,\n "tabButton"\n );\n c.setAttribute("tiddler", title);\n if (place.childNodes) {\n // to allow break line here when many tiddlers are open\n place.insertBefore(document.createTextNode(" "),place.firstChild);\n place.insertBefore(d,place.firstChild); \n }\n else place.appendChild(d);\n });\n me.paint();\n }\n }, \n refresh: function(place,params){\n removeChildren(place);\n me.handler(place,"tiddlersBar",params);\n if (me.previousState != me.isShown()) {\n story.refreshAllTiddlers();\n if (me.previousState) story.forEachTiddler(function(t,e){e.style.display="";});\n me.previousState = !me.previousState;\n }\n },\n isShown : function(){\n if (co.chkDisableTabsBar) return false;\n if (!co.chkHideTabsBarWhenSingleTab) return true;\n var cpt=0;\n story.forEachTiddler(function(){cpt++});\n return (cpt>1);\n },\n //to select another tab when the current tab is closed\n selectNextTab : function(close){\n var previous="";\n story.forEachTiddler(function(title){\n if (!me.currentTab) {\n story.displayTiddler(null, title);\n return;\n }\n if (title == me.currentTab) {\n if (previous) {\n story.displayTiddler(null, previous);\n return;\n }\n //so next tab will be selected\n else me.currentTab = ""; \n }\n else previous = title;\n }); \n },\n onSelectTab : function(e){\n var t = this.getAttribute("tiddler");\n if (t) story.displayTiddler(null, t);\n return false;\n },\n onTabClose : function(e){\n var t = this.getAttribute("tiddler");\n if (t) {\n if(story.hasChanges(t) && !readOnly) {\n if(!confirm(config.commands.cancelTiddler.warning.format([t])))\n return false;\n }\n story.closeTiddler(t);\n }\n return false;\n },\n onTabSave : function(e) {\n var t = this.getAttribute("tiddler");\n e = e || window.event;\n if (t) config.commands.saveTiddler.handler(e,null,t);\n return false;\n },\n onSelectedTabButtonClick : function(e,src,title) {\n var t = this.getAttribute("tiddler");\n e = e || window.event;\n if (\n t &&\n co.txtSelectedTiddlerTabButton &&\n config.commands[co.txtSelectedTiddlerTabButton]\n )\n config.commands[co.txtSelectedTiddlerTabButton].handler(e, src, t);\n return false;\n },\n onTiddlersBarAction: function(e) {\n //FF uses target and IE uses srcElement\n var source = e.target ? e.target.id : e.srcElement.id;\n if (source=="tiddlersBar")\n story.displayTiddler(null,'New Tiddler',DEFAULT_EDIT_TEMPLATE,false,null,null);\n },\n\n createActiveTabButton : function(place,title) {\n if (co.txtSelectedTiddlerTabButton &&\n config.commands[co.txtSelectedTiddlerTabButton]\n ){\n var btn = createTiddlyButton(\n place,\n title,\n config.commands[co.txtSelectedTiddlerTabButton].tooltip,\n me.onSelectedTabButtonClick\n );\n btn.setAttribute("tiddler", title);\n }\n else {\n createTiddlyText(place,title);\n $('place').attr('title','');\n }\n },\n\n //paintr support\n paint: function(){\n paint = config.macros.paint;\n if(paint)\n $('#tiddlersBar .tab').each(function(){\n paint.setStyle(\n $(this),\n $('[tiddler]',this).attr('tiddler'),\n 'tab'\n );\n });\n }\n}\n\nStory.prototype.closeTiddlerTIDDLERSBAR = Story.prototype.closeTiddler;\nStory.prototype.closeTiddler = function(title,animate,unused) {\n //no animation\n animate = false;\n story.closeTiddlerTIDDLERSBAR.apply(this,arguments);\n me.currentTab = '';\n me.selectNextTab();\n var e=document.getElementById("tiddlersBar");\n if (e) me.refresh(e,null);\n}\n\nStory.prototype.displayTiddlerTIDDLERSBAR = Story.prototype.displayTiddler;\nStory.prototype.displayTiddler = function(srcElement,tiddler,template,animate,unused,customFields,toggle){\n //no source, no nasty animations\n srcElement = null;\n //always open top\n var e=document.getElementById("tiddlersBar");\n var result = story.displayTiddlerTIDDLERSBAR.apply(this, arguments);\n\n var title =\n result ?\n result.getAttribute('tiddler') :\n (tiddler instanceof Tiddler)? tiddler.title : tiddler;\n\n if (me.isShown()) {\n story.forEachTiddler(function(t,e){\n if (t!=title) e.style.display="none";\n else e.style.display="";\n })\n me.currentTab = title;\n }\n if (e) me.refresh(e,null);\n window.scrollTo(0,0);\n\n return result;\n}\n\nconfig.shadowTiddlers.StyleSheetTiddlersBar = [\n "/*{{{*/",\n "#tiddlersBar {padding : 1em 0.5em 0 0.5em;}",\n "#tiddlersBar .button {border:0;}",\n "#tiddlersBar .tab {border:0; border-top:2px [[ColorPalette::TertiaryPale]];border-bottom:2px solid [[ColorPalette::TertiaryPale]];white-space:nowrap; padding:2px 5px;}",\n "#tiddlersBar .tabSelected {background:transparent;border-top-color:transparent;}",\n "#tiddlersBar .tabUnselected {background:[[ColorPalette::TertiaryPale]]}",\n "#tiddlersBar a {color:[[ColorPalette::TertiaryDark]]}",\n "#tiddlersBar .button:hover,",\n "#tiddlersBar .tabButton:hover{background:transparent;color:[[ColorPalette::PrimaryDark]];}",\n ".tabUnselected .tabButton,",\n ".tabSelected .tabButton {padding : 0 2px 0 2px; margin: 0 0 0 4px; color: [[ColorPalette::TertiaryMid]];}",\n ".tiddler, .tabContents {border:none;}",\n "/*}}}*/"\n].join('\sn');\nstore.addNotification("StyleSheetTiddlersBar", refreshStyles);\n\nconfig.shadowTiddlers.PageTemplate=\nconfig.shadowTiddlers.PageTemplate.replace(\n /<div id='tiddlerDisplay'><\s/div>/m,\n [\n "<div id='tiddlersBar'",\n " refresh='none'",\n " ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'>",\n "</div>\sn",\n "<div id='tiddlerDisplay'></div>"\n ].join('')\n);\n\nrefreshPageTemplateTIDDLERSBAR = refreshPageTemplate;\nrefreshPageTemplate = function(title) {\n refreshPageTemplateTIDDLERSBAR(title);\n if (me) me.refresh(document.getElementById("tiddlersBar"));\n}\nconfig.refreshers.none = function(){return true}\n\n//disable bottom scrolling (not useful now)\n// ensureVisible = function (e) {return 0}\n// Mario Pietsch: removed as it causes a scroll to top when a popup opens\n\n})(jQuery);\n//}}}
<md>\n\n# External Links\n\n``` console\n[google](http://www.google.com)\n```\n\n[google](http://www.google.com)\n\n\n# TiddlyLinks\n\n## Note\n* The new marked.js has been changed to ignore TiddlyLinks that contain spaces characters.\n* The way to fix this problem is to replace the space with `%20`.\n\n### Good notation\nAccept TiddlyLink to `MathJax in Markdown`.\n``` console\n[MathJax in Markdown](MathJax%20in%20Markdown)\n```\n\n[MathJax in Markdown](MathJax%20in%20Markdown)\n\n\n### NG notation\nIgnore TiddlyLink to `MathJax in Markdown`.\n``` console\n[MathJax in Markdown](MathJax in Markdown)\n```\n\n[MathJax in Markdown](MathJax in Markdown)\n\n\n</md>
~TiddlyWiki Classic\nhttp://classic.tiddlywiki.com/\n\n~TiddlyWiki ~GitHub\nhttps://github.com/TiddlyWiki/tiddlywiki
/***\nGitHub.io 公開用の TiddlyWikiオプション\n***/\n//{{{\nconfig.options = {\n chkAnimate: true,\n chkAutoSave: false,\n chkConfirmDelete: true,\n chkForceMinorUpdate: true,\n chkHttpReadOnly: false,\n chkIncrementalSearch: true,\n chkInsertTabs: true,\n txtMaxEditRows: "40",\n chkOpenInNewWindow: true,\n chkRegExpSearch: false,\n chkSaveBackups: false,\n chkToggleLinks: false,\n txtUserName: 'YourName',\n chkMarkdownOffline: false,\n chkMathJaxOffline: false\n};\n//}}}\n
!テンプレートの使用例\n\n!!Youtube動画を埋め込む\n\ntiddlerマクロを使って、Youtube動画を埋め込むテンプレート\n{{{\n!youtube\n<html>\n <div align="center">\n <iframe width="$1px" height="$2px" src="$3?rel=0" frameborder="0" allowfullscreen></iframe>\n </div>\n</html>\n!end\n}}}\n\nマクロ記述 : 引数は、「横」px、「縦」px、「動画URL」を指定します。\n{{{\n<<tiddler [[embed##youtube]] with:"420" "315" "https://www.youtube.com/embed/pWOigTwzj_g">>\n}}}\n\n実行結果\n<<tiddler [[embed##youtube]] with:"420" "315" "https://www.youtube.com/embed/pWOigTwzj_g">>\n\n\n!!pdfファイルを埋め込む\n\ntiddlerマクロを使って、pdfファイルを埋め込むテンプレート\n{{{\n!pdf\n<html>\n <div align="center">\n <embed width="$1px" height="$2px" src="$3" type="application/pdf" ></embed>\n </div>\n</html>\n!end\n}}}\n\nマクロ記述 : 引数は、「横」px、「縦」px、「pdfファイルのpath」を指定します。\n{{{\n<<tiddler [[embed##pdf]] with:"500" "300" "./pdf/sample_pdf.pdf">>\n}}}\n\n実行結果\n<<tiddler [[embed##pdf]] with:"500" "300" "./pdf/sample_pdf.pdf">>\n\n\n\n!!バーグラフを表示\n\ntiddlerマクロを使って、バーグラフを表示を埋め込むテンプレート\n{{{\n!bargraph\n<html>\n<div style="display: block; width: $2px; border: 1px solid black;">\n <div style="width: $1%; background: none repeat scroll 0% 0% rgb(246, 244, 49);">\n <div style="text-align: left; margin-left: 10px; white-space: nowrap;">\n $1 %\n </div>\n </div>\n</div>\n</html>\n!end\n}}}\n\nマクロ記述 : 引数は、「パーセント値」%、「横幅」pxを指定します。\nこの例では、値「20%」横幅「300px」の棒グラフを表示します。\n{{{\n<<tiddler [[embed##bargraph]] with:"20" "300">>\n}}}\n\nこの棒グラフにテーブルを組み合わせると、レイアウトしやすくなります。\n{{{\nOSシェア\n|Windows 7|<<tiddler [[embed##bargraph]] with:"56" "300">>|\n|Windows XP|<<tiddler [[embed##bargraph]] with:"18" "300">>|\n|Windows 8.1|<<tiddler [[embed##bargraph]] with:"9" "300">>|\n|Windows 8|<<tiddler [[embed##bargraph]] with:"4" "300">>|\n}}}\n\n実行結果はこのようになります\nOSシェア\n|Windows 7|<<tiddler [[embed##bargraph]] with:"56" "300">>|\n|Windows XP|<<tiddler [[embed##bargraph]] with:"18" "300">>|\n|Windows 8.1|<<tiddler [[embed##bargraph]] with:"9" "300">>|\n|Windows 8|<<tiddler [[embed##bargraph]] with:"4" "300">>|\n\n\n実際の使用では、これらのテンプレートを一つのtiddlerに纏めて記述しておきます。この例ではタイトル名 [[embed]] tiddler を作成しています。\n\nタイトル名\n{{{\nembed\n}}}\n\nコンテンツ\n{{{\n<!--{{{-->\n\n!youtube\n<html>\n <div align="center">\n <iframe width="$1px" height="$2px" src="$3?rel=0" frameborder="0" allowfullscreen></iframe>\n </div>\n</html>\n!end\n\n!pdf\n<html>\n <div align="center">\n <embed width="$1px" height="$2px" src="$3" type="application/pdf" ></embed>\n </div>\n</html>\n!end\n\n!bargraph\n<html>\n<div style="display: block; width: $2px; border: 1px solid black;">\n <div style="width: $1%; background: none repeat scroll 0% 0% rgb(246, 244, 49);">\n <div style="text-align: left; margin-left: 10px; white-space: nowrap;">\n $1 %\n </div>\n </div>\n</div>\n</html>\n!end\n\n<!--}}}-->\n}}}\n\n\n\n複雑な機能をTiddlyWikiに追加したい場合は、マクロやプラグインを書く必要がありますが。少しばかりのHTMLを書くことで実現できる場合は、このような「tiddlerマクロ」と「テンプレート」を使えば、新しい機能を追加することができます。\n
<!--{{{-->\n\n!youtube\n<html>\n <div align="center">\n <iframe width="$1px" height="$2px" src="$3?rel=0" frameborder="0" allowfullscreen></iframe>\n </div>\n</html>\n!end\n\n!pdf\n<html>\n <div align="center">\n <embed width="$1px" height="$2px" src="$3" type="application/pdf" ></embed>\n </div>\n</html>\n!end\n\n!bargraph\n<html>\n<div style="display: block; width: $2px; border: 1px solid black;">\n <div style="width: $1%; background: none repeat scroll 0% 0% rgb(246, 244, 49);">\n <div style="text-align: left; margin-left: 10px; white-space: nowrap;">\n $1 %\n </div>\n </div>\n</div>\n</html>\n!end\n\n!graphviz\n<html>\n<img src='http://g.gravizo.com/g?$1' />\n</html>\n!end\n\n<!--}}}-->\n