<<option chkGenerateAnRssFeed>> GenerateAnRssFeed\n<<option chkOpenInNewWindow>> OpenLinksInNewWindow\n<<option chkSaveEmptyTemplate>> SaveEmptyTemplate\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n^^(override with Control or other modifier key)^^\n<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP\n<<option chkForceMinorUpdate>> Treat edits as MinorChanges by preserving date and time\n^^(override with Shift key when clicking 'done' or by pressing Ctrl-Shift-Enter^^\n<<option chkConfirmDelete>> ConfirmBeforeDeleting\nMaximum number of lines in a tiddler edit box: <<option txtMaxEditRows>>\nFolder name for backup files: <<option txtBackupFolder>>\n<<option chkDisableWikiLinks>> Disable auto-linking WikiWords\n\n\n
config.options.chkHttpReadOnly = false;\n
|!Format|!Markup|!Example|\n|Bold|{{{''Bold''}}} (2 single quotes)|''Bold''|\n|Italic|{{{//Italic//}}}|//Italic//|\n|Bold Italic|{{{''//Bold Italic//''}}}|''//Bold Italic//''|\n|Underlined|{{{__Underline__}}}(2 underscores)|__Underlined__|\n|Strikethough|{{{--Strikethrough--}}}<<br>>{{{--}}} replaced {{{==}}} for Stikethrough in TiddlyWiki 2.1|--Strikethrough--|\n|Superscript|{{{Text^^Superscript^^}}}|Text^^Superscript^^|\n|Subscript|{{{Text~~Subscript~~}}}|Text~~Subscript~~|\n|Monospaced text|<html><code>{{{Monospaced}}}</code></html>|{{{Monospaced}}}|\n|Monospaced multiline block|Put <html><code>{{{</code></html> and <html><code>}}}</code></html> on their own lines|<html><pre>{{{<br/>Monospaced<br/>Multi-line<br/>Block<br/>}}}</pre></html>|\n|Highlight|{{{@@Highlight@@}}}|@@Highlight@@|\n|Color|{{{@@color(green):green text@@}}}|@@color(green):green text@@ |\n|~|{{{@@bgcolor(green):text@@}}}|@@bgcolor(green):text@@ |\n|~|{{{@@bgcolor(#3399ff):text@@}}}|@@bgcolor(#3399ff):text@@|\n|~|{{{@@bgcolor(#39f):text@@}}}|@@bgcolor(#39f):text@@|\n|CSS Extended Highlights|{{{@@some css;Highlight@@}}}<<br>>For backwards compatibility, the following highlight syntax is also accepted:<<br>>{{{@@bgcolor(#ff0000):color(#ffffff):red coloured@@}}}|@@background-color:#ff0000;color:#ffffff;red coloured@@<<br>><<slider AtEg ./atEg 'Extended example ...'>>|\n|Custom CSS Class|<html><code>{{wrappingClass{Text that is now accentuated}}}</code></html><<br>>By default, the text is placed in a <span>. To use a <div> instead, insert a line break before the text (after the single {)<<br>>In the CSS:<<br>>{{{.wrappingClass {color: red;} }}}|Add .wrappingClass to StyleSheet|\n|Any HTML|{{{<html><span>any</span><br />}}}<<br>>{{{<b>valid</b> <em>xhtml</em></html>}}}|<html><span>any</span><br /><b>valid</b> <em>xhtml</em></html>|
[[PageTemplate]]\n|>|>|[[SiteTitle]] - [[SiteSubtitle]]|\n|[[MainMenu]]|[[DefaultTiddlers]]<<br>><<br>><<br>><<br>>[[ViewTemplate]] <<br>><<br>>[[EditTemplate]]|[[SideBarOptions]]|\n|~|~|[[OptionsPanel]]|\n|~|~|[[AdvancedOptions]]|\n|~|~|<<tiddler Configuration.SideBarTabs>>|\n\n''StyleSheet:'' [[StyleSheetColors]] - [[StyleSheetLayout]] - [[StyleSheetPrint]]\n\n[[SiteUrl]]
SideBarTabs\n|[[Timeline|TabTimeline]]|[[All|TabAll]]|[[Tags|TabTags]]|>|>|[[More|TabMore]] |\n|>|>||[[Missing|TabMoreMissing]]|[[Orphans|TabMoreOrphans]]|[[Shadowed|TabMoreShadowed]]|
[[Home]]
/***\n|''Name:''|DisableWikiLinksPlugin|\n|''Description:''|Pre-release allows you to disable TiddlyWiki's automatic linking of WikiWords|\n|''Version:''|0.1.1|\n|''Status:''|alpha pre-release|\n|''Date:''|Aug 5, 2006|\n|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev|\n|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|''~CoreVersion:''|2.1.0|\n***/\n\n//{{{\n\n// Ensure that the DisableWikiLinksPlugin is only installed once.\nif(!version.extensions.DisableWikiLinksPlugin) {\nversion.extensions.DisableWikiLinksPlugin = {installed:true};\n\nif(version.major < 2 || (version.major == 2 && version.minor < 1))\n alertAndThrow("DisableWikiLinksPlugin requires TiddlyWiki 2.1 or newer.");\n\nif (config.options.chkDisableWikiLinks==undefined)\n config.options.chkDisableWikiLinks= true;\n\nTiddler.prototype.autoLinkWikiWords = function()\n{\n if(config.options.chkDisableWikiLinks==true)\n return false;\n return !this.isTagged("systemConfig") && !this.isTagged("excludeMissing");\n}\n\n} // end of "install only once"\n//}}}\n
|!Format|!Markup|!Example|\n|''Headings''|{{{!!Heading 2}}}<<br>>{{{!!!Heading 3}}}<<br>>{{{!!!!Heading 4}}}<<br>>{{{!!!!!Heading 5}}}<<br>><<br>>Usually avoid Heading1 as Tiddler titles are nominally Heading1.|<html><h2>Heading 2</h2><h3>Heading 3</h3><h4>Heading 4</h4><h5>Heading 5</h5></html>|\n|''Lists''|{{{*Bulleted list}}}|<html><ul><li>Bulleted List</li></ul></html>|\n|~|{{{#Numbered list}}}|<html><ol><li>Numbered List</li></ol></html>|\n|~|Definition list<<br>>{{{;Term}}}<<br>>{{{:definition}}}|<html><dl><dt>Term</dt><dd>definition</dd></dl></html>|\n|~|Lists can be mixed and nested<<br>>{{{*}}}Bullet<<br>>{{{*#}}}Number<<br>>{{{*#;}}}Item<<br>>{{{*#:}}}Definition|<html><ul><li>Bullet<ol><li>Numbered<dl><dt></dt>Item<dd>Definition</dd></dl></li></ol></li></ul></html>|\n|''Block quotes''|{{{>Blockquote}}}<<br>>{{{>>Nested quote}}}|<html><blockquote>Blockquote<blockquote>Nested<br/> quote</blockquote></blockquote></html>|\n|~|{{{<<<}}}<<br>>{{{multi-line}}}<<br>>{{{blockquote}}}<<br>>{{{<<<}}}|<html><blockquote>multi-line<br/>blockquote</blockquote></html>|\n|''Horizontal Rule''|{{{----}}} (4 dashes on a line of their own)|<html><hr></html>|\n|''Links''|Any {{{WikiWord}}} creates a link to a tiddler (whether it exists or not).<<br>>Note that a WikiWord has to start with a capital letter and have a further mix of upper and lower case.|[[WikiWord]]|\n|~|Manual link<<br>>{{{[[Table of Contents]]}}} (Especially for tiddlers with spaces in their titles)|[[Table of Contents]]|\n|~|{{{[[Pretty Link|Link]]}}}|[[Pretty Link|Link]]|\n|~|Automatic external link {{{http://www.tiddlywiki.com}}}|http://www.tiddlywiki.com|\n|~|Pretty external link<<br>>{{{[[My Home Page|http://www.tiddlywiki.com]]}}}|[[My Home Page|http://www.tiddlywiki.com]]|\n|~|OS Folder link<<br>>Windows Share: {{{file://///server/share}}}<<br>>Windows Local: {{{file:///c:/folder/file}}}<<br>>Un*x Local File: {{{file://folder/file}}}<<br>>Relative File: {{{[[folder/file]]}}}|file://///server/share <<br>>file:///c:/folder/file <<br>>file://folder/file <<br>> [[folder/file]]|\n|''Images''|{{{[img[favicon.ico]]}}}<<br>>Note that image files are always external to the TW file|[img[http://www.tiddlywiki.com/favicon.ico]]|\n|~|Right aligned<<br>>{{{[>img[favicon.ico]]}}}|[>img[http://www.tiddlywiki.com/favicon.ico]]|\n|~|Left aligned<<br>>{{{[<img[favicon.ico]]}}}|[<img[http://www.tiddlywiki.com/favicon.ico]]|\n|''Image Links''|{{{[img[fav.ico][TiddlerName]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][TiddlerName]]|\n|~|{{{[img[fav.ico][Alias|TiddlerName]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][Alias|TiddlerName]]|\n|~|{{{[img[fav.ico][http://www.aa.com]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][http://www.tiddlywiki.com]]|\n|~|>|also see ''Links'' and ''Images'' sections in this table|\n|''Inline''<<br>>''Comments''|{{{Not shown: /% hidden comment %/}}}<<br>>Text between the markers will not be shown|Not shown:/% hidden text %/|
@@color(red):Neue URL: http://www.tiddlywikihandbuch.de/tiddlywikihandbuch.html !@@\n\n>Update, Mai 2006:\n>Das TiddlyWikiHandbuch hat ein neues Zuhause und endlich eine eigene Domain: tiddlywikihandbuch.de.\n>Durch den Umzug hakelt sicher das ein oder andere noch. Ich bin gerade beim Umstellen und testen...\n>Ich habe mir auch vorgenommen, das ein oder andere zu aktualisieren und zu überarbeiten.\n\n>Anregungen, Fehler, Fehlfunktionen?: EmailMe !\n\n----\n\nVielleicht habe ich einfach zu früh aufgegeben. Vielleicht gibt es aber auch wirklich kein (deutsches) Handbuch zu TiddlyWiki in den Weiten des Netzes. Klar kann es Spass machen, sich durch die [[Tiddler]] zu klicken und den Javascriptcode zu durchforsten um die Funktionen zu erkunden. TiddlyWiki ist es aber wert, ein "richtiges" Handbuch zu haben, das die (wichtigsten) Funktionen zusammenfasst, erklärt und Vorschläge für den Umgang mit der ungewohnten Art des MicroContent (MikroInhalt) -Schreiben macht. Die ein oder andere Vorlage erleichtert sicher auch den Einstieg und den "Betrieb" des eigenen TiddlyWiki.\nDieses Handbuch erhebt keinen Anspruch auf Fehlerfreiheit und Vollständigkeit. Im Gegenteil: Zur Zeit ist es noch lückenhaft. Ich arbeite daran. JeremyRuston entwickelt seine Software in einer Geschwindigkeit weiter, der dieses Handbuch nicht folgen werden kann. Ich hoffe, dass trotzdem dem ein oder anderen nützlich ist.\nDer RssFeed (http://www.tiddlywikihandbuch.de/tiddlywikihandbuch.xml) informiert gerne darüber, wenn dieses TiddlyWikiHandbuch erweitert oder aktualisiert wird.\nFür Hinweise, Anregungen und Kritik bin ich dankbar.\n\nEmailMe!\n\nScS\n\np.s.: Leider wird die "~Code-Formatierung" im WebBrowser InternetExplorer z.Z. nicht richtig angezeigt. Ein Bug von TiddlyWiki oder vom IE? FireFox schlägt sich am tapfersten, der OperaBrowser zeigt zumindest korrekt an. (''!'': Ist seit der Version 1.2.32 korrigiert.)
/***\n|''Name:''|ForEachTiddlerPlugin|\n|''Version:''|1.0.5 (2006-02-05)|\n|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|\n|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|\n|''Licence:''|[[BSD open source license]]|\n|''Macros:''|[[ForEachTiddlerMacro]] v1.0.5|\n|''TiddlyWiki:''|1.2.38+, 2.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n!Description\n\nCreate customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.\n\n''Syntax:'' \n|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|\n|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|\n|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|\n|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]] is used.|\n|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|\n|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|\n\nSee details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].\n\n!Revision history\n* v1.0.5\n** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.\n** Support Firefox 1.5.0.1\n** Internal\n*** Make "JSLint" conform\n*** "Only install once"\n* v1.0.4 (2006-01-06)\n** Support TiddlyWiki 2.0\n* v1.0.3 (2005-12-22)\n** Features: \n*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) \n*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)\n** Enhancements:\n*** Improved error messages on InternetExplorer.\n* v1.0.2 (2005-12-10)\n** Features: \n*** context object also holds reference to store (TiddlyWiki)\n** Fixed Bugs: \n*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)\n* v1.0.1 (2005-12-08)\n** Features: \n*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".\n*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.\n*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).\n*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .\n*** Improved script evaluation (for where/sort clause and write scripts).\n* v1.0.0 (2005-11-20)\n** initial version\n\n!Code\n***/\n//{{{\n\n \n//============================================================================\n//============================================================================\n// ForEachTiddlerPlugin\n//============================================================================\n//============================================================================\n\n// Only install once\nif (!version.extensions.ForEachTiddlerPlugin) {\n\nversion.extensions.ForEachTiddlerPlugin = {major: 1, minor: 0, revision: 5, date: new Date(2006,2,5), source: "http://tiddlywiki.abego-software.de/#ForEachTiddlergPlugin"};\n\n// For backward compatibility with TW 1.2.x\n//\nif (!TiddlyWiki.prototype.forEachTiddler) {\n TiddlyWiki.prototype.forEachTiddler = function(callback) {\n for(var t in this.tiddlers) {\n callback.call(this,t,this.tiddlers[t]);\n }\n };\n}\n\n//============================================================================\n// forEachTiddler Macro\n//============================================================================\n\nversion.extensions.forEachTiddler = {major: 1, minor: 0, revision: 5, date: new Date(2006,2,5), provider: "http://tiddlywiki.abego-software.de"};\n\n// ---------------------------------------------------------------------------\n// Configurations and constants \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler = {\n // Standard Properties\n label: "forEachTiddler",\n prompt: "Perform actions on a (sorted) selection of tiddlers",\n\n // actions\n actions: {\n addToList: {},\n write: {}\n }\n};\n\n// ---------------------------------------------------------------------------\n// The forEachTiddler Macro Handler \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler.getContainingTiddler = function(e) {\n while(e && !hasClass(e,"tiddler"))\n e = e.parentNode;\n var title = e ? e.getAttribute("tiddler") : null; \n return title ? store.getTiddler(title) : null;\n};\n\nconfig.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n // config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);\n\n if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);\n // --- Parsing ------------------------------------------\n\n var i = 0; // index running over the params\n // Parse the "in" clause\n var tiddlyWikiPath = undefined;\n if ((i < params.length) && params[i] == "in") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "TiddlyWiki path expected behind 'in'.");\n return;\n }\n tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the where clause\n var whereClause ="true";\n if ((i < params.length) && params[i] == "where") {\n i++;\n whereClause = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the sort stuff\n var sortClause = null;\n var sortAscending = true; \n if ((i < params.length) && params[i] == "sortBy") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "sortClause missing behind 'sortBy'.");\n return;\n }\n sortClause = this.paramEncode(params[i]);\n i++;\n\n if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {\n sortAscending = params[i] == "ascending";\n i++;\n }\n }\n\n // Parse the script\n var scriptText = null;\n if ((i < params.length) && params[i] == "script") {\n i++;\n scriptText = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the action. \n // When we are already at the end use the default action\n var actionName = "addToList";\n if (i < params.length) {\n if (!config.macros.forEachTiddler.actions[params[i]]) {\n this.handleError(place, "Unknown action '"+params[i]+"'.");\n return;\n } else {\n actionName = params[i]; \n i++;\n }\n } \n \n // Get the action parameter\n // (the parsing is done inside the individual action implementation.)\n var actionParameter = params.slice(i);\n\n\n // --- Processing ------------------------------------------\n try {\n this.performMacro({\n place: place, \n inTiddler: tiddler,\n whereClause: whereClause, \n sortClause: sortClause, \n sortAscending: sortAscending, \n actionName: actionName, \n actionParameter: actionParameter, \n scriptText: scriptText, \n tiddlyWikiPath: tiddlyWikiPath});\n\n } catch (e) {\n this.handleError(place, e);\n }\n};\n\n// Returns an object with properties "tiddlers" and "context".\n// tiddlers holds the (sorted) tiddlers selected by the parameter,\n// context the context of the execution of the macro.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {\n\n var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);\n\n var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;\n context["tiddlyWiki"] = tiddlyWiki;\n \n // Get the tiddlers, as defined by the whereClause\n var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);\n context["tiddlers"] = tiddlers;\n\n // Sort the tiddlers, when sorting is required.\n if (parameter.sortClause) {\n this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);\n }\n\n return {tiddlers: tiddlers, context: context};\n};\n\n// Returns the (sorted) tiddlers selected by the parameter.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlers = function(parameter) {\n return this.getTiddlersAndContext(parameter).tiddlers;\n};\n\n// Performs the macros with the given parameter.\n//\n// @param parameter holds the parameter of the macro as separate properties.\n// The following properties are supported:\n//\n// place\n// whereClause\n// sortClause\n// sortAscending\n// actionName\n// actionParameter\n// scriptText\n// tiddlyWikiPath\n//\n// All properties are optional. \n// For most actions the place property must be defined.\n//\nconfig.macros.forEachTiddler.performMacro = function(parameter) {\n var tiddlersAndContext = this.getTiddlersAndContext(parameter);\n\n // Perform the action\n var actionName = parameter.actionName ? parameter.actionName : "addToList";\n var action = config.macros.forEachTiddler.actions[actionName];\n if (!action) {\n this.handleError(parameter.place, "Unknown action '"+actionName+"'.");\n return;\n }\n\n var actionHandler = action.handler;\n actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);\n};\n\n// ---------------------------------------------------------------------------\n// The actions \n// ---------------------------------------------------------------------------\n\n// Internal.\n//\n// --- The addToList Action -----------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n\n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);\n return;\n }\n\n // Perform the action.\n var list = document.createElement("ul");\n place.appendChild(list);\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i];\n var listItem = document.createElement("li");\n list.appendChild(listItem);\n createTiddlyLink(listItem, tiddler.title, true);\n }\n};\n\n// Internal.\n//\n// --- The write Action ---------------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n if (p >= parameter.length) {\n this.handleError(place, "Missing expression behind 'write'.");\n return;\n }\n\n var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n\n // Parse the "toFile" option\n var filename = null;\n var lineSeparator = undefined;\n if ((p < parameter.length) && parameter[p] == "toFile") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");\n return;\n }\n \n filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));\n p++;\n if ((p < parameter.length) && parameter[p] == "withLineSeparator") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");\n return;\n }\n lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n }\n }\n \n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);\n return;\n }\n\n // Perform the action.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);\n var count = tiddlers.length;\n var text = "";\n for (var i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n text += func(tiddler, context, count, i);\n }\n \n if (filename) {\n if (lineSeparator !== undefined) {\n lineSeparator = lineSeparator.replace(/\s\sn/mg, "\sn").replace(/\s\sr/mg, "\sr");\n text = text.replace(/\sn/mg,lineSeparator);\n }\n saveFile(filename, convertUnicodeToUTF8(text));\n } else {\n var wrapper = createTiddlyElement(place, "span");\n wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);\n }\n};\n\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {\n return {\n place : placeParam, \n whereClause : whereClauseParam, \n sortClause : sortClauseParam, \n sortAscending : sortAscendingParam, \n script : scriptText,\n actionName : actionNameParam, \n actionParameter : actionParameterParam,\n tiddlyWikiPath : tiddlyWikiPathParam,\n inTiddler : inTiddlerParam\n };\n};\n\n// Internal.\n//\n// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of \n// the given path.\n//\nconfig.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {\n if (!idPrefix) {\n idPrefix = "store";\n }\n var lenPrefix = idPrefix.length;\n \n // Read the content of the given file\n var content = loadFile(this.getLocalPath(path));\n if(content === null) {\n throw "TiddlyWiki '"+path+"' not found.";\n }\n \n // Locate the storeArea div's\n var posOpeningDiv = content.indexOf(startSaveArea);\n var posClosingDiv = content.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1)) {\n throw "File '"+path+"' is not a TiddlyWiki.";\n }\n var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);\n \n // Create a "div" element that contains the storage text\n var myStorageDiv = document.createElement("div");\n myStorageDiv.innerHTML = storageText;\n myStorageDiv.normalize();\n \n // Create all tiddlers in a new TiddlyWiki\n // (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)\n var tiddlyWiki = new TiddlyWiki();\n var store = myStorageDiv.childNodes;\n for(var t = 0; t < store.length; t++) {\n var e = store[t];\n var title = null;\n if(e.getAttribute)\n title = e.getAttribute("tiddler");\n if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)\n title = e.id.substr(lenPrefix);\n if(title && title !== "") {\n var tiddler = tiddlyWiki.createTiddler(title);\n tiddler.loadFromDiv(e,title);\n }\n }\n tiddlyWiki.dirty = false;\n\n return tiddlyWiki;\n};\n\n\n \n// Internal.\n//\n// Returns a function that has a function body returning the given javaScriptExpression.\n// The function has the parameters:\n// \n// (tiddler, context, count, index)\n//\nconfig.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {\n var script = context["script"];\n var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";\n var fullText = (script ? script+";" : "")+functionText+";theFunction;";\n return eval(fullText);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {\n var result = [];\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);\n tiddlyWiki.forEachTiddler(function(title,tiddler) {\n if (func(tiddler, context, undefined, undefined)) {\n result.push(tiddler);\n }\n });\n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {\n var message = "Extra parameter behind '"+actionName+"':";\n for (var i = firstUnusedIndex; i < parameter.length; i++) {\n message += " "+parameter[i];\n }\n this.handleError(place, message);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? -1 \n : +1; \n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? +1 \n : -1; \n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {\n // To avoid evaluating the sortClause whenever two items are compared \n // we pre-calculate the sortValue for every item in the array and store it in a \n // temporary property ("forEachTiddlerSortValue") of the tiddlers.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);\n var count = tiddlers.length;\n var i;\n for (i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);\n }\n\n // Do the sorting\n tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);\n\n // Delete the temporary property that holds the sortValue. \n for (i = 0; i < tiddlers.length; i++) {\n delete tiddlers[i].forEachTiddlerSortValue;\n }\n};\n\n\n// Internal.\n//\nconfig.macros.forEachTiddler.trace = function(message) {\n displayMessage(message);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {\n var message ="<<"+macroName;\n for (var i = 0; i < params.length; i++) {\n message += " "+params[i];\n }\n message += ">>";\n displayMessage(message);\n};\n\n\n// Internal.\n//\n// Creates an element that holds an error message\n// \nconfig.macros.forEachTiddler.createErrorElement = function(place, exception) {\n var message = (exception.description) ? exception.description : exception.toString();\n return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);\n};\n\n// Internal.\n//\n// @param place [may be null]\n//\nconfig.macros.forEachTiddler.handleError = function(place, exception) {\n if (place) {\n this.createErrorElement(place, exception);\n } else {\n throw exception;\n }\n};\n\n// Internal.\n//\n// Encodes the given string.\n//\n// Replaces \n// "$))" to ">>"\n// "$)" to ">"\n//\nconfig.macros.forEachTiddler.paramEncode = function(s) {\n var reGTGT = new RegExp("\s\s$\s\s)\s\s)","mg");\n var reGT = new RegExp("\s\s$\s\s)","mg");\n return s.replace(reGTGT, ">>").replace(reGT, ">");\n};\n\n// Internal.\n//\n// Returns the given original path (that is a file path, starting with "file:")\n// as a path to a local file, in the systems native file format.\n//\n// Location information in the originalPath (i.e. the "#" and stuff following)\n// is stripped.\n// \nconfig.macros.forEachTiddler.getLocalPath = function(originalPath) {\n // Remove any location part of the URL\n var hashPos = originalPath.indexOf("#");\n if(hashPos != -1)\n originalPath = originalPath.substr(0,hashPos);\n // Convert to a native file format assuming\n // "file:///x:/path/path/path..." - pc local file --> "x:\spath\spath\spath..."\n // "file://///server/share/path/path/path..." - FireFox pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n // "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."\n // "file://server/share/path/path/path..." - pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n var localPath;\n if(originalPath.charAt(9) == ":") // pc local file\n localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file:///") === 0) // mac/unix local file\n localPath = unescape(originalPath.substr(7));\n else if(originalPath.indexOf("file:/") === 0) // mac/unix local file\n localPath = unescape(originalPath.substr(5));\n else // pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\s\s"); \n return localPath;\n};\n\n// ---------------------------------------------------------------------------\n// Stylesheet Extensions (may be overridden by local StyleSheet)\n// ---------------------------------------------------------------------------\n//\nsetStylesheet(\n ".forEachTiddlerError{color: #ffffff;background-color: #880000;}",\n "forEachTiddler");\n\n//============================================================================\n// End of forEachTiddler Macro\n//============================================================================\n\n\n//============================================================================\n// String.startsWith Function\n//============================================================================\n//\n// Returns true if the string starts with the given prefix, false otherwise.\n//\nversion.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.startsWith = function(prefix) {\n var n = prefix.length;\n return (this.length >= n) && (this.slice(0, n) == prefix);\n};\n\n\n\n//============================================================================\n// String.endsWith Function\n//============================================================================\n//\n// Returns true if the string ends with the given suffix, false otherwise.\n//\nversion.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.endsWith = function(suffix) {\n var n = suffix.length;\n return (this.length >= n) && (this.right(n) == suffix);\n};\n\n\n//============================================================================\n// String.contains Function\n//============================================================================\n//\n// Returns true when the string contains the given substring, false otherwise.\n//\nversion.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.contains = function(substring) {\n return this.indexOf(substring) >= 0;\n};\n\n//============================================================================\n// Array.indexOf Function\n//============================================================================\n//\n// Returns the index of the first occurance of the given item in the array or \n// -1 when no such item exists.\n//\n// @param item [may be null]\n//\nversion.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.indexOf = function(item) {\n for (var i = 0; i < this.length; i++) {\n if (this[i] == item) {\n return i;\n }\n }\n return -1;\n};\n\n//============================================================================\n// Array.contains Function\n//============================================================================\n//\n// Returns true when the array contains the given item, otherwise false. \n//\n// @param item [may be null]\n//\nversion.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.contains = function(item) {\n return (this.indexOf(item) >= 0);\n};\n\n//============================================================================\n// Array.containsAny Function\n//============================================================================\n//\n// Returns true when the array contains at least one of the elements \n// of the item. Otherwise (or when items contains no elements) false is returned.\n//\nversion.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAny = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (this.contains(items[i])) {\n return true;\n }\n }\n return false;\n};\n\n\n//============================================================================\n// Array.containsAll Function\n//============================================================================\n//\n// Returns true when the array contains all the items, otherwise false.\n// \n// When items is null false is returned (even if the array contains a null).\n//\n// @param items [may be null] \n//\nversion.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAll = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (!this.contains(items[i])) {\n return false;\n }\n }\n return true;\n};\n\n\n} // of "install only once"\n\n// Used Globals (for JSLint) ==============\n// ... DOM\n/*global document */\n// ... TiddlyWiki Core\n/*global convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, \n displayMessage, endSaveArea, hasClass, loadFile, saveFile, \n startSaveArea, store, wikify */\n//}}}\n\n\n/***\n!Licence and Copyright\nCopyright (c) abego Software ~GmbH, 2005 ([[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\n
!!1.Tiddlywiki\n*[[Basic Formatting]]\n*[[Document Formatting]]\n*[[Table Formatting]]\n*[[Deutsches Handbuch|Einleitung]]\n*[[Kurzanleitung]]\n*[[UrlCodierung]]\n*[[SchöneLinks]]\n*[[Überschriften]]\n*[[SchreibmaschinenText]]\n*[[WaagerechteTrennlinie]]\n!!2.Mediawiki\n*[[Mediawikiformat]]\n
!!!!!Dieses [[tiddlywiki]] kann mit 2 verschiedenen Wikiformatierungen lokal (offline) und remote bei <<tag tiddlyspot>> (online) in nur 1 HTML Datei ''ohne Serverbedarf'' strukturiert beschrieben werden:\n!!!!!1.[[Tiddlywikisyntax|Formatierung]] - siehe [[TiddlySnip|http://tiddlycopy.enrogue.com/]] fuer Firefox\n**durch ''Entfernung'' des automatisch gesetzten ''tag : MediaWikiFormat'' wird der ''Eintrag=tiddler'' mit [[Tiddlywikisyntax|Formatierung]] formatiert\n**Beispiel [[dieser Abschnitt Tiddler Home|Home]]\n!!!!!2.[[Mediawikisyntax|Mediawikiformat]] - siehe [[Wikipedia Toolbar|http://wikipedia.mozdev.org/]] fuer Firefox\n**das ist die ''Voreinstellung'' default fuer neue Eintraege - new tiddler - ''tag : MediaWikiFormat'' wird automatisch gesetzt\n**Beispiel [[tiddlywiki]] oder [[Mediawikiformat]]\n>[[Martin Budden|http://martinswiki.com/prereleases.html]] hat dieses Mediawikiplugin geschrieben. [[Hier|http://www.tiddlypedia.com/solarsystem/]] ein sehr schoenes Beispiel mit Bildern aus unserem Universum (Kopien aus Wikipedia). Und [[hier|http://www.tiddlypedia.com/nordic/]] ein weiteres.\n!!!!!Download\nDownload dieser ''1 Datei'' mit allen Navigationsmöglichkeiten (1:1-Kopie dieser Webseite)\n*rechte Maustaste auf diesen Link http://tiddlypedia.tiddlyspot.com/\n*''Speichern unter...'' Dateiname (frei) \n*Aufruf der ''lokalen'' ~HTML-Datei im Browser.\n\n''+++Benutzerhinweise:''\nUm mit diesem ~TiddlyWiki zu starten, sollten Sie folgende Tiddler modifizieren:\n* SiteTitle & SiteSubtitle: Den [[Titel|SiteTitle]] und [[Untertitel|SiteSubtitle]] der Site, wie oben angezeigt (nach dem Speichern werden diese auch in der Titelzeile des Browsers angezeigt)\n* MainMenu: Ihr Inhaltsverzeichnis (für gewöhnlich Links)\n* DefaultTiddlers: Beinhaltet die Namen der Tiddler, die Sie angezeigt haben möchten, wenn das ~TiddlyWiki geöffnet wird.\nSie sollten zudem Ihren Benutzernamen zum Unterzeichnen Ihrer Bearbeitungen eingeben: <<option txtUserName>>\n----\nThis is an example Tiddlypedia - a collection of articles gathered into a [[tiddlywiki]].\n\nThe articles have all been pasted directly from Wikipedia without editing (although in one or two cases some problematic text has been removed). The tiddlers are then tagged with MediaWikiFormat, to identify them to the TiddlyWiki formatter.\n\nThe [[MediaWiki]] formatter is incomplete, so some aspects of articles do not display correctly (in particular the handling of tables and images (especially image galleries) needs further work, and there is no support for templates parameters yet).\n\nClick on one of the links below to get started:\n[[WebBrowser]]\n[[PageTemplate]]\n|>|>|[[SiteTitle]] - [[SiteSubtitle]]|\n|[[MainMenu]]|[[DefaultTiddlers]]<<br>><<br>><<br>><<br>>[[ViewTemplate]] <<br>><<br>>[[EditTemplate]]|[[SideBarOptions]]|\n|~|~|[[OptionsPanel]]|\n|~|~|[[AdvancedOptions]]|\n|~|~|<<tiddler Configuration.SideBarTabs>>|\n\n''StyleSheet:'' [[StyleSheetColors]] - [[StyleSheetLayout]] - [[StyleSheetPrint]]\n\n[[SiteUrl]]\n[[Formatierung]]\n[[tiddlyspotControls]]\n\n\n
// Ensure the Plugin is only installed once.\n//\nif (!version.extensions.IntelliTaggerPlugin) {\n\n// Ensure the global abego namespace is set up.\nif (!window.abego) window.abego = {};\nif (!abego.internal) abego.internal = {};\n\n// Opens an alert with the given string and throws an exception \n// with the same string after the alert is closed.\n//\nabego.alertAndThrow = function(s) {\n alert(s);\n throw s;\n};\n\nif (version.major < 2) {\n abego.alertAndThrow("Use TiddlyWiki 2.0.8 or better to run the IntelliTagger Plugin.");\n}\n\nversion.extensions.IntelliTaggerPlugin = {\n major: 1, minor: 0, revision: 0,\n date: new Date(2006, 3, 26),\n type: 'plugin',\n source: "http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin",\n documentation: "[[IntelliTaggerPlugin Documentation]]",\n sourcecode: "[[IntelliTaggerPlugin SourceCode]]",\n author: "Udo Borkowski (ub [at] abego-software [dot] de)",\n licence: "[[BSD open source license (abego Software)]]",\n tiddlywiki: "Version 2.0.8 or better",\n browser: "Firefox 1.5.0.2 or better"\n};\n\n// ========================================================================\n// Utilities ==============================================================\n// ========================================================================\n\n// ========================================================================\n// Popup \n// \n// A Popup is an HTML element floating on top of the main HTML page. \n// \n// The HTML element (typically a "div" element) is added as a direct child \n// of the document.body.\n//\n// A Popup element should respect the following style conventions:\n//\n// position = "absolute"; // required.\n// left = aDimension; // required. E.g. "10px"\n// // When not defined the Popup is not displayed.\n// top = aDimension; // required. E.g. "10px"\n// // When not defined the Popup is not displayed.\n// background = aColor; // optional. E.g. "white"\n// // When not defined the Popup is transparent.\n// border = aBorderSpec; // optional. E.g. "1px solid DarkGray"\n// width = aDimension; // optional. E.g. "200px"\n// // When not defined the width is calculated \n// // automatically.\n// height = aDimension; // optional. E.g. "200px"\n// // When not defined the height is calculated \n// // automatically.\n// ========================================================================\n\n\n\n// Returns true iff the given element is "opened as a popup", \n// i.e. a direct child of the document.body.\n//\n// @param element [may be null/undefined] \n// an HTML element\n//\nabego.isPopupOpen = function(element) {\n return element && element.parentNode == document.body;\n};\n\n// Opens the given element as a popup.\n// \n// @param element \n// an HTML element\n//\nabego.openAsPopup = function(element) {\n if (element.parentNode != document.body)\n document.body.appendChild(element);\n};\n\n\n// Closes the given popup.\n// Does nothing when the element is not a popup or not open.\n//\n// @param element [may be null/undefined] \n// an HTML element\n//\nabego.closePopup = function(element) {\n if (abego.isPopupOpen(element)) \n document.body.removeChild(element);\n};\n\n// Returns the rectangle of the (browser) window\n//\n// @return {left,top,height,width}\n// \nabego.getWindowRect = function() {\n return {\n left: findScrollX(),\n top: findScrollY(),\n height: findWindowHeight(),\n width: findWindowWidth()\n };\n};\n\n// Moves the given element to the given position (in pixel).\n//\nabego.moveElement = function(element, left, top) {\n element.style.left = left + "px";\n element.style.top = top + "px";\n};\n\n// Centers the given element on the window.\n//\n// The element must have absolute position\n// \nabego.centerOnWindow = function(element) {\n if (element.style.position != "absolute") \n throw "abego.centerOnWindow: element must have absolute position"; \n \n var winRect = abego.getWindowRect();\n\n abego.moveElement(\n element,\n winRect.left + (winRect.width - element.offsetWidth) / 2,\n winRect.top + (winRect.height - element.offsetHeight) / 2);\n};\n\n// Returns true if e is either self or a descendant (child, grandchild,...) of self.\n//\n// @param self DOM:Element\n// @param e DOM:Element [may be null]\n//\nabego.isDescendantOrSelf = function(self, e) {\n while (e) {\n if (self == e) return true;\n e = e.parentNode;\n }\n return false;\n};\n\n// Returns a set containing the items of the array. \n// \n// It is an object that has a property for every item of the array.\n// The name of the property is the "toString" representation of \n// the item. The value of the property is "true".\n//\n// Duplicate items are removed.\n//\nabego.toSet = function(array) {\n var result = {};\n for (var i = 0; i < array.length; i++)\n result[array[i]] = true;\n return result;\n};\n\n// Returns an array with all strings from strings that match the filterRE.\n//\n// @param maxCount [optional] if defined at most maxCount strings are returned.\nabego.filterStrings = function(strings, filterRE, maxCount) {\n var result =[];\n for (var i = 0; i < strings.length && (maxCount === undefined || result.length < maxCount); i++) {\n var s = strings[i];\n if (s.match(filterRE)) \n result.push(s);\n }\n return result;\n};\n\nabego.arraysAreEqual = function(a,b) {\n var n = a.length;\n if (n != b.length) \n return false;\n for (var i = 0; i < n; i++) \n if (a[i] != b[i])\n return false;\n return true;\n};\n\n// Adjusts the element's position to appear below the anchorElement, \n// and ensures the element fits into the window.\n//\nabego.moveBelowAndClip = function(element, anchorElement) {\n if (!anchorElement) \n return;\n \n // Position the result below the anchor and resize it if necessary.\n var anchorLeft = findPosX(anchorElement);\n var anchorTop = findPosY(anchorElement);\n var anchorHeight = anchorElement.offsetHeight;\n var elementLeft = anchorLeft;\n var elementTop = anchorTop + anchorHeight;\n\n // Make sure the result is not wider than the window\n var winWidth = findWindowWidth();\n if (winWidth < element.offsetWidth) {\n element.style.width = (winWidth - 100)+"px";\n }\n\n // Ensure that the left and right of the result are not\n // clipped by the window. Move it to the left or right, if necessary. \n var elementWidth = element.offsetWidth;\n if(elementLeft + elementWidth > winWidth)\n elementLeft = winWidth - elementWidth-30;\n if (elementLeft < 0) \n elementLeft = 0;\n \n // Do the actual moving\n element.style.left = elementLeft + "px";\n element.style.top = elementTop + "px";\n element.style.display = "block";\n};\n\nabego.compareStrings = function(a, b) {\n return (a == b) ? 0 : (a < b) ? -1 : 1;\n};\n\n// Sorts the given array alphabetically, ignoring the case.\n//\nabego.sortIgnoreCase = function(arr) {\n var result =[];\n \n // To avoid toLowerCase to be called twice for every comparison\n // we convert the strings once and sort the lowercase.\n // After sorting we replace them with the cased ones.\n //\n // Benchmarks have shown that this is significantly faster \n // than the ad hoc solution, even for small arrays \n // (like 5 Strings (10 chars each))\n \n var n = arr.length;\n for (var i = 0; i < n; i++) {\n var s = arr[i];\n result.push([s.toString().toLowerCase(),s]);\n }\n result.sort(function(a,b) {\n return (a[0] == b[0]) ? 0 : (a[0] < b[0]) ? -1 : 1;\n });\n \n for (i = 0; i < n; i++) \n arr[i] = result[i][1];\n};\n\n// Returns the specified field (input or textarea element), otherwise the first edit field it finds \n// or null if it found no edit field at all\n//\nabego.getTiddlerField = function(story,title,field) {\n var tiddler = document.getElementById(story.idPrefix + title);\n var e = null;\n if (tiddler != null) {\n var children = tiddler.getElementsByTagName("*");\n for (var t=0; t<children.length; t++) {\n var c = children[t];\n if(c.tagName.toLowerCase() == "input" || c.tagName.toLowerCase() == "textarea") {\n if(!e)\n e = c;\n if(c.getAttribute("edit") == field)\n e = c;\n // break; // adding this break would not be 100% compatible to <= TW 2.0.9. when a \n }\n }\n }\n return e;\n};\n\nabego.setRange = function(element, start, end) {\n// adapted from TaskMacroPlugin by LukeBlanshard. \n// http://labwiki.sourceforge.net/#CopyrightAndLicense.\n if (element.setSelectionRange) { // Mozilla\n element.setSelectionRange(start, end);\n // Damn mozilla doesn't scroll to visible. Approximate.\n var max = 0.0 + element.scrollHeight;\n var len = element.textLength;\n var top = max*start/len, bot = max*end/len;\n element.scrollTop = Math.min(top, (bot+top-element.clientHeight)/2);\n } else if (element.createTextRange != undefined) { // IE\n var range = element.createTextRange();\n range.collapse();\n range.moveEnd("character", end);\n range.moveStart("character", start);\n range.select();\n } else // Other? Too bad, just select the whole thing.\n element.select();\n};\n \n \n// TiddlerSet: an object with one property per tiddler in the set. \n// The name of the property corresponds to the tiddler name, \n// the value is "not false" (e.g. true or a non-zero number).\n//\n// TagMap<X>: an object that maps a tag to an object of type X (access through properties)\n//\nabego.internal.TagManager = function() {\n var tagReferences = null; // TagMap<{count: natural, tiddlers: TiddlerSet}>\n\n var ensureTagsAreLoaded = function() {\n if (tagReferences)\n return;\n \n tagReferences = {};\n store.forEachTiddler(function(title,tiddler) {\n for(var i=0; i<tiddler.tags.length; i++) {\n var tag = tiddler.tags[i];\n var refedBy = tagReferences[tag];\n if (!refedBy) {\n refedBy = tagReferences[tag] = {count:0, tiddlers: {}};\n }\n refedBy.tiddlers[tiddler.title] = true;\n refedBy.count += 1;\n }\n });\n };\n \n // When any tags are changed reset the TagManager.\n // \n var oldTiddlyWikiSaveTiddler = TiddlyWiki.prototype.saveTiddler;\n TiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags) {\n var tiddler = this.fetchTiddler(title);\n var oldTags = tiddler ? tiddler.tags : [];\n var newTags = (typeof tags == "string") ? tags.readBracketedList() : tags;\n\n oldTiddlyWikiSaveTiddler.apply(this, arguments);\n \n if (!abego.arraysAreEqual(oldTags, newTags))\n abego.internal.getTagManager().reset();\n };\n\n // When a tiddler is removed that had tags reset the TagManager.\n //\n var oldTiddlyWikiRemoveTiddler = TiddlyWiki.prototype.removeTiddler;\n TiddlyWiki.prototype.removeTiddler = function(title) {\n var tiddler = this.fetchTiddler(title);\n var resetTagManager = tiddler && tiddler.tags.length > 0;\n \n oldTiddlyWikiRemoveTiddler.apply(this, arguments);\n \n if (resetTagManager) \n abego.internal.getTagManager().reset();\n };\n\n // Resets the TagManager, thus ensures that cached tagging \n // information is discarded and the most recent tag state is used.\n // \n this.reset = function () {\n tagReferences = null;\n };\n \n \n // Returns a TiddlerSet with all tiddlers that have the given tag, \n // or null when the tag is not used in any tiddler.\n //\n // @return [may be null]\n //\n this.getTiddlersWithTag = function(tag) {\n ensureTagsAreLoaded();\n\n var tagInfo = tagReferences[tag];\n return tagInfo ? tagInfo.tiddlers : null;\n };\n \n // Returns an array with the names of all tags defined \n // plus the (optional) extraTags. \n //\n // The tags are sorted alphabetically (caseinsensitive).\n //\n // @params [optional] an array of tags to be added to the list\n //\n //\n this.getAllTags = function(extraTags) {\n ensureTagsAreLoaded();\n \n var result =[];\n for (var i in tagReferences) \n result.push(i);\n \n for (i = 0; extraTags && i < extraTags.length; i++) \n result.pushUnique(extraTags[i], true);\n \n abego.sortIgnoreCase(result);\n \n return result;\n };\n \n // An array with two items per tag\n // result[i][0] : the tag name\n // result[i][1] : TiddlerSet, with tiddlers that are tagged with that tag\n // \n this.getTagInfos = function() {\n ensureTagsAreLoaded();\n \n var result = [];\n for (var tiddler in tagReferences) {\n result.push([tiddler, tagReferences[tiddler]]);\n }\n return result;\n };\n \n var compareTiddlerCountAndTagName = function(a,b) {\n var a1 = a[1];\n var b1 = b[1];\n var d = b[1].count - a[1].count;\n return d != 0 ? d : abego.compareStrings(a[0].toLowerCase(), b[0].toLowerCase());\n };\n \n this.getSortedTagInfos = function() {\n ensureTagsAreLoaded();\n\n var result = this.getTagInfos();\n \n result.sort(compareTiddlerCountAndTagName);\n \n return result;\n };\n \n // @return an array of the tags that "partner" the activeTags,\n // sorted by the number of conjoint occurances.\n //\n this.getPartnerRankedTags = function(activeTags) {\n var partnerTagCounts = {};\n for (var i = 0; i < activeTags.length; i++) {\n var tiddlersWithTag = this.getTiddlersWithTag(activeTags[i]);\n for (var name in tiddlersWithTag) {\n var tiddler = store.getTiddler(name);\n // It may happen that a tiddler is "gone" in the meantime\n if (!(tiddler instanceof Tiddler)) \n continue;\n \n for(var j=0; j<tiddler.tags.length; j++) {\n var tag = tiddler.tags[j];\n var c = partnerTagCounts[tag];\n partnerTagCounts[tag] = c ? c+1 : 1;\n }\n }\n }\n var currentTagSet = abego.toSet(activeTags);\n var result = [];\n for (var n in partnerTagCounts) {\n if (!currentTagSet[n])\n result.push(n);\n }\n // Sort the tags by their partner tag count, then alphabetically\n result.sort(function (a,b) {\n var d = partnerTagCounts[b] - partnerTagCounts[a];\n return d != 0 ? d : abego.compareStrings(a.toLowerCase(), b.toLowerCase());\n });\n\n return result;\n };\n}; // of abego.internal.TagManager\n\nabego.internal.getTagManager = function() {\n if (!abego.internal.gTagManager) abego.internal.gTagManager = new abego.internal.TagManager();\n return abego.internal.gTagManager;\n};\n\n// ========================================================================\n// IntelliTagger ==========================================================\n// ========================================================================\n\n\n(function(){\n var PADDING = 2;\n var BORDERWIDTH = 1;\n var MAX_FAVORITE_TAGS = 30;\n\n var fSuggestionPopup; // DOM:Element\n var fAnchorElement; // DOM:Element\n var fOnTagSelected; // function(e) {...}\n var fSuggestedTags; // [Tag]\n var fActiveTagSet; // TagSet\n var fFavoriteTags; // array of Tags, [optional]\n \n if (!abego.IntelliTagger) abego.IntelliTagger = {};\n\n var getAnchorElement = function() {\n return fAnchorElement;\n };\n \n var isCurrentTag = function(tag) {\n return fActiveTagSet[tag];\n };\n \n var removeLastWord = function(s) {\n var i = s.lastIndexOf(" ");\n return (i >= 0) ? s.substr(0,i) : "";\n };\n \n var lastWordIsFilter = function(inputField) {\n var s = inputField.value;\n var len = s.length; \n return (len > 0 && s[len-1] != ' ');\n };\n\n var ensureFieldEndsWithSpace = function(field) {\n var s = field.value;\n var len = s.length;\n if (len > 0 && s[len-1] != ' ') {\n field.value += ' ';\n }\n };\n \n var updateTag = function(tag, inputField, tiddler) {\n if (lastWordIsFilter(inputField)) \n inputField.value = removeLastWord(inputField.value);\n \n story.setTiddlerTag (tiddler.title,tag,0);\n ensureFieldEndsWithSpace(inputField);\n \n abego.IntelliTagger.assistTagging(inputField, tiddler);\n };\n \n // returns the n-th suggestion, first counting the favorites, then the normal suggestions\n //\n // @param n zero-based.\n // @return [may be null]\n var getNthSuggestion = function(n) {\n if (fFavoriteTags) {\n if (fFavoriteTags.length > n)\n return fFavoriteTags[n];\n \n n -= fFavoriteTags.length;\n }\n \n return (fSuggestedTags && fSuggestedTags.length > n)\n ? fSuggestedTags[n] \n : null;\n };\n\n var useNthSuggestion = function(n, inputField, tiddler) {\n var suggestion = getNthSuggestion(n);\n if (suggestion)\n updateTag(suggestion, inputField, tiddler);\n };\n\n\n var getFilter = function(inputField) {\n var pos = inputField.value.lastIndexOf(" ");\n var filter = (pos >= 0) ? inputField.value.substr(++pos,inputField.value.length) : inputField.value;\n return new RegExp(filter.escapeRegExp(),"i");\n };\n\n\n var countExpectedTags = function(tags, expectedTagsAsProperties) {\n var result = 0;\n for (var i = 0; i<tags.length;i++) \n if (expectedTagsAsProperties[tags[i]])\n result++;\n return result;\n };\n \n // Returns the number tags that have the same count of tiddlers\n // as the index-th tagInfo. \n // \n // The index-th tag is included in the returned number.\n // \n // @param sortedTagInfo Array of TagInfos, sorted by count of tiddlers.\n //\n var getNumberOfTagsWithSameCount = function(sortedTagInfos, index, filterRE) {\n var result = 1;\n var c = sortedTagInfos[index];\n for (var i = index+1; i < sortedTagInfos.length; i++) \n if (sortedTagInfos[i][1].count == c) {\n if (sortedTagInfos[i][0].match(filterRE))\n result++;\n } else\n break;\n return result;\n };\n \n var getInitialTagSuggestions = function(filterRE, maxCount) {\n var tagInfos = abego.internal.getTagManager().getSortedTagInfos();\n var result =[];\n var lastCount = 0;\n for (var i = 0; i < tagInfos.length; i++) {\n var c = tagInfos[i][1].count;\n \n // Stop adding tags to the result if not all tags with that count of tiddlers would fit into the result.\n if (c != lastCount) {\n if (maxCount && (result.length + getNumberOfTagsWithSameCount(tagInfos, i, filterRE) > maxCount)) \n break;\n lastCount = c;\n }\n // Don't add tags that are only used in one tiddler.\n if (c == 1) \n break;\n var s = tagInfos[i][0];\n if (s.match(filterRE))\n result.push(s);\n }\n return result;\n };\n \n var getAllFilteredTags = function(filterRE, extraTags) {\n return abego.filterStrings(\n abego.internal.getTagManager().getAllTags(extraTags),\n filterRE);\n };\n\n // Refreshes the tagSuggestions window\n //\n var refreshPopup = function() {\n if (!fSuggestionPopup) \n return;\n \n // Load the template for the YourSearchResult\n var html = store.getTiddlerText("IntelliTaggerMainTemplate");\n if (!html) \n html = "<b>Tiddler IntelliTaggerMainTemplate not found</b>";\n fSuggestionPopup.innerHTML = html;\n \n // Expand the template macros etc.\n applyHtmlMacros(fSuggestionPopup,null);\n refreshElements(fSuggestionPopup,null);\n };\n \n var onTagClicked = function(e) { \n if (!e) var e = window.event;\n var tag = this.getAttribute("tag");\n if (fOnTagSelected)\n fOnTagSelected.call(this,tag, e);\n \n return false;\n };\n \n var appendTags = function(place, tags, suggestionIndex, excludeTags) {\n if (!tags)\n return;\n \n var excludeTagSet = excludeTags ? abego.toSet(excludeTags) : {};\n var n = tags.length;\n for (var i = 0; i < n; i++) {\n var tag = tags[i];\n if (excludeTagSet[tag])\n continue;\n \n if (i > 0) \n createTiddlyElement(place,"span",null,"tagSeparator", " | ");\n \n var shortcutText = "";\n var placeForButton = place;\n if (suggestionIndex < 10) {\n // create a wrapping span that ensures the number and the text are not linebreaked.\n placeForButton = createTiddlyElement(place,"span",null,"numberedSuggestion");\n \n suggestionIndex++;\n var key = suggestionIndex < 10 ? ""+(suggestionIndex) : "0";\n createTiddlyElement(placeForButton,"span",null,"suggestionNumber", key+") ");\n var fastKeyText = suggestionIndex == 1 ? "Ctrl-Space or " : "";\n shortcutText = " (Shortcut: %1Alt-%0)".format([key, fastKeyText]);\n }\n\n var shiftClickToolTip = config.views.wikified.tag.tooltip.format([tag]);\n var normalClickToolTip = (isCurrentTag(tag) ? "Remove tag '%0'%1" : "Add tag '%0'%1").format([tag,shortcutText]);\n var tooltip = "%0; Shift-Click: %1".format([normalClickToolTip, shiftClickToolTip]);\n var btn = createTiddlyButton(\n placeForButton,\n tag,\n tooltip, \n onTagClicked, \n isCurrentTag(tag) ? "currentTag" : null);\n btn.setAttribute("tag",tag);\n }\n };\n \n var scrollVisible = function() {\n // Scroll the window to make the fSuggestionPopup page (and the anchorElement) visible.\n if (fSuggestionPopup) window.scrollTo(0,ensureVisible(fSuggestionPopup));\n if (getAnchorElement()) window.scrollTo(0,ensureVisible(getAnchorElement()));\n };\n\n // Close the suggestions window when the user clicks on the document\n // (and not into the getAnchorElement or in the suggestions window)\n //\n var onDocumentClick = function(e) {\n if (!e) var e = window.event;\n if (!fSuggestionPopup) \n return;\n \n var target = resolveTarget(e);\n if (target == getAnchorElement()) return; \n if (abego.isDescendantOrSelf(fSuggestionPopup, target)) return; \n \n abego.IntelliTagger.close();\n };\n addEvent(document,"click",onDocumentClick);\n \n // We added a space to the tags edit field. To avoid that the \n // tiddler is marked as "changed" just because of that we trim\n // the field value\n //\n var oldGatherSaveFields = Story.prototype.gatherSaveFields;\n Story.prototype.gatherSaveFields = function(e,fields) {\n oldGatherSaveFields.apply(this, arguments);\n var tags = fields.tags;\n if (tags) \n fields.tags = tags.trim();\n };\n \n\n var focusTagsField = function(title) {\n story.focusTiddler(title,"tags");\n var tags = abego.getTiddlerField(story, title, "tags");\n if (tags) {\n var len = tags.value.length;\n abego.setRange(tags, len, len);\n window.scrollTo(0,ensureVisible(tags));\n }\n };\n \n\n // Attach the assistTagging to the "tags" edit field.\n //\n var oldEditHandler = config.macros.edit.handler;\n config.macros.edit.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n oldEditHandler.apply(this, arguments);\n var field = params[0];\n if((tiddler instanceof Tiddler) && field == "tags") {\n // Just added the "edit tags" field. \n // Attach it to the "Tag Suggestions" feature.\n var inputField = place.lastChild;\n inputField.onfocus = function(e) {\n abego.IntelliTagger.assistTagging(inputField, tiddler);\n setTimeout(\n function() {\n focusTagsField(tiddler.title);\n }, 100);\n\n };\n inputField.onkeyup = function(e) {\n if (!e) var e = window.event;\n if (e.altKey && !e.ctrlKey && !e.metaKey && (e.keyCode >= 48 && e.keyCode <= 57)) {\n useNthSuggestion(e.keyCode == 48 ? 9 : e.keyCode-49, inputField, tiddler);\n } else if (e.ctrlKey && e.keyCode == 32) {\n useNthSuggestion(0, inputField, tiddler);\n }\n \n setTimeout(\n function() {\n abego.IntelliTagger.assistTagging(inputField, tiddler);\n }, 100);\n return false;\n };\n \n // ensure that the tags text ends with a space \n // (otherwise the last word is used as a filter when the field gets the focus)\n ensureFieldEndsWithSpace(inputField);\n }\n };\n \n var onEditTags = function(e) {\n if (!e) var e = window.event;\n var target = resolveTarget(e);\n \n var title = target.getAttribute("tiddler");\n if (title) {\n story.displayTiddler(target,title,"IntelliTaggerEditTagsTemplate", false);\n focusTagsField(title);\n }\n return false;\n };\n \n // Add an "[edit]" button to the "tags" field that is displayed with the tiddler in the ViewTemplate.\n // Pressing the button allows editing the tags only, with the text still being displayed in wikified form.\n //\n var oldTagsHandler = config.macros.tags.handler;\n config.macros.tags.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n oldTagsHandler.apply(this, arguments);\n\n abego.IntelliTagger.createEditTagsButton(tiddler, createTiddlyElement(place.lastChild,"li"));\n };\n \n // close the Suggestion Window when the tiddler is no longer edited\n // (i.e. the tag edit inputfield is gone.)\n // \n // (Note: we must poll this condition since onblur on the input field \n // cannot be used since every click into the suggestion window results\n // in a lost focus/blur)\n //\n var closeIfAnchorElementIsHidden = function() {\n if (fSuggestionPopup && fAnchorElement && !abego.isDescendantOrSelf(document, fAnchorElement)) \n abego.IntelliTagger.close();\n };\n setInterval(closeIfAnchorElementIsHidden, 100);\n \n//----------------------------------------------------------------------------\n// The public API\n//----------------------------------------------------------------------------\n \n // @param suggestedTags \n // array of strings representing the tags to be suggested.\n //\n // @param activeTags \n // array of strings representing the tags currently "active".\n //\n // @param favoriteTags [optional] \n // a subset of the suggested tags that are "favorites". \n // I.e. They should be presented first etc.\n //\n // @param anchorElement [optional]\n // when defined the suggestions are displayed "close" to the anchorElement. \n // The page is scrolled to make the anchorElement visible.\n // When the anchorElement is not defined the suggestions are displayed in the\n // center of the window.\n //\n // @param onTagSelected [optional]\n // function(tag, e) to be called when a tag is selected.\n //\n abego.IntelliTagger.displayTagSuggestions = function(suggestedTags, activeTags, favoriteTags, anchorElement, onTagSelected) {\n fSuggestedTags = suggestedTags;\n fActiveTagSet = abego.toSet(activeTags);\n fFavoriteTags = favoriteTags;\n fAnchorElement = anchorElement;\n fOnTagSelected = onTagSelected;\n \n if (!fSuggestionPopup) {\n fSuggestionPopup = createTiddlyElement(document.body,"div",null,"intelliTaggerSuggestions");\n fSuggestionPopup.style.position = "absolute";\n }\n \n refreshPopup();\n abego.openAsPopup(fSuggestionPopup);\n \n if (getAnchorElement()) {\n var w = getAnchorElement().offsetWidth;\n if (fSuggestionPopup.offsetWidth < w) {\n fSuggestionPopup.style.width = (w-2*(PADDING+BORDERWIDTH)) + "px";\n }\n abego.moveBelowAndClip(fSuggestionPopup, getAnchorElement());\n } else {\n abego.centerOnWindow(fSuggestionPopup);\n }\n\n scrollVisible();\n };\n \n // Shows the Tag Suggestion Popup for the given tiddler, below the specified inputField.\n //\n abego.IntelliTagger.assistTagging = function(inputField, tiddler) {\n var filterRE = getFilter(inputField);\n var s = inputField.value;\n if (lastWordIsFilter(inputField)) \n s = removeLastWord(s);\n var activeTags = s.readBracketedList();\n var favoriteTags = activeTags.length > 0 \n ? abego.filterStrings(abego.internal.getTagManager().getPartnerRankedTags(activeTags), filterRE, MAX_FAVORITE_TAGS)\n : getInitialTagSuggestions(filterRE, MAX_FAVORITE_TAGS);\n abego.IntelliTagger.displayTagSuggestions(\n getAllFilteredTags(filterRE,activeTags), \n activeTags,\n favoriteTags, \n inputField,\n function(tag, e) {\n if (e.shiftKey) {\n onClickTag.call(this,e);\n } else\n updateTag(tag, inputField, tiddler);\n });\n };\n \n // Closes the Tag Suggestions Popup\n //\n abego.IntelliTagger.close = function() {\n abego.closePopup(fSuggestionPopup);\n fSuggestionPopup = null;\n return false;\n };\n\n // Creates an TiddlyButton at the given place to edit the tags of the given tiddler.\n //\n abego.IntelliTagger.createEditTagsButton = function(tiddler, place, text, tooltip, className, id, accessKey) {\n if (!text) text = "[edit]";\n if (!tooltip) tooltip = "Edit the tags";\n if (!className) className = "editTags";\n \n var editButton = createTiddlyButton(place,text,tooltip, onEditTags, className, id, accessKey);\n editButton.setAttribute("tiddler", (tiddler instanceof Tiddler) ? tiddler.title : String(tiddler));\n \n return editButton;\n };\n\n \n//----------------------------------------------------------------------------\n// Macros\n//----------------------------------------------------------------------------\n\n// ====Macro intelliTagger ================================================\n\n config.macros.intelliTagger = {\n // Standard Properties\n label: "intelliTagger",\n\n handler : function(place,macroName,params,wikifier,paramString,tiddler) {\n var namesAndValues = paramString.parseParams("list",null, true);\n var actions = namesAndValues[0]["action"];\n for (var i = 0; actions && i < actions.length; i++) {\n var actionName = actions[i];\n var action = config.macros.intelliTagger.subhandlers[actionName];\n \n if (!action) \n abego.alertAndThrow("Unsupported action '%0'".format([actionName]));\n \n action(place,macroName,params,wikifier,paramString,tiddler);\n }\n },\n \n subhandlers: {\n \n showTags : function(place,macroName,params,wikifier,paramString,tiddler) {\n appendTags(place, fSuggestedTags, fFavoriteTags ? fFavoriteTags.length : 0, fFavoriteTags);\n },\n \n showFavorites : function(place,macroName,params,wikifier,paramString,tiddler) {\n appendTags(place, fFavoriteTags, 0);\n },\n \n closeButton : function(place,macroName,params,wikifier,paramString,tiddler) {\n var button = createTiddlyButton(place, "close", "Close the suggestions", abego.IntelliTagger.close);\n },\n\n version : function(place) {\n var t = "IntelliTagger %0.%1.%2".format(\n [version.extensions.IntelliTaggerPlugin.major, \n version.extensions.IntelliTaggerPlugin.minor, \n version.extensions.IntelliTaggerPlugin.revision]);\n var e = createTiddlyElement(place, "a");\n e.setAttribute("href", "http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin");\n e.innerHTML = '<font color="black" face="Arial, Helvetica, sans-serif">'+t+'<font>';\n },\n\n copyright : function(place) {\n var e = createTiddlyElement(place, "a");\n e.setAttribute("href", "http://tiddlywiki.abego-software.de");\n e.innerHTML = '<font color="black" face="Arial, Helvetica, sans-serif">&copy; 2006 <b><font color="red">abego</font></b> Software<font>';\n }\n }\n };\n \n})();\n\n\nconfig.shadowTiddlers["IntelliTaggerStyleSheet"] = \n "/***\sn"+\n "!~IntelliTagger Stylesheet\sn"+\n "***/\sn"+\n "/*{{{*/\sn"+\n ".intelliTaggerSuggestions {\sn"+\n "\stposition: absolute;\sn"+\n "\stwidth: 600px;\sn"+\n "\sn"+\n "\stpadding: 2px;\sn"+\n "\stlist-style: none;\sn"+\n "\stmargin: 0;\sn"+\n "\sn"+\n "\stbackground: #eeeeee;\sn"+\n "\stborder: 1px solid DarkGray;\sn"+\n "}\sn"+\n "\sn"+\n ".intelliTaggerSuggestions .currentTag {\sn"+\n "\stfont-weight: bold;\sn"+\n "}\sn"+\n "\sn"+\n ".intelliTaggerSuggestions .suggestionNumber {\sn"+\n "\stcolor: #808080;\sn"+\n "}\sn"+\n "\sn"+\n ".intelliTaggerSuggestions .numberedSuggestion{\sn"+\n "\stwhite-space: nowrap;\sn"+\n "}\sn"+\n "\sn"+\n ".intelliTaggerSuggestions .intelliTaggerFooter {\sn"+\n "\stmargin-top: 4px;\sn"+\n "\stborder-top-width: thin;\sn"+\n "\stborder-top-style: solid;\sn"+\n "\stborder-top-color: #999999;\sn"+\n "}\sn"+\n ".intelliTaggerSuggestions .favorites {\sn"+\n "\stborder-bottom-width: thin;\sn"+\n "\stborder-bottom-style: solid;\sn"+\n "\stborder-bottom-color: #999999;\sn"+\n "\stpadding-bottom: 2px;\sn"+\n "}\sn"+\n "\sn"+\n ".intelliTaggerSuggestions .normalTags {\sn"+\n "\stpadding-top: 2px;\sn"+\n "}\sn"+\n "\sn"+\n ".intelliTaggerSuggestions .intelliTaggerFooter .button {\sn"+\n "\stfont-size: 10px;\sn"+\n "\sn"+\n "\stpadding-left: 0.3em;\sn"+\n "\stpadding-right: 0.3em;\sn"+\n "}\sn"+\n "\sn"+\n "/*}}}*/\sn";\n \nconfig.shadowTiddlers["IntelliTaggerMainTemplate"] = \n "<!--\sn"+\n "{{{\sn"+\n "-->\sn"+\n "<div class=\s"favorites\s" macro=\s"intelliTagger action: showFavorites\s"></div>\sn"+\n "<div class=\s"normalTags\s" macro=\s"intelliTagger action: showTags\s"></div>\sn"+\n "<!-- The Footer (with the Navigation) ============================================ -->\sn"+\n "<table class=\s"intelliTaggerFooter\s" border=\s"0\s" width=\s"100%\s" cellspacing=\s"0\s" cellpadding=\s"0\s"><tbody>\sn"+\n " <tr>\sn"+\n "\st<td align=\s"left\s">\sn"+\n "\st\st<span macro=\s"intelliTagger action: closeButton\s"></span>\sn"+\n "\st</td>\sn"+\n "\st<td align=\s"right\s">\sn"+\n "\st\st<span macro=\s"intelliTagger action: version\s"></span>, <span macro=\s"intelliTagger action: copyright \s"></span>\sn"+\n "\st</td>\sn"+\n " </tr>\sn"+\n "</tbody></table>\sn"+\n "<!--\sn"+\n "}}}\sn"+\n "-->\sn";\n \nconfig.shadowTiddlers["IntelliTaggerEditTagsTemplate"] = \n "<!--\sn"+\n "{{{\sn"+\n "-->\sn"+\n "<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\sn"+\n "<div class='title' macro='view title'></div>\sn"+\n "<div class='tagged' macro='tags'></div>\sn"+\n "<div class='viewer' macro='view text wikified'></div>\sn"+\n "<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler'></div>\sn"+\n "<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\sn"+\n "<!--\sn"+\n "}}}\sn"+\n "-->\sn"; \n \nconfig.shadowTiddlers["BSD open source license (abego Software)"] = "See [[Licence|http://tiddlywiki.abego-software.de/#%5B%5BBSD%20open%20source%20license%5D%5D]].";\nconfig.shadowTiddlers["IntelliTaggerPlugin Documentation"] = "[[Documentation on abego Software website|http://tiddlywiki.abego-software.de/doc/IntelliTagger.pdf]].";\nconfig.shadowTiddlers["IntelliTaggerPlugin SourceCode"] = "[[Plugin source code on abego Software website|http://tiddlywiki.abego-software.de/src/Plugin-IntelliTagger-src.js]]";\n \nsetStylesheet(store.getTiddlerText("IntelliTaggerStyleSheet"),"intelliTagger");\n\n} // of single install\n\n// Used Globals (for JSLint) ==============\n// ... JavaScript Core\n/*global alert, document, setTimeout, setInterval */\n// ... TiddlyWiki Core\n/*global Story, Tiddler, TiddlyWiki, addEvent, applyHtmlMacros, createTiddlyButton, createTiddlyElement, ensureVisible, findPosX, findPosY, findScrollX, findScrollY, findWindowHeight, findWindowWidth, onClickTag, refreshElements, resolveTarget, story */\n
{{{\n!Überschrift Ebene 1 \n!!Überschrift Ebene 2 \n!!!Überschrift Ebene 3 \n!!!!Überschrift Ebene 4 \n!!!!!Überschrift Ebene 5 \n}}}\n\n!Überschrift Ebene 1 \n!!Überschrift Ebene 2 \n!!!Überschrift Ebene 3 \n!!!!Überschrift Ebene 4 \n!!!!!Überschrift Ebene 5 \n\nBilder/Grafiken können mit\n\n{{{\n[img[Benennung|pfad/zur/Bilddatei.jpg]]\n}}}\n\neingefügt werden. Es sind relative und absolute Pfadangaben oder Links ins Web möglich.\n\n''Im Dateinamen dürfen keine Leerzeichen oder Sonderzeichen enthalten sein''\n\nOrdnerstruktuen oder andere Hierarchien können mit dem Größer -Zeichen (>) dargestellt werden.\n\n{{{\n>Ebene 1, Punkt 1\n>>Ebene 2, Punkt 1\n>>Ebene 2, Punkt 2\n>>Ebene 2, Punkt 3\n>>>Ebene 3, Punkt 1\n>>>Ebene 3, Punkt 2\n>>Ebene 2, Punkt 4\n>>Ebene 2, Punkt 5\n>Ebene 1, Punkt 2\n}}}\n\n>Ebene 1, Punkt 1\n>>Ebene 2, Punkt 1\n>>Ebene 2, Punkt 2\n>>Ebene 2, Punkt 3\n>>>Ebene 3, Punkt 1\n>>>Ebene 3, Punkt 2\n>>Ebene 2, Punkt 4\n>>Ebene 2, Punkt 5\n>Ebene 1, Punkt 2\n\nEine HtmlTabelle kann durch das Einschliessen des Texts mit dem senkrechten Stich (||, AltGr + <) erzeugt werden:\n\nEine einfache Tabelle:\n\n{{{\n|!Spalte 1|!Spalte 2|!Spalte 3|\n|Zelle 1/1|Zelle 1/2|Zelle 1/3|\n|Zelle 2/1|Zelle 2/2|Zelle 2/3|\n}}}\n\n|!Spalte 1|!Spalte 2|!Spalte 3|\n|Zelle 1/1|Zelle 1/2|Zelle 1/3|\n|Zelle 2/1|Zelle 2/2|Zelle 2/3|\n\nEine komplexere Tabelle:\n\n{{{\n|!Überschriften: Ein Ausrufungszeichen (!) direkt nach dem senkr. Stich.|!Überschrift 2|!Überschrift 3|\n|Zeile 1, Spalte 1|Zeile 1, Spalte 2|Zeile 1, Spalte 3|\n|>|>|Zellen innerhalb einer Zeile verbinden mit >|\n|Zellen verbinden innerhalb einer Spalte mit ~|>| Ein Leerzeichen vor dem Text in einer Zelle ergibt rechtsbündigen Text|\n|~|>| Je ein Leerzeichen vor und nach dem Text ergibt zentrierten Text |\n|>|>|bgcolor(green):Hintergrundfarbe: bgcolor(Farbe(z.B. red, green)):|\n|Tabelle 1: Eine Tabellenbeschriftung entsteht, wenn man die Tabelle mit einer Zelle abschliesst, auf die ein c folgt|c\n}}}\n\n|!Überschriften: Ein Ausrufungszeichen (!) direkt nach dem senkr. Stich.|!Überschrift 2|!Überschrift 3|\n|Zeile 1, Spalte 1|Zeile 1, Spalte 2|Zeile 1, Spalte 3|\n|>|>|Zellen innerhalb einer Zeile verbinden mit >|\n|Zellen verbinden innerhalb einer Spalte mit ~|>| Ein Leerzeichen vor dem Text in einer Zelle ergibt rechtsbündigen Text|\n|~|>| Je ein Leerzeichen vor und nach dem Text ergibt zentrierten Text |\n|>|>|bgcolor(green):Hintergrundfarbe: bgcolor(Farbe(z.B. red, green)):|\n|Tabelle 1: Eine Tabellenbeschriftung entsteht, wenn man die Tabelle mit einer Zelle abschliesst, auf die ein c folgt|c\n\n''Vorsicht!'' Die Backslashs müssen durch Slashs ersetzt werden! (veraltet?)\n\n\n{{{\n[[bel. Text|pfad/zur/Datei.pdf]]\n}}}\n\n{{{\n* erster Punkt der Liste\n* zweiter Punkt der Liste\n** Ein Punkt in zweiter Listenebene\n* Ein letzter Punkt in der Beispielliste\n}}}\n\n* erster Punkt der Liste\n* zweiter Punkt der Liste\n** Ein Punkt in zweiter Listenebene\n* Ein letzter Punkt in der Beispielliste\n\n\n{{{\n#Punkt 1\n#Punkt 2\n##Punkt 2.1\n##Punkt 2.2\n##Punkt 2.3\n#Punkt 3\n##Punkt 3.1\n###Punkt 3.1.1\n###Punkt 3.1.2\n}}}\n\n#Punkt 1\n#Punkt 2\n##Punkt 2.1\n##Punkt 2.2\n##Punkt 2.3\n#Punkt 3\n##Punkt 3.1\n###Punkt 3.1.1\n###Punkt 3.1.2\n\n\nEine WaagerechteTrennlinie entsteht, wenn am Zeilenanfang vier Minuszeichen (-) eingegeben werden:\n\n{{{\n----\n}}}\n\n----\n\n\n
/***\n|''Name:''|LegacyStrikeThroughPlugin|\n|''Description:''|Support for legacy (pre 2.1) strike through formatting|\n|''Version:''|1.0.1|\n|''Date:''|Jul 21, 2006|\n|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|\n|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|\n|''License:''|[[BSD open source license]]|\n|''CoreVersion:''|2.1.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n\n***/\n\n//{{{\n\n// Ensure that the LegacyStrikeThrough Plugin is only installed once.\nif(!version.extensions.LegacyStrikeThroughPlugin)\n {\n version.extensions.LegacyStrikeThroughPlugin = true;\n\nconfig.formatters.push(\n{\n name: "legacyStrikeByChar",\n match: "==",\n termRegExp: /(==)/mg,\n element: "strike",\n handler: config.formatterHelpers.createElementAndWikify\n});\n\n} // end of "install only once"\n//}}}\n
[Img[120px-Wikipedia-logo.png]]\n''@@font-size(2.4em):T@@@@font-size(1.7em):IDDLYPEDI@@@@font-size(2.4em):A@@''
{{Infobox_Software\n|Name= MediaWiki\n|Screenshot= [[Bild:Mediawiki.png|Logo von MediaWiki]]\n|Beschreibung= Logo von MediaWiki\n|Hersteller= [[meta:Developers|Entwicklerliste]]; [[Wikimedia]]\n|AktuelleVersion= 1.8.2\n|AktuelleVersionFreigabeDatum= [[13. Oktober]] [[2006]]\n|Betriebssystem= [[Berkeley Software Distribution|BSD]], [[Linux]], [[Mac OS X]], [[Microsoft Windows|Windows]], u.&nbsp;a.\n|Kategorie= [[Wiki]]-Engine\n|Lizenz= [[GNU General Public License|GPL]]\n|Deutsch= ja\n|Website= [http://mediawiki.org/ mediawiki.org]\n}}\n'''MediaWiki''' ist eine [[Wiki]]-Software (eine sogenannte ''Wiki-Engine''), die ursprünglich für die freie Enzyklopädie [[Wikipedia]] entwickelt wurde. Mittlerweile wird sie auch für verschiedene andere Projekte der gemeinnützigen [[Wikimedia]]-Stiftung und, da sie für jeden frei verfügbar ist, auch für eine Vielzahl anderer Projekte im Internet oder in Intranets verwendet. Sie ist unter der [[GNU General Public License|GPL]] lizenziert und in der Programmiersprache [[PHP|PHP5]] geschrieben. Zum Speichern der Inhalte nutzt MediaWiki die relationale Datenbank [[MySQL]]. Alternativ kann ab Version 1.5 auch [[PostgreSQL]] als Datenbank-Backend verwendet werden, jedoch ist die Unterstützung noch experimentell.\n\n== Geschichte ==\n\nMediaWiki entstand aus einer Wiki-Engine, die der deutsche Biologe Magnus Manske für die Online-Enzyklopädie [[Wikipedia]] entwickelte, als sich die zuvor eingesetzte [[UseModWiki]]-Engine den Anforderungen nicht gewachsen zeigte. Am 25. Januar 2002 wurde die erste Version, damals Phase II genannt, erstmals eingesetzt. Nach einer hauptsächlich durch Lee Daniel Crocker geschriebenen Neufassung wurde im Juni 2002 eine verbesserte Version der offiziell immer noch namenlosen Software auf dem Wikipedia-Server installiert. In den Folgejahren entwickelte sich MediaWiki zu einem erfolgreichen Open-Source-Projekt, an dem im Jahr 2005 über 60 Programmierer und Helfer beteiligt waren. Neben Wikipedia und ihren [[Wikimedia]]-Schwesterprojekten setzen heute zahlreiche Organisationen, Firmen und Institutionen MediaWiki ein. Seit der Version 1.7 wird PHP4 nicht mehr unterstützt, es ist ein PHP5 Interpreter notwendig.\n\n=== Erweiterungen ===\nSeit Mitte 2005 gibt es die Erweiterung [[Semantic MediaWiki]] für MediaWiki, die Prinzipien des [[Semantisches Web|Semantischen Webs]] einführt und so die Informationen in einem Wiki besser für Maschinen zugängig macht.\n\n== Weblinks ==\n* [http://mediawiki.org/ mediawiki.org] \n* [http://sourceforge.net/projects/wikipedia/ Projektseite] bei [[SourceForge]]\n* [[http://meta.wikimedia.org/wiki/Hilfe:Handbuch|MediaWiki-Handbuch]] (Deutsch)\n* [[http://www.mediawiki.org/wiki/Help:FAQ|FAQ – Häufig gestellte Fragen]] (Englisch)\n* [http://apfelwiki.de/wiki/Main/MediaWikiInstallieren Installations-Anleitung] <!-- ehemals bei www.produnis.de --> (Deutsch)\n* [[http://www.mediawiki.org/wiki/Sites_using_MediaWiki|Wikis, die MediaWiki verwenden]]
/***\n|''Name:''|MediaWikiFormatterPlugin|\n|''Description:''|Pre-release - Allows Tiddlers to use [[MediaWiki|http://meta.wikimedia.org/wiki/Help:Wikitext]] (WikiPedia) text formatting|\n|''Source:''|http://martinswiki.com/martinsprereleases.html#MediaWikiFormatterPlugin - for pre-release|\n|''Author:''|Martin Budden (mjbudden (at) gmail (dot) com)|\n|''Version:''|0.3.6|\n|''Status:''|alpha pre-release|\n|''Date:''|Sep 24, 2006|\n|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev|\n|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|''~CoreVersion:''|2.1.0|\n\n|''Display instrumentation''|<<option chkDisplayInstrumentation>>|\n|''Display empty template links:''|<<option chkMediaWikiDisplayEmptyTemplateLinks>>|\n|''Allow zooming of thumbnail images''|<<option chkMediaWikiDisplayEnableThumbZoom>>|\n|''List references''|<<option chkMediaWikiListReferences>>|\n\nThis is an early release of the MediaWikiFormatterPlugin, which allows you to insert MediaWiki\nformated text into a TiddlyWiki.\n\nThe aim is not to fully emulate MediaWiki, but to allow you to create MediaWiki content off-line\nand then paste the content into your MediaWiki later on, with the expectation that only minor\nedits will be required.\n\nTo use MediaWiki format in a Tiddler, tag the Tiddler with MediaWikiFormat. See [[testMediaWikiFormat]]\nfor an example.\n\n!!!Issues\nThis is an early alpha release, with (at least) the following known issues:\n# Not all styles from http://meta.wikimedia.org/wiki/MediaWiki:Common.css incorporated\n## Styles for tables don't yet match Wikipedia styles.\n## Styles for image galleries don't yet match Wikipedia styles.\n# Anchors not yet supported.\n\n!!!Not supported\n# Magic words and variables http://meta.wikimedia.org/wiki/Help:Magic_words\n# Template substitution http://meta.wikimedia.org/wiki/Help:Substitution\n# Template colon functions http://meta.wikimedia.org/wiki/Help:Colon_function\n# Template parser functions (eg #if) http://meta.wikimedia.org/wiki/ParserFunctions\n\n***/\n\n//{{{\n// Ensure that the MediaWikiFormatter Plugin is only installed once.\nif(!version.extensions.MediaWikiFormatterPlugin) {\nversion.extensions.MediaWikiFormatterPlugin = {installed:true};\n\nif(version.major < 2 || (version.major == 2 && version.minor < 1))\n {alertAndThrow("MediaWikiFormatterPlugin requires TiddlyWiki 2.1 or later.");}\n\nif(config.options.chkDisplayInstrumentation == undefined)\n {config.options.chkDisplayInstrumentation = false;}\n\nif(config.options.chkMediaWikiDisplayEmptyTemplateLinks == undefined)\n {config.options.chkMediaWikiDisplayEmptyTemplateLinks = false;}\nif(config.options.chkMediaWikiDisplayEnableThumbZoom == undefined)\n {config.options.chkMediaWikiDisplayEnableThumbZoom = false;}\nif(config.options.chkMediaWikiListReferences == undefined)\n {config.options.chkMediaWikiListReferences = false;}\n\nMediaWikiFormatter = {}; // "namespace" for local functions\n\nmwDebug = function(out,str)\n{\n createTiddlyText(out,str.replace(/\sn/mg,"\s\sn").replace(/\sr/mg,"RR"));\n createTiddlyElement(out,"br");\n};\n\nwikify = function(source,output,highlightRegExp,tiddler)\n{\n if(source && source != "")\n {\n var w = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);\n w.linkCount = 0;\n w.tableDepth = 0;\n w.output = tiddler==null ? output : createTiddlyElement(output,"p");\nvar time1,time0 = new Date();\n w.subWikifyUnterm(w.output);\nif(config.options.chkDisplayInstrumentation)\n{\ntime1 = new Date();\nvar t = tiddler ? tiddler.title : source.substr(0,10);\nif(tiddler!=null) \ndisplayMessage("Wikify '"+t+"' in " + (time1-time0) + " ms");\n}\n }\n//at point of usage can use:\n//var output = w.output.nodeType==1 && w.output.nodeName=="P" ? w.output.parentNode : w.output;\n};\n\nMediaWikiFormatter.getTemplateParams = function(w)\n{\n//{{test|a|b}}\n//{{test|n=a|m=b}}\n var params = {};\n\n var i = 1;\n var text = w.source + "|";\n var pRegExp = /(?:([^\s|]*)=)?([^\s|]*)\s|/mg;\n var match = pRegExp.exec(text);\n if(match)\n {// skip template name\n match = pRegExp.exec(text);\n }\n while(match)\n {\n //params[match[1] ? match[1] : i++] = match[2];\n if(match[1])\n {\n params[match[1]] = match[2];\n }\n else\n {\n params[i] = match[2];\n i++;\n }\n match = pRegExp.exec(text);\n }\n return params;\n};\n\nMediaWikiFormatter.expandTemplate = function(w,tiddler,params)\n// see http://meta.wikimedia.org/wiki/Help:Template\n{\n var text = tiddler.text;\n text = text.replace(/<noinclude>((?:.|\sn)*?)<\s/noinclude>/mg,"");// remove text between noinclude tags\n var ioRegExp = /<includeonly>((?:.|\sn)*?)<\s/includeonly>/mg;\n var t = "";\n var match = ioRegExp.exec(text);\n while(match)\n {\n t += match[1];\n match = ioRegExp.exec(text);\n }\n text = t == "" ? text : t;\n\n var paramsRegExp = /\s{\s{\s{(.*?)(?:\s|(.*?))?\s}\s}\s}/mg;\n t = "";\n var pi = 0;\n match = paramsRegExp.exec(text);\n while(match)\n {\n var name = match[1];\n var def = match[2];\n var val = params[name];\n if(!val)\n {val = def;}\n if(!val)\n {val = match[0];}\n t += text.substring(pi,match.index) + val;\n pi = paramsRegExp.lastIndex;\n match = paramsRegExp.exec(text);\n }\n return t == "" ? text : t;\n};\n\nMediaWikiFormatter.endOfParams = function(w,text)\n{\n var p = 0;\n var i = text.indexOf("|");\n if(i==-1) {return -1;}\n var n = text.indexOf("\sn");\n if(n!=-1 && n<i) {return -1;}\n var b = text.indexOf("[[");\n if(b!=-1 && b<i) {return -1;}// can't have [[ in parameters\n \n b = text.indexOf("{{");\n while(b!=-1 && b<i)\n {// have {{ before |, so need to find first "|" after "{{..}}" pairs\n //cut off the ..{{, find the }} cut off and repeat\n p += b;\n text = text.substr(b);\n var c = text.indexOf("}}");\n p += c;\n text = text.substr(c);\n i = text.indexOf("|");\n if(i==-1) {return -1;}\n n = text.indexOf("\sn");\n if(n!=-1 && n<i) {return -1;}\n b = text.indexOf("{{");\n i = -1;\n }\n return i;\n};\n\nMediaWikiFormatter.readToDelim = function(w)\n//!!! this is a bit rubish, needs doing properly.\n{\n//#delimiter, startBracket terminatorBracket\n var dRegExp = /\s|/mg;\n var sRegExp = /\s[\s[/mg;\n var tRegExp = /\s]\s]/mg;\n\n dRegExp.lastIndex = w.startMatch;\n var dMatch = dRegExp.exec(w.source);\n sRegExp.lastIndex = w.startMatch;\n var sMatch = sRegExp.exec(w.source);\n tRegExp.lastIndex = w.startMatch;\n var tMatch = tRegExp.exec(w.source);\n if(!tMatch)\n {\n //mwDebug(w.output,"ERROR1");\n return false;\n }\n\n while(sMatch && sMatch.index<tMatch.index)\n {\n if(dMatch && dMatch.index<sMatch.index)\n {//# delim is before startBracket, so return it\n//mwDebug(w.output,"di:"+dMatch.index+" dl:"+sRegExp.lastIndex);\n w.nextMatch = dRegExp.lastIndex;\n w.matchLength = dMatch.index - w.startMatch;\n return true;\n }\n//mwDebug(w.output,"si:"+sMatch.index+" sl:"+sRegExp.lastIndex);\n//mwDebug(w.output,"ti:"+tMatch.index+" tl:"+tRegExp.lastIndex);\n //# startBracket before termBracket, so skip over bracket pairs\n // found eg [[, so look for ]]\n tRegExp.lastIndex = sRegExp.lastIndex;\n tMatch = tRegExp.exec(w.source);\n//mwDebug(w.output,"xti:"+tMatch.index+" tl:"+tRegExp.lastIndex);\n \n // and look for another [[\n w.nextMatch = tRegExp.lastIndex;\n dRegExp.lastIndex = w.nextMatch;\n dMatch = dRegExp.exec(w.source);\n sRegExp.lastIndex = w.nextMatch;\n sMatch = sRegExp.exec(w.source);\n tRegExp.lastIndex = w.nextMatch;\n tMatch = tRegExp.exec(w.source);\n }\n \n if(dMatch && dMatch.index<tMatch.index)\n {//# delim is before term, so return it\n//mwDebug(w.output,"2di:"+dMatch.index+" dl:"+sRegExp.lastIndex);\n w.nextMatch = dRegExp.lastIndex;\n w.matchLength = dMatch.index - w.startMatch;\n return true;\n }\n if(tMatch)\n {//# delim is before term, so return it\n//mwDebug(w.output,"2ti:"+tMatch.index+" tl:"+tRegExp.lastIndex);\n w.nextMatch = tRegExp.lastIndex;\n w.matchLength = tMatch.index - w.startMatch;\n return false;\n }\n //mwDebug(w.output,"ERROR2");\n //# return term\n w.nextMatch = tRegExp.lastIndex;\n w.matchLength = -1;\n return false;\n};\n\nMediaWikiFormatter.getParams = function(w)\n{\n var params = [];\n var i = 1;\n w.startMatch = w.nextMatch;\n var read = MediaWikiFormatter.readToDelim(w);\n if(w.matchLength!=-1)\n {params[i] = w.source.substr(w.startMatch,w.matchLength);}\n while(read)\n {\n i++;\n w.startMatch = w.nextMatch;\n read = MediaWikiFormatter.readToDelim(w);\n if(w.matchLength!=-1)\n {params[i] = w.source.substr(w.startMatch,w.matchLength);}\n }\n return params;\n};\n\nMediaWikiFormatter.setFromParams = function(w,p)\n{\n var r = {};\n var re = /\ss*(.*?)=(?:(?:"(.*?)")|(?:'(.*?)')|((?:\sw|%|#)*))/mg;\n var match = re.exec(p);\n while(match)\n {\n var s = match[1].unDash();\n if(match[2])\n {\n r[s] = match[2];\n }\n else if(match[3])\n {\n r[s] = match[3];\n }\n else\n {\n r[s] = match[4];\n }\n match = re.exec(p);\n }\n return r;\n};\n\nMediaWikiFormatter.setAttributesFromParams = function(e,p)\n{\n var re = /\ss*(.*?)=(?:(?:"(.*?)")|(?:'(.*?)')|((?:\sw|%|#)*))/mg;\n var match = re.exec(p);\n while(match)\n {\n var s = match[1].unDash();\n if(s=="bgcolor")\n {\n s = "backgroundColor";\n }\n try {\n if(match[2])\n {\n e.setAttribute(s,match[2]);\n }\n else if(match[3])\n {\n e.setAttribute(s,match[3]);\n }\n else\n {\n e.setAttribute(s,match[4]);\n }\n }\n catch(ex) {}\n match = re.exec(p);\n }\n};\n\nconfig.mediaWikiFormatters = [\n{\n name: "mediaWikiHeading",\n match: "^={2,6}(?!=)\s\sn?",\n termRegExp: /(={2,6}\sn?)/mg,\n handler: function(w)\n {\n var output = w.output.nodeType==1 && w.output.nodeName=="P" ? w.output.parentNode : w.output;\n var e = createTiddlyElement(output,"h" + w.matchLength);\n var a = createTiddlyElement(e,"a");// drop anchor\n var t = w.tiddler ? w.tiddler.title + ":" : "";\n var len = w.source.substr(w.nextMatch).indexOf("=");\n a.setAttribute("name",t+w.source.substr(w.nextMatch,len));\n w.subWikifyTerm(e,this.termRegExp);\n w.output = createTiddlyElement(output,"p");\n }\n},\n\n{\n name: "mediaWikiTable",\n match: "^\s\s{\s\s|", // ^{|\n tableTerm: "\s\sn\s\s|\s\s}", // |}\n rowStart: "\s\sn\s\s|\s\s-", // \sn|-\n cellStart: "\s\sn!|!!|\s\s|\s\s||\s\sn\s\s|", //\sn! or !! or || or \sn|\n caption: "\s\sn\s\s|\s\s+",\n rowTerm: null,\n cellTerm: null,\n inCellTerm: null,\n tt: 0,\n debug: null,\n rowTermRegExp: null,\n handler: function(w)\n {\n if(this.rowTermRegExp==null)\n {\n this.rowTerm = "(" + this.tableTerm +")|(" + this.rowStart + ")";\n this.cellTerm = this.rowTerm + "|(" + this.cellStart + ")";\n this.inCellTerm = "(" + this.match + ")|" + this.rowTerm + "|(" + this.cellStart + ")";\n this.caption = "(" + this.caption + ")|" + this.cellTerm;\n\n this.rowTermRegExp = new RegExp(this.rowTerm,"mg");\n this.cellTermRegExp = new RegExp(this.cellTerm,"mg");\n this.inCellTermRegExp = new RegExp(this.inCellTerm,"mg");\n this.captionRegExp = new RegExp(this.caption,"mg");\n }\n//this.debug = createTiddlyElement(w.output,"p");\n//mwDebug(this.debug,"start table");\n this.captionRegExp.lastIndex = w.nextMatch;\n var match = this.captionRegExp.exec(w.source);\n if(!match)\n {return;}\n //var inPara = w.output.nodeType==1 && w.output.nodeName=="P" ? true : false;\n //var output = inPara ? w.output.parentNode : w.output;\n var output = w.output;\n var table = createTiddlyElement(output,"table");\n var rowContainer = table;\n\n var i = w.source.indexOf("\sn",w.nextMatch);\n if(i>w.nextMatch)\n {\n MediaWikiFormatter.setAttributesFromParams(table,w.source.substring(w.nextMatch,i));\n w.nextMatch = i;\n }\n\n var rowCount = 0;\n var eot = false;\n if(match[1])\n {// caption\n var caption = createTiddlyElement(table,"caption");\n \n w.nextMatch = this.captionRegExp.lastIndex;\n var captionText = w.source.substring(w.nextMatch);\n var n = captionText.indexOf("\sn");\n captionText = captionText.substr(0,n);\n i = MediaWikiFormatter.endOfParams(w,captionText);\n if(i!=-1)\n {\n captionText = w.source.substr(w.nextMatch,i);\n //captionText = captionText.replace(/^\s+/mg,"")//!!hack until I fix this properly\n //MediaWikiFormatter.setAttributesFromParams(caption,captionText);\n w.nextMatch += i+1;\n }\n if(caption != table.firstChild)\n {\n table.insertBefore(caption,table.firstChild);\n }\n\n w.subWikify(caption,this.cellTerm);\n w.nextMatch -= w.matchLength;// rewind to before the match\n this.cellTermRegExp.lastIndex = w.nextMatch;\n var match2 = this.cellTermRegExp.exec(w.source);\n if(match2)\n {\n if(match2[3])\n {// no first row marker\n eot = this.rowHandler(w,createTiddlyElement(rowContainer,"tr"));\n rowCount++;\n }\n }\n }\n else if(match[3])\n {// row\n w.nextMatch = this.captionRegExp.lastIndex-match[3].length;// rewind to before the match\n }\n else if(match[4])\n {// cell, no first row marker in table\n w.nextMatch = this.captionRegExp.lastIndex-match[4].length;// rewind to before the match\n eot = this.rowHandler(w,createTiddlyElement(rowContainer,"tr"));\n rowCount++;\n }\n\n this.rowTermRegExp.lastIndex = w.nextMatch;\n match = this.rowTermRegExp.exec(w.source);\n while(match && eot==false)\n {\n if(match[1])\n {// end table\n w.nextMatch = this.rowTermRegExp.lastIndex;\n if(w.tableDepth==0)\n {\n return;\n }\n }\n else if(match[2])\n {// row\n var rowElement = createTiddlyElement(rowContainer,"tr");\n w.nextMatch += match[2].length;// skip over the match\n i = w.source.indexOf("\sn",w.nextMatch);\n if(i>w.nextMatch)\n {\n MediaWikiFormatter.setAttributesFromParams(rowElement,w.source.substring(w.nextMatch,i));\n w.nextMatch = i;\n }\n eot = this.rowHandler(w,rowElement);\n }\n rowCount++;\n this.rowTermRegExp.lastIndex = w.nextMatch;\n match = this.rowTermRegExp.exec(w.source);\n }//# end while\n if(w.tableDepth==0)\n {\n w.nextMatch +=3;// skip over tableterm, \sn|}\n }\n //if(inPara)\n // w.output = createTiddlyElement(output,"p");\n },//# end handler\n rowHandler: function(w,e)\n {// assumes w.nextMatch points to first cell terminator, returns false if any improperly terminated element\n var cell;\n this.inCellTermRegExp.lastIndex = w.nextMatch;\n var match = this.inCellTermRegExp.exec(w.source);\n while(match)\n {\n if(match[1])\n {// nested table\n w.tableDepth++;\n w.subWikify(cell,this.tableTerm);\n w.nextMatch = this.tt;\n w.tableDepth--;\n return false;\n }\n else if(match[2])\n {//# end table\n this.tt = this.inCellTermRegExp.lastIndex;\n return true;\n }\n else if(match[3])\n {//# end row\n return false;\n }\n else if(match[4])\n {//# cell\n var len = match[4].length;\n cell = createTiddlyElement(e,match[4].substr(len-1)=="!"?"th":"td");\n w.nextMatch += len;//skip over the match\n\n this.inCellTermRegExp.lastIndex = w.nextMatch;\n var lookahead = this.inCellTermRegExp.exec(w.source);\n if(lookahead==null)\n {\n return false;// improperly terminated table\n }\n var cellText = w.source.substr(w.nextMatch,lookahead.index-w.nextMatch);\n var oldSource = w.source;\n var i = MediaWikiFormatter.endOfParams(w,cellText);//cellText.indexOf("|");\n if(i!=-1)\n {\n cellText = cellText.replace(/^\s+/mg,""); //!!hack until I fix this properly\n MediaWikiFormatter.setAttributesFromParams(cell,cellText.substr(0,i-1));\n cellText = cellText.substring(i+1);\n }\n cellText = cellText.replace(/^\ss*/mg,""); //# remove leading spaces so not treated as preformatted\n w.source = cellText;\n w.nextMatch = 0;\n w.subWikifyUnterm(cell);\n w.source = oldSource;\n w.nextMatch = lookahead.index;\n }\n this.inCellTermRegExp.lastIndex = w.nextMatch;\n match = this.inCellTermRegExp.exec(w.source);\n }//# end while\n return false;\n }//# end rowHandler\n},\n\n{\n name: "mediaWikilist",\n match: "^(?:(?:(?:\s\s*)|(?:#)|(?:;)|(?::))+)",\n lookaheadRegExp: /^(?:(?:(\s*)|(#)|(;)|(:))+)/mg,\n termRegExp: /(\sn)/mg,\n handler: function(w)\n {\n var output = w.output.parentNode;\n var placeStack = [output];\n var currLevel = 0, currType = null;\n var listLevel, listType, itemType;\n w.nextMatch = w.matchStart;\n this.lookaheadRegExp.lastIndex = w.nextMatch;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n while(lookaheadMatch && lookaheadMatch.index == w.nextMatch)\n {\n if(lookaheadMatch[1])\n {\n listType = "ul";\n itemType = "li";\n }\n else if(lookaheadMatch[2])\n {\n listType = "ol";\n itemType = "li";\n }\n else if(lookaheadMatch[3])\n {\n listType = "dl";\n itemType = "dt";\n }\n else if(lookaheadMatch[4])\n {\n listType = "dl";\n itemType = "dd";\n }\n listLevel = lookaheadMatch[0].length;\n w.nextMatch += lookaheadMatch[0].length;\n if(listLevel > currLevel)\n {\n for(var i=currLevel; i<listLevel; i++)\n {placeStack.push(createTiddlyElement(placeStack[placeStack.length-1],listType));}\n }\n else if(listLevel < currLevel)\n {\n for(i=currLevel; i>listLevel; i--)\n {placeStack.pop();}\n }\n else if(listLevel == currLevel && listType != currType)\n {\n placeStack.pop();\n placeStack.push(createTiddlyElement(placeStack[placeStack.length-1],listType));\n }\n currLevel = listLevel;\n currType = listType;\n var e = createTiddlyElement(placeStack[placeStack.length-1],itemType);\n w.subWikifyTerm(e,this.termRegExp);\n this.lookaheadRegExp.lastIndex = w.nextMatch;\n lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n }\n w.output = createTiddlyElement(output,"p");\n }\n},\n\n{\n name: "mediaWikiRule",\n match: "^----+$\s\sn?",\n handler: function(w)\n {\n var output = w.output.parentNode;\n createTiddlyElement(output,"hr");\n w.output = createTiddlyElement(output,"p");\n }\n},\n\n{\n name: "mediaWikiLeadingSpaces",\n match: "^ ",\n lookaheadRegExp: /^ /mg,\n termRegExp: /(\sn)/mg,\n handler: function(w)\n {\n var e = createTiddlyElement(w.output,"pre");\n while(true)\n {\n w.subWikifyTerm(e,this.termRegExp);\n createTiddlyElement(e,"br");\n this.lookaheadRegExp.lastIndex = w.nextMatch;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.nextMatch)\n {w.nextMatch += lookaheadMatch[0].length;}\n else\n {break;}\n }\n }\n},\n\n/*\n[[Image:Westminstpalace.jpg|frame|none|caption text]]\n//http://en.wikipedia.org/wiki/Image:Westminstpalace.jpg\n<a href="/wiki/Image:Westminstpalace.jpg" class="internal" title="caption text">\n<img src="http://upload.wikimedia.org/wikipedia/commons/3/39/Westminstpalace.jpg"\n alt="caption text" width="400" height="300" longdesc="/wiki/Image:Westminstpalace.jpg" />\n</a>\n\n[[image:Stockholm.jpg|right|350px|thumb|Stockholm panorama from the City Hall]]\n<div class="thumb tright">\n <div style="width:352px;">\n <a href="/wiki/Image:Stockholm.jpg" class="internal" title="Stockholm panorama from the City Hall">\n <img src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Stockholm.jpg/350px-Stockholm.jpg" alt="Stockholm panorama from the City Hall" width="350" height="84" longdesc="/wiki/Image:Stockholm.jpg" />\n </a>\n <div class="thumbcaption">\n <div class="magnify" style="float:right">\n <a href="/wiki/Image:Stockholm.jpg" class="internal" title="Enlarge">\n <img src="/skins-1.5/common/images/magnify-clip.png" width="15" height="11" alt="Enlarge" />\n </a>\n </div>\n Stockholm panorama from the City Hall\n </div>\n </div>\n</div>\n*/\n\n{\n name: "mediaWikiImage",\n match: "\s\s[\s\s[(?:[Ii]mage|Bild):",\n lookaheadRegExp: /\s[\s[(?:[Ii]mage|Bild):/mg,\n defaultPx: 180,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n var params = MediaWikiFormatter.getParams(w);\n var src = params[1];\n src = src.trim().replace(/ /mg,"_");\n src = src.substr(0,1).toUpperCase() + src.substring(1);\n var palign = null;\n var ptitle = null;\n var psrc = false;\n var px = null;\n var pthumb = false;\n var pframed = false;\n for(var i=2;i<params.length;i++)\n {//right, left, center, none, sizepx, thumbnail (thumb), frame, and alternate (caption) text.\n var p = params[i];\n//mwDebug(w.output,"p"+i+":"+p);\n if(p=="right"||p=="left"||p=="center"||p=="none")\n {\n palign = p;\n }\n else if(p=="thumbnail"||p=="thumb")\n {\n pthumb = true;\n }\n else if(p=="framed")\n {\n pframed = true;\n }\n else if(/\sd{1,4} ?px/.exec(p))\n {\n px = p.substr(0,p.length-2).trim();\n }\n else\n {\n ptitle = p;\n }\n }//#end for\n if(pthumb)\n {\n //var output = w.output.nodeType==1 && w.output.nodeName=="P" ? w.output.parentNode : w.output;\n var output = w.output.parentNode;\n if(!palign)\n {\n palign = "right";\n }\n if(!px)\n {\n px = 180;\n }\n psrc = px + "px-" + src;\n var t = createTiddlyElement(output,"div",null,"thumb"+(palign?" t"+palign:""));\n var s = createTiddlyElement(t,"div");\n s.style["width"] = Number(px) + 2 + "px";\n var a = createTiddlyElement(s,"a",null,"internal");\n if(config.options.chkMediaWikiDisplayEnableThumbZoom)\n {\n a.href = src;\n }\n a.title = ptitle;\n var img = createTiddlyElement(a,"img");\n img.src = psrc;\n img.width = px;\n img.longdesc = "Image:" + src;\n img.alt = ptitle;\n\n var tc = createTiddlyElement(s,"div",null,"thumbcaption");\n var oldSource = w.source; var oldMatch = w.nextMatch;\n w.source = ptitle; w.nextMatch = 0;\n w.subWikifyUnterm(tc);\n w.source = oldSource; w.nextMatch = oldMatch;\n\n if(config.options.chkMediaWikiDisplayEnableThumbZoom)\n {\n var tm = createTiddlyElement(tc,"div",null,"magnify");\n tm.style["float"] = "right";\n var ta = createTiddlyElement(tm,"a",null,"internal");\n ta.title = "Enlarge";\n timg = createTiddlyElement(ta,"img"); timg.src = "magnify-clip.png"; timg.alt = "Enlarge"; timg.width = "15"; timg.height = "11";\n ta.href = src;\n }\n }\n else\n {// not pthumb\n a = createTiddlyElement(w.output,"a",null,"image");\n a.title = ptitle;\n img = createTiddlyElement(a,"img");\n if(palign)\n {\n img.align = palign;\n }\n img.src = px ? px + "px-" + src : src;\n if(px) {img.width = px;}\n img.longdesc = "Image:" + src;\n img.alt = ptitle;\n }\n }\n }//#end image handler\n},\n\n{\n name: "mediaWikiExplicitLink",\n match: "\s\s[\s\s[",\n lookaheadRegExp: /\s[\s[(?:([a-z]{2,3}:)?)(#?)([^\s|\s]]*?)(?:(\s]\s](\sw)*)|(\s|(.*?)\s]\s]))/mg,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n if(!lookaheadMatch[1])\n {// no (eg) en:\n var e;\n var link = lookaheadMatch[3];\n var text = link;\n link = link.substr(0,1).toUpperCase() + link.substring(1);\n if(lookaheadMatch[4])\n {// Simple bracketted link\n if(lookaheadMatch[2])\n {//anchor\n var a = createTiddlyElement(e,"a");// drop anchor\n a.setAttribute("name",link);\n }\n else\n {\n e = createTiddlyLink(w.output,link,false);\n if(lookaheadMatch[5])\n {\n text += lookaheadMatch[5];//add any non-space after the ]]\n }\n createTiddlyText(e,text);\n }\n }\n else if(lookaheadMatch[6])\n {// Piped link\n if(config.formatterHelpers.isExternalLink(link))\n {\n e = createExternalLink(w.output,link);\n }\n else\n {\n e = createTiddlyLink(w.output,link,false);\n }\n var oldSource = w.source; var oldMatch = w.nextMatch;\n w.source = lookaheadMatch[7].trim(); w.nextMatch = 0;\n w.subWikifyUnterm(e);\n w.source = oldSource; w.nextMatch = oldMatch;\n }\n }\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n }\n }\n},\n\n//#{{Audio|sv-Stockholm.ogg|Stockholm}}\n//**tem//\n{\n name: "mediaWikiTemplate",\n match: "\s\s{\s\s{[^\s\s{]",\n lookaheadRegExp: /\s{\s{((?:.|\sn)*?)\s}\s}/mg,\n handler: function(w)\n {\n//mwDebug(w.output,"wt:"+w.matchText+" ws:"+w.matchStart+" wn:"+w.nextMatch+" wl:"+w.matchLength);\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n//mwDebug(w.output,"lm:"+lookaheadMatch);\n//mwDebug(w.output,"lmi:"+lookaheadMatch.index+" lI:"+this.lookaheadRegExp.lastIndex);\n//mwDebug(w.output,"lm1:"+lookaheadMatch[1]);\n//mwDebug(w.output,"lm2:"+lookaheadMatch[2]);\n var lastIndex = this.lookaheadRegExp.lastIndex;\n var contents = lookaheadMatch[1];\n // see http://meta.wikimedia.org/wiki/Help:Variable\n if(contents=="PAGENAME")\n {\n createTiddlyText(w.output,w.tiddler.title);\n w.nextMatch = lastIndex;\n return;\n }\n var i = contents.indexOf("|");\n var title = i==-1 ? contents : contents.substr(0,i);\n title = title.trim().replace(/_/mg," ");// Underscore in template name is equivalent to space\n title = "Template:" + title.substr(0,1).toUpperCase() + title.substring(1);\n var tiddler = store.fetchTiddler(title);\n var oldSource = w.source;\n if(tiddler)\n {\n params = {};\n w.source = lookaheadMatch[1];\n if(i!=-1)\n {\n w.nextMatch = 0;\n params = MediaWikiFormatter.getTemplateParams(w);\n }\n w.source = MediaWikiFormatter.expandTemplate(w,tiddler,params);\n w.nextMatch = 0;\n w.subWikifyUnterm(w.output);\n }\n else\n {\n if(config.options.chkMediaWikiDisplayEmptyTemplateLinks)\n {// for conveniece, output the name of the template so can click on it and create tiddler\n w.source = "[["+title+"]]";\n w.nextMatch = 0;\n w.subWikifyUnterm(w.output);\n }\n }\n w.source = oldSource;\n w.nextMatch = lastIndex;\n }\n }\n},\n\n{\n name: "mediaWikiParagraph",\n match: "\s\sn{2,}",\n handler: function(w)\n {\n var output = w.output.nodeType==1 && w.output.nodeName=="P" ? w.output.parentNode : w.output;\n w.output = createTiddlyElement(output,"p");\n }\n},\n\n{\n name: "mediaWikiExplicitLineBreak",\n match: "<br ?/?>",\n handler: function(w)\n {\n createTiddlyElement(w.output,"br");\n }\n},\n\n{\n name: "mediaWikiExplicitLineBreakWithParams",\n match: "<br(?:\s\ss*(?:(?:.*?)=[\s"']?(?:.*?)[\s"']?))*?\s\ss*/?>",\n lookaheadRegExp: /<br((?:\ss+(?:.*?)=["']?(?:.*?)["']?)*?)?\ss*\s/?>/mg,\n handler: function(w)\n {\n //# copes with erroneous <br clear="right">\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n var e =createTiddlyElement(w.output,"br");\n if(lookaheadMatch[1])\n {MediaWikiFormatter.setAttributesFromParams(e,lookaheadMatch[1]);}\n w.nextMatch = this.lookaheadRegExp.lastIndex;// empty tag\n }\n }\n},\n\n{\n name: "mediaWikiTitledUrlLink",\n match: "\s\s[" + config.textPrimitives.urlPattern + "(?:\s\ss+[^\s\s]]+)?" + "\s\s]",\n //# eg [http://www.nupedia.com] or [http://www.nupedia.com Nupedia]\n //# <sup id="_ref-1" class="reference"><a href="#_note-1" title="">[2]</a>\n handler: function(w)\n {\n var lookaheadRegExp = new RegExp("\s\s[(" + config.textPrimitives.urlPattern + ")(?:\s\ss+([^\s[]+))?" + "\s\s]","mg");\n lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index==w.matchStart)\n {\n var link = lookaheadMatch[1];\n var s = createTiddlyElement(w.output,"sup");\n var e = createExternalLink(s,link);\n if(lookaheadMatch[2])\n {\n var oldSource = w.source; var oldMatch = w.nextMatch;\n w.source = lookaheadMatch[2].trim(); w.nextMatch = 0;\n w.subWikifyUnterm(e);\n w.source = oldSource; w.nextMatch = oldMatch;\n }\n else\n {\n w.linkCount++;\n createTiddlyText(e,"["+w.linkCount+"]");\n }\n w.nextMatch = lookaheadRegExp.lastIndex;\n }\n }\n},\n\n{\n name: "mediaWikiUrlLink",\n match: config.textPrimitives.urlPattern,\n handler: function(w)\n {\n w.outputText(createExternalLink(w.output,w.matchText),w.matchStart,w.nextMatch);\n }\n},\n\n{\n name: "mediaWikiBold",\n match: "'''",\n termRegExp: /('''|\sn)/mg,\n element: "strong",\n handler: config.formatterHelpers.createElementAndWikify\n},\n\n{\n name: "mediaWikiItalic",\n match: "''(?!')",\n termRegExp: /(''(?!')|\sn)/mg,\n element: "em",\n handler: config.formatterHelpers.createElementAndWikify\n},\n\n{\n name: "mediaWikiUnderline",\n match: "<u>",\n termRegExp: /(<\s/u>|\sn)/mg,\n element: "u",\n handler: config.formatterHelpers.createElementAndWikify\n},\n\n{\n name: "mediaWikiStrike",\n match: "<s>",\n termRegExp: /(<\s/s>|\sn)/mg,\n element: "strike",\n handler: config.formatterHelpers.createElementAndWikify\n},\n\n{\n name: "mediaWikiBoldTag",\n match: "<b>",\n termRegExp: /(<\s/b>|\sn)/mg,\n element: "b",\n handler: config.formatterHelpers.createElementAndWikify\n},\n\n{\n name: "mediaWikiTemplateParam",// note, this only gets invoked when viewing the template\n match: "\s\s{\s\s{\s\s{",\n lookaheadRegExp: /(\s{\s{\s{(?:.|\sn)*?\s}\s}\s})/mg,\n element: "span",\n handler: config.formatterHelpers.enclosedTextHelper\n},\n\n//# See http://en.wikipedia.org/wiki/Wikipedia:Footnotes\n//# for an explanation of how to generate footnotes using the <ref(erences/)> tags\n{\n name: "mediaWikiInsertReference",\n match: "<ref[^/]*>",\n lookaheadRegExp: /<ref(\ss+(?:.*?)=["']?(?:.*?)["']?)?>([^<]*?)<\s/ref>/mg,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n var x = {id:"",value:""};\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n if(!w.referenceCount)\n {\n w.referenceCount = 0;\n w.references = {};\n }\n var s = createTiddlyElement(w.output,"sup",null,"reference");\n var a = createTiddlyElement(s,"a");\n var prefix = w.tiddler ? w.tiddler.title + ":" : "";\n if(lookaheadMatch[1])\n {\n var r = {};\n r = MediaWikiFormatter.setFromParams(w,lookaheadMatch[1]);\n var name = r.name ? r.name.trim() : "";\n name = name.replace(/ /g,"_");\n s.id = prefix + "_ref-" + name;// + "_" + nameCount;(w.referenceCount+1);\n if(!w.references[name])\n {\n w.references[name] = x;\n w.references[name].id = w.referenceCount;\n w.references[name].value = lookaheadMatch[2].trim();\n }\n }\n else\n {\n w.references[w.referenceCount] = x;\n w.references[w.referenceCount].id = w.referenceCount;\n w.references[w.referenceCount].value = lookaheadMatch[2].trim();\n name = w.referenceCount;\n s.id = prefix + "_ref-" + w.referenceCount;\n }\n w.referenceCount++;\n a.title = lookaheadMatch[2].trim();//mb, extra to wikipedia\n a.href = "#" + prefix + "_note-" + name;\n a.innerHTML = "["+w.referenceCount+"]";\n//#<sup id="_ref-0" class="reference"><a href="#_note-0" title="">[1]</a></sup>\n//#<sup id="_ref-foreign_ministry_0" class="reference"><a href="#_note-foreign_ministry" title="">[2]</a></sup>\n }\n }\n},\n\n{\n name: "mediaWikiListReferences",\n match: "<references ?/>",\n lookaheadRegExp: /<references ?\s/>/mg,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(config.options.chkMediaWikiListReferences && w.referenceCount)\n {\n var ol = createTiddlyElement(w.output,"ol",null,"references");\n var oldSource = w.source;\n if(w.referenceCount>0)\n {\n for(var i in w.references)\n {\n var li = createTiddlyElement(ol,"li");\n var prefix = w.tiddler ? w.tiddler.title + ":" : "";\n var b = createTiddlyElement(li,"b");\n var a = createTiddlyElement(b,"a");\n li.id = prefix + "_note-" + i;\n a.href = "#" + prefix + "_ref-" + i;\n a.innerHTML = "^";\n w.source = w.references[i].value;\n w.nextMatch = 0;\n w.subWikifyUnterm(li);\n }\n }\n w.source = oldSource;\n }\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n }\n},\n\n{\n name: "mediaWikiRepeatReference",\n match: "<ref[^/]*/>",\n lookaheadRegExp: /<ref(\ss+(?:.*?)="(?:.*?)")?\ss*\s/>/mg,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n var x = {id:"",value:""};\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n//#<ref name="foreign ministry">\n//#<sup id="_ref-foreign_ministry_1" class="reference"><a href="#_note-foreign_ministry" title="">[2]</a></sup>\n var s = createTiddlyElement(w.output,"sup",null,"reference");\n var a = createTiddlyElement(s,"a");\n var prefix = w.tiddler ? w.tiddler.title : "";\n if(lookaheadMatch[1])\n {\n var r = {};\n r = MediaWikiFormatter.setFromParams(w,lookaheadMatch[1]);\n var name = r.name ? r.name.trim() : "";\n name = name.replace(/ /g,"_");\n s.id = prefix + "_ref-" + name +"_" + (w.referenceCount+1);\n var count = w.references && w.references[name] ? (w.references[name].id+1) : "?";\n }\n a.href = "#" + prefix + "_note-" + name;\n a.innerHTML = "["+count+"]";\n a.title = name;\n }\n }//# end handler\n},\n\n{\n name: "mediaWikiHtmlEntitiesEncoding",\n match: "&#?[a-zA-Z0-9]{2,8};",\n handler: function(w)\n {\n createTiddlyElement(w.output,"span").innerHTML = w.matchText;\n }\n},\n\n//# note . is anything except \sn, so (?:.|\sn) matches anything. I think [] is equivalent.\n{\n name: "mediaWikiComment",\n match: "<!\s\s-\s\s-",\n lookaheadRegExp: /<!\s-\s-((?:.|\sn)*?)\s-\s->/mg,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n }\n }\n},\n\n{\n name: "mediaWikiIncludeOnly",\n match: "<includeonly>",\n lookaheadRegExp: /<includeonly>((?:.|\sn)*?)<\s/includeonly>/mg,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n w.nextMatch = this.lookaheadRegExp.lastIndex;\n }\n }\n},\n\n{\n name: "mediaWikiNoWiki",\n match: "<nowiki>",\n lookaheadRegExp: /<nowiki>((?:.|\sn)*?)<\s/nowiki>/mg,\n element: "span",\n handler: config.formatterHelpers.enclosedTextHelper\n},\n\n{\n name: "mediaWikiPreNoWiki",\n match: "<pre>\ss*<nowiki>",\n lookaheadRegExp: /<pre>\ss*<nowiki>((?:.|\sn)*?)<\s/nowiki>\ss*<\s/pre>/mg,\n element: "pre",\n handler: config.formatterHelpers.enclosedTextHelper\n},\n\n{\n name: "mediaWikiPre",\n match: "<pre>",\n lookaheadRegExp: /<pre>((?:.|\sn)*?)<\s/pre>/mg,\n element: "pre",\n handler: config.formatterHelpers.enclosedTextHelper\n},\n\n{\n name: "mediaWikiGallery",\n match: "<gallery>",\n lookaheadRegExp: /[Ii]mage:(.*?)\sn/mg,\n handler: function(w)\n {\n//#basic syntax is:\n//#<gallery>\n//#Image:Wiki.png\n//#Image:Wiki.png|Captioned\n//#Image:Wiki.png|[[Help:Contents/Links|Links]] can be put in captions.\n//#Image:Wiki.png|Full [[MediaWiki]]<br />[[syntax]] may now be used…\n//#</gallery>\n//#<table class="gallery" cellspacing="0" cellpadding="0">\n//#<tr>\n//#...\n//#</tr>\n//#</table>\n var table = createTiddlyElement(w.output,"table",null,"gallery");\n table.cellspacing = "0";\n table.cellpadding = "0";\n var rowElem = createTiddlyElement(table,"tr");\n var col = 0;\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var nM = w.nextMatch;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n var oldSource = w.source;\n while(lookaheadMatch)\n {\n nM += lookaheadMatch[1].length;\n w.source = lookaheadMatch[1] +"]]";//!! ]] is hack until getParams is working\n w.nextMatch = 0;\n var params = MediaWikiFormatter.getParams(w);\n var src = params[1];\n src = src.trim().replace(/ /mg,"_");\n src = src.substr(0,1).toUpperCase() + src.substring(1);\n var palign = "right"; \n var psrc = "120px-"+src;\n var px = 120;\n var pframed = false;\n ptitle = null;\n for(var i=2;i<params.length;i++)\n {//right, left, center, none, sizepx, thumbnail (thumb), frame, and alternate (caption) text.\n var p = params[i];\n if(p=="right"||p=="left"||p=="center"||p=="none")\n {\n palign = p;\n }\n else if(p=="framed")\n {\n pframed = true;\n }\n else if(/\sd{1,4}px/.exec(p))\n {\n px = p.substr(0,p.length-2).trim();\n psrc = px + "px-" + src;\n }\n else\n {\n ptitle = p;\n }\n }//#end for\n//#<td>\n//#<div class="gallerybox">\n//# <div class="thumb" style="padding: 26px 0;">\n//# <a href="/wiki/Image:Paul_C%C3%A9zanne_184.jpg" title="Image:Paul Cézanne 184.jpg">\n//# <img src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Paul_C%C3%A9zanne_184.jpg/120px-Paul_C%C3%A9zanne_184.jpg" width="120" height="94" alt="" />\n//# </a>\n//# </div>\n//# <div class="gallerytext">\n//# <p><i>La Pain et les Oeufs</i> (Bread and Eggs), thought to present austerity, 1865. Signed and dated. Possibly in Spanish style.</p>\n//# </div>\n//#</div>\n//#</td>\n var td = createTiddlyElement(rowElem,"td");\n var gb = createTiddlyElement(td,"div",null,"gallerybox");\n var t = createTiddlyElement(gb,"div",null,"thumb");\n t.style["padding"] = "26px 0";\n\n var a = createTiddlyElement(t,"a");\n if(config.options.chkMediaWikiDisplayEnableThumbZoom)\n {a.href = src;}\n a.title = ptitle;\n var img = createTiddlyElement(a,"img");\n img.src = psrc;\n img.width = px;\n img.alt = "";//ptitle;\n\n var gt = createTiddlyElement(gb,"div",null,"gallerytext");\n p = createTiddlyElement(gt,"p");\n var oldSource2 = w.source; var oldMatch = w.nextMatch;\n w.source = ptitle; w.nextMatch = 0;\n w.subWikifyUnterm(p);\n w.source = oldSource2; w.nextMatch = oldMatch;\n\n col++;\n if(col>3)\n {\n rowElem = createTiddlyElement(table,"tr");\n col = 0;\n }\n w.source = oldSource;\n lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n }\n w.nextMatch = nM + "<gallery>".length*2+1+"Image:".length;//!! hack\n }\n},\n\n{\n name: "mediaWikiHtmlTag",\n match: "<[a-zA-Z]{2,}(?:\s\ss*(?:(?:.*?)=[\s"']?(?:.*?)[\s"']?))*?>",\n lookaheadRegExp: /<([a-zA-Z]{2,})((?:\ss+(?:.*?)=["']?(?:.*?)["']?)*?)?\ss*(\s/)?>/mg,\n handler: function(w)\n {\n this.lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = this.lookaheadRegExp.exec(w.source);\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n var e =createTiddlyElement(w.output,lookaheadMatch[1]);\n if(lookaheadMatch[2])\n {MediaWikiFormatter.setAttributesFromParams(e,lookaheadMatch[2]);}\n if(lookaheadMatch[3])\n {\n w.nextMatch = this.lookaheadRegExp.lastIndex;// empty tag\n }\n else\n {\n w.subWikify(e,"</"+lookaheadMatch[1]+">");\n }\n }\n }\n}\n];\n\nconfig.parsers.mediaWikiFormatter = new Formatter(config.mediaWikiFormatters);\nconfig.parsers.mediaWikiFormatter.formatTag = "MediaWikiFormat";\n} // end of "install only once"\n//}}}\n
Das ist eine [[http://de.wikipedia.org/wiki/Hilfe:Textgestaltung|Kopie von Wikipedia]]\n\nThis is a [[http://de.wikipedia.org/wiki/Hilfe:Textgestaltung|copy from Wikipedia]]\n----\nDiese Seite erklärt, wie du in Wiki-Syntax Überschriften, Listen und Absätze erzeugst und Textstellen formatierst. Aus den Überschriften generiert die Software ein automatisches [[Wikipedia:Überschriften und Inhaltsverzeichnis|Inhaltsverzeichnis]].\n\nKleiner- und größergeschriebenen Text, harte Zeilenumbrüche mit <nowiki><br />-Tags</nowiki> und ähnliche Spezialformatierungen solltest du nicht in Artikeln, sondern nur in Tabellen oder [[Hilfe:Vorlagen|Textbausteinen]] verwenden, um ein einheitliches Aussehen der Artikel zu gewährleisten. Ansonsten bietet die Wikiauszeichnungssprache genügend Möglichkeiten, den Text zu formatieren.\n\n{| {{Prettytable}}\n| colspan="2" style="background-color:#8DB6CD; text-align:center; padding:0.3em" | '''Textgestaltung''' \n|- {{Highlight2}}\n! Was du schreibst\n! Wie es dargestellt wird\n|-\n|<pre>Normaler Text wird so \ndargestellt, wie du ihn eingibst. \nMit einer Leerzeile\n\nerzeugst du einen Absatz.\n</pre>\n|\nNormaler Text wird so \ndargestellt, wie du ihn eingibst. \nMit einer Leerzeile\n\nerzeugst du einen Absatz. \n|-\n|<tt><nowiki>''kursiv''</nowiki></tt>\n|''kursiv''\n|-\n|<tt><nowiki>'''fett'''</nowiki></tt>\n|'''fett''' \n|-\n|<tt><nowiki>'''''fett und kursiv'''''</nowiki></tt>\n|'''''fett und kursiv'''''\n|-\n|<tt><nowiki><sup>hochgestellt</sup></nowiki></tt>\n|Text <sup>hochgestellt</sup> (''Brüche bitte mit [[Hilfe:TeX|<nowiki><math></nowiki>]]'')\n|-\n|<tt><nowiki><sub>tiefgestellt</sub></nowiki></tt>\n|Text <sub>tiefgestellt</sub> (''Brüche bitte mit [[Hilfe:TeX|<nowiki><math></nowiki>]]'')\n|-\n|\n<tt><nowiki>== Überschrift 1 ==</nowiki></tt>\n\n<tt><nowiki>=== Überschrift 2 ===</nowiki></tt>\n\n<tt><nowiki>==== Überschrift 3 ====</nowiki></tt>\n\n<tt><nowiki>===== Überschrift 4 =====</nowiki></tt>\n|\n\n== Überschrift 1==\n=== Überschrift 2 ===\n==== Überschrift 3 ====\n===== Überschrift 4 =====\n|-\n|<pre><nowiki>\n* eins\n* zwei\n** zwei-eins\n** zwei-zwei\n* drei</nowiki></pre>\n|\n* eins\n* zwei\n** zwei-eins\n** zwei-zwei\n* drei\n|-\n|<pre><nowiki>\n# eins\n# zwei\n## zwei-eins\n## zwei-zwei\n# drei</nowiki></pre>\n|\n# eins\n# zwei\n## zwei-eins\n## zwei-zwei\n# drei\n|-\n|<pre><nowiki>\nVom normalen Text\n: eingerückt\n:: doppelt eingerückt\n# In Kombination\n#: mit Listen\n#:* verschachtelt</nowiki></pre>\n|\nVom normalen Text\n: eingerückt\n:: doppelt eingerückt\n# In Kombination\n#: mit Listen\n#:* verschachtelt\n|-\n|\n<pre><nowiki>\n;Definitionsliste\n:Eine Definition\n:Eine andere Definition\n\n;Begriff: Definition des Begriffs\n</nowiki></pre>\n| \n;Definitionsliste\n:Eine Definition\n:Eine andere Definition\n\n;Begriff: Definition des Begriffs\n|-\n|\n<pre>\n<pre>\n vorformatierter Text\n mit einem Leerzeichen \n # am Zeilenanfang \n&lt;/pre>\n</pre>\n|\n vorformatierter Text\n mit einem Leerzeichen \n # am Zeilenanfang\n|-\n|<pre>Eine \n<nowiki>----</nowiki>\nLinie</pre>\n\n|\nEine\n----\nLinie\n|-\n|<tt><nowiki>\n<!-- unsichtbarer Kommentar-->\n</nowiki></tt>\n|<!-- unsichtbarer Kommentar-->\n|-\n|<pre><nowiki>Automatischen Zeilenumbruch \nzwischen logisch zusammengehörenden \nElementen verhindern:\n10&amp;nbsp;kg, 50&amp;nbsp;%, Dr.&amp;nbsp;Best</nowiki></pre>\n|Automatischen Zeilenumbruch zwischen logisch zusammengehörenden Elementen verhindern:</br> 10&nbsp;kg, 50&nbsp;%, Dr.&nbsp;Best\n|-\n| colspan="2" style="background-color:#8DB6CD; text-align:center; padding:0.3em" | '''Formatierungen, die nicht in normalen Wikipedia-Artikeln verwendet werden sollten''' \n|-\n|<tt><nowiki><div align="center">zentriert</div></nowiki>\n<small> - [[deprecated]]: <nowiki><center>zentriert</center></nowiki></small></tt> \n|<div align="center">zentriert</div>\n|-\n|<tt><nowiki><div align="right">rechtsbündig</div></nowiki></tt>\n|<div align="right">rechtsbündig</div>\n|-\n|<tt><nowiki><big>groß</big></nowiki></tt>\n|Text <big>groß</big> \n|-\n|<tt><nowiki><small>klein</small></nowiki></tt>\n|Text <small>klein</small>\n|-\n|<tt><nowiki><s>durchgestrichen</s></nowiki></tt>\n|Text <s>durchgestrichen</s> \n|-\n|<tt><nowiki><u>unterstrichen</u></nowiki></tt>\n|Text <u>unterstrichen</u> \n|-\n|<tt><nowiki>Text <br />neue Zeile</nowiki></tt>\n|Text <br />neue Zeile \n|-\n|<tt><nowiki><nowiki>keine ''Wiki-[[Syntax]]''</nowiki></nowiki></tt>\n|<nowiki>keine ''Wiki-[[Syntax]]''</nowiki>\n|-\n|<tt><nowiki><code>Markiert Text als Quelltext</code></nowiki></tt>\n|class="hintergrundfarbe5"|<code>Markiert Text als Quelltext</code>\n|-\n|<tt><nowiki><tt>Teletyper, Schreibmaschinenstil</tt></nowiki></tt>\n|<tt>Teletyper, Schreibmaschinenstil</tt>\n|}\n\n\n\n{{Navigationsleiste Wikipedia-Tutorial|Tutorial/2|zurück|Tutorial/4|weiter}}\n== Seiten verlinken ==\n\n'''Interne Links''', also Querverweise auf andere Wikipedia-Artikel, tragen viel zur sinnvollen Nutzung der Wikipedia bei. Diese einfach zu erzeugenden Links verweisen die Leser auf Artikel mit weiterführenden Informationen zu im Artikel erwähnten Themen. \n\n=== Wann einen Link setzen? ===\nUm zu lernen, wann und wo es sinnvoll ist, einen Link zu setzen, lohnt es sich, einige [[Wikipedia:Exzellente Artikel|exzellente Wikipedia-Artikel]] anzuschauen und deren Stil nachzuahmen. Am besten versetzt du dich jeweils in die Rolle des Lesers und fragst dich, welchen Links du selber folgen würdest!\n\n=== Wie einen Link setzen?===\n\nMit doppelten eckigen Klammern verwandelst du ein Wort in deinem Text in einen Link auf den gleichnamigen Artikel. Aus <code><nowiki>[[Enzyklopädie]]</nowiki></code> wird beim Speichern der Seite [[Enzyklopädie]], ein Wikilink auf den Wikipedia-Artikel Enzyklopädie.\n\nIn deinem Text steht aber nicht Enzyklopädie, sondern der Plural? Auch kein Problem, das „n“ hängst du schlicht noch hinten an: <code><nowiki>[[Enzyklopädie]]n</nowiki></code> wird zu [[Enzyklopädie]]n.\n\nAber wie um alles in der Welt verlinke ich die „Vereinten Nationen“? In solchen Fällen gibt es einen Trick: Mit der Pipe (senkrechter Strich (<code>|</code>), Windows: ''AltGr+<'', Schweiz: ''AltGr+7'', Mac: ''Alt+7'') getrennt, gibst du zuerst den Artikeltitel und dann den Text, der dargestellt werden soll, an: Die <code><nowiki>[[Vereinte Nationen|Vereinten Nationen]]</nowiki></code> werden so zu den [[Vereinte Nationen|Vereinten Nationen]].\n \nManche Artikel haben einen Titel, bei dem am Ende eine runde Klammer steht. Vor allem Könige und Kaiser haben oft Namen wie [[Wilhelm I. (England)]] oder [[Wilhelm II. (Deutsches Reich)]]. Wenn klar ist, wer gemeint ist, gibt es einen Trick, damit man den ganzen Titel nicht nochmal schreiben muss: Einfach die alternative Bezeichnung nach dem senkrechten Strich freilassen. Alles in runden Klammern wird dann abgeschnitten. Aus <code><nowiki>[[Wilhelm II. (Deutsches Reich)|]]</nowiki></code> wird so [[Wilhelm II. (Deutsches Reich)|Wilhelm II.]]\n\n=== Weblinks ===\n\nLinks auf Seiten außerhalb von Wikipedia solltest du nur unter der Überschrift „Weblinks“ am Schluss des Artikels setzen – externe Links im Artikel sind nicht erwünscht. \n\nEinen externen Link erzeugst du am einfachsten, indem du die komplette [[Uniform Resource Locator|URL]] der Seite eintippst, auf die verwiesen werden soll: Aus <code><nowiki>http://de.wikipedia.org/wiki/Hauptseite</nowiki></code> macht die Software automatisch einen Link und zeigt die komplette WWW-Adresse an. Dieses Format wird allerdings nicht so gerne verwendet, da der komplette Link nicht schön aussieht, und zudem nicht unbedingt verrät, worum es sich bei der Seite eigentlich handelt.\n\nDu kannst deshalb auch einen anderen Text anzeigen lassen. Verwirrenderweise wird dafür nicht der senkrechte Strich verwendet, sondern ein einfaches Leerzeichen nach der Adresse; danach kommt dann der Text, der angezeigt werden soll. Das geht so:\n:Aus <code><nowiki>[http://de.wikipedia.org/wiki/Hauptseite Die deutschsprachige Wikipedia]</nowiki></code> \n:wird [http://de.wikipedia.org/wiki/Hauptseite Die deutschsprachige Wikipedia].\n\n== „Hilfe, mein Link ist rot!“ – Neuen Artikel anlegen ==\n\n<div class="noprint hintergrundfarbe2 rahmenfarbe4" style="float:right; padding:3px; border-style:solid; font-size:90%;">\n'''Mehr zum Thema'''\n* [[Wikipedia:Links|Wie setze ich Links]]\n* [[Wikipedia:Verlinken|Wann setze ich interne Links]]\n* [[Wikipedia:Weblinks|Wann setze ich Weblinks]]\n* [[Hilfe:Neue Seite anlegen|Eine neue Seite anlegen]]\n</div>\nWenn ein Artikel mit diesem Titel noch nicht existiert, werden die Links darauf rot statt blau angezeigt. Das ist aber überhaupt nicht schlimm – so wächst Wikipedia. Findest du ein Stichwort nicht, das es geben sollte, ergänzt du es als Link auf einer thematisch passenden Seite (suche allerdings vorher, ob der Artikelgegenstand nicht schon unter einem anderen Titel existiert). Wenn du jetzt auf den Link klickst, erhältst du das schon bekannte Textfenster, in dem du deinen ersten eigenen Artikel verfassen kannst.
\n\n\n/*{{{*/\nconfig.views.editor.defaultText = ""; // was "Type the text for '%0'"\n/*}}}*/
These InterfaceOptions for customising TiddlyWiki are saved in your browser\n\n<<option txtUserName>>\n<<option chkSaveBackups>> ~SaveBackups\n<<option chkAutoSave>> ~AutoSave\n<<option chkRegExpSearch>> ~RegExpSearch\n<<option chkCaseSensitiveSearch>> ~CaseSensitiveSearch\n----\nAdvancedOptions\nPluginManager\nImportTiddlers
<div class='header'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n\n<div id='sidebar'>\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>\n
{{{"Schreibmaschinentext"}}}, {{{(fester Zeichenabstand)}}} (oder wie das auch immer heißt, wenn jedes Zeichen gleich viel Platz bekommt) wird auch unterstützt:\n\n{{{{{{"Schreibmaschinentext"}}}}}}\n\nAuch ganze Blöcke können in SchreibmaschinenText dargestellt werden (nützlich für ~Programmier-Code):\n\n{{{\n{{{\nvar posTop = findPosY(e);\nvar posBot = posTop + e.offsetHeight;\nvar winTop = findScrollY();\nvar winHeight = findWindowHeight();\nvar winBot = winTop + winHeight;\nif(posTop < winTop)\n return(posTop);\nelse if(posBot > winBot)\n {\n if(e.offsetHeight < winHeight)\n return(posTop - (winHeight - e.offsetHeight));\n else\n return(posTop);\n }\nelse\n return(winTop);\n}}}\n}}} <- die gehören noch dazu!\n\nBeispiel:\n{{{\nvar posTop = findPosY(e);\nvar posBot = posTop + e.offsetHeight;\nvar winTop = findScrollY();\nvar winHeight = findWindowHeight();\nvar winBot = winTop + winHeight;\nif(posTop < winTop)\n return(posTop);\nelse if(posBot > winBot)\n {\n if(e.offsetHeight < winHeight)\n return(posTop - (winHeight - e.offsetHeight));\n else\n return(posTop);\n }\nelse\n return(winTop);\n}}}\n
WikiWörter sind die einfachsten Links aber sicher nicht immer die schönsten und passendsten. Es geht auch anders:\n{{{\n[[neuer Name des Links|SeitenName]]\n[[WikiWörter|WikiWort]]\n[[Link-Name|http://www.link-ins-www.de/page5.html]]\n}}}\n\nSo kann man im Text die Mehrzahl auf die Einzahl verweisen oder mehrere Begriffe auf eine Seite verlinken.\n\nSinngemäß gilt die Notation auch für andere Verknüpfungen. Sie z. B. BilderEinfügen.\n\n''Aber Vorsicht!'' Man handelt sich damit auch Nachteile ein: Ein WikiWort verlinkt immer sofort auf die richtige Seite. Ein "[[schöner Link|SchöneLinks]]" muss jedes Mal korrekt (und vergleichsweise umständlich) verlinkt werden.\n\nEs ist eine Überlegung wert, ob man nicht eine "Verweisseite" akzeptiert, also beispielsweise "SuchMaschine", die dann den Verweis "Siehe SearchEngine" enthält. Das ist etwas weniger elegant beim Durchklicken aber dafür bequemer beim Schreiben und vorallem weniger fehleranfällig.\n\nWünschenswert wäre ein AliasListe, die es erlaubt, verschiedene WikiWörter auf eine Seite zu zwingen. So etwas habe ich aber für TiddlyWiki (noch) nicht entdeckt.
<<search>><<closeAll>><<permaview>><<newTiddler 'New Tiddler' MediaWikiFormat>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
<<search>><<closeAll>><<permaview>><<newTiddler 'New Tiddler' MediaWikiFormat>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>><<slider chkSliderSideBarTabs SideBarTabs 'tabs »' 'View tabs'>>
- ein kleines lokales Wikipedia
Tiddlypedia
http://tiddlypedia.tiddlyspot.com
/***\nPlace your custom CSS here\n***/\n[[wikipediaStyle]]\n[[wikipediaAbridged/Skins-1.5.monobook/main.css]]\n[[wikipedia.MediaWiki.Common.css]]\n
<<list all>>
<<tabs txtMoreTab Orphans 'Orphaned tiddlers' TabMoreOrphans Shadowed 'Shadowed tiddlers' TabMoreShadowed>>
|!Markup|!Explanation|\n| {{{|}}} |Column Seperator |\n| {{{!}}} |Heading (Row or Column) |\n| {{{>}}} |Column Span |\n| {{{~}}} |Row Span |\n| {{{|Left |}}} |Left Align |\n| {{{| Right|}}} |Right Align|\n| {{{| Center |}}} |Center Align |\n| {{{|Caption|c}}} |Table Caption (Can be at top or bottom)|\n| {{{|Header|h}}} |Marks the row as being a header row (will be wrapped with a {{{<thead>}}} and so all entries are automatically formatted as per {{{|!}}} cells)|\n| {{{|Footer|f}}} |Marks the row as being a footer row (will be wrapped with a {{{<tfoot>}}}, no special formatting is pre-defined for this but can be added to your own CSS)|\n| {{{|CSSclass|k}}} |Applies a CSS class to the table to allow additional formatting (NB: only works if no whitespace after the k)|\n|>|To have a table with no borders at all. Use {{{|noBorder|k}}} with the CSS (in your StyleSheet tiddler):<<br>>{{{ .noBorder,.noBorder td,.noBorder th,.noBorder tr{border:0} }}}|\n|>|!Sample Table|\n|>|{{{|table caption|c}}}<<br>>{{{|header|header|h}}}<<br>>{{{|text|more text|}}}<<br>>{{{|!heading|!heading|}}}<<br>>{{{|>|colspan|}}}<<br>>{{{|rowspan|left align |}}}<<br>>{{{|~| center |}}}<<br>>{{{|bgcolor(green):green| right|}}}<<br>>{{{|footer|footer|f}}} |\n|>|<<tiddler ./tblShow>>|\n\n!Notes\nYou can use the custom CSS formatter in combination with headers and lists to allow new lines within the entry. e.g.:\n{{{\n#{{block{\nBullet 1\nSome text in the same bullet\n(Note that "block" can be anything, it is the formatters CSS class name)\n }}}\n# Bullet 2 \n}}}\n#{{block{\nBullet 1\nSome text in the same bullet\n}}}\n# Bullet 2 \n\n(Julian Knight, 2006-05-11)\n<part atEg hidden>\n{{{\nThis is before the indented text\n@@display:block;margin-left:2em;This text will be indented...\n...and can even span across several lines...\n\n...or even include blank lines.\n@@This is after the indented text \n}}}\nThis is before the indented text\n@@display:block;margin-left:2em;This text will be indented...\n...and can even span across several lines...\n\n...or even include blank lines.\n@@This is after the indented text \n</part>\n<part tblMarkup hidden>\n{{{\n|table caption|c\n|header|header|h\n|text|more text|\n|!heading|!heading|\n|>|colspan|\n|rowspan|left align |\n|~| center |\n|bgcolor(green):green| right|\n|footer|footer|f\n}}}\n</part>\n<part tblShow hidden>\n|table caption|c\n|header|header|h\n|text|more text|\n|!heading|!heading|\n|>|colspan|\n|rowspan|left align |\n|~| center |\n|bgcolor(green):green| right|\n|footer|footer|f\n</part>
/***\n''Plugin:'' Tag Cloud Macro\n''Author:'' Clint Checketts\n''Source URL:''\n\n!Usage\n<<tagCloud>>\n\n!Code\n***/\n//{{{\nversion.extensions.tagCloud = {major: 1, minor: 0 , revision: 0, date: new Date(2006,2,04)};\n//Created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman\n\nconfig.macros.tagCloud = {\n noTags: "No tag cloud created because there are no tags.",\n tooltip: "%1 tiddlers tagged with '%0'"\n};\n\nconfig.macros.tagCloud.handler = function(place,macroName,params) {\n \nvar tagCloudWrapper = createTiddlyElement(place,"div",null,"tagCloud",null);\n\nvar tags = store.getTags();\nfor (var t=0; t<tags.length; t++) {\n for (var p=0;p<params.length; p++) if (tags[t][0] == params[p]) tags[t][0] = "";\n}\n\n if(tags.length == 0) \n createTiddlyElement(tagCloudWrapper,"span",null,null,this.noTags);\n //Findout the maximum number of tags\n var mostTags = 0;\n for (var t=0; t<tags.length; t++) if (tags[t][0].length > 0){\n if (tags[t][1] > mostTags) mostTags = tags[t][1];\n }\n //divide the mostTags into 4 segments for the 4 different tagCloud sizes\n var tagSegment = mostTags / 4;\n\n for (var t=0; t<tags.length; t++) if (tags[t][0].length > 0){\n var tagCloudElement = createTiddlyElement(tagCloudWrapper,"span",null,null,null);\n tagCloudWrapper.appendChild(document.createTextNode(" "));\n var theTag = createTiddlyButton(tagCloudElement,tags[t][0],this.tooltip.format(tags[t]),onClickTag,"tagCloudtag tagCloud" + (Math.round(tags[t][1]/tagSegment)+1));\n theTag.setAttribute("tag",tags[t][0]);\n }\n\n};\n\nsetStylesheet(".tagCloud span{height: 1.8em;margin: 3px;}.tagCloud1{font-size: 1.2em;}.tagCloud2{font-size: 1.4em;}.tagCloud3{font-size: 1.6em;}.tagCloud4{font-size: 1.8em;}.tagCloud5{font-size: 1.8em;font-weight: bold;}","tagCloudsStyles");\n//}}}
Tastaturbefehle sind "Abkürzungen" für den Aufruf häufig verwendeter Funktionen. Es wird ein Buchstabe bei gleichzeitig gedrückter Taste 'alt' (PC) oder 'control' (Mac) gedrückt:\n|!PC|!Mac|!Funktion|\n|Alt-F|Ctrl-F|Suche|\n|Alt-J|Ctrl-J|NewJournal|\n|Alt-N|Ctrl-N|NeueSeite|\n|Alt-S|Ctrl-S|SaveChanges|\n\n? These access keys are provided by the associated internal [[Macros]] for the functions above. The macro needs to be used in an open tiddler (or the MainMenu or SideBar) in order for the access keys to work. ?\n\nIn der EditierAnsicht:\n* ~Strg-Enter ruft die Funktion SaveChanges auf und wechselt von der EditierAnsicht zur NormalAnsicht. Hat man nur KleineÄnderungen vorgenommen, kann man mit ~Shift-Strg-Enter vermeiden, dass Uhrzeit und Datum der Seite verändert werden. Die so gespeicherte Seite verändert in der TimeLine nicht ihre Position.\n* Esc verwirft alle Änderungen und wechselt von der EditierAnsicht zur NormalAnsicht.\n\nIm Suchen-Textfeld:\n* Escape (Esc) löscht den Suchbegriff
×10<sup>{{{1}}}</sup>\n
{| class="toccolours" style="margin: 1em auto; clear: both; font-size: 90%; text-align: center;"\n|-\n! style="background:#FF1; font-size: larger;" | {{Tnavbar-header|[[Solar system|The Solar System]]|Footer SolarSystem|bgcolor=#ffff11}}\n|-\n| [[Image:Solar sys.png]]\n|-\n| '''[[Star]]:''' [[Sun|The Sun]]\n|-\n| '''[[Planet|Planets]]:''' [[Mercury (planet)|Mercury]] - [[Venus]] - [[Earth]] - [[Mars]] - [[Jupiter]] - [[Saturn]] - [[Uranus]] - [[Neptune]]\n|-\n| '''[[Dwarf planet|Dwarf Planets]]:''' [[1 Ceres|Ceres]] - [[Pluto]] - [[Eris (dwarf planet)|Eris]]\n|-\n| '''[[Small solar system body|Small Bodies]]:''' [[Asteroid]]s - [[centaur (planetoid)|Centaurs]] - [[trans-Neptunian object|TNOs]] - [[Comet]]s - [[Meteoroid]]s\n|-\n| '''Populations:''' [[Asteroid belt]] - [[Kuiper belt]] - [[Scattered disc]] - [[Oort cloud]] - [[Natural satellite]]s\n|-\n| style="background: #EEE; font-size: smaller; padding: 0 0.5em;" | See also [[astronomical object]]s and the solar system's [[list of solar system objects|list of objects]], sorted by [[list of solar system objects by radius|radius]] or [[list of solar system objects by mass|mass]].\n|}<noinclude>[[Category: Science navigational boxes|Solar]][[ro:Format:Sistemul solar]]</noinclude>\n
:''Further information: {{{1}}}''
\n
{| class="infobox" style="width: 25em;"\n|-\n|+ style="font-size:larger;" | '''Earth'''&nbsp;&nbsp;[[Image:Earth symbol.svg|25px|Astronomical symbol of Earth]]\n|-\n| colspan="2" style="text-align:center; background: #000000;"| [[Image:The_Earth_seen_from_Apollo_17.jpg|240px|A color image of Earth as seen from Apollo 17.]]\n|-\n| colspan="2" style="font-size:smaller; text-align:center;" | ''[[The Blue Marble]]'', taken from [[Apollo 17]]\n|-\n! colspan="2" style="background: #c0c0ff; text-align:center;"| [[Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])\n|-\n|'''[[Apsis|Aphelion]]'''\n| 152,097,701 [[kilometre|km]]<br />(1.016 710 333 5 [[astronomical unit|AU]])\n|-\n|'''Perihelion'''\n| 147,098,074 km<br />(0.983 289 891 2 AU)\n|-\n|'''[[Semi-major axis]]'''\n| 149,597,887.5 km<br />(1.000 000 112 4 AU)\n|-\n|'''[[Semi-minor axis]]'''\n| 149,576,999.826 km<br />(0.999 860 486 9 AU)\n|-\n|'''[[circumference|Orbital circumference]]'''\n| 924,375,700 km<br />(6.179 069 900 7 AU)\n|-\n|'''[[Eccentricity (orbit)|Orbital eccentricity]]'''\n| 0.016 710 219\n|-\n|'''[[Sidereal year|Sidereal orbit period]]'''\n| 365.256 366 [[day|d]]<br />(1.000 017 5 [[julian year (astronomy)|a]])\n|-\n|'''[[Synodic period]]'''\n| n/a\n|-\n|'''[[Orbital speed|Max. orbital speed]]'''\n| 30.287 km/s <br> (109,033 [[kilometre per hour|km/h]])\n|-\n|'''Average orbital speed'''\n| 29.783 [[kilometre per second|km/s]]<br>(107,218 [[kilometre per hour|km/h]])\n|-\n|'''Min. orbital speed''' \n| 29.291 km/s <br> (105,448 [[kilometre per hour|km/h]])\n|-\n|'''[[Inclination|Orbital inclination to ecliptic]]'''\n| 0<br />(7.25° to [[Sun]]'s equator)\n|-\n|'''[[Longitude of the ascending node]]'''\n| 348.739 36°\n|-\n|'''[[Argument of the perihelion]]'''\n| 114.207 83°\n|-\n|'''[[natural satellite|Satellite]]s'''\n| 1 (the [[Moon]])<br />''(see also [[3753 Cruithne]])''\n|-\n|&nbsp;\n|-\n! colspan="2" style="background: #c0c0ff; text-align:center;" | Physical characteristics\n<!-- The following numbers through volume are IUGG reference values and computed terms expressed to as many digits as are significant. They should not be changed without good reason. //-->\n|-\n|'''Aspect Ratio'''\n| 0.996 647 1\n|-\n|'''[[Ellipticity]]'''\n| 0.003 352 9\n|-|&nbsp;\n|-\n|&nbsp;\n|-\n|'''[[Radius]]''':\n|-\n|'''[[Equator]]ial'''\n| 6,378.137 km\n|-\n|'''[[Geographical pole|Polar]]'''\n| 6,356.752 km\n|-\n|'''[[Earth_radius#Quadratic_mean_radius:|Mean]]'''\n| 6,372.797 km\n|-\n|&nbsp;\n|-\n|'''[[Diameter]]''':\n|-\n|'''Equatorial'''\n| 12,756.274 km\n|-\n|'''Polar'''\n| 12,713.504 km\n|-\n|'''Mean'''\n| 12,745.594 km\n|-\n|&nbsp;\n|-\n|'''[[Circumference]]''':\n|-\n|'''Equatorial'''\n| 40,075.02 km\n|-\n|'''[[Meridional]]'''\n| 40,007.86 km\n|-\n|'''Mean'''\n| 40,041.47 km\n|-\n|&nbsp;\n|&nbsp;\n|-\n|'''[[Spheroid#Surface_area|Surface Area]]'''\n| 510,065,600 [[square kilometre|km&sup2;]]\n|-\n|&nbsp;'''Land'''\n| 148,939,100&nbsp;km&sup2; (29.2&nbsp;%)\n|-\n|&nbsp;'''Water'''\n| 361,126,400&nbsp;km&sup2; (70.8&nbsp;%)\n|-\n|&nbsp;\n|-\n|'''[[Volume]]'''\n| 1.083 207 3{{e|12}} [[cubic kilometre|km&sup3;]]\n|-\n|'''[[Mass]]'''\n| 5.9742{{e|24}} [[kilogram|kg]]\n|-\n|'''[[Density]]'''\n| 5,515.3 [[kilogram per cubic metre|kg/m&sup3;]]\n|-\n|'''Equatorial surface [[gravity]]'''\n| 9.7801 [[metre per second squared|m/s&sup2;]]<br />(0.997 32 [[gee|g]])\n|-\n|'''[[Escape velocity]]'''\n| 11.186 km/s\n|-\n|'''[[Sidereal day|Sidereal rotation period]]'''\n| 0.997 258 [[day|d]] (23.934 [[hour|h]])\n|-\n! align="left"| Rotational velocity<br />(at the equator)\n| 465.11 m/s\n|-\n|'''[[Axial tilt]]'''\n| [[degree (angle)|23.439 281°]]\n|-\n|'''[[Right ascension]]<br />of North pole'''\n| 0° (0 h 0 min 0 s)\n|-\n|'''[[Declination]]'''\n| 90°\n|-\n|'''[[Albedo]]'''\n| 0.367\n|-\n|'''Surface [[temperature]]'''<br />''' - min'''<br />''' - mean'''<br />''' - max'''\n| <br /> 185 [[kelvin|K]] (-88 [[Celsius|°C]])<br />287 K (14 °C)<br />331 K (58 °C)\n|-\n|'''Surface [[Atmospheric pressure|pressure]]'''\n| 100 [[Kilopascal|kPa]]\n|-\n|'''Adjective'''\n|Earthling, Terrestrial, Terran\n|-\n|&nbsp;\n|-\n! colspan="2" style="background: #c0c0ff; text-align:center;" | Atmospheric constituents\n|-\n| [[nitrogen]] || 77 %\n|-\n| [[oxygen]] || 21 %\n|-\n| [[argon]] || 1 %\n|-\n| [[carbon dioxide]] || 0.038%\n|-\n| [[water]] vapor || trace (varies with [[climate]])\n|}\n\n\n<noinclude>[[no:Mal:Planetinfo/Jorda]][[rmy:Template:Phuv]]</noinclude>\n
{| class="infobox" \n|+ style="font-size:larger;" | '''Jupiter''' &nbsp;[[Image:Jupiter symbol.svg|25px|Astronomical symbol of Jupiter]]\n! bgcolor="#000000" align="center" colspan="2" | [[image:Jupiter.jpg|240px|Click for full caption.]]<br/><small><font color="white">Click image for description</font></small>\n|-\n! bgcolor="#FFC8A0" colspan="2" | [[Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] J2000)\n|-\n| [[Semi-major axis]]\n| [[1 E11 m|778,412,027]] [[kilometre|km]]<br>5.203 363 01 [[Astronomical unit|AU]]\n|-\n| Orbital [[circumference]]\n| 4.888 [[Tera|T]][[metre|m]]<br>32.675 AU\n|-\n| [[Eccentricity (orbit)|Eccentricity]]\n| 0.048 392 66\n|-\n| [[Perihelion]]\n| 740,742,598 km <br>4.951 558 43 AU\n|-\n| [[Aphelion]]\n| 816,081,455 km<br>5.455 167 59 AU\n|-\n| [[Orbital period]]\n| [[1 E8 s|4333.2867 d]]<br/>(11.86 [[julian year (astronomy)|a]])\n|-\n| [[Orbital period|Synodic period]]\n| 398.88 d\n|-\n| [[Orbital speed|Avg. Orbital Speed]]\n| 13.056 km/s\n|-\n| Max. Orbital Speed\n| 13.712 km/s\n|-\n| Min. Orbital Speed\n| 12.446 km/s\n|-\n| [[Inclination]]\n| 1.305 30&deg;<br>(6.09° to [[Sun]]'s equator) \n|-\n| [[Longitude of the ascending node|Longitude of the<br> ascending node]]\n| 100.556 15&deg;\n|-\n| [[Argument of the perihelion|Argument of the<br> perihelion]]\n| 274.197 70&deg;\n|-\n| Number of [[natural satellite|satellite]]s\n| 63\n|-\n! bgcolor="#FFC8A0" colspan="2" | Physical characteristics\n|-\n| [[Equator]]ial [[diameter]]\n| [[1 E8 m|142,984 km]] [http://www.onasch.de/astro/showobject.php?lang=en&obj=p05]<br>(11.209 Earths)\n|-\n| [[geographical pole|Polar]] [[diameter]]\n| 133,709 km<br>(10.517 Earths)\n|-\n| [[Oblateness]]\n| 0.064 87\n|-\n| Surface [[area]]\n| [[1 E16 m²|6.14{{e|10}}]] [[square kilometre|km<sup>2</sup>]]<br>(120.5 Earths)\n|-\n| [[Volume]]\n| 1.431{{e|15}} [[cubic kilometre|km<sup>3</sup>]]<br>(1321.3 Earths)\n|-\n| [[Mass]]\n| [[1 E27 kg|1.899{{e|27}}]] [[kilogram|kg]]<br>(317.8 Earths)\n|-\n| Mean [[density]]\n| 1.326 g/cm<sup>3</sup>\n|-\n| Equatorial [[gravity]]\n| 23.12 [[Acceleration|m/s<sup>2</sup>]]<br>(2.358 [[Acceleration due to gravity|gee]])\n|-\n| [[Escape velocity]]\n| 59.54 km/s\n|-\n| Rotation period\n| 0.413 538 021 d<br>(9 h 55 min 29.685 s)[http://www.hnsky.org/iau-iag.htm]\n|-\n| Rotation velocity\n| 12.6 km/s = 45,300 km/h <br>(at the equator)\n|-\n| [[Axial tilt]]\n| 3.13&deg;\n|-\n| [[Right ascension]]<br>of North pole\n| 268.05° (17 h 52 min 12 s)\n|-\n| [[Declination]]\n| 64.49°\n|-\n| [[Albedo]]\n| 0.52\n|-\n| Surface [[Temperature|temp.]]\n| \n{| cellspacing="0" cellpadding="2" border="0"\n|-\n! min !! mean !! max\n|-\n| 110 [[kelvin|K]]\n| [[1 E2 K|152 K]]\n| N/A K\n|}\n|-\n|Adjective\n|Jovian\n|-\n! bgcolor="#FFC8A0" colspan="2" | [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| [[Atmospheric pressure]]\n| 70 [[Pascal (unit)|kPa]]\n|-\n| [[Hydrogen]]\n| ~86%\n|-\n| [[Helium]]\n| ~14%\n|-\n| [[Methane]]\n| 0.1%\n|-\n| [[Water]] vapor\n| 0.1%\n|-\n| [[Ammonia]]\n| 0.02%\n|-\n| [[Ethane]]\n| 0.0002%\n|-\n| [[Phosphine]]\n| 0.0001%\n|-\n| [[Hydrogen sulfide]]\n| &lt;0.00010%\n|}<noinclude>\n[[ja:Template:Planet Infobox/Jupiter]]</noinclude>\n
{| class="infobox" style="width: 25em;"\n|+ style="font-size:larger;" | '''Mars'''&nbsp;&nbsp;[[Image:Mars_symbol.svg|25px|Astronomical symbol of Mars]]\n|-\n| colspan="2" style="text-align:center; background: #000000;"| [[Image:Mars Valles Marineris.jpeg|240px|The planet Mars]]\n|-\n| colspan="2" style="text-align:center; font-size:smaller;"| A composite image of Mars.\n|-\n! colspan="2" style="background: #E8AB79;" | [[Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])[http://nssdc.gsfc.nasa.gov/planetary/factsheet/marsfact.html]\n|-\n| '''[[Semi-major axis]]'''\n| 227,936,637 [[kilometre|km]] (141,632,976 mi)<br />1.523 662 31 [[Astronomical unit|AU]]\n|-\n| '''Orbital [[circumference]]'''\n| 1,429,000,000 [[kilometre|km]] (887,900,000 mi)<br />9.553 AU\n|-\n| '''[[Eccentricity (orbit)|Eccentricity]]'''\n| 0.093 412 33\n|-\n| '''[[Perihelion]]'''\n| 206,644,545 km (128,402,967 mi)<br />1.381 333 46 AU\n|-\n| '''[[Aphelion]]'''\n| 249,228,730 km (154.863,553 mi)<br />1.665 991 16 AU\n|-\n| '''[[Sidereal period|Orbital period]]'''\n| [[1 E7 s|686.9600]] [[day|d]]<br />(1.8808 [[julian year (astronomy)|a]])\n|-\n| '''[[Synodic period]]'''\n| 779.96 d<br />(2.135 [[julian year (astronomy)|a]])\n|-\n| '''[[Avg. Orbital Speed]]'''\n| 24.077 km/[[second|s]] (53,859 mi/h)\n|-\n| '''Max. Orbital Speed'''\n| 26.499 km/s (59,277 mi/h)\n|-\n| '''Min. Orbital Speed'''\n| 21.972 km/s (49,150 mi/h)\n|-\n| '''[[Inclination]]'''\n| 1.850 61[[degree (angle)|&deg;]]<br />(5.65° to [[Sun]]'s equator)\n|-\n| '''[[Longitude of the ascending node|Longitude of the<br /> ascending node]]'''\n| 49.578 54&deg;\n|-\n| '''[[Argument of the perihelion|Argument of the<br /> perihelion]]'''\n| 286.462 30&deg;\n|-\n| '''Number of [[natural satellite]]s'''\n| 2\n|-\n| '''Distance from Sun'''\n| 1.52 AU\n|-\n|&nbsp;\n|-\n! colspan="2" style="background: #E8AB79;" | Physical characteristics\n|-\n| '''[[Equator]]ial [[diameter]]'''\n| 6,804.9 km (4228.4 mi) <br />(0.533 [[Earth]]s)\n|-\n| '''[[geographical pole|Polar]] diameter'''\n| 6,754.8 km (4197.2 mi) <br />(0.531 Earths)\n|-\n| '''[[Oblateness]]'''\n| 0.007 36\n|-\n| '''Surface [[area]]'''\n| [[1 E14 m²|1.448]]{{e|8}} [[square kilometre|km<sup>2</sup>]] 55,907,000 square miles (144 798 465 square kilometers)<br />(0.284 Earths)\n|-\n| '''[[Volume]]'''\n| 1.6318{{e|11}} [[cubic kilometre|km<sup>3</sup>]]<br />(0.151 Earths)\n|-\n| '''[[Mass]]'''\n| 6.4185{{e|23}} [[kilogram|kg]]<br />(0.107 Earths)\n|-\n| '''Mean [[density]]'''\n| 3.934 g/cm<sup>3</sup>\n|-\n| '''Equatorial [[gravity]]'''\n| 3.69 [[Acceleration|m/s<sup>2</sup>]]<br />(0.376[[acceleration due to gravity|''g'']])\n|-\n| '''[[Escape velocity]]'''\n| 5.027 km/s (11,245 mi/h)\n|-\n| '''[[Sidereal day|Rotation period]]'''\n| 1.025 957 d<br /> ([[1 E4 s|24.622 962]] [[hour|h]])\n|-\n| '''Rotation velocity'''\n| 868.22 km/h (539.49 mi/h) <br /> (at the equator)\n|-\n| '''[[Axial tilt]]'''\n| 25.19&deg;\n|-\n| '''[[Right ascension]]<br />of North pole'''\n| 317.681 43&deg;<br /> (21 h 10 min 44 s)\n|-\n| '''[[Declination]]'''\n| 52.886 50&deg;\n|-\n| '''[[Albedo]]'''\n| 0.15\n|-\n|'''Surface [[Temperature|temp.]]'''<br />''' - min'''<br />''' - mean'''<br />''' - max'''\n|<br />133 [[kelvin|K]] (&minus;140 °C)<br />[[1 E2 K|210 K]] (&minus;63 °C)<br />293 K (20 °C) \n|-\n|'''Adjective'''\n|[[Martian]]\n|-\n|&nbsp;\n|-\n! colspan="2" style="background: #E8AB79;" | [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| '''[[Atmospheric pressure]]'''\n| 0.7&ndash;0.9 [[Pascal|kPa]]\n|-\n| [[Carbon dioxide]]\n| 95.32%<!--by volume, by mass, by number of moles?-->\n|-\n| [[Nitrogen]]\n| 2.7%<!--by volume, by mass, by number of moles?-->\n|-\n| [[Argon]]\n| 1.6%<!--by volume, by mass, by number of moles?-->\n|-\n| [[Oxygen]]\n| 0.2%<!--by volume, by mass, by number of moles?-->\n|-\n| [[Carbon monoxide]]\n| 0.07%<!--by volume, by mass, by number of moles?-->\n|-\n| [[Water]] vapor\n| 0.03%<!--by volume, by mass, by number of moles?-->\n|-\n| [[Nitric oxide]]\n| 0.01%<!--by volume, by mass, by number of moles?-->\n|-\n| [[Neon]]\n| 2.5 [[Parts per million|ppm]]<!--by volume, by mass, by number of moles?-->\n|-\n| [[Krypton]]\n| 300 [[Parts per billion|ppb]]<!--by volume, by mass, by number of moles?-->\n|-\n| [[Xenon]]\n| 80 ppb<!--by volume, by mass, by number of moles?-->\n|-\n| [[Ozone]]\n| 30 ppb<!--by volume, by mass, by number of moles?-->\n|-\n| [[Methane]]\n| 10.5 ppb<!--by volume, by mass, by number of moles?-->\n|-\n|colspan="2" style="text-align:right; font-size:smaller;"|<small class="editlink noprint plainlinksneverexpand">[{{SERVER}}{{localurl:Template:Planet Infobox/Mars|action=edit}} edit]</small>\n|}\n
{| class="toccolours" style="margin-left: 1em; float:right; width: 25em;"\n|+ style="font-size:larger;" | '''Mercury''' [[Image:Mercury symbol.ant.png|25px|Astronomical symbol of Mercury]]\n|-\n|colspan="2" style="text-align:center; background: #001000;" | [[Image:Reprocessed Mariner 10 image of Mercury.jpg|300px|Mercury]]<br>\n|-\n!style="text-align:center;" bgcolor="#D8BBA6" colspan="2" | [[Planetary orbit|Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])\n|-\n| [[Semimajor axis|Avg. distance from Sun]]\n| [[1 E10 m|57,909,176]] [[kilometre|km]]<br>0.387 098 93 [[Astronomical unit|AU]]\n|-\n| Orbital [[circumference]]\n| 360,000,000 km<br>(2.406 AU)\n|-\n| [[Eccentricity (orbit)|Eccentricity]]\n| 0.205 630 69\n|-\n| [[Perihelion]]\n| 46,001,272 km<br>0.307 499 51 AU\n|-\n| [[Aphelion]]\n| 69,817,079 km<br>0.466 698 35 AU\n|-\n| [[Orbital period]]\n| [[1 E6 s|87.969 34]] [[day|d]]<br/>(0.240 846 9 [[julian year (astronomy)|a]])\n|-\n| [[Synodic period]]\n| 115.8776 d\n|-\n| [[Avg. Orbital Speed]]\n| 47.36 km/[[second|s]]\n|-\n| Max. Orbital Speed\n| 58.98 km/[[second|s]]\n|-\n| Min. Orbital Speed\n| 38.86 km/[[second|s]]\n|-\n| [[Inclination]]\n| 7.004 87[[degree (angle)|&deg;]]<br>(3.38° to Sun's equator)\n|-\n| [[Longitude of the ascending node|Longitude of the<br> ascending node]]\n| 48.331 67&deg;\n|-\n| [[Argument of the perihelion|Argument of the<br> perihelion]]\n| 29.124 78&deg;\n|-\n| Number of [[natural satellite|satellite]]s\n| 0\n|-\n! bgcolor="#D8BBA6" colspan="2"| Physical characteristics\n|-\n| [[Equator]]ial [[diameter]]\n| 4879.4 km<br>(0.383 [[Earth]]s)\n|-\n| Surface [[area]]\n| [[1 E13 m²|7.5]]{{e|7}} [[square kilometre|km&sup2;]]<br>(0.147 Earths)\n|-\n| [[Volume]]\n| 6.083{{e|10}} [[cubic kilometre|km&sup3;]]<br>(0.056 Earths)\n|-\n| [[Mass]]\n| 3.302{{e|23}} [[kilogram|kg]]<br>(0.055 Earths)\n|-\n| Mean [[density]]\n| 5.427 [[gram|g]]/cm&sup3;\n|-\n| Equatorial [[gravity]]\n| 3.701 [[Acceleration|m/s&sup2;]]<br>(0.377 [[Acceleration due to gravity|gee]])\n|-\n| [[Escape velocity]]\n| 4.435 km/s\n|-\n| Rotation period\n| 58.6462 d (58 d 15.5088 [[hour|h]])\n|-\n| Rotation velocity\n| 10.892 km/h (at the equator)\n|-\n| [[Axial tilt]]\n| ~0.01&deg; <!--- Note that this implies that the orbital pole is very nearly the same as the rotation pole --->\n|-\n| [[Right ascension]]<br>of North pole\n| 281.01&deg; (18 h 44 min 2 s) <sup>[http://www.hnsky.org/iau-iag.htm 1]</sup>\n|-\n| [[Declination]]\n| 61.45&deg;\n|-\n| [[Albedo]]\n| 0.10-0.12\n|-\n| Surface [[Temperature|temp.]]\n|\n{| cellspacing="0" cellpadding="2" border="0"\n! min !! mean !! max\n|-\n| 90 K\n| [[1 E2 K|440 K]]\n| 700 K\n|}\n|-\n| Avg. Surface [[Temperature|temp.]]: Day\n| 623 [[kelvin|K]]\n|-\n| Avg. Surface temp.: Night\n| 103 K\n|-\n|Adjective\n|Mercurian\n|-\n! bgcolor="#D8BBA6" colspan="2" | [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| [[Atmospheric pressure]]\n| trace\n|-\n| [[Potassium]]\n| 31.7%\n|-\n| [[Sodium]]\n| 24.9%\n|-\n| Atomic [[Oxygen]]\n| 9.5%\n|-\n| [[Argon]]\n| 7.0%\n|-\n| [[Helium]]\n| 5.9%\n|-\n| Molecular [[Oxygen]]\n| 5.6%\n|-\n| [[Nitrogen]]\n| 5.2%\n|-\n| [[Carbon dioxide]]\n| 3.6%\n|-\n| [[Water]]\n| 3.4%\n|-\n| [[Hydrogen]]\n| 3.2%\n|}\n
{| class="infobox" style="width: 25em;"\n|+ style="font-size:larger;" | '''Neptune''' [[Image:Neptune symbol.png|25px|Astronomical symbol of Neptune]]\n|-\n|colspan="2" style="text-align:center; background: #001000;"| \n[[image:neptune.jpg|250px|Neptune from Voyager 2]]<br />\n<small><font color="white">Click image for description</font></small>\n|-\n! bgcolor="#97C3F4" colspan="2" | Discovery\n|-\n| Discovered by\n| [[Urbain Le Verrier]]<br> [[John Couch Adams]]<br /> [[Johann Gottfried Galle|Johann Galle]]\n|-\n| Discovered on\n| [[September 23]], [[1846]]\n|-\n! bgcolor="#97C3F4" colspan="2" | [[Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])\n|-\n| [[Semi-major axis]]\n| [[1 E12 m|4,498,252,900]] [[kilometre|km]]<br />30.068 963 48 [[Astronomical unit|AU]]\n|-\n| Orbital [[circumference]]\n| 28.263 [[Tera|T]][[metre|m]]<br />188.925 AU\n|-\n| [[Eccentricity (orbit)|Eccentricity]]\n| 0.008 585 87\n|-\n| [[Perihelion ]]\n| 4,459,631,496 km<br />29.810 795 27 AU\n|-\n| [[Aphelion]]\n| 4,536,874,325 km<br />30.327 131 69 AU\n|-\n| [[Orbital period]]\n| [[1 E9 s|60,223.3528 d]]<br />(164.88 [[julian year (astronomy)|a]])\n|-\n| [[Synodic period]]\n| 367.49 d\n|-\n| [[Avg. Orbital Speed]]\n| 5.432 km/s\n|-\n| Max. Orbital Speed\n| 5.479 km/s\n|-\n| Min. Orbital Speed\n| 5.385 km/s\n|-\n| [[Inclination]]\n| 1.769 17&deg;<br />(6.43° to Sun's equator)\n|-\n| [[Longitude of the ascending node|Longitude of the<br> ascending node]]\n| 131.721 69&deg;\n|-\n| [[Argument of the perihelion|Argument of the<br> perihelion]]\n| 273.249 66&deg;\n|-\n| Number of [[natural satellite|satellite]]s\n| 13\n|-\n! bgcolor="#97C3F4" colspan="2" | Physical characteristics\n|-\n| [[Equator]]ial [[diameter]]\n| [[1 E7 m|49,528]] km [http://www.onasch.de/astro/showobject.php?lang=en&head=f&anim=129&obj=p08]<br>(3.883 Earths)\n|-\n| [[geographical pole|Polar]] diameter\n| 48,681 km<br />(3.829 [[Earth]]s)\n|-\n| [[Oblateness]]\n| 0.0171\n|-\n| Surface [[area]]\n| [[1 E15 m2|7.619{{e|9}}]] [[square kilometre|km<sup>2</sup>]]<br>(14.94 Earths)\n|-\n| [[Volume]]\n| 6.254{{e|13}} [[cubic kilometre|km<sup>3</sup>]]<br>(57.74 Earths)\n|-\n| [[Mass]]\n| 1.0243{{e|26}} [[kilogram|kg]]<br />(17.147 Earths)\n|-\n| Mean [[density]]\n| 1.638 g/cm<sup>3</sup>\n|-\n| Equatorial [[gravity]]<br />(At 1 [[bar (unit)|bar]])\n| 11.15 [[Acceleration|m/s<sup>2</sup>]]<br />(1.14 [[Acceleration due to gravity|g]])\n|-\n| [[Escape velocity]]\n| 23.5 km/s\n|-\n| Rotation period\n| 16.11 h (16 h 6 min 36 s) [http://www.hnsky.org/iau-iag.htm <sup>1</sup>]\n|-\n| Rotation velocity\n| 2.68 km/s = 9660 km/h (at the equator)\n|-\n| [[Axial tilt]]\n| 28.32&deg;\n|-\n| [[Right ascension]]<br />of North pole\n| 299.33&deg; (19 h 57 min 20 s)\n|-\n| [[Declination]]\n| 42.95&deg;\n|-\n| [[Albedo]]\n| 0.41\n|-\n| Surface [[Temperature|temp.]]\n| \n{| cellspacing="0" cellpadding="2" border="0"\n|-\n! min !! mean !! max\n|-\n| 50 [[kelvin|K]]\n| [[1 E1 K|53 K]]\n| N/A K\n|}\n|-\n|Adjective\n|Neptunian\n|-\n! bgcolor="#97C3F4" colspan="2" | [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| [[Surface pressure]]\n| &#8811;<!--Much greater than-->100 [[Pascal|MPa]]\n|-\n| [[Hydrogen]] - H<sub>2</sub>\n| 80% &#0177;3.2%\n|-\n| [[Helium]] - He\n| 19% &#0177;3.2%\n|-\n| [[Methane]] - CH<sub>4</sub>\n| 1.5% &#0177;0.5%\n|-\n| [[Deuterium|Hydrogen Deuteride]] - HD\n| 192 [[Parts per million|ppm]]\n|-\n| [[Ethane]] - C<sub>2</sub>H<sub>6</sub>\n| 1.5 ppm\n|}\n
{| class="toccolours" style="margin-left: 1em; float:right; width: 25em;"\n<caption><font size="+1">'''Pluto''' [[Image:Pluto symbol.ant.png|25px|Astronomical symbol of Pluto]]</font></caption>\n! bgcolor="#000000" align="center" colspan="2" | [[image:Pluto.jpg|200px|Pluto in True Color]]\n|-\n!bgcolor="#a0ffa0" colspan="2"| Discovery\n|-\n| Discovered by\n| [[Clyde Tombaugh|Clyde W. Tombaugh]]\n|-\n| Discovered on\n| [[February 18]], [[1930]]\n|-\n!bgcolor="#a0ffa0" colspan="2"| [[Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])\n|-\n| [[Semi-major axis]]\n| 5,906,376,272 [[kilometre|km]]<br />39.481 686 77 [[Astronomical unit|AU]]\n|-\n| Orbital [[circumference]]\n| 36.530 [[Tera|T]][[metre|m]]<br />244.186 AU\n|-\n| [[Eccentricity (orbit)|Eccentricity]]\n| 0.248 807 66\n|-\n| [[Perihelion]]\n| 4,436,824,613 km<br />29.658 340 67 AU\n|-\n| [[Aphelion]]\n| 7,375,927,931 km<br />49.305 032 87 AU\n|-\n| [[Orbital period]]\n| 90,613.3055 d<br />(248.09 [[julian year (astronomy)|a]])\n|-\n| [[Synodic period]]\n| 366.73 d\n|-\n| [[Avg. Orbital Speed]]\n| 4.666 km/s\n|-\n| Max. Orbital Speed\n| 6.112 km/s\n|-\n| Min. Orbital Speed\n| 3.676 km/s\n|-\n| [[Inclination]]\n| 17.141 75&deg;<br />(11.88° to Sun's equator)\n|-\n| [[Longitude of the ascending node|Longitude of the<br /> ascending node]]\n| 110.303 47&deg;\n|-\n| [[Argument of the perihelion|Argument of the<br /> perihelion]]\n| 113.763 29&deg;\n|-\n| Number of [[natural satellite|satellite]]s\n| 3\n|-\n!bgcolor="#a0ffa0" colspan="2"| Physical characteristics\n|-\n| [[Diameter]]\n| [[1 E6 m|2306±20]] km<br />(18% of Earth, or<br />1423±12 mi)\n|-\n| Surface [[area]]\n| [[1 E13 m²|1.795{{e|7}}]] [[square kilometre|km²]]<br />(0.033 Earths)\n|-\n| [[Volume]]\n| 7.15{{e|9}} [[cubic kilometre|km³]]<br />(0.0066 Earths)\n|-\n| [[Mass]]\n| [[1 E22 kg|(1.305±0.007){{e|22}}]] [[kilogram|kg]] <sup>[http://arxiv.org/abs/astro-ph/0512491]</sup><br />(0.0021 Earths)\n|-\n| Mean [[density]]\n| 2.03±0.06 g/cm³ <sup>[http://arxiv.org/abs/astro-ph/0512491]</sup>\n|-\n| Equatorial [[gravity]]\n| 0.58 [[Acceleration|m/s²]]<br />(0.059 [[Acceleration due to gravity|gee]])\n|-\n| [[Escape velocity]]\n| 1.2 km/s\n|-\n| Rotation period\n| [[prograde and retrograde motion|−6.387230 d]]<br />(6 d 9 h 17 m 36 s)\n|-\n| Rotation velocity\n| 47.18 km/h (at the equator)\n|-\n| [[Axial tilt]]\n| 119.59&deg; (to orbit)<!--- http://arxiv.org/PS_cache/astro-ph/pdf/0512/0512491.pdf (2006) orbit/rotation pole of Charon (in its Fig. 2) of R.A. 133.045±0.02° dec. -6.145±0.02° (J2000); Pluto assumed parallel ---><br />112.78° (to the [[ecliptic]])<!--- http://www.hnsky.org/iau-iag.htm had 115.60° --->\n|-\n| [[Right ascension]]<br />of North pole<!--- Pole around which direct rotation occurs --->\n| 133.045±0.02&deg;<br />(8 h 52 min 11 s) <sup>[http://arxiv.org/PS_cache/astro-ph/pdf/0512/0512491.pdf]</sup>\n|-\n| [[Declination]]\n| -6.145±0.02&deg;\n|-\n| [[Albedo]]\n| 0.49–0.66 (varies by 35%) <sup>[http://www.solarviews.com/eng/pluto.htm] [http://nssdc.gsfc.nasa.gov/planetary/factsheet/plutofact.html]</sup>\n|-\n| Surface [[Temperature|temp.]]\n| \n{| cellspacing="0" cellpadding="2" border="0"\n! min\n! mean\n! max\n|-\n| 33 [[kelvin|K]]\n| [[1 E1 K|44 K]]\n| 55 K\n|}\n|-\n|Adjective\n|Plutonian\n|-\n!bgcolor="#a0ffa0" colspan="2"| [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| [[Atmospheric pressure]]\n| 0.30 [[pascal]]s (summer maximum)\n|-\n| [[Composition (natural science)|Composition]]\n| [[nitrogen]], [[methane]]\n|}\n
{| class="infobox" style="width: 25em;"\n|+ style="font-size:larger;" | '''Saturn''' [[Image:Saturn symbol.ant.png|25px|Astronomical symbol for Saturn]]\n! bgcolor="#000000" align="center" colspan="2" | [[Image:Saturn (planet) large.jpg|250px|The planet Saturn]]<br/><small><font color="white">Click image for description</font></small>\n|-\n! bgcolor="#FFCC66" colspan="2" | [[Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])\n|-\n| [[Semi-major axis]]\n| [[1 E12 m|1,426,725,413]] [[kilometre|km]]<br />9.537 070 32 [[Astronomical unit|AU]]\n|-\n| Orbital [[circumference]]\n| 8.958 [[Tera|T]][[metre|m]]<br>59.879 AU\n|-\n| [[Eccentricity (orbit)|Eccentricity]]\n| 0.054 150 60\n|-\n| [[Perihelion]]\n| 1,349,467,375 km<br />9.020 632 24 AU\n|-\n| [[Aphelion]]\n| 1,503,983,449 km<br />10.053 508 40 AU\n|-\n| [[Orbital period]]\n| [[1 E8 s|10,756.1995 d]]<br />(29.45 [[julian year (astronomy)|a]])\n|-\n| [[Synodic period]]\n| 378.10 d\n|-\n| [[Avg. orbital speed]]\n| 9.639 km/s\n|-\n| Max. orbital speed\n| 10.183 km/s\n|-\n| Min. orbital speed\n| 9.137 km/s\n|-\n| [[Inclination]]\n| 2.484 46&deg;<br>(5.51° to Sun's equator)\n|-\n| [[Longitude of the ascending node|Longitude of the<br> ascending node]]\n| 113.715 04&deg;\n|-\n| [[Argument of the perihelion|Argument of the<br> perihelion]]\n| 338.716 90&deg;\n|-\n| Number of [[natural satellite|satellite]]s\n| 47 confirmed<!--- S/2004 S 3, 4, 6 unconfirmed ---> \n|-\n! bgcolor="#FFCC66" colspan="2" | Physical characteristics\n|-\n| [[Equator]]ial [[diameter]]\n| [[1 E8 m|120,536 km]] [http://www.onasch.de/astro/showobject.php?lang=en&head=f&anim=129&obj=p06]<br>(9.449 Earths)\n|-\n| [[geographical pole|Polar]] diameter\n| 108,728 km<br>(8.552 Earths)\n|-\n| [[Oblateness]]\n| 0.097 96\n|-\n| Surface [[area]]\n| [[1 E16 m2|4.27{{e|10}}]] [[square kilometre|km<sup>2</sup>]]<br />(83.703 Earths)\n|-\n| [[Volume]]\n| 8.27{{e|14}} [[cubic kilometre|km<sup>3</sup>]]<br />(763.59 Earths)\n|-\n| [[Mass]]\n| 5.6846{{e|26}} [[kilogram|kg]]<br />(95.162 Earths)\n|-\n| Mean [[density]]\n| 0.6873 g/cm<sup>3</sup><br /> (less than [[water]])\n|-\n| Equatorial [[gravity]]\n| 8.96 [[Acceleration|m/s<sup>2</sup>]]<br />(0.914 [[Acceleration due to gravity|gee]])\n|-\n| [[Escape velocity]]\n| 35.49 km/s\n|-\n| Rotation period\n| 0.449 375 d<br/> (10 h 47 min 6 s) [http://saturn.jpl.nasa.gov/news/press-release-details.cfm?newsID=656 <sup>1</sup>]\n|-\n| Rotation velocity\n| 9.87 km/s = 35,500 km/h<br /> (at the equator)\n|-\n| [[Axial tilt]]\n| 26.73&deg;\n|-\n| [[Right ascension]]<br>of North pole\n| 40.59° (2 h 42 min 21 s)\n|-\n| [[Declination]]\n| 83.54°\n|-\n| [[Albedo]]\n| 0.47\n|-\n| Avg. cloudtop [[Temperature|temp.]]\n| 93 K\n|-\n| Surface [[Temperature|temp.]]\n|\n{| cellspacing="0" cellpadding="2" border="0"\n|-\n! min !! mean !! max\n|-\n| 82 [[Kelvin|K]]\n| [[1 E2 K|143 K]]\n| N/A K\n|}\n|-\n|Adjective\n|Saturnian\n|-\n! bgcolor="#FFCC66" colspan="2" | [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| [[Atmospheric pressure]]\n| 140 [[Pascal|kPa]]\n|-\n| [[Hydrogen]]\n| &gt;93%\n|-\n| [[Helium]]\n| &gt;5%\n|-\n| [[Methane]]\n| 0.2%\n|-\n| [[Water]] vapor\n| 0.1%\n|-\n| [[Ammonia]]\n| 0.01%\n|-\n| [[Ethane]]\n| 0.0005%\n|-\n| [[Phosphine]]\n| 0.0001%\n|}\n
{| class="infobox" style="width: 25em;"\n|+ style="font-size:larger;" | '''Uranus''' [[Image:Uranus_symbol.ant.png|25px|Astronomical symbol of Uranus]]\n! bgcolor="#000000" align="center" colspan="2" | [[Image:Uranus.jpg|240px|The planet Uranus]]<br/>\n<small><font color="white">Click image for description</font></small>\n|-\n!bgcolor="#c0ffff" colspan="2"| Discovery\n|-\n| Discovered by\n| [[William Herschel]]\n|-\n| Discovered on\n| [[March 13]], [[1781]]\n|-\n!bgcolor="#c0ffff" colspan="2"| [[Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])\n|-\n| [[Semi-major axis]]\n| 2,870,972,220 [[kilometre|km]]<br>19.191 263 93 [[Astronomical unit|AU]]\n|-\n| Orbital [[circumference]]\n| 18.029 [[Tera|T]][[metre|m]]<br>120.515 AU\n|-\n| [[Eccentricity (orbit)|Eccentricity]]\n| 0.047 167 71\n|-\n| [[Perihelion]]\n| 2,735,555,035 km<br>18.286 055 96 AU\n|-\n| [[Aphelion]]\n| 3,006,389,405 km<br>20.096 471 90 AU\n|-\n| [[Orbital period]]\n| [[1 E9 s|30,707.4896 d]]<br>(84.07 [[julian year (astronomy)|a]])\n|-\n| [[Synodic period]]\n| 369.65 d\n|-\n| [[Orbital speed]]\n| 6.795 km/s\n|-\n| Max. orbital speed\n| 7.128 km/s\n|-\n| Min. orbital speed\n| 6.486 km/s\n|-\n| [[Inclination]]\n| 0.769 86&deg;<br>(6.48° to Sun's equator)\n|-\n| [[Longitude of the ascending node|Longitude of the<br> ascending node]]\n| 74.229 88&deg;\n|-\n| [[Argument of the perihelion|Argument of the<br> perihelion]]\n| 96.734 36&deg;\n|-\n| Number of [[natural satellite|satellite]]s\n| 27\n|-\n!bgcolor="#c0ffff" colspan="2"| Physical characteristics\n|-\n| [[Equator]]ial [[diameter]]\n| [[1 E7 m|51,118]] km<br>(4.007 [[Earth | Earths]])\n|-\n| [[geographical pole|Polar]] diameter\n| 49,946 km<br>(3.929 Earths)\n|-\n| [[Oblateness]]\n| 0.0229\n|-\n| Surface [[area]]\n| [[1 E15 m²|8.084{{e|9}}]] [[square kilometre|km<sup>2</sup>]]<br>(15.849 Earths)\n|-\n| [[Volume]]\n| 6.834{{e|13}} [[cubic kilometre|km<sup>3</sup>]]<br>(63.086 Earths)\n|-\n| [[Mass]]\n| 8.6832{{e|25}} [[kilogram|kg]]<br>(14.536 Earths)\n|-\n| Mean [[density]]\n| 1.318 g/cm<sup>3</sup>\n|-\n| Equatorial [[gravity]]\n| 8.69 [[Acceleration|m/s<sup>2</sup>]]<br>(0.886 [[Acceleration due to gravity|gee]])\n|-\n| [[Escape velocity]]\n| 21.29 km/s\n|-\n| Rotation period\n| [[retrograde motion|&minus;]]0.718 33 d (17 h 14 min 24 s<br>by convention) [http://www.hnsky.org/iau-iag.htm <sup>1</sup>]\n|-\n| Rotation velocity\n| 2.59 km/s = 9320 km/h (at the equator)\n|-\n| [[Axial tilt]]\n| 97.77&deg;\n|-\n| [[Right ascension]]<br>of North pole<!--- Pole of direct rotation --->\n| 77.31&deg; (5 h 9 min 15 s)\n|-\n| [[Declination]]\n| +15.175&deg;\n|-\n| [[Albedo]]\n| 0.51\n|-\n| Cloudtop avg. [[Temperature|temp.]]\n| 55 K\n|-\n| Surface [[Temperature|temp.]]\n| \n{| cellspacing="0" cellpadding="2" border="0"\n! min !! mean !! max\n|-\n| 59 [[kelvin|K]]\n| [[1 E1 K|68 K]]\n| N/A K\n|}\n|-\n|Adjective\n|Uranian\n|-\n!bgcolor="#c0ffff" colspan="2"| [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| [[Atmospheric pressure]]\n| 120 [[Pascal|kPa]] (at the cloud level)\n|-\n| [[Hydrogen]]\n| 83%\n|-\n| [[Helium]]\n| 15%\n|-\n| [[Methane]]\n| 1.99%\n|-\n| [[Ammonia]]\n| 0.01%\n|-\n| [[Ethane]]\n| 0.00025%\n|-\n| [[Acetylene]]\n| 0.00001%\n|-\n| [[Carbon monoxide]]<br>[[Hydrogen sulfide]]\n| trace\n|}\n
{| class="toccolours" style="margin-left: 1em; float:right; width: 25em;"\n|+ style="font-size:larger;" | '''Venus''' [[image:Venus symbol.svg|25px|Astronomical symbol of Venus]]\n|-\n|colspan="2" style="text-align:center; background: #001000;"| [[Image:Venus-real_color.jpg|280px|Venus]]<!--Licensing conditions: Image processing by R. Nunes http://www.astrosurf.com/nunes--><br>\n<small><font color="white">Click image for description</font></small>\n|-\n!style="text-align:center;" bgcolor="#EDD58B" colspan="2" | [[Planetary orbit|Orbit]]al characteristics ([[Epoch (astronomy)|Epoch]] [[J2000]])\n|-\n| [[Semi-major axis]]\n| [[1 E11 m|108,208,926]] [[kilometre|km]]<br>0.723 331 99 [[Astronomical unit|AU]]\n|-\n| Orbital [[circumference]]\n| 680,000,000 km<br>4.545 AU\n|-\n| [[Eccentricity (orbit)|Eccentricity]]\n| 0.006 773 23\n|-\n| [[Perihelion]]\n| 107,476,002 km<br>0.718 432 70 AU\n|-\n| [[Aphelion]]\n| 108,941,849 km<br>0.728 231 28 AU\n|-\n| [[Orbital period]]\n| [[1 E7 s|224.700 69]] [[day|d]]<br/>(0.615 197 0 [[julian year (astronomy)|a]])\n|-\n| [[Synodic period]]\n| 583.92 d\n|-\n| [[Orbital speed|Avg. orbital speed]]\n| 35.020 km/[[second|s]]\n|-\n| Max. orbital speed\n| 35.259 km/s\n|-\n| Min. orbital speed\n| 34.784 km/s\n|-\n|[[Inclination]]\n| 3.394 71[[degree (angle)|&deg;]]<br>(3.86° to Sun's equator)\n|-\n|[[Longitude of the ascending node|Longitude of the<br> ascending node]]\n| 76.680 69&deg;\n|-\n|[[Argument of the perihelion|Argument of the<br> perihelion]]\n| 54.852 29&deg;\n|-\n|Number of [[natural satellite|satellite]]s\n| 0\n|-\n! style='text-align:center;' bgcolor="#EDD58B" colspan="2" | Physical characteristics\n|-\n|[[Equator]]ial [[diameter]]\n| 12,103.7 km<br>(0.949 [[Earth]]s)\n|-\n|Surface [[area]]\n| [[1 E14 m²|4.60{{e|8}}]] [[square kilometre|km<sup>2</sup>]]<br>(0.902 Earths)\n|-\n| [[Volume]]\n| 9.28{{e|11}} [[cubic kilometre|km³]]<br>(0.857 Earths)\n|-\n|[[Mass]]\n| [[1 E24 kg|4.8685{{e|24}}]] [[kilogram|kg]]<br>(0.815 Earths)\n|-\n| Mean [[density]]\n| 5.204 [[gram|g]]/cm<sup>3</sup>\n|-\n| Equatorial [[gravity]]\n| 8.87 [[Acceleration|m/s<sup>2</sup>]]<br>(0.904 [[Acceleration due to gravity|gee]])\n|-\n| [[Escape velocity]]\n| 10.36 km/s\n|-\n| Rotation period\n| [[retrograde motion|−]]243.0185 d\n|-\n| Rotation velocity\n| 6.52 km/h (at the equator)\n|-\n| [[Axial tilt]]\n| 2.64&deg;\n|-\n| [[Right ascension]]<br>of North pole\n| 272.76° (18 h 11 min 2 s) <sup>[http://www.hnsky.org/iau-iag.htm 1]</sup>\n|-\n| [[Declination]]\n| 67.16°\n|-\n| [[Albedo]]\n| 0.65\n|-\n| Surface* [[Temperature|temp.]]\n| \n{| cellspacing="0" cellpadding="2" border="0"\n|-\n! min* !! mean !! max\n|-\n| 228 [[kelvin|K]]\n| [[1 E2 K|737 K]]\n| 773 K\n|}\n|-\n|Adjective\n|Venusian or (rarely) Cytherean\n|-\n| colspan="2" | (*min temperature refers to cloud tops only)\n|-\n! style='text-align:center;' bgcolor="#EDD58B" colspan="2" | [[celestial body's atmosphere|Atmospheric]] characteristics\n|-\n| [[Atmospheric pressure]]\n| 9.3 [[Pascal|MPa]]\n|-\n| [[Carbon dioxide]]\n| ~96.5%\n|-\n| [[Nitrogen]]\n| ~3.5%\n|-\n| [[Sulfur dioxide]]\n| .015%\n|-\n| [[Argon]]\n| .007%\n|-\n|[[Water]] vapor\n| .002%\n|-\n|[[Carbon monoxide]]\n| .0017%\n|-\n|[[Helium]]\n| .0012%\n|-\n|[[Neon]]\n| .0007%\n|-\n| [[Carbonyl sulfide]]<br>[[Hydrogen chloride]]<br>[[Hydrogen fluoride]]\n| trace\n|}\n
:<div class="boilerplate seealso">''See also: {{#if:{{{1|}}}|[[{{{1}}}]] | '''[[Template talk:See also|MISSING ARTICLES]]''' \n}}{{#if:{{{2|}}}|{{#if:{{{3|}}}|, |&nbsp;and }} [[{{{2}}}]]\n}}{{#if:{{{3|}}}|{{#if:{{{4|}}}|, |,&nbsp;and }} [[{{{3}}}]]\n}}{{#if:{{{4|}}}|{{#if:{{{5|}}}|, |,&nbsp;and }} [[{{{4}}}]]\n}}{{#if:{{{5|}}}|{{#if:{{{6|}}}|, |,&nbsp;and }} [[{{{5}}}]]\n}}{{#if:{{{6|}}}|{{#if:{{{7|}}}|, |,&nbsp;and }} [[{{{6}}}]]\n}}{{#if:{{{7|}}}|{{#if:{{{8|}}}|, |,&nbsp;and }} [[{{{7}}}]]\n}}{{#if:{{{8|}}}|{{#if:{{{9|}}}|, |,&nbsp;and }} [[{{{8}}}]]\n}}{{#if:{{{9|}}}|{{#if:{{{10|}}}|, |,&nbsp;and }} [[{{{9}}}]]\n}}{{#if:{{{10|}}}|{{#if:{{{11|}}}|, |,&nbsp;and }} [[{{{10}}}]]\n}}{{#if:{{{11|}}}|{{#if:{{{12|}}}|, |,&nbsp;and }} [[{{{11}}}]]\n}}{{#if:{{{12|}}}|{{#if:{{{13|}}}|, |,&nbsp;and }} [[{{{12}}}]]\n}}{{#if:{{{13|}}}|{{#if:{{{14|}}}|, |,&nbsp;and }} [[{{{13}}}]]\n}}{{#if:{{{14|}}}|{{#if:{{{15|}}}|, |,&nbsp;and }} [[{{{14}}}]]\n}}{{#if:{{{15|}}}|,&nbsp;and [[{{{15}}}]]\n}}{{#if:{{{16|}}}|…'''[[Template:See also]] MAXIMUM 15 ARTICLES ALLOWED'''\n}}''</div><noinclude>\n----\nFor usage, see talk.\n\n[[Category:Section templates|{{PAGENAME}}]]\n[[Category:Templates using ParserFunctions|{{PAGENAME}}]]\n[[zh:Template:参看]]\n</noinclude>\n
//{{{\n// TiddlerWithParamsPlugin\n\n// Ensure that the Plugin is only installed once.\nif (!version.extensions.TiddlerWithParamsPlugin) {\nversion.extensions.TiddlerWithParamsPlugin = {\n major: 1, minor: 0, revision: 1, \n date: new Date(2006,3,22), \n type: 'plugin',\n source: "http://tiddlywiki.abego-software.de/#TiddlerWithParamsPlugin"\n};\n\n// Helpers\nvar indexInArray = function(array, item) {\n for (var i = 0; i < array.length; i++) {\n if (array[i] == item) {\n return i;\n }\n }\n return -1;\n}\n\nvar myEscapeRegExp = function(s)\n{\n // The original escapeRegExp function does not work with Safari (2.0.3) \n // since the $& is not implemented.\nvar t = s.replace(/\s\s/g, "\s\s\s\s");\n t = t.replace(/\s^/g, "\s\s^");\n t = t.replace(/\s$/g, "\s\s$");\n t = t.replace(/\s*/g, "\s\s*");\n t = t.replace(/\s+/g, "\s\s+");\n t = t.replace(/\s?/g, "\s\s?");\n t = t.replace(/\s(/g, "\s\s(");\n t = t.replace(/\s)/g, "\s\s)");\n t = t.replace(/\s=/g, "\s\s=");\n t = t.replace(/\s!/g, "\s\s!");\n t = t.replace(/\s|/g, "\s\s|");\n t = t.replace(/\s,/g, "\s\s,");\n t = t.replace(/\s{/g, "\s\s{");\n t = t.replace(/\s}/g, "\s\s}");\n t = t.replace(/\s[/g, "\s\s[");\n t = t.replace(/\s]/g, "\s\s]");\n t = t.replace(/\s./g, "\s\s.");\n\n return t;\n}\n\n// The (hijacked) tiddler Macro Handler \nconfig.macros.tiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n \n var className = null;\n var argsStart = -1;\n var doWikify = true;\n\n var iParams = 1;\n if (params[iParams] != "asText" && params[iParams] != "with:") {\n className = params[iParams++];\n }\n if (params[iParams] == "asText") {\n iParams++;\n doWikify = false;\n }\n if (params[iParams] == "with:") {\n iParams++;\n argsStart = iParams;\n }\n \n var wrapper = createTiddlyElement(place,"span",null,className ? className : null,null);\n var text = store.getTiddlerText(params[0]);\n if(text) {\n // Check for recursion\n var tiddlerName = params[0];\n var stack = config.macros.tiddler.tiddlerStack;\n if (stack.find(tiddlerName) !== null) return;\n\n if (argsStart >= 0) {\n // The params between the "with:" and the "prefix:" (or the end) are the arguments,\n // The param behind the "prefix:" is the prefix before the placeholder numbers.\n var argsEnd = params.length;\n var prefix = "$";\n var prefixIndex = indexInArray(params, "prefix:");\n if (prefixIndex >= argsStart) {\n argsEnd = prefixIndex;\n if (prefixIndex < (params.length-1)) {\n prefix = params[prefixIndex+1];\n }\n }\n // to avoid any "special RE chars" problems with the prefix string escape all chars.\n prefix = myEscapeRegExp(prefix);\n \n var args = params.slice(argsStart, argsEnd);\n var n = Math.min(args.length, 9);\n for (var i = 0; i < n; i++) {\n var value = args[i];\n \n var placeholderRE = new RegExp(prefix+(i+1),"mg");\n text = text.replace(placeholderRE, value);\n }\n }\n stack.push(tiddlerName);\n try {\n if (doWikify) {\n wikify(text,wrapper,null,store.getTiddler(params[0]));\n } else {\n wrapper.appendChild(document.createTextNode(text));\n }\n } finally { \n stack.pop();\n }\n }\n}\nconfig.macros.tiddler.tiddlerStack = [];\n\n// End of "install only once"\n}\n// End of TiddlerWithParamsPlugin\n//}}}\n/***\n!Licence and Copyright\nCopyright (c) abego Software ~GmbH, 2006 ([[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
This is an example [[Tiddlypedia]] - a collection of articles gathered into a [[TiddlyWiki|http://www.tiddlywiki.com/]].
Siehe [[Überschriften]].
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 26/10/2006 11:39:40 | YourName | [[tiddlypedia.html|file:///C:/Dokumente%20und%20Einstellungen/admin/Desktop/tiddlypedia.html]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 11:58:53 | YourName | [[index.html|http://tiddlypedia.tiddlyspot.com/index.html]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 12:11:27 | YourName | [[index.html|http://tiddlypedia.tiddlyspot.com/index.html]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 12:21:41 | YourName | [[index.html|http://tiddlypedia.tiddlyspot.com/index.html]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 12:48:6 | YourName | [[/|http://tiddlypedia.tiddlyspot.com/]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 13:37:58 | YourName | [[/|http://tiddlypedia.tiddlyspot.com/]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 14:0:33 | YourName | [[/|http://tiddlypedia.tiddlyspot.com/]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 14:20:14 | YourName | [[/|http://tiddlypedia.tiddlyspot.com/]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 14:43:21 | YourName | [[/|http://tiddlypedia.tiddlyspot.com/]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 15:55:16 | YourName | [[/|http://tiddlypedia.tiddlyspot.com/#tiddlywiki]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/10/2006 16:7:7 | YourName | [[/|http://tiddlypedia.tiddlyspot.com/]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/11/2006 9:42:9 | YourName | [[tiddlypedia_tiddlyspot.html|file:///C:/Dokumente%20und%20Einstellungen/admin/Desktop/tiddlypedia_tiddlyspot.html]] | [[store.cgi|http://tiddlypedia.tiddlyspot.com/store.cgi]] | . | index.html | . |
/***\n|''Name:''|UploadPlugin|\n|''Description:''|Save to web a TiddlyWiki|\n|''Version:''|3.4.4|\n|''Date:''|Sep 30, 2006|\n|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|\n|''Documentation:''|http://tiddlywiki.bidix.info/#UploadDoc|\n|''Author:''|BidiX (BidiX (at) bidix (dot) info)|\n|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|\n|''~CoreVersion:''|2.0.0|\n|''Browser:''|Firefox 1.5; InternetExplorer 6.0; Safari|\n|''Include:''|config.lib.file; config.lib.log; config.lib.options; PasswordTweak|\n|''Require:''|[[UploadService|http://tiddlywiki.bidix.info/#UploadService]]|\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 4, revision: 4, \n date: new Date(2006,8,30),\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n documentation: 'http://tiddlywiki.bidix.info/#UploadDoc',\n author: 'BidiX (BidiX (at) bidix (dot) info',\n license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',\n coreVersion: '2.0.0',\n browser: 'Firefox 1.5; InternetExplorer 6.0; Safari'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 1}, \n date: new Date(2006,8,19)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 3, date: new Date(2006,8,30),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) \n {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.className = "txtOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "pasOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n backupFileStored: "Previous file backuped in %0",\n crossDomain: "Certainly a cross-domain isue: access to an other site isn't allowed",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileLocked: "Files is locked: You are not allowed to Upload",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n passwordEmpty: "Unable to upload, your password is empty",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.toDirUrl(storeUrl, uploadDir, username)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.toRootUrl = function (storeUrl, username)\n{\n return root = (this.dirname(storeUrl)?this.dirname(storeUrl):this.dirname(document.location.toString()));\n}\nconfig.macros.upload.toDirUrl = function (storeUrl, uploadDir, username)\n{\n var root = this.toRootUrl(storeUrl, username);\n if (uploadDir && uploadDir != '.')\n root = root + '/' + uploadDir;\n return root;\n}\nconfig.macros.upload.toFileUrl = function (storeUrl, toFilename, uploadDir, username)\n{\n return this.toDirUrl(storeUrl, uploadDir, username) + '/' + toFilename;\n}\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n if (!password || password === '') {\n alert(config.macros.upload.messages.passwordEmpty);\n return;\n }\n if (storeUrl === '') {\n storeUrl = config.macros.upload.defaultStoreScript;\n }\n if (config.lib.file.dirname(storeUrl) === '') {\n storeUrl = config.lib.file.dirname(document.location.toString())+'/'+storeUrl;\n }\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n // Check that file is not locked\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n if (BidiX.GroupAuthoring.lock.isLocked() && !BidiX.GroupAuthoring.lock.isMyLock()) {\n alert(config.macros.upload.messages.fileLocked);\n return;\n }\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n var toDir = config.macros.upload.toDirUrl(storeUrl, toFilename, uploadDir, username);\n displayMessage(config.macros.upload.messages.aboutToUpload.format([toDir]), toDir);\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, rssPath, uploadDir, username);\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [toFileUrl]), toFileUrl);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n\n revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");\n revised = revised.replaceChunk("<!--PRE-HEAD-START--"+">","<!--PRE-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPreHead","") + "\sn");\n revised = revised.replaceChunk("<!--POST-HEAD-START--"+">","<!--POST-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPostHead","") + "\sn");\n revised = revised.replaceChunk("<!--PRE-BODY-START--"+">","<!--PRE-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPreBody","") + "\sn");\n revised = revised.replaceChunk("<!--POST-BODY-START--"+">","<!--POST-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPostBody","") + "\sn");\n\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n if (responseText.indexOf("destfile:") > 0) {\n var destfile = responseText.substring(responseText.indexOf("destfile:")+9, \n responseText.indexOf("\sn", responseText.indexOf("destfile:")));\n toFileUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + destfile;\n }\n else {\n toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [toFileUrl]), toFileUrl);\n if (backupDir && responseText.indexOf("backupfile:") > 0) {\n var backupFile = responseText.substring(responseText.indexOf("backupfile:")+11, \n responseText.indexOf("\sn", responseText.indexOf("backupfile:")));\n toBackupUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + backupFile;\n displayMessage(config.macros.upload.messages.backupFileStored.format(\n [toBackupUrl]), toBackupUrl);\n }\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n // erase local lock\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n BidiX.GroupAuthoring.lock.eraseLock();\n // change mtime with new mtime after upload\n var mtime = responseText.substr(responseText.indexOf("mtime:")+6);\n BidiX.GroupAuthoring.lock.mtime = mtime;\n }\n \n \n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) {}\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data; name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir;\n // add lock attributes to sheader\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n var l = BidiX.GroupAuthoring.lock.myLock;\n sheader += ";lockuser=" + l.user\n + ";mtime=" + l.mtime\n + ";locktime=" + l.locktime;\n }\n sheader += ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data; name=\s"userfile\s"; filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n //strailer = "--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n try {\n request.open("POST", storeUrl, true); \n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent + "\snStatus: "+request.status.statusText);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n try {\n request.open("GET", document.location.toString(), true);\n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n \n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]) + "\snStatus: "+request.status.statusText);\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nsetStylesheet(\n ".pasOptionInput {width: 11em;}\sn"+\n ".txtOptionInput.txtUploadStoreUrl {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadFilename {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadDir {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadBackupDir {width: 25em;}\sn"+\n "",\n "UploadOptionsStyles");\nconfig.shadowTiddlers.UploadDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadDoc ]]\sn"; \nconfig.options.chkAutoSave = false; saveOptionCookie('chkAutoSave');\n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n\nconfig.macros.saveChanges.handler_orig_UploadPlugin = config.macros.saveChanges.handler;\n\nconfig.macros.saveChanges.handler = function(place)\n{\n if ((!readOnly) && (document.location.toString().substr(0,4) != "http"))\n createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);\n};\n\n//}}}\n////===\n
Sonderzeichen und Umlaute in der URL (Pfad im Browser) mögen die Browser nicht so gerne. \nMan ersetzt die Sonderzeichen und/oder Umlaute wie folgt (siehe auch [[URL encode chart|http://i-technica.com/whitestuff/urlencodechart.html]]):\n\n|!{{{Zeichen}}}|!{{{escape code}}}|\n|{{{Leerzeichen}}}|{{{%20}}}|\n|{{{Neue Zeile}}}|{{{%0D}}}|\n|{{{>}}}|{{{%3E}}}|\n|{{{%}}}|{{{%25}}}|\n|}|{{{%7D}}}|\n|{{{\s}}}|{{{%5C}}}|\n|{{{~}}}|{{{%7E}}}|\n|{{{]}}}|{{{%5D}}}|\n|{{{;}}}|{{{%3B}}}|\n|{{{?}}}|{{{%3F}}}|\n|{{{@}}}|{{{%40}}}|\n|{{{&}}}|{{{%26}}}|\n|{{{<}}}|{{{%3C}}}|\n|{{{#}}}|{{{%23}}}|\n|{|{{{%7B}}}|\n|{{{|}}}|{{{%7C}}}|\n|{{{^}}}|{{{%5E}}}|\n|{{{[}}}|{{{%5B}}}|\n|{{{`}}}|{{{%60}}}|\n|{{{/}}}|{{{%2F}}}|\n|{{{:}}}|{{{%3A}}}|\n|{{{=}}}|{{{%3D}}}|\n|{{{$}}}|{{{%24}}}|\n|{{{÷}}}|{{{%F7}}}|\n|{{{Ä}}}|{{{%C4}}}|\n|{{{Ö}}}|{{{%D6}}}|\n|{{{Ü}}}|{{{%DC}}}|\n|{{{ä}}}|{{{%E4}}}|\n|{{{ö}}}|{{{%F6}}}|\n|{{{ü}}}|{{{%FC}}}|\n|{{{ß}}}|{{{%DF}}}|\n
<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></div>\n<div class='title' macro='view title'></div>\n<div class='tagging' macro='tagging'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler'></div>\n\n
Eine WaagerechteTrennlinie entsteht, wenn am Zeilenanfang vier Minuszeichen (-) eingegeben werden:\n\n{{{\n----\n}}}\n\n----
TiddlyWiki sollte in allen modernen Browsern ausgeführt werden können. Sollte.\n\n*Mozilla FireFox wird empfohlen und funktioniert auch bei mir am zuverlässigsten\n*MS InternetExplorer sollte auch funktionieren\n*im OperaBrowser funktioniert es (leider) nur bedingt
This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://tiddlypedia.tiddlyspot.com/controlpanel]] (your control panel username is //tiddlypedia//).\n<<tiddler tiddlyspotControls>>\n@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the "save to web" button in the column on the right.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click "upload" and your ~TiddlyWiki will be saved back to tiddlyspot.com.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions.
{{MediaWiki-Hilfe}}\nDiese Seite erklärt, wie du in Wikipedia Links auf interne und externe Seiten setzt. \n\n== Links innerhalb der Wikipedia ==\nUm eine andere Seite innerhalb der Wikipedia zu verlinken, musst du nicht –&nbsp;wie etwa in [[Hypertext Markup Language|HTML]] üblich&nbsp;– den vollen URL mit „<nowiki>http://...</nowiki>“ angeben: Es genügt, den Titel der Seite in zwei eckige Klammern (<tt><nowiki>[[Titel]]</nowiki></tt>) zu setzen. \n\nMöchtest du auf einen Artikel in einem anderen [[Namensraum]] verweisen, schreibe den Namensraum durch Doppelpunkt getrennt vor dem eigentlichen Seitentitel (<tt><nowiki>[[Namensraum:Titel]]</nowiki></tt>).\n\nWenn du in den Namensraum ''Kategorie'' oder auf ein Bild verlinken willst, schreibe im Stil <nowiki>[[:Kategorie:Titel der Kategorie]]</nowiki> beziehungweise <nowiki>[[:Bild:Name des Bildes.png]]</nowiki>\n\nMöchtest du einen „automatischen“ Link erzeugen, der von einem Begriff direkt auf einen anderen umleitet, schaue bitte unter [[Hilfe:Weiterleitung]].\n\n== Links zu externen Webseiten (Weblinks)==\n\nExterne Adressen wandelt die Software automatisch in einen anklickbaren Link um, wenn du die volle Adresse angibst: http://www.openusability.org/\n\nMöchtest du statt des Links einen Titel angeben, setzt du die URL und den Titel gemeinsam in eckige Klammern, getrennt durch ein Leerzeichen: <tt><nowiki>[http://www.openusability.org/ Die Webseite von OpenUsability]</nowiki></tt>\n\nSoll im Titel eine eckige Klammer auftauchen, so kann diese mit <code>&amp;#x5B;</code> („<nowiki>[</nowiki>“) und <code>&amp;#x5D;</code> („<nowiki>]</nowiki>“) eingefügt werden.\n\nSind im Link selber eckige Klammern vorhanden, kann es notwendig sein, sie durch „<nowiki>%5B</nowiki>“ (fuer „<nowiki>[</nowiki>“) und „<nowiki>%5D</nowiki>“ (fuer „<nowiki>]</nowiki>“) zu ersetzen.\n\n<br>\n\n== Bild als Link ==\n\n{{Link-Bild|Bild=Phodopus sungorus - Hamsterkraftwerk.jpg|Breite=70px|Höhe=40px|Link=Wikipedia:Hamster}}\n\nWie der [http://de.wikipedia.org/wiki/Benutzer:Bdk Vater der Hamster-Seite] zeigt, kann man auch ein Bild als Link benutzen.\n\nWer oben auf 'Bearbeiten' klickt, der bekommt die Zeichenfolge angezeigt, mit der man das bewirken kann.\n\nDie Einzelheiten sind in der [http://meta.wikimedia.org/wiki/Help:Link#Linking_to_a_page_with_images Media-Wiki Hilfe] unter [http://meta.wikimedia.org/wiki/Help:Navigational_images NavigationsBild] erklärt.\n\nBei den meisten [[Wiki|Wikis]] besteht zudem die Möglichkeit, externe Bilder zur Navigation zu nutzen.\n\nDie Zeichenkette kann dazu beispielsweise lauten: <br>\n<nowiki><''http://www.google.com http://www.google.com/images/logo.gif''></nowiki>. <br>\n\nBei Wikipedia selbst ist diese Möglichkeit jedoch nicht gegeben, da Wikipedia die Einbindung externer Bilder aus guten Gründen unterbunden hat.\n\nDafür gibt es bei Wikipedia die [[Vorlage:Link-Bild]], mit der man interne Bilder zur Navigation nutzen kann, wie es das Hamster-Beispiel oben zeigt.\n\n<br>\n\n== Editier-Hilfe ==\n\n{| border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:95%; empty-cells:show;"\n! {{Highlight1}} | So sieht es aus\n! {{Highlight1}} | So wird es eingegeben\n|-\n| style="background:#EEEEFF"| Ein einfacher Link zur [[Wikipedia:FAQ]].\n| style="background:#EEEEEE;"| <code><nowiki>Ein einfacher Link zur [[Wikipedia:FAQ]].</nowiki></code>\n|-\n| style="background:#EEEEFF"| Gleiche Zielseite, aber anderer Name:<br>[[Wikipedia:FAQ|Fragen und Antworten]].\n| style="background:#EEEEEE;"| <code>Gleiche Zielseite, aber anderer Name:<br><nowiki>\n[[Wikipedia:FAQ|Fragen und Antworten]].</nowiki></code>\n|-\n| style="background:#EEEEFF"| Ist der Link der Anfang eines Wortes, so wird das ganze Wort als Link dargestellt: [[Jahr]]eszahl. <br />\nDies gilt aber nicht, wenn der Link am Ende <br />\ndes Wortes steht (Jahres[[zahl]]) oder die<br />\nTeilworte unsichtbar getrennt werden:<br />\n[[Jahr]]<b/>eszahl<br />\n(''siehe auch: [[Wikipedia:Verlinken#Verlinkung von Teilwörtern|Verlinkung von Teilwörtern]]'')\n| style="background:#EEEEEE;"| <code>Ist der Link der Anfang eines Wortes, so wird das ganze Wort als Link dargestellt: <nowiki>[[Jahr]]eszahl.</nowiki><br><nowiki>Dies gilt aber nicht, wenn der Link am Ende des Wortes steht (Jahres[[zahl]]) oder die Teilworte unsichtbar getrennt werden:\n[[Jahr]]<b/>eszahl\n</nowiki></code>\n|-\n| style="background:#EEEEFF"| Unterkapitel einer Zielseite adressieren: [[Wikipedia:Allgemeine_FAQ#Wie kann ich einen bestimmten Mitarbeiter oder Wikipedia-Teilnehmer erreichen?]].<br><small>Anmerkung: Kein Test in der Vorschau möglich, Verlinkung erfolgt hier nur zum Hauptartikel</small>\n| style="background:#EEEEEE;"| <code><nowiki>Unterkapitel einer Zielseite adressieren:\n[[Wikipedia:Allgemeine_FAQ#Wie kann ich einen bestimmten Mitarbeiter oder Wikipedia-Teilnehmer erreichen?]]\n</nowiki></code>\n|-\n| style="background:#EEEEFF"| Zwischenüberschriften eines Hauptartikels sollten in der Regel nicht adressiert werden: [[Notar#Anwaltsnotare]].<br><small>Anmerkung: Wer nicht nur auf das einzelne Lemma (also den Hauptartikel), sondern auch auf eine darin enthaltene Zwischenüberschrift verweisen will, sollte also nur im wohl überlegten Ausnahmefall so verfahren.</small>\n| style="background:#EEEEEE;"| <code><nowiki>Zwischenüberschrift einer Zielseite adressieren:\n[[Lemma#Zwischenüberschrift]]\n</nowiki></code>\n|-\n| style="background:#EEEEFF"| Text in Klammern und Namensräumen automatisch verbergen: <br />\n[[Wikipedia:Hilfe|Hilfe]] und [[Titanic (1997)|Titanic]]\n<br /><small>Anmerkung: Der Kode wird nach dem Speichern expandiert</small>\n| style="background:#EEEEEE;"| <code><nowiki>Text in Klammern und Namensräume automatisch verbergen: \n[[Wikipedia:Hilfe|]] und [[Titanic (1997)|]]</nowiki></code>\n|-\n| style="background:#EEEEFF"| Link auf einen nicht vorhandenen Artikel:\n[[Blabla]] ist eine Seite, die noch nicht existiert.<br>\n<small>Hinweis: Durch Anklicken des roten Links lässt sich die [[Wikipedia:Neue Seite anlegen|Neue Seite anlegen]]</small>\n| style="background:#EEEEEE;"| <code>Link auf einen nicht vorhandenen Artikel:<br><nowiki>[[Blabla]] ist eine Seite, die noch nicht existiert.</nowiki></code>\n|-\n| style="background:#EEEEFF"| Link zu einer [[Wikipedia:Kategorien|Kategorie]] im Fließtext: [[:Kategorie:Wikipedia]].\n| style="background:#EEEEEE;"| <code><nowiki>Link zu einer Kategorie \nim Fließtext: [[:Kategorie:Wikipedia]].</nowiki></code>\n|-\n| style="background:#EEEEFF"| Link auf ein [[Wikipedia:Bilder|Bild]] im Fließtext: [[:Bild:Luftballon.png]] .\n| style="background:#EEEEEE;"| <code><nowiki>Link auf ein Bild \nim Fließtext: [[:Bild:Luftballon.png]].</nowiki></code>\n|-\n| style="background:#EEEEFF"| \n[[Wikipedia:Weblinks|Weblinks]]:\n* http://www.nupedia.com/ – Beschreibung\n* [http://www.nupedia.com/ Nupedia]\n* [http://www.nupedia.com/]\n\nE-Mail-Links\n* [mailto:name@example.com name@example.com]\n\n<small>Hinweis: Externe Links werden im Gegensatz zu internen Wikipedia-Links mit nur '''einer''' eckigen Klammer eingebunden. Link und Beschreibung werden mit Leerzeichen statt Längsstrich getrennt. Ohne Beschreibungstext werden die Weblinks automatisch nummeriert.</small>\n| style="background:#EEEEEE; vertical-align:top"| <code>\nWeblinks:<br />\n<nowiki>* http://www.nupedia.com/ – Beschreibung</nowiki><br />\n<nowiki>* [http://www.nupedia.com/ Nupedia]</nowiki><br />\n<nowiki>* [http://www.nupedia.com/]</nowiki><br />\n<br />\nE-Mail-Links<br />\n<nowiki>* [mailto:name@example.com name@example.com]</nowiki><br />\n</code>\n|-\n| style="background:#EEEEFF"| [[Wikipedia:Datenbanklinks|Datenbanklinks]] werden in der Regel über [[Hilfe:Vorlagen|Vorlagen]] erzeugt. Sie stehen deshalb in doppelten geschweiften Klammern und bestehen aus dem Namen der Vorlage und benannten oder unbenannten Argumenten:\n{{IMDb Name|ID=0000216|NAME=Arnold Schwarzenegger}}\n{{ISSN|0170-2971}}\n| style="background:#EEEEEE;"| <code><nowiki>{{IMDb Name|ID=0000216|NAME=Arnold Schwarzenegger}}\n{{ISSN|0170-2971}}\n</nowiki></code>\n|-\n| style="background:#EEEEFF"| [[Wikipedia:ISBN-Suche|ISBN-Suchlinks]]: Im korrekten Format geschriebene ISBN-„Nummern“ werden automatisch in Links verwandelt. Dazu muss nach den Buchstaben ISBN und einem Leerzeichen (ohne Doppelpunkt) eine entsprechende Nummer folgen:<br />\nGerhard Seyfried: ''Herero.'' Eichborn-Verlag, <br /> \nBerlin 2003, ISBN 3-8218-0873-X\n| style="background:#EEEEEE;"| <code><nowiki>Gerhard Seyfried: ''Herero.'' Eichborn-Verlag, \nBerlin 2003, ISBN 3-8218-0873-X</nowiki></code>\n|-\n| style="background:#EEEEFF"| Auch Zitate aus Gesetzen (oder anderen Rechtsnormen) sind regelmäßig [[Wikipedia:Datenbanklinks|Datenbanklinks]]:<br />\n{{Zitat Art|103|gg}} [[Grundgesetz|GG]]<br /> \n{{Zitat de §|433|bgb}} [[Bürgerliches_Gesetzbuch|BGB]]<br /> \n{{Zitat de §§|stgb|index|Inhaltsübersicht des StGB}} <br /> \n{{Zitat-dej|§|170|StPO}} [[Strafprozessordnung_(Deutschland)|StPO]]<br />\n\nIn begründeten Ausnahmefällen kann auf Datenbanklinks verzichtet werden:\n[http://www.rechtsgelehrter.de/wissen.php4?pid=RsprEinhG_p01 § 1 RsprEinhG]\n| style="background:#EEEEEE;"| <code><nowiki>{{Zitat Art|103|gg}} [[Grundgesetz|GG]]</nowiki><br /> \n<nowiki>{{Zitat de §|433|bgb}} [[Bürgerliches_Gesetzbuch|BGB]]</nowiki><br /> \n<nowiki>{{Zitat de §§|stgb|index|Inhaltsübersicht des StGB}}</nowiki><br /> \n<nowiki>{{Zitat-dej|§|170|StPO}} [[Strafprozessordnung_(Deutschland)|StPO]]</nowiki></code><br />\n\n<code><nowiki>[http://www.rechtsgelehrter.de/wissen.php4?pid=RsprEinhG_p01 § 1 RsprEinhG]</nowiki></code>\n|}\n\n== Siehe auch == \n* Wikipedias [[Hilfe:Namensräume|Namensräume]]\n* Wikipedias [[Wikipedia:Datenbanklinks|Datenbanklinks]]\n* [[Wikipedia:Verlinken|Wann setzt man Links auf andere Artikel?]]\n* [[Wikipedia: Weblinks]]\n* [[Wikipedia: Einzelnachweise]] (auch: ''Endnoten'', ''Fußnoten'' und ''Verweise'')\n* [[Wikipedia: Quellenangaben]]\n* [[Hilfe:Internationalisierung|Wie setzt man Links zu anderen Wikipedias?]]\n* [[Hilfe:Interwiki-Links|Wie setzt man Links zu anderen Wikimedia-Projekten?]]\n\n\n[[Kategorie:Wikipedia:Hilfe|Links]]\n\n[[en:Help:Contents/Links]]\n
Erfahren Sie, wie Firefox sich abhebt! Hier finden Sie einige Tips & Tricks zum Einstieg.\nProbieren Sie diese Features\n\nTabbed-Browsing\n Surfen Sie auf mehreren Web-Seiten gleichzeitig mit mehr Komfort.\nDynamische Lesezeichen\n Lesen Sie aktuelle Schlagzeilen Ihrer bevorzugten Web-Seiten und Blogs.\nSuchleiste\n Finden Sie was Sie möchten, wenn Sie es möchten.\n\nFügen Sie Suchmaschinen hinzu\n\nWir haben einige beliebte Suchmaschinen in der Suchleiste in der oberen rechten Ecke zur Verfügung gestellt. Wenn Sie weitere hinzufügen möchten, können Sie aus hunderten auswählen. Einige der beliebtesten sind:\n\n * IMDB Die Internet Movie Database (Englisch)\n * Leo Suchen Sie eine Übersetzung im Deutsch <-> Englisch Wörterbuch\n\nAndere Sprachen :\n\n * Kontakt\n
config.macros.listTags = { text: "Hello" };\nconfig.macros.listTags.handler = function(place,macroName,params)\n{\n var tagged = store.getTaggedTiddlers(params[0],params[1]); \n//<< Second parameter is field to sort by (eg, title, modified, modifier or text)\n var ul = createTiddlyElement(place,"ul",null,null,"");\n for(var r=0;r<tagged.length;r++)\n {\n var li = createTiddlyElement(ul,"li",null,null,"");\n createTiddlyLink(li,tagged[r].title,true);\n }\n}\n
| tiddlyspot password:|<<option pasUploadPassword>>|\n| site management:|<<upload http://tiddlypedia.tiddlyspot.com/store.cgi index.html . . tiddlypedia>>//(requires tiddlyspot password)//<<br>>[[control panel|http://tiddlypedia.tiddlyspot.com/controlpanel]], [[download (go offline)|http://tiddlypedia.tiddlyspot.com/download]]|\n| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|
Das ist eine [[http://en.wikipedia.org/wiki/Tiddlywiki|Kopie von Wikipedia]]\n\nThis is a [[http://en.wikipedia.org/wiki/Tiddlywiki|copy from Wikipedia]]\n----\n'''TiddlyWiki''' is a [[wiki]]-modeled [[client-side]] application written by Jeremy Ruston that is designed to be used as a personal notebook. \n\nTiddlyWiki is a single self-contained [[HTML]] file that includes [[Cascading Style Sheets|CSS]] and [[JavaScript]] code. When the user downloads it to their [[Personal computer|PC]], TiddlyWiki can save the entered information by overwriting itself on the user's disk, at the user's request. Following TiddlyWiki conventions, users can make a new entry, called a [[Tiddler]], in their local copy of the TiddlyWiki file and save it for future reference. Existing Tiddlers can also be modified or deleted in the same way. In contrast to the majority of other wiki systems the changes can only be saved locally.\n\nTiddlyWiki is published by Osmosoft under a [[Berkeley Software Distribution|BSD]] [[open source license]], which makes it freely available. Developer [[Jeremy Ruston]] describes it as experimental, and in that spirit many people have used the original HTML file to create TiddlyWiki Adaptations. These fall under two general categories: those that retain the client-side write only feature, and those that add [[server-side]] file writing to make TiddlyWiki more like a true wiki. Links to both these kinds of Adaptations are put in the original TiddlyWiki file as they become known. TiddlyWiki Adaptations typically add features that were not originally envisioned by Ruston, and some of these features have been included in newer versions of TiddlyWiki.\n\nA feature that sets TiddlyWiki apart from a standard wiki implementation is its content presentation. Jeremy Ruston had this to say about it:\n<blockquote>\nA TiddlyWiki is like a blog because it's divided up into neat little chunks (tiddlers), but it encourages you to read it by hyperlinking rather than sequentially: if you like, a non-linear blog analogue that binds the individual microcontent items into a cohesive whole. I think that TiddlyWiki represents a novel medium for writing, and will promote its own distinctive Writing Style.\n</blockquote>\n\nAlthough a TiddlyWiki is designed for keeping notes, it can also be used as the foundation for a complete Web site. \n\n==External links==\n===The TiddlyWiki distribution by Jeremy Ruston:===\n* The original (currently, October 2006, at version 2.1.2): [http://www.tiddlywiki.com TiddlyWiki]\n* TiddlyWiki infrastructure used for development: [http://trac.tiddlywiki.org/tiddlywiki TiddlyWiki.org]\n\n===Plug-ins===\n* [http://monkeygtd.tiddlyspot.com/ MonkeyGTD] - uses [http://mptw.tiddlyspot.com/ MPTW] and other plugins for automatic [[Getting Things Done|GTD]] list generation and "dashboard" type project summaries\n* [http://www.dcubed.ca/ d3 ("d cubed")] - includes plugins for automatic [[Getting Things Done|GTD]] list generation\n* [http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm GTD TiddlyWiki Plus] - includes Clint Checketts' [[Getting Things Done|GTD]] style applied\n* [http://mptw.tiddlyspot.com/ MonkeyPirateTiddlyWiki (MPTW)] - includes plugins for TagglyWiki style tagging and a style switcher\n* [http://www.tiddlytools.com TiddlyTools] - many essential plugins created by Eric Shulman including ImportTiddlers, NestedSliders, SinglePageMode\n* [http://tiddlywiki.abego-software.de abegoExtensions] - many essential plugins created by Udo Borkowski including ForEachTiddler, YourSearchPlugin\n* [http://lewcid.googlepages.com/lewcid.html Lewcid TW ] - a repository of extensions for TiddlyWiki\n* [http://tiddlywiki.bidix.info/ BidiXTW] - home of UploadPlugin which allows you to save to a remote server with a simple php script.\n\n===Adaptations===\n*[http://stickwiki.sourceforge.net Wiki on a Stick] - [[Open source]] [[personal wiki]]. It is self-contained single wiki file ([[JavaScript]], [[DHTML]]), currently works on Firefox, IE and Opera (read-only in this last).\n* [http://www.squaremobius.net/~mikeb/Darcs/sticky-wiki/ StickyWiki] - a combination of stickies and a wiki\n* [http://danielbaird.com/minimaltiddlywiki/ Minimal TiddlyWiki]\n* [http://www.christianhauck.net/html/14300.html ChristianHauck's]\n* [http://shared.snapgrid.com/gtd_tiddlywiki.html GTD TiddlyWiki] - popular adaptation; implements [[Getting Things Done]] in TiddlyWiki\n* [http://www.kevembuangga.com/hwk/ HailiWiki] - TiddlyWiki clone\n* [http://aasted.org/wiki Henrik Aasted Sorensen] - [[PHP]] [[server-side]] adaptation\n* [http://poul.staugaard.dk/IeWiki.htm IeWiki] - more IE compatible adaptation\n* [http://www.lesserwiki.org LesserWiki] - adaptation that uses [[Ajax (programming)|Ajax]] to speed things up\n* [http://innen.hu/MagyarTiddlyWiki/ MagyarTiddlyWiki] - adaptation in Hungarian\n* [http://www.patrickcurry.com/tiddly/ PhpTiddlyWiki] - [[server-side]] adaptation using [[PHP]] and [[MySQL]]\n* [http://math.chapman.edu/~jipsen/tiddly/tiddlymath.html TiddlyMath] allow mathematical expression and plotting.\n* [http://math.chapman.edu/~jipsen/asciencepad/asciencepad.html ASciencePad] - ASciencePad, by the Peter Jipsen (also the author of TiddlyMath) is unique amongst TiddlyWikis(June 2006) in supporting WYSIWYG editing. (It uses the [[HTMLArea]] tool.) According to the author's homepage, TiddlyMath is ASciencePad with the WYSIWYG support stripped out.\n* [http://www.personal.psu.edu/ach12/tiddlywiki QwikiWeb] - website-oriented adaptation\n* [http://informationality.com/tagglywiki/tagglywiki.html TagglyWiki] - improved [[Tag (metadata)|tagging]] features\n* [http://codestar.lidonet.net/misc/tiddlywikicss.html TiddlyWikiCSS]\n* [http://phiffer.org/tiddly TiddlyWikiRemote] - [[server-side]] adaptation\n* [http://avm.free.fr/IMG/html/carnet_gt_BigCo.html TidliPo] - adaptation in French\n* [http://tony.lownds.com/home/ TonyLownds's] (link broken - no description)\n* [http://www.rumsby.org/yatwa/ YATWA] (Yet Another TiddlyWiki Adaptation) - TiddlyWiki with builtin plugins\n* [http://ziddlywiki.com ZiddlyWiki] - [[server-side]] adaptation with [[Zope]] backend.\n* [http://cctiddly.sf.net ccTiddly] [[server-side]] adaption\nThe TiddlyWiki community of developers is prodigious, so keeping these lists up to date may be quite difficult.\n\n===Hosting Sites===\n* [http://tiddlyspot.com/ tiddlyspot.com] - Free TiddlyWiki Hosting service, with backend sync capability. As of June 2006, supports "Standard", "MonkeyGTD", and "MonkeyPirate". Based on UploadPlugin.\n* [http://serversidewiki.com serversidewiki.com] - Free TiddlyWiki hosting service. Has been waiting to launch since 2005.\n\n===Additional Information===\n* [http://doc.tiddlywiki.org TiddlyDoc] A community-edited documentation resource for TiddlyWiki\n* [http://tiddlywikiguides.org TiddlyWiki Guides] A collection of TiddlyWiki documentation\n* [http://tiddlywikitips.com TiddlyWiki Tips] TiddlyWiki Tips Resource\n* [http://www.zrenard.com/tiddlywiki/ TiddlyWiki Tips] Denis Méline's original Tips site for TiddlyWiki\n* [http://www.tiddlywikihandbuch.de/tiddlywikihandbuch.html TiddlyWikiHandbuch] a "manual" in German language\n\n===Online Communities===\n* [http://groups.google.com/group/TiddlyWiki Google Group: TiddlyWiki] General discussions\n* [http://groups.google.com/group/TiddlyWikiDev Google Group: TiddlyWiki Development] Developer's discussions\n* [http://groups.google.com/group/GTD-TiddlyWiki Google Group: GTD TiddlyWiki] Applying TiddlyWiki for [[Getting Things Done|GTD]]\n\n== See also ==\n*[http://stickwiki.sourceforge.net/ Wiki on a Stick]\n\n[[Category:Free wiki software]]\n\n[[ca:TiddlyWiki]]\n[[nl:TiddlyWiki]]\n[[ru:TiddlyWiki]]\n[[fr:TiddlyWiki]]\n[[de:TiddlyWiki]]\n
/***\n** MediaWiki 'monobook' style sheet for CSS2-capable browsers.\n** Copyright Gabriel Wicke - http://wikidev.net/\n** License: GPL (http://www.gnu.org/copyleft/gpl.html)\n**\n** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John\n** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher,\n** Michael Zeltner and Geir Bækholt)\n** All you guys rock :)\n\nhttp://en.wikipedia.org/skins-1.5/monobook/main.css\n\n***/\n//{{{\n\n#column-content {\n width: 100%;\n float: right;\n margin: 0 0 .6em -12.2em;\n padding: 0;\n}\n#content {\n margin: 2.8em 0 0 12.2em;\n padding: 0 1em 1.5em 1em;\n background: white;\n color: black;\n border: 1px solid #aaa;\n border-right: none;\n line-height: 1.5em;\n position: relative;\n z-index: 2;\n}\n#column-one {\n padding-top: 160px;\n}\n/* the left column width is specified in class .portlet */\n\n/* Font size:\n** We take advantage of keyword scaling- browsers won't go below 9px\n** More at http://www.w3.org/2003/07/30-font-size\n** http://style.cleverchimp.com/font_size_intervals/altintervals.html\n*/\n\nbody {\n font: x-small sans-serif;\n background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat;\n color: black;\n margin: 0;\n padding: 0;\n}\n\n/* scale back up to a sane default */\n#globalWrapper {\n font-size: 127%;\n width: 100%;\n margin: 0;\n padding: 0;\n}\n.visualClear {\n clear: both;\n}\n\n/* general styles */\n\ntable {\n font-size: 100%;\n color: black;\n}\na {\n text-decoration: none;\n color: #002bb8;\n background: none;\n}\na:visited {\n color: #5a3696;\n}\na:active {\n color: #faa700;\n}\na:hover {\n text-decoration: underline;\n}\na.stub {\n color: #772233;\n}\na.new, #p-personal a.new {\n color: #ba0000;\n}\na.new:visited, #p-personal a.new:visited {\n color: #a55858;\n}\n\nimg {\n border: none;\n vertical-align: middle;\n}\np {\n margin: .4em 0 .5em 0;\n line-height: 1.5em;\n}\np img {\n margin: 0;\n}\n\nhr {\n height: 1px;\n color: #aaa;\n background-color: #aaa;\n border: 0;\n margin: .2em 0 .2em 0;\n}\n\nh1, h2, h3, h4, h5, h6 {\n color: black;\n background: none;\n font-weight: normal;\n margin: 0;\n padding-top: .5em;\n padding-bottom: .17em;\n border-bottom: 1px solid #aaa;\n}\nh1 { font-size: 188%; }\nh2 { font-size: 150%; }\nh3, h4, h5, h6 {\n border-bottom: none;\n font-weight: bold;\n}\nh3 { font-size: 132%; }\nh4 { font-size: 116%; }\nh5 { font-size: 100%; }\nh6 { font-size: 80%; }\n\nul {\n line-height: 1.5em;\n list-style-type: square;\n margin: .3em 0 0 1.5em;\n padding: 0;\n list-style-image: url(bullet.gif);\n}\nol {\n line-height: 1.5em;\n margin: .3em 0 0 3.2em;\n padding: 0;\n list-style-image: none;\n}\nli {\n margin-bottom: .1em;\n}\ndt {\n font-weight: bold;\n margin-bottom: .1em;\n}\ndl {\n margin-top: .2em;\n margin-bottom: .5em;\n}\ndd {\n line-height: 1.5em;\n margin-left: 2em;\n margin-bottom: .1em;\n}\n\nfieldset {\n border: 1px solid #2f6fab;\n margin: 1em 0 1em 0;\n padding: 0 1em 1em;\n line-height: 1.5em;\n}\nlegend {\n padding: .5em;\n font-size: 95%;\n}\nform {\n border: none;\n margin: 0;\n}\n\ntextarea {\n width: 100%;\n padding: .1em;\n}\n\ninput.historysubmit {\n padding: 0 .3em .3em .3em !important;\n font-size: 94%;\n cursor: pointer;\n height: 1.7em !important;\n margin-left: 1.6em;\n}\nselect {\n vertical-align: top;\n}\nabbr, acronym, .explain {\n border-bottom: 1px dotted black;\n color: black;\n background: none;\n cursor: help;\n}\nq {\n font-family: Times, "Times New Roman", serif;\n font-style: italic;\n}\n/* disabled for now\nblockquote {\n font-family: Times, "Times New Roman", serif;\n font-style: italic;\n}*/\ncode {\n background-color: #f9f9f9;\n}\npre {\n padding: 1em;\n border: 1px dashed #2f6fab;\n color: black;\n background-color: #f9f9f9;\n line-height: 1.1em;\n}\n\n/*\n** the main content area\n*/\n\n#siteSub {\n display: none;\n}\n\n#jump-to-nav {\n display: none;\n}\n\n#contentSub, #contentSub2 {\n font-size: 84%;\n line-height: 1.2em;\n margin: 0 0 1.4em 1em;\n color: #7d7d7d;\n width: auto;\n}\nspan.subpages {\n display: block;\n}\n\n/* Some space under the headers in the content area */\n#bodyContent h1, #bodyContent h2 {\n margin-bottom: .6em;\n}\n#bodyContent h3, #bodyContent h4, #bodyContent h5 {\n margin-bottom: .3em;\n}\n.firstHeading {\n margin-bottom: .1em;\n}\n\n/* user notification thing */\n.usermessage {\n background-color: #ffce7b;\n border: 1px solid #ffa500;\n color: black;\n font-weight: bold;\n margin: 2em 0 1em;\n padding: .5em 1em;\n vertical-align: middle;\n}\n#siteNotice {\n text-align: center;\n font-size: 95%;\n padding: 0 .9em;\n}\n#siteNotice p {\n margin: 0;\n padding: 0;\n}\n.error {\n color: red;\n font-size: larger;\n}\n.errorbox, .successbox {\n font-size: larger;\n border: 2px solid;\n padding: .5em 1em;\n float: left;\n margin-bottom: 2em;\n color: #000;\n}\n.errorbox {\n border-color: red;\n background-color: #fff2f2;\n}\n.successbox {\n border-color: green;\n background-color: #dfd;\n}\n.errorbox h2, .successbox h2 {\n font-size: 1em;\n font-weight: bold;\n display: inline;\n margin: 0 .5em 0 0;\n border: none;\n}\n\n#catlinks {\n border: 1px solid #aaa;\n background-color: #f9f9f9;\n padding: 5px;\n margin-top: 1em;\n clear: both;\n}\n/* currently unused, intended to be used by a metadata box\nin the bottom-right corner of the content area */\n.documentDescription {\n /* The summary text describing the document */\n font-weight: bold;\n display: block;\n margin: 1em 0;\n line-height: 1.5em;\n}\n.documentByLine {\n text-align: right;\n font-size: 90%;\n clear: both;\n font-weight: normal;\n color: #76797c;\n}\n\n/* emulate center */\n.center {\n width: 100%;\n text-align: center;\n}\n*.center * {\n margin-left: auto;\n margin-right: auto;\n}\n/* small for tables and similar */\n.small, .small * {\n font-size: 94%;\n}\ntable.small {\n font-size: 100%;\n}\n\n/*\n** content styles\n*/\n\n#toc,\n.toc,\n.mw-warning {\n border: 1px solid #aaa;\n background-color: #f9f9f9;\n padding: 5px;\n font-size: 95%;\n}\n#toc h2,\n.toc h2 {\n display: inline;\n border: none;\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n}\n#toc #toctitle,\n.toc #toctitle,\n#toc .toctitle,\n.toc .toctitle {\n text-align: center;\n}\n#toc ul,\n.toc ul {\n list-style-type: none;\n list-style-image: none;\n margin-left: 0;\n padding-left: 0;\n text-align: left;\n}\n#toc ul ul,\n.toc ul ul {\n margin: 0 0 0 2em;\n}\n#toc .toctoggle,\n.toc .toctoggle {\n font-size: 94%;\n}\n\n.mw-warning {\n margin-left: 50px;\n margin-right: 50px;\n text-align: center;\n}\n\n/* images */\ndiv.floatright, table.floatright {\n clear: right;\n float: right;\n position: relative;\n margin: 0 0 .5em .5em;\n border: 0;\n/*\n border: .5em solid white;\n border-width: .5em 0 .8em 1.4em;\n*/\n}\ndiv.floatright p { font-style: italic; }\ndiv.floatleft, table.floatleft {\n float: left;\n position: relative;\n margin: 0 .5em .5em 0;\n border: 0;\n/*\n margin: .3em .5em .5em 0;\n border: .5em solid white;\n border-width: .5em 1.4em .8em 0;\n*/\n}\ndiv.floatleft p { font-style: italic; }\n/* thumbnails */\ndiv.thumb {\n margin-bottom: .5em;\n border-style: solid;\n border-color: white;\n width: auto;\n}\ndiv.thumb div {\n border: 1px solid #ccc;\n padding: 3px !important;\n background-color: #f9f9f9;\n font-size: 94%;\n text-align: center;\n overflow: hidden;\n}\ndiv.thumb div a img {\n border: 1px solid #ccc;\n}\ndiv.thumb div div.thumbcaption {\n border: none;\n text-align: left;\n line-height: 1.4em;\n padding: .3em 0 .1em 0;\n}\ndiv.magnify {\n float: right;\n border: none !important;\n background: none !important;\n}\ndiv.magnify a, div.magnify img {\n display: block;\n border: none !important;\n background: none !important;\n}\ndiv.tright {\n clear: right;\n float: right;\n border-width: .5em 0 .8em 1.4em;\n}\ndiv.tleft {\n float: left;\n margin-right: .5em;\n border-width: .5em 1.4em .8em 0;\n}\n\n.hiddenStructure {\n display: none;\n speak: none;\n}\nimg.tex {\n vertical-align: middle;\n}\nspan.texhtml {\n font-family: serif;\n}\n\n/*\n** classes for special content elements like town boxes\n** intended to be referenced directly from the wiki src\n*/\n\n/*\n** User styles\n*/\n/* table standards */\ntable.rimage {\n float: right;\n position: relative;\n margin-left: 1em;\n margin-bottom: 1em;\n text-align: center;\n}\n.toccolours {\n border: 1px solid #aaa;\n background-color: #f9f9f9;\n padding: 5px;\n font-size: 95%;\n}\ndiv.townBox {\n position: relative;\n float: right;\n background: white;\n margin-left: 1em;\n border: 1px solid gray;\n padding: .3em;\n width: 200px;\n overflow: hidden;\n clear: right;\n}\ndiv.townBox dl {\n padding: 0;\n margin: 0 0 .3em;\n font-size: 96%;\n}\ndiv.townBox dl dt {\n background: none;\n margin: .4em 0 0;\n}\ndiv.townBox dl dd {\n margin: .1em 0 0 1.1em;\n background-color: #f3f3f3;\n}\n\n/*\n** edit views etc\n*/\n.special li {\n line-height: 1.4em;\n margin: 0;\n padding: 0;\n}\n\n/* Page history styling */\n/* the auto-generated edit comments */\n.autocomment {\n color: gray;\n}\n#pagehistory span.user {\n margin-left: 1.4em;\n margin-right: .4em;\n}\n#pagehistory span.minor {\n font-weight: bold;\n}\n#pagehistory li {\n border: 1px solid white;\n}\n#pagehistory li.selected {\n background-color: #f9f9f9;\n border: 1px dashed #aaa;\n}\n\n/*\n** Diff rendering\n*/\ntable.diff, td.diff-otitle, td.diff-ntitle {\n background-color: white;\n}\ntd.diff-addedline {\n background: #cfc;\n font-size: smaller;\n}\ntd.diff-deletedline {\n background: #ffa;\n font-size: smaller;\n}\ntd.diff-context {\n background: #eee;\n font-size: smaller;\n}\nspan.diffchange {\n color: red;\n font-weight: bold;\n}\n\n/*\n** keep the whitespace in front of the ^=, hides rule from konqueror\n** this is css3, the validator doesn't like it when validating as css2\n*/\n#bodyContent a.external,\n#bodyContent a[href ^="gopher://"] {\n background: url(external.png) center right no-repeat;\n padding-right: 13px;\n}\n#bodyContent a[href ^="https://"],\n.link-https {\n background: url(lock_icon.gif) center right no-repeat;\n padding-right: 16px;\n}\n#bodyContent a[href ^="mailto:"],\n.link-mailto {\n background: url(mail_icon.gif) center right no-repeat;\n padding-right: 18px;\n}\n#bodyContent a[href ^="news://"] {\n background: url(news_icon.png) center right no-repeat;\n padding-right: 18px;\n}\n#bodyContent a[href ^="ftp://"],\n.link-ftp {\n background: url(file_icon.gif) center right no-repeat;\n padding-right: 18px;\n}\n#bodyContent a[href ^="irc://"],\n.link-irc {\n background: url(discussionitem_icon.gif) center right no-repeat;\n padding-right: 18px;\n}\n/* disable interwiki styling */\n#bodyContent a.extiw,\n#bodyContent a.extiw:active {\n color: #36b;\n background: none;\n padding: 0;\n}\n#bodyContent a.external {\n color: #36b;\n}\n/* this can be used in the content area to switch off\nspecial external link styling */\n#bodyContent .plainlinks a {\n background: none !important;\n padding: 0 !important;\n}\n/*\n** Structural Elements\n*/\n\n/*\n** general portlet styles (elements in the quickbar)\n*/\n.portlet {\n border: none;\n margin: 0 0 .5em;\n padding: 0;\n float: none;\n width: 11.6em;\n overflow: hidden;\n}\n.portlet h4 {\n font-size: 95%;\n font-weight: normal;\n white-space: nowrap;\n}\n.portlet h5 {\n background: transparent;\n padding: 0 1em 0 .5em;\n display: inline;\n height: 1em;\n text-transform: lowercase;\n font-size: 91%;\n font-weight: normal;\n white-space: nowrap;\n}\n.portlet h6 {\n background: #ffae2e;\n border: 1px solid #2f6fab;\n border-style: solid solid none solid;\n padding: 0 1em 0 1em;\n text-transform: lowercase;\n display: block;\n font-size: 1em;\n height: 1.2em;\n font-weight: normal;\n white-space: nowrap;\n}\n.pBody {\n font-size: 95%;\n background-color: white;\n color: black;\n border-collapse: collapse;\n border: 1px solid #aaa;\n padding: 0 .8em .3em .5em;\n}\n.portlet h1,\n.portlet h2,\n.portlet h3,\n.portlet h4 {\n margin: 0;\n padding: 0;\n}\n.portlet ul {\n line-height: 1.5em;\n list-style-type: square;\n list-style-image: url(bullet.gif);\n font-size: 95%;\n}\n.portlet li {\n padding: 0;\n margin: 0;\n}\n\n/*\n** Logo properties\n*/\n\n#p-logo {\n z-index: 3;\n position: absolute; /*needed to use z-index */\n top: 0;\n left: 0;\n height: 155px;\n width: 12em;\n overflow: visible;\n}\n#p-logo h5 {\n display: none;\n}\n#p-logo a,\n#p-logo a:hover {\n display: block;\n height: 155px;\n width: 12.2em;\n background-repeat: no-repeat;\n background-position: 35% 50% !important;\n text-decoration: none;\n}\n\n/*\n** the navigation portlet\n*/\n\n#p-navigation {\n position: relative;\n z-index: 3;\n}\n\n#p-navigation .pBody {\n padding-right: 0;\n}\n\n#p-navigation a {\n display: block;\n}\n\n#p-navigation li.active a, #p-navigation li.active a:hover {\n text-decoration: none;\n display: inline;\n font-weight: bold;\n}\n\n\n/*\n** Search portlet\n*/\n#p-search {\n position: relative;\n z-index: 3;\n}\ninput.searchButton {\n margin-top: 1px;\n font-size: 95%;\n}\n#searchGoButton {\n padding-left: .5em;\n padding-right: .5em;\n font-weight: bold;\n}\n#searchInput {\n width: 10.9em;\n margin: 0;\n font-size: 95%;\n}\n#p-search .pBody {\n padding: .5em .4em .4em .4em;\n text-align: center;\n}\n\n/*\n** the personal toolbar\n*/\n\n#p-personal {\n width: 100%;\n white-space: nowrap;\n padding: 0;\n margin: 0;\n position: absolute;\n left: 0;\n top: 0;\n z-index: 0;\n border: none;\n background: none;\n overflow: visible;\n line-height: 1.2em;\n}\n\n#p-personal h5 {\n display: none;\n}\n#p-personal .portlet,\n#p-personal .pBody {\n padding: 0;\n margin: 0;\n border: none;\n z-index: 0;\n overflow: visible;\n background: none;\n}\n/* this is the ul contained in the portlet */\n#p-personal ul {\n border: none;\n line-height: 1.4em;\n color: #2f6fab;\n padding: 0 2em 0 3em;\n margin: 0;\n text-align: right;\n text-transform: lowercase;\n list-style: none;\n z-index: 0;\n background: none;\n cursor: default;\n}\n#p-personal li {\n z-index: 0;\n border: none;\n padding: 0;\n display: inline;\n color: #2f6fab;\n margin-left: 1em;\n line-height: 1.2em;\n background: none;\n}\n#p-personal li.active {\n font-weight: bold;\n}\n#p-personal li a {\n text-decoration: none;\n color: #005896;\n padding-bottom: .2em;\n background: none;\n}\n#p-personal li a:hover {\n background-color: white;\n padding-bottom: .2em;\n text-decoration: none;\n}\n#p-personal li.active a:hover {\n background-color: transparent;\n}\n/* the icon in front of the user name, single quotes\nin bg url to hide it from iemac */\nli#pt-userpage,\nli#pt-anonuserpage,\nli#pt-login {\n background: url(user.gif) top left no-repeat;\n padding-left: 20px;\n text-transform: none;\n}\n\n/*\n** the page-related actions- page/talk, edit etc\n*/\n#p-cactions {\n position: absolute;\n top: 1.3em;\n left: 11.5em;\n margin: 0;\n white-space: nowrap;\n width: 76%;\n line-height: 1.1em;\n overflow: visible;\n background: none;\n border-collapse: collapse;\n padding-left: 1em;\n list-style: none;\n font-size: 95%;\n}\n#p-cactions .hiddenStructure {\n display: none;\n}\n#p-cactions ul {\n list-style: none;\n}\n#p-cactions li {\n display: inline;\n border: 1px solid #aaa;\n border-bottom: none;\n padding: 0 0 .1em 0;\n margin: 0 .3em 0 0;\n overflow: visible;\n background: white;\n}\n#p-cactions li.selected {\n border-color: #fabd23;\n padding: 0 0 .2em 0;\n font-weight: bold;\n}\n#p-cactions li a {\n background-color: #fbfbfb;\n color: #002bb8;\n border: none;\n padding: 0 .8em .3em;\n text-decoration: none;\n text-transform: lowercase;\n position: relative;\n z-index: 0;\n margin: 0;\n}\n#p-cactions li.selected a {\n z-index: 3;\n background-color: #fff;\n padding: 0 1em .2em!important;\n}\n#p-cactions .new a {\n color: #ba0000;\n}\n#p-cactions li a:hover {\n z-index: 3;\n text-decoration: none;\n background-color: #fff;\n}\n#p-cactions h5 {\n display: none;\n}\n#p-cactions li.istalk {\n margin-right: 0;\n}\n#p-cactions li.istalk a {\n padding-right: .5em;\n}\n#p-cactions #ca-addsection a {\n padding-left: .4em;\n padding-right: .4em;\n}\n/* offsets to distinguish the tab groups */\nli#ca-talk {\n margin-right: 1.6em;\n}\nli#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {\n margin-left: 1.6em;\n}\n\n/*\n** the remaining portlets\n*/\n#p-tbx,\n#p-lang {\n position: relative;\n z-index: 3;\n}\n\n/* TODO: #t-iscite is only used by the Cite extension, come up with some\n * system which allows extensions to add to this file on the fly\n */\n#t-ispermalink, #t-iscite {\n color: #999;\n}\n/*\n** footer\n*/\n#footer {\n background-color: white;\n border-top: 1px solid #fabd23;\n border-bottom: 1px solid #fabd23;\n margin: .6em 0 1em 0;\n padding: .4em 0 1.2em 0;\n text-align: center;\n font-size: 90%;\n}\n#footer li {\n display: inline;\n margin: 0 1.3em;\n}\n/* hide from incapable browsers */\nhead:first-child+body #footer li { white-space: nowrap; }\n#f-poweredbyico, #f-copyrightico {\n margin: 0 8px;\n position: relative;\n top: -2px; /* Bump it up just a tad */\n}\n#f-poweredbyico {\n float: right;\n height: 1%;\n}\n#f-copyrightico {\n float: left;\n height: 1%;\n}\n\n/* js pref toc */\n#preftoc {\n margin: 0;\n padding: 0;\n width: 100%;\n clear: both;\n}\n#preftoc li {\n margin: 1px -2px 1px 2px;\n float: left;\n padding: 2px 0 3px 0;\n background-color: #f0f0f0;\n color: #000;\n border: 1px solid #fff;\n border-right-color: #716f64;\n border-bottom: 0;\n position: relative;\n white-space: nowrap;\n list-style-type: none;\n list-style-image: none;\n z-index: 3;\n}\n#preftoc li.selected {\n font-weight: bold;\n background-color: #f9f9f9;\n border: 1px solid #aaa;\n border-bottom: none;\n cursor: default;\n top: 1px;\n padding-top: 2px;\n margin-right: -3px;\n}\n#preftoc > li.selected {\n top: 2px;\n}\n#preftoc a,\n#preftoc a:active {\n display: block;\n color: #000;\n padding: 0 .7em;\n position: relative;\n text-decoration: none;\n}\n#preftoc li.selected a {\n cursor: default;\n text-decoration: none;\n}\n#prefcontrol {\n padding-top: 2em;\n clear: both;\n}\n#preferences {\n margin: 0;\n border: 1px solid #aaa;\n clear: both;\n padding: 1.5em;\n background-color: #F9F9F9;\n}\n.prefsection {\n border: none;\n padding: 0;\n margin: 0;\n}\n.prefsection fieldset {\n border: 1px solid #aaa;\n float: left;\n margin-right: 2em;\n}\n.prefsection legend {\n font-weight: bold; \n}\n.prefsection table, .prefsection legend {\n background-color: #F9F9F9;\n}\n.mainLegend {\n display: none;\n}\ndiv.prefsectiontip {\n font-size: 95%;\n margin-top: 0;\n background-color: #FFC1C1;\n padding: .2em .7em;\n clear: both;\n}\n.btnSavePrefs {\n font-weight: bold;\n padding-left: .3em;\n padding-right: .3em;\n}\n\n.preferences-login {\n clear: both;\n margin-bottom: 1.5em;\n}\n\n.prefcache {\n font-size: 90%;\n margin-top: 2em;\n}\n\ndiv#userloginForm form,\ndiv#userlogin form#userlogin2 {\n margin: 0 3em 1em 0;\n border: 1px solid #aaa;\n clear: both;\n padding: 1.5em 2em;\n background-color: #f9f9f9;\n float: left;\n}\n\ndiv#userloginForm table,\ndiv#userlogin form#userlogin2 table {\n background-color: #f9f9f9;\n}\n\ndiv#userloginForm h2,\ndiv#userlogin form#userlogin2 h2 {\n padding-top: 0;\n}\n\ndiv#userlogin .captcha {\n border: 1px solid #bbb;\n padding: 1.5em 2em;\n width: 400px;\n background-color: white;\n}\n\n\n#userloginprompt, #languagelinks {\n font-size: 85%;\n}\n\n#login-sectiontip {\n font-size: 85%;\n line-height: 1.2;\n padding-top: 2em;\n}\n\n#userlogin .loginText, #userlogin .loginPassword {\n width: 12em;\n}\n\n#userloginlink a, #wpLoginattempt, #wpCreateaccount {\n font-weight: bold;\n}\n\n/*\n** IE/Mac fixes, hope to find a validating way to move this\n** to a separate stylesheet. This would work but doesn't validate:\n** @import("IEMacFixes.css");\n*/\n/* tabs: border on the a, not the div */\n* > html #p-cactions li { border: none; }\n* > html #p-cactions li a {\n border: 1px solid #aaa;\n border-bottom: none;\n}\n* > html #p-cactions li.selected a { border-color: #fabd23; }\n/* footer icons need a fixed width */\n* > html #f-poweredbyico,\n* > html #f-copyrightico { width: 88px; }\n* > html #bodyContent,\n* > html #bodyContent pre {\n overflow-x: auto;\n width: 100%;\n padding-bottom: 25px;\n}\n\n/* more IE fixes */\n/* float/negative margin brokenness */\n* html #footer {margin-top: 0;}\n* html #column-content {\n display: inline;\n margin-bottom: 0;\n}\n* html div.editsection { font-size: smaller; }\n#pagehistory li.selected { position: relative; }\n\n/* Mac IE 5.0 fix; floated content turns invisible */\n* > html #column-content {\n float: none;\n}\n* > html #column-one {\n position: absolute;\n left: 0;\n top: 0;\n}\n* > html #footer {\n margin-left: 13.2em;\n}\n.redirectText {\n font-size: 150%;\n margin: 5px;\n}\n\n.printfooter {\n display: none;\n}\n\n.not-patrolled {\n background-color: #ffa;\n}\ndiv.patrollink {\n font-size: 75%;\n text-align: right;\n}\nspan.newpage, span.minor, span.searchmatch, span.bot {\n font-weight: bold;\n}\nspan.unpatrolled {\n font-weight: bold;\n color: red;\n}\n\nspan.searchmatch {\n color: red;\n}\n.sharedUploadNotice {\n font-style: italic;\n}\n\nspan.updatedmarker {\n color: black;\n background-color: #0f0;\n}\nspan.newpageletter {\n font-weight: bold;\n color: black;\n background-color: yellow;\n}\nspan.minoreditletter {\n color: black;\n background-color: #c5ffe6;\n}\n\ntable.gallery {\n border: 1px solid #ccc;\n margin: 2px;\n padding: 2px;\n background-color: white;\n}\n\ntable.gallery tr {\n vertical-align: top;\n}\n\ntable.gallery td {\n vertical-align: top;\n background-color: #f9f9f9;\n border: solid 2px white;\n}\n\ntable.gallery td.galleryheader {\n text-align: center;\n font-weight: bold;\n}\n\ndiv.gallerybox {\n margin: 2px;\n width: 150px;\n}\n\ndiv.gallerybox div.thumb {\n text-align: center;\n border: 1px solid #ccc;\n margin: 2px;\n}\n\ndiv.gallerytext {\n font-size: 94%;\n padding: 2px 4px;\n}\n\nspan.comment {\n font-style: italic;\n}\n\nspan.changedby {\n font-size: 95%;\n}\n\n.previewnote {\n text-indent: 3em;\n color: #c00;\n border-bottom: 1px solid #aaa;\n padding-bottom: 1em;\n margin-bottom: 1em;\n}\n\n.previewnote p {\n margin: 0;\n padding: 0;\n}\n\n.editExternally {\n border: 1px solid gray;\n background-color: #ffffff;\n padding: 3px;\n margin-top: 0.5em;\n float: left;\n font-size: small;\n text-align: center;\n}\n.editExternallyHelp {\n font-style: italic;\n color: gray;\n}\n\nli span.deleted, span.history-deleted {\n text-decoration: line-through;\n color: #888;\n font-style: italic;\n}\n\n.toggle {\n margin-left: 2em;\n text-indent: -2em;\n}\n\n/* Classes for EXIF data display */\ntable.mw_metadata {\n font-size: 0.8em;\n margin-left: 0.5em;\n margin-bottom: 0.5em;\n width: 300px;\n}\n\ntable.mw_metadata caption {\n font-weight: bold;\n}\n\ntable.mw_metadata th {\n font-weight: normal;\n}\n\ntable.mw_metadata td {\n padding: 0.1em;\n}\n\ntable.mw_metadata {\n border: none;\n border-collapse: collapse;\n}\n\ntable.mw_metadata td, table.mw_metadata th {\n text-align: center;\n border: 1px solid #aaaaaa;\n padding-left: 0.1em;\n padding-right: 0.1em;\n}\n\ntable.mw_metadata th {\n background-color: #f9f9f9;\n}\n\ntable.mw_metadata td {\n background-color: #fcfcfc;\n}\n\ntable.collapsed tr.collapsable {\n display: none;\n}\n\n\n/* filetoc */\nul#filetoc {\n text-align: center;\n border: 1px solid #aaaaaa;\n background-color: #f9f9f9;\n padding: 5px;\n font-size: 95%;\n margin-bottom: 0.5em;\n margin-left: 0;\n margin-right: 0;\n}\n\n#filetoc li {\n display: inline;\n list-style-type: none;\n padding-right: 2em;\n}\n\n/* @bug 1714 */\ninput#wpSave, input#wpDiff {\n margin-right: 0.33em;\n}\n\n#editform .editOptions {\n display: inline;\n}\n\n#wpSave {\n font-weight: bold;\n}\n\n/* Classes for article validation */\n\ntable.revisionform_default {\n border: 1px solid #000000;\n}\n\ntable.revisionform_focus {\n border: 1px solid #000000;\n background-color:#00BBFF;\n}\n\ntr.revision_tr_default {\n background-color:#EEEEEE;\n}\n\ntr.revision_tr_first {\n background-color:#DDDDDD;\n}\n\np.revision_saved {\n color: green;\n font-weight:bold;\n}\n\n#mw_trackbacks {\n border: solid 1px #bbbbff;\n background-color: #eeeeff;\n padding: 0.2em;\n}\n\n\n/* Allmessages table */\n\n#allmessagestable th {\n background-color: #b2b2ff;\n}\n\n#allmessagestable tr.orig {\n background-color: #ffe2e2;\n}\n\n#allmessagestable tr.new {\n background-color: #e2ffe2;\n}\n\n#allmessagestable tr.def {\n background-color: #f0f0ff;\n}\n\n\n/* noarticletext */\ndiv.noarticletext {\n border: 1px solid #ccc;\n background: #fff;\n padding: .2em 1em;\n color: #000;\n}\n\ndiv#searchTargetContainer {\n left: 10px;\n top: 10px;\n width: 90%;\n background: white;\n}\n\ndiv#searchTarget {\n padding: 3px;\n margin: 5px;\n background: #F0F0F0;\n border: solid 1px blue;\n}\n\ndiv#searchTarget ul li {\n list-style: none;\n}\n\ndiv#searchTarget ul li:before {\n color: orange;\n content: "\s00BB \s0020";\n}\n\ndiv.multipageimagenavbox {\n border: solid 1px silver;\n padding: 4px;\n margin: 1em;\n -moz-border-radius: 6px;\n background: #f0f0f0;\n}\n\ndiv.multipageimagenavbox div.thumb {\n border: none;\n margin-left: 2em;\n margin-right: 2em;\n}\n\ndiv.multipageimagenavbox hr {\n margin: 6px;\n}\n\ntable.multipageimage td {\n text-align: center;\n}\n//}}}
/***\nFrom:\nhttp://meta.wikimedia.org/wiki/MediaWiki:Common.css\n***/\n/*{{{*/\n/* wikitable/prettytable class for skinning normal tables */\ntable.wikitable,\ntable.prettytable {\n margin: 1em 1em 1em 0;\n background: #f9f9f9;\n border: 1px #aaaaaa solid;\n border-collapse: collapse;\n}\n\ntable.wikitable th, table.wikitable td,\ntable.prettytable th, table.prettytable td {\n border: 1px #aaaaaa solid;\n padding: 0.2em;\n}\n\ntable.wikitable th,\ntable.prettytable th {\n background: #f2f2f2;\n text-align: center;\n}\n\ntable.wikitable caption,\ntable.prettytable caption {\n margin-left: inherit;\n margin-right: inherit;\n}\n\n.allpagesredirect {\n font-style: italic;\n}\n\n/* Infobox template style */\n\n.infobox {\n border: 1px solid #aaaaaa;\n background-color: #f9f9f9;\n color: black;\n margin-bottom: 0.5em;\n margin-left: 1em;\n padding: 0.2em;\n float: right;\n clear: right;\n}\n.infobox td,\n.infobox th {\n vertical-align: top;\n}\n.infobox caption {\n font-size: larger;\n margin-left: inherit;\n}\n.infobox.bordered {\n border-collapse: collapse;\n}\n.infobox.bordered td,\n.infobox.bordered th {\n border: 1px solid #aaaaaa;\n}\n.infobox.bordered .borderless td,\n.infobox.bordered .borderless th {\n border: 0;\n}\n\n.infobox.sisterproject {\n width: 20em;\n font-size: 90%;\n}\n\n/* Removes useless links from printout */\n@media print {\n #privacy, #about, #disclaimer {display:none;}\n}\n\n.plainlinksneverexpand a {background: none !important; padding: 0 !important}\n\n/* log formatting */\n.logtable pre {\n margin:0;\n padding:0;\n border:0;\n}\n/*}}}*/
/***\n\nAbridged version of:\nhttp://en.wikipedia.org/skins-1.5/monobook/main.css\nfor use in TiddlyWiki.\n\n** MediaWiki 'monobook' style sheet for CSS2-capable browsers.\n** Copyright Gabriel Wicke - http://wikidev.net/\n** License: GPL (http://www.gnu.org/copyleft/gpl.html)\n**\n** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John\n** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher,\n** Michael Zeltner and Geir Bækholt)\n** All you guys rock :)\n\n***/\n\n/*{{{*/\n#column-content {\n width: 100%;\n float: right;\n margin: 0 0 .6em -12.2em;\n padding: 0;\n}\n#content {\n margin: 2.8em 0 0 12.2em;\n padding: 0 1em 1.5em 1em;\n background: white;\n color: black;\n border: 1px solid #aaa;\n border-right: none;\n line-height: 1.5em;\n position: relative;\n z-index: 2;\n}\n#column-one {\n padding-top: 160px;\n}\n/* the left column width is specified in class .portlet */\n\n/* Font size:\n** We take advantage of keyword scaling- browsers won't go below 9px\n** More at http://www.w3.org/2003/07/30-font-size\n** http://style.cleverchimp.com/font_size_intervals/altintervals.html\n*/\n\n.visualClear {\n clear: both;\n}\n\n/* general styles */\n\ntable {\n font-size: 100%;\n color: black;\n}\na {\n text-decoration: none;\n color: #002bb8;\n background: none;\n}\na:visited {\n color: #5a3696;\n}\na:active {\n color: #faa700;\n}\na:hover {\n text-decoration: underline;\n}\na.stub {\n color: #772233;\n}\na.new, #p-personal a.new {\n color: #ba0000;\n}\na.new:visited, #p-personal a.new:visited {\n color: #a55858;\n}\n\nimg {\n border: none;\n vertical-align: middle;\n}\np {\n margin: .4em 0 .5em 0;\n line-height: 1.5em;\n}\np img {\n margin: 0;\n}\n\nhr {\n height: 1px;\n color: #aaa;\n background-color: #aaa;\n border: 0;\n margin: .2em 0 .2em 0;\n}\n\nh1, h2, h3, h4, h5, h6 {\n color: black;\n background: none;\n font-weight: normal;\n margin: 0;\n padding-top: .5em;\n padding-bottom: .17em;\n border-bottom: 1px solid #aaa;\n}\nh1 { font-size: 188%; }\nh2 { font-size: 150%; }\nh3, h4, h5, h6 {\n border-bottom: none;\n font-weight: bold;\n}\nh3 { font-size: 132%; }\nh4 { font-size: 116%; }\nh5 { font-size: 100%; }\nh6 { font-size: 80%; }\n\nul {\n line-height: 1.5em;\n list-style-type: square;\n margin: .3em 0 0 1.5em;\n padding: 0;\n list-style-image: url(bullet.gif);\n}\nol {\n line-height: 1.5em;\n margin: .3em 0 0 3.2em;\n padding: 0;\n list-style-image: none;\n}\nli {\n margin-bottom: .1em;\n}\ndt {\n font-weight: bold;\n margin-bottom: .1em;\n}\ndl {\n margin-top: .2em;\n margin-bottom: .5em;\n}\ndd {\n line-height: 1.5em;\n margin-left: 2em;\n margin-bottom: .1em;\n}\n\nfieldset {\n border: 1px solid #2f6fab;\n margin: 1em 0 1em 0;\n padding: 0 1em 1em;\n line-height: 1.5em;\n}\nlegend {\n padding: .5em;\n font-size: 95%;\n}\nform {\n border: none;\n margin: 0;\n}\n\ntextarea {\n width: 100%;\n padding: .1em;\n}\n\ninput.historysubmit {\n padding: 0 .3em .3em .3em !important;\n font-size: 94%;\n cursor: pointer;\n height: 1.7em !important;\n margin-left: 1.6em;\n}\nselect {\n vertical-align: top;\n}\nabbr, acronym, .explain {\n border-bottom: 1px dotted black;\n color: black;\n background: none;\n cursor: help;\n}\nq {\n font-family: Times, "Times New Roman", serif;\n font-style: italic;\n}\ncode {\n background-color: #f9f9f9;\n}\npre {\n padding: 1em;\n border: 1px dashed #2f6fab;\n color: black;\n background-color: #f9f9f9;\n line-height: 1.1em;\n}\n\n/*\n** the main content area\n*/\n\n#siteSub {\n display: none;\n}\n\n#jump-to-nav {\n display: none;\n}\n\n#contentSub, #contentSub2 {\n font-size: 84%;\n line-height: 1.2em;\n margin: 0 0 1.4em 1em;\n color: #7d7d7d;\n width: auto;\n}\nspan.subpages {\n display: block;\n}\n\n/* Some space under the headers in the content area */\n#bodyContent h1, #bodyContent h2 {\n margin-bottom: .6em;\n}\n#bodyContent h3, #bodyContent h4, #bodyContent h5 {\n margin-bottom: .3em;\n}\n.firstHeading {\n margin-bottom: .1em;\n}\n\n/* user notification thing */\n.usermessage {\n background-color: #ffce7b;\n border: 1px solid #ffa500;\n color: black;\n font-weight: bold;\n margin: 2em 0 1em;\n padding: .5em 1em;\n vertical-align: middle;\n}\n#siteNotice {\n text-align: center;\n font-size: 95%;\n padding: 0 .9em;\n}\n#siteNotice p {\n margin: 0;\n padding: 0;\n}\n.error {\n color: red;\n font-size: larger;\n}\n.errorbox, .successbox {\n font-size: larger;\n border: 2px solid;\n padding: .5em 1em;\n float: left;\n margin-bottom: 2em;\n color: #000;\n}\n.errorbox {\n border-color: red;\n background-color: #fff2f2;\n}\n.successbox {\n border-color: green;\n background-color: #dfd;\n}\n.errorbox h2, .successbox h2 {\n font-size: 1em;\n font-weight: bold;\n display: inline;\n margin: 0 .5em 0 0;\n border: none;\n}\n\n#catlinks {\n border: 1px solid #aaa;\n background-color: #f9f9f9;\n padding: 5px;\n margin-top: 1em;\n clear: both;\n}\n\n/* emulate center */\n.center {\n width: 100%;\n text-align: center;\n}\n*.center * {\n margin-left: auto;\n margin-right: auto;\n}\n/* small for tables and similar */\n.small, .small * {\n font-size: 94%;\n}\ntable.small {\n font-size: 100%;\n}\n\n/*\n** content styles\n*/\n\n#toc,\n.toc,\n.mw-warning {\n border: 1px solid #aaa;\n background-color: #f9f9f9;\n padding: 5px;\n font-size: 95%;\n}\n#toc h2,\n.toc h2 {\n display: inline;\n border: none;\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n}\n#toc #toctitle,\n.toc #toctitle,\n#toc .toctitle,\n.toc .toctitle {\n text-align: center;\n}\n#toc ul,\n.toc ul {\n list-style-type: none;\n list-style-image: none;\n margin-left: 0;\n padding-left: 0;\n text-align: left;\n}\n#toc ul ul,\n.toc ul ul {\n margin: 0 0 0 2em;\n}\n#toc .toctoggle,\n.toc .toctoggle {\n font-size: 94%;\n}\n\n.mw-warning {\n margin-left: 50px;\n margin-right: 50px;\n text-align: center;\n}\n\n/* images */\ndiv.floatright, table.floatright {\n clear: right;\n float: right;\n position: relative;\n margin: 0 0 .5em .5em;\n border: 0;\n}\ndiv.floatright p { font-style: italic; }\ndiv.floatleft, table.floatleft {\n float: left;\n position: relative;\n margin: 0 .5em .5em 0;\n border: 0;\n}\ndiv.floatleft p { font-style: italic; }\n/* thumbnails */\ndiv.thumb {\n margin-bottom: .5em;\n border-style: solid;\n border-color: white;\n width: auto;\n}\ndiv.thumb div {\n border: 1px solid #ccc;\n padding: 3px !important;\n background-color: #f9f9f9;\n font-size: 94%;\n text-align: center;\n overflow: hidden;\n}\ndiv.thumb div a img {\n border: 1px solid #ccc;\n}\ndiv.thumb div div.thumbcaption {\n border: none;\n text-align: left;\n line-height: 1.4em;\n padding: .3em 0 .1em 0;\n}\ndiv.magnify {\n float: right;\n border: none !important;\n background: none !important;\n}\ndiv.magnify a, div.magnify img {\n display: block;\n border: none !important;\n background: none !important;\n}\ndiv.tright {\n clear: right;\n float: right;\n border-width: .5em 0 .8em 1.4em;\n}\ndiv.tleft {\n float: left;\n margin-right: .5em;\n border-width: .5em 1.4em .8em 0;\n}\n\n.hiddenStructure {\n display: none;\n speak: none;\n}\nimg.tex {\n vertical-align: middle;\n}\nspan.texhtml {\n font-family: serif;\n}\n\n/*\n** User styles\n*/\n/* table standards */\ntable.rimage {\n float: right;\n position: relative;\n margin-left: 1em;\n margin-bottom: 1em;\n text-align: center;\n}\n.toccolours {\n border: 1px solid #aaa;\n background-color: #f9f9f9;\n padding: 5px;\n font-size: 95%;\n}\ndiv.townBox {\n position: relative;\n float: right;\n background: white;\n margin-left: 1em;\n border: 1px solid gray;\n padding: .3em;\n width: 200px;\n overflow: hidden;\n clear: right;\n}\ndiv.townBox dl {\n padding: 0;\n margin: 0 0 .3em;\n font-size: 96%;\n}\ndiv.townBox dl dt {\n background: none;\n margin: .4em 0 0;\n}\ndiv.townBox dl dd {\n margin: .1em 0 0 1.1em;\n background-color: #f3f3f3;\n}\n\n/*\n** edit views etc\n*/\n.special li {\n line-height: 1.4em;\n margin: 0;\n padding: 0;\n}\n\n\n/*\n** Structural Elements\n*/\n\n/*\n** footer\n*/\n#footer {\n background-color: white;\n border-top: 1px solid #fabd23;\n border-bottom: 1px solid #fabd23;\n margin: .6em 0 1em 0;\n padding: .4em 0 1.2em 0;\n text-align: center;\n font-size: 90%;\n}\n#footer li {\n display: inline;\n margin: 0 1.3em;\n}\n/* hide from incapable browsers */\nhead:first-child+body #footer li { white-space: nowrap; }\n#f-poweredbyico, #f-copyrightico {\n margin: 0 8px;\n position: relative;\n top: -2px; /* Bump it up just a tad */\n}\n#f-poweredbyico {\n float: right;\n height: 1%;\n}\n#f-copyrightico {\n float: left;\n height: 1%;\n}\n\n/* js pref toc */\n#preftoc {\n margin: 0;\n padding: 0;\n width: 100%;\n clear: both;\n}\n#preftoc li {\n margin: 1px -2px 1px 2px;\n float: left;\n padding: 2px 0 3px 0;\n background-color: #f0f0f0;\n color: #000;\n border: 1px solid #fff;\n border-right-color: #716f64;\n border-bottom: 0;\n position: relative;\n white-space: nowrap;\n list-style-type: none;\n list-style-image: none;\n z-index: 3;\n}\n#preftoc li.selected {\n font-weight: bold;\n background-color: #f9f9f9;\n border: 1px solid #aaa;\n border-bottom: none;\n cursor: default;\n top: 1px;\n padding-top: 2px;\n margin-right: -3px;\n}\n#preftoc > li.selected {\n top: 2px;\n}\n#preftoc a,\n#preftoc a:active {\n display: block;\n color: #000;\n padding: 0 .7em;\n position: relative;\n text-decoration: none;\n}\n#preftoc li.selected a {\n cursor: default;\n text-decoration: none;\n}\n#prefcontrol {\n padding-top: 2em;\n clear: both;\n}\n#preferences {\n margin: 0;\n border: 1px solid #aaa;\n clear: both;\n padding: 1.5em;\n background-color: #F9F9F9;\n}\n.prefsection {\n border: none;\n padding: 0;\n margin: 0;\n}\n.prefsection fieldset {\n border: 1px solid #aaa;\n float: left;\n margin-right: 2em;\n}\n.prefsection legend {\n font-weight: bold; \n}\n.prefsection table, .prefsection legend {\n background-color: #F9F9F9;\n}\n.mainLegend {\n display: none;\n}\ndiv.prefsectiontip {\n font-size: 95%;\n margin-top: 0;\n background-color: #FFC1C1;\n padding: .2em .7em;\n clear: both;\n}\n.btnSavePrefs {\n font-weight: bold;\n padding-left: .3em;\n padding-right: .3em;\n}\n\n.preferences-login {\n clear: both;\n margin-bottom: 1.5em;\n}\n\n.prefcache {\n font-size: 90%;\n margin-top: 2em;\n}\n\n/*\n** IE/Mac fixes, hope to find a validating way to move this\n** to a separate stylesheet. This would work but doesn't validate:\n** @import("IEMacFixes.css");\n*/\n/* tabs: border on the a, not the div */\n* > html #p-cactions li { border: none; }\n* > html #p-cactions li a {\n border: 1px solid #aaa;\n border-bottom: none;\n}\n* > html #p-cactions li.selected a { border-color: #fabd23; }\n/* footer icons need a fixed width */\n* > html #f-poweredbyico,\n* > html #f-copyrightico { width: 88px; }\n* > html #bodyContent,\n* > html #bodyContent pre {\n overflow-x: auto;\n width: 100%;\n padding-bottom: 25px;\n}\n\n/* more IE fixes */\n/* float/negative margin brokenness */\n* html #footer {margin-top: 0;}\n* html #column-content {\n display: inline;\n margin-bottom: 0;\n}\n* html div.editsection { font-size: smaller; }\n#pagehistory li.selected { position: relative; }\n\n/* Mac IE 5.0 fix; floated content turns invisible */\n* > html #column-content {\n float: none;\n}\n* > html #column-one {\n position: absolute;\n left: 0;\n top: 0;\n}\n* > html #footer {\n margin-left: 13.2em;\n}\n.redirectText {\n font-size: 150%;\n margin: 5px;\n}\n\n.printfooter {\n display: none;\n}\n\n.not-patrolled {\n background-color: #ffa;\n}\ndiv.patrollink {\n font-size: 75%;\n text-align: right;\n}\nspan.newpage, span.minor, span.searchmatch, span.bot {\n font-weight: bold;\n}\nspan.unpatrolled {\n font-weight: bold;\n color: red;\n}\n\nspan.searchmatch {\n color: red;\n}\n.sharedUploadNotice {\n font-style: italic;\n}\n\nspan.updatedmarker {\n color: black;\n background-color: #0f0;\n}\nspan.newpageletter {\n font-weight: bold;\n color: black;\n background-color: yellow;\n}\nspan.minoreditletter {\n color: black;\n background-color: #c5ffe6;\n}\n\ntable.gallery {\n border: 1px solid #ccc;\n margin: 2px;\n padding: 2px;\n background-color: white;\n}\n\ntable.gallery tr {\n vertical-align: top;\n}\n\ntable.gallery td {\n vertical-align: top;\n background-color: #f9f9f9;\n border: solid 2px white;\n}\n\ntable.gallery td.galleryheader {\n text-align: center;\n font-weight: bold;\n}\n\ndiv.gallerybox {\n margin: 2px;\n width: 150px;\n}\n\ndiv.gallerybox div.thumb {\n text-align: center;\n border: 1px solid #ccc;\n margin: 2px;\n}\n\ndiv.gallerytext {\n font-size: 94%;\n padding: 2px 4px;\n}\n\nspan.comment {\n font-style: italic;\n}\n\nspan.changedby {\n font-size: 95%;\n}\n\n.previewnote {\n text-indent: 3em;\n color: #c00;\n border-bottom: 1px solid #aaa;\n padding-bottom: 1em;\n margin-bottom: 1em;\n}\n\n.previewnote p {\n margin: 0;\n padding: 0;\n}\n\n.editExternally {\n border: 1px solid gray;\n background-color: #ffffff;\n padding: 3px;\n margin-top: 0.5em;\n float: left;\n font-size: small;\n text-align: center;\n}\n.editExternallyHelp {\n font-style: italic;\n color: gray;\n}\n\nli span.deleted, span.history-deleted {\n text-decoration: line-through;\n color: #888;\n font-style: italic;\n}\n\n.toggle {\n margin-left: 2em;\n text-indent: -2em;\n}\n\n/* Classes for EXIF data display */\ntable.mw_metadata {\n font-size: 0.8em;\n margin-left: 0.5em;\n margin-bottom: 0.5em;\n width: 300px;\n}\n\ntable.mw_metadata caption {\n font-weight: bold;\n}\n\ntable.mw_metadata th {\n font-weight: normal;\n}\n\ntable.mw_metadata td {\n padding: 0.1em;\n}\n\ntable.mw_metadata {\n border: none;\n border-collapse: collapse;\n}\n\ntable.mw_metadata td, table.mw_metadata th {\n text-align: center;\n border: 1px solid #aaaaaa;\n padding-left: 0.1em;\n padding-right: 0.1em;\n}\n\ntable.mw_metadata th {\n background-color: #f9f9f9;\n}\n\ntable.mw_metadata td {\n background-color: #fcfcfc;\n}\n\ntable.collapsed tr.collapsable {\n display: none;\n}\n\n\n/* filetoc */\nul#filetoc {\n text-align: center;\n border: 1px solid #aaaaaa;\n background-color: #f9f9f9;\n padding: 5px;\n font-size: 95%;\n margin-bottom: 0.5em;\n margin-left: 0;\n margin-right: 0;\n}\n\n#filetoc li {\n display: inline;\n list-style-type: none;\n padding-right: 2em;\n}\n\n/* @bug 1714 */\ninput#wpSave, input#wpDiff {\n margin-right: 0.33em;\n}\n\n#editform .editOptions {\n display: inline;\n}\n\n#wpSave {\n font-weight: bold;\n}\n/*}}}*/
/***\n\n** Mediawiki 'monobook' style sheet for CSS2-capable browsers.\n** Copyright Gabriel Wicke - http://wikidev.net/\n** License: GPL\n**\n** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John\n** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher,\n** Michael Zeltner and Geir Bækholt)\n** All you guys rock :)\n\nhttp://en.wikipedia.org/style/monobook/main.css\n\n***/\n\n//{{{\n\n#column-content {\n width: 100%;\n float: right;\n margin: 0 0 0.6em -12.2em;\n padding:0;\n}\n#content {\n margin: 2.8em 0 0 12.2em;\n padding: 0em 1em 1.5em 1em;\n background: White;\n border: 1px solid #aaaaaa;\n border-right: none;\n line-height: 1.5em;\n position: relative;\n z-index: 2;\n}\n#column-one { padding-top: 160px; }\n/* the left column width is specified in class .portlet */\n\n/* Font size:\n** We take advantage of keyword scaling- browsers won't go below 9px\n** More at http://www.w3.org/2003/07/30-font-size\n** http://style.cleverchimp.com/font_size_intervals/altintervals.html\n*/\n\nbody {\n font: x-small sans-serif;\n background: #f9f9f9 url("headbg.jpg") 0px 0px no-repeat;\n color: Black;\n margin: 0;\n padding: 0;\n}\n\n/* scale back up to a sane default */\n#globalWrapper {\n font-size:127%;\n width: 100%;\n margin: 0;\n padding: 0;\n}\n.visualClear { clear: both; }\n\n/* general styles */\n\ntable {\n font-size: 100%;\n background: White;\n}\na {\n text-decoration: none;\n color: #002bb8;\n background: none;\n}\na:visited { color: #5a3696; }\na:active { color: Orange; }\na:hover { text-decoration: underline; }\na.stub { color: #772233; }\na.new,\n#p-personal a.new { color:#ba0000; }\na.new:visited,\n#p-personal a.new:visited { color:#a55858; }\n\nimg {\n border: none;\n vertical-align: middle;\n}\np {\n margin: 0.4em 0em 0.5em 0em;\n line-height: 1.5em;\n}\n\np img { margin: 0; }\n\nhr {\n height: 1px;\n color: #aaaaaa;\n background-color: #aaaaaa;\n border: 0;\n margin: 0.2em 0 0.2em 0;\n}\n\nh1, h2, h3, h4, h5, h6 {\n color: Black;\n background: none;\n font-weight: normal;\n margin: 0;\n padding-top: 0.5em;\n padding-bottom: 0.17em;\n border-bottom: 1px solid #aaaaaa;\n}\nh1 { font-size: 188%; }\nh2 { font-size: 150%; }\nh3, h4, h5, h6 { \n border-bottom: none;\n font-weight: bold;\n}\nh3 { font-size: 132%; }\nh4 { font-size: 116%; }\nh5 { font-size: 100%; }\nh6 { font-size: 80%; }\n\nul { \n line-height: 1.5em;\n list-style-type: square;\n margin: 0.3em 0 0 1.5em;\n padding:0;\n list-style-image: url("bullet.gif");\n}\nol {\n line-height: 1.5em;\n margin: 0.3em 0 0 3.2em;\n padding:0;\n list-style-image: none;\n}\nli { margin-bottom: 0.1em; }\ndt { \n font-weight: bold; \n margin-bottom: 0.1em;\n}\ndl{\n margin-top: 0.2em;\n margin-bottom: 0.5em;\n}\ndd {\n line-height: 1.5em;\n margin-left: 2em;\n margin-bottom: 0.1em;\n}\n\nfieldset {\n border: 1px solid #2f6fab;\n margin: 1em 0em 1em 0em;\n padding: 0em 1em 1em 1em;\n line-height: 1.5em;\n}\nlegend {\n background: White;\n padding: 0.5em;\n font-size: 95%;\n}\nform {\n border: none;\n margin: 0;\n}\n\ntextarea {\n border: 1px solid #2f6fab; \n color: Black;\n background-color: white;\n width: 100%;\n padding: 0.1em;\n overflow: auto;\n}\n/* hide this from ie/mac and konq2.2 */\n@media All {\n head:first-child+body input {\n visibility: visible;\n border: 1px solid #2f6fab; \n color: Black;\n background-color: white;\n vertical-align: middle;\n padding: 0.2em;\n }\n}\ninput.historysubmit {\n padding: 0 0.3em 0.3em 0.3em !important;\n font-size: 94%;\n cursor: pointer;\n height: 1.7em !important;\n margin-left: 1.6em;\n}\ninput[type="radio"],\ninput[type="checkbox"] { border:none; }\nselect {\n border: 1px solid #2f6fab; \n color: Black;\n vertical-align: top;\n}\nabbr, acronym, .explain {\n border-bottom: 1px dotted Black;\n color: Black;\n background: none;\n cursor: help;\n}\nq {\n font-family: Times, "Times New Roman", serif;\n font-style: italic;\n}\n/* disabled for now\nblockquote {\n font-family: Times, "Times New Roman", serif;\n font-style: italic;\n}*/\ncode { background-color: #f9f9f9; }\npre {\n padding: 1em;\n border: 1px dashed #2f6fab;\n color: Black;\n background-color: #f9f9f9;\n line-height: 1.1em;\n}\n\n\n/*\n** the main content area\n*/\n\n#siteSub { display: none; }\n#contentSub {\n font-size: 84%;\n line-height: 1.2em;\n margin: 0 0 1.4em 1em;\n color: #7d7d7d;\n width: auto;\n}\nspan.subpages { display: block; }\n\n/* Some space under the headers in the content area */\n#bodyContent h1, #bodyContent h2 { margin-bottom:0.6em; }\n#bodyContent h3,\n#bodyContent h4,\n#bodyContent h5 {\n margin-bottom: 0.3em;\n}\n.firstHeading { margin-bottom:0.1em; }\n\n/* user notification thing */\n.usermessage {\n background-color: #ffce7b;\n border: 1px solid #ffa500;\n color: Black;\n font-weight: bold;\n margin: 2em 0em 1em 0em;\n padding: 0.5em 1em;\n vertical-align: middle;\n}\n#siteNotice {\n text-align: center;\n font-size: 95%;\n padding: 0 0.9em 0 0.9em;\n}\n#siteNotice p { margin: none; padding: none; }\n.error {\n color: red;\n font-size: larger;\n}\n#catlinks {\n border:1px solid #aaaaaa;\n background-color:#f9f9f9;\n padding:5px;\n margin-top: 1em;\n clear: both;\n}\n/* currently unused, intended to be used by a metadata box\nin the bottom-right corner of the content area */\n.documentDescription {\n /* The summary text describing the document */\n font-weight: bold;\n display: block;\n margin: 1em 0em;\n line-height: 1.5em;\n}\n.documentByLine {\n text-align: right;\n font-size: 90%;\n clear: both;\n font-weight: normal;\n color: #76797c;\n}\n\n/* emulate center */\n.center {\n width: 100%;\n text-align: center;\n}\n*.center * {\n margin-left: auto;\n margin-right: auto;\n}\n/* small for tables and similar */\n.small, .small * { font-size: 94%; }\ntable.small { font-size: 100% }\n\n/*\n** content styles\n*/\n\n#toc { \n /*border:1px solid #2f6fab;*/\n border:1px solid #aaaaaa;\n background-color:#f9f9f9;\n padding:5px;\n font-size: 95%;\n}\n#toc .tocindent { margin-left: 2em; }\n#toc .tocline { margin-bottom: 0px; }\n#toc p { margin: 0 }\n#toc .toctoggle { font-size: 94%; }\n#toc .editsection { \n margin-top: 0.7em; \n font-size: 94%;\n}\n\n/* images */\ndiv.floatright, table.floatright {\n clear: right;\n float: right; \n margin: 0;\n position: relative;\n border: 0.5em solid White;\n border-width: 0.5em 0 0.8em 1.4em;\n}\ndiv.floatright p { font-style: italic; } \ndiv.floatleft, table.floatleft {\n float: left; \n margin: 0.3em 0.5em 0.5em 0;\n position: relative;\n border: 0.5em solid White;\n border-width: 0.5em 1.4em 0.8em 0;\n}\ndiv.floatleft p { font-style: italic; } \n/* thumbnails */\ndiv.thumb {\n margin-bottom: 0.5em;\n border-style: solid; border-color: White;\n width: auto;\n}\ndiv.thumb div {\n border:1px solid #cccccc;\n padding: 3px !important;\n background-color:#f9f9f9;\n font-size: 94%;\n text-align: center;\n overflow: hidden;\n}\ndiv.thumb div a img {\n border:1px solid #cccccc;\n}\ndiv.thumb div div.thumbcaption {\n border: none;\n text-align: left;\n line-height: 1.4;\n padding: 0.3em 0 0.1em 0;\n}\ndiv.magnify {\n float: right;\n border: none !important;\n background: none !important;\n}\ndiv.magnify a, div.magnify img {\n display: block;\n border: none !important;\n background: none !important;\n}\ndiv.tright {\n clear: right;\n float: right;\n border-width: 0.5em 0 0.8em 1.4em;\n}\ndiv.tleft {\n float: left;\n margin-right:0.5em;\n border-width: 0.5em 1.4em 0.8em 0;\n}\n.urlexpansion,\n.hiddenStructure {\n display: none;\n}\nimg.tex { vertical-align: middle; }\nspan.texhtml { font-family: serif; }\n\n/*\n** classes for special content elements like town boxes\n** intended to be referenced directly from the wiki src\n*/\n\n/*\n** User styles\n*/\n/* table standards */\ntable.rimage {\n float:right; \n position:relative;\n margin-left:1em; \n margin-bottom:1em;\n text-align:center;\n}\n.toccolours { \n border:1px solid #aaaaaa;\n background-color:#f9f9f9;\n padding:5px;\n font-size: 95%;\n}\ndiv.townBox {\n position:relative;\n float:right;\n background:White;\n margin-left:1em;\n border: 1px solid Grey;\n padding:0.3em;\n width: 200px;\n overflow: hidden;\n clear: right;\n}\ndiv.townBox dl {\n padding: 0;\n margin: 0 0 0.3em 0; \n font-size: 96%;\n}\ndiv.townBox dl dt {\n background: none;\n margin: 0.4em 0 0 0;\n}\ndiv.townBox dl dd {\n margin: 0.1em 0 0 1.1em;\n background-color: #f3f3f3;\n}\n\n/*\n** edit views etc\n*/\n.special li {\n line-height: 1.4em;\n margin: 0;\n padding: 0;\n}\n\n/* Page history styling */\n/* the auto-generated edit comments */\n.autocomment { color: gray; }\n#pagehistory span.user { \n margin-left: 1.4em;\n margin-right: 0.4em;\n}\n#pagehistory span.minor { font-weight: bold; }\n#pagehistory li { border: 1px solid White; }\n#pagehistory li.selected { \n background-color:#f9f9f9;\n border:1px dashed #aaaaaa;\n}\n/*\n** Diff rendering\n*/\ntable.diff { background:white; }\ntd.diff-otitle { background:#ffffff; }\ntd.diff-ntitle { background:#ffffff; }\ntd.diff-addedline { \n background:#ccffcc;\n font-size: smaller;\n}\ntd.diff-deletedline { \n background:#ffffaa;\n font-size: smaller;\n}\ntd.diff-context {\n background:#eeeeee;\n font-size: smaller;\n}\nspan.diffchange { color: red; }\n\n/* \n** keep the whitespace in front of the ^=, hides rule from konqueror\n** this is css3, the validator doesn't like it when validating as css2 \n*/\n#bodyContent a[href ^="http://"],\n#bodyContent a[href ^="gopher://"] {\n background: url(external.png) center right no-repeat;\n padding-right: 13px;\n}\n#bodyContent a[href ^="https://"],\n.link-https {\n background: url("lock_icon.gif") center right no-repeat;\n padding-right: 16px;\n}\n#bodyContent a[href ^="mailto:"],\n.link-mailto {\n background: url("mail_icon.gif") center right no-repeat;\n padding-right: 18px;\n}\n#bodyContent a[href ^="news://"] {\n background: url("news_icon.png") center right no-repeat;\n padding-right: 18px;\n}\n#bodyContent a[href ^="ftp://"],\n.link-ftp {\n background: url("file_icon.gif") center right no-repeat;\n padding-right: 18px;\n}\n#bodyContent a[href ^="irc://"],\n.link-irc {\n background: url("discussionitem_icon.gif") center right no-repeat;\n padding-right: 18px;\n}\n/* disable interwiki styling */\n#bodyContent a.extiw,\n#bodyContent a.extiw:active {\n color: #3366bb;\n background: none;\n padding: 0;\n}\n#bodyContent a.external { color: #3366bb; }\n/* this can be used in the content area to switch off\nspecial external link styling */\n#bodyContent .plainlinks a {\n background: none !important;\n padding: 0;\n}\n/*\n** Structural Elements\n*/\n\n/*\n** general portlet styles (elements in the quickbar)\n*/\n.portlet {\n border: none;\n margin: 0 0 0.5em 0em;\n float: none;\n padding: 0;\n width: 11.6em;\n overflow: hidden;\n}\n.portlet h4 {\n font-size: 95%;\n font-weight: normal;\n white-space: nowrap;\n}\n.portlet h5 { \n background: transparent;\n padding: 0em 1em 0em 0.5em;\n text-transform: lowercase;\n display: inline;\n font-size: 91%;\n height: 1em;\n font-weight: normal;\n white-space: nowrap;\n}\n.portlet h6 { \n background: #ffae2e;\n border: 1px solid #2f6fab;\n border-style: solid solid none solid;\n padding: 0em 1em 0em 1em;\n text-transform: lowercase;\n display: block;\n font-size: 1em;\n height: 1.2em;\n font-weight: normal;\n white-space: nowrap;\n}\n.pBody {\n font-size: 95%;\n background: White;\n border-collapse: collapse;\n border: 1px solid #aaaaaa;\n padding: 0 0.8em 0.3em 0.5em;\n}\n.portlet h1, \n.portlet h2, \n.portlet h3, \n.portlet h4 {\n margin: 0;\n padding: 0;\n}\n.portlet ul {\n line-height: 1.5em;\n list-style-type: square;\n list-style-image: url("bullet.gif");\n font-size:95%;\n}\n.portlet li {\n padding:0;\n margin: 0 0 0 0;\n margin-bottom: 0;\n}\n\n/* \n** Logo properties \n*/\n\n#p-logo {\n z-index: 3;\n position:absolute; /*needed to use z-index */\n top: 0;\n left: 0;\n height: 155px;\n width: 12em;\n overflow: visible;\n}\n#p-logo h5 { display: none; }\n#p-logo a,\n#p-logo a:hover {\n display: block;\n height: 155px;\n width: 12.2em;\n background-repeat: no-repeat;\n background-position: 35% 50% !important;\n text-decoration: none;\n}\n\n/*\n** the navigation portlet\n*/\n\n#p-nav {\n position:relative;\n z-index:3;\n}\n\n/*\n** Search portlet\n*/\n#p-search {\n position:relative;\n z-index:3;\n} \n#p-search .pBody {\n text-align: center;\n}\ninput.searchButton {\n margin-top:1px;\n padding: 0 0.4em !important;\n font-size: 95%;\n cursor: pointer;\n background-color: White;\n border: 1px solid #2f6fab; \n}\n#searchInput {\n border: 1px solid #2f6fab; \n width:10.9em;\n margin: 0 0 0 0;\n font-size: 95%;\n}\n#p-search .pBody {\n padding: 0.5em 0.4em 0.4em 0.4em;\n}\n\n/* \n** the personal toolbar\n*/\n\n#p-personal {\n width:100%;\n white-space:nowrap;\n padding:0 0 0 0;\n margin:0;\n position:absolute;\n left:0px;\n top:0px;\n z-index: 0;\n border: none;\n background: none;\n overflow: visible;\n line-height: 1.2em;\n}\n\n#p-personal h5 {\n display:none;\n}\n#p-personal .portlet,\n#p-personal .pBody {\n padding:0;\n margin:0;\n border: none;\n z-index:0;\n overflow: visible;\n background: none;\n}\n/* this is the ul contained in the portlet */\n#p-personal ul {\n border: none;\n line-height: 1.4em;\n color: #2f6fab;\n padding: 0em 2em 0 3em;\n margin: 0;\n text-align: right;\n text-transform: lowercase;\n list-style: none;\n z-index:0;\n background: none;\n}\n#p-personal li {\n z-index:0;\n border:none;\n padding:0;\n display: inline;\n color: #2f6fab;\n margin-left: 1em;\n line-height: 1.2em;\n background: none;\n}\n#p-personal li a {\n text-decoration: none;\n color: #005896;\n padding-bottom: 0.2em;\n background: none;\n}\n#p-personal li a:hover {\n background-color: White;\n padding-bottom: 0.2em;\n text-decoration: none;\n}\n\n/* the icon in front of the user name, single quotes\nin bg url to hide it from iemac */\nli#pt-userpage,\nli#pt-anonuserpage,\nli#pt-login {\n background: url('user.gif') top left no-repeat;\n background-repeat: no-repeat;\n padding-left: 20px;\n text-transform: none;\n}\n\n/*\n** the page-related actions- page/talk, edit etc \n*/\n#p-cactions {\n position:absolute;\n top: 1.3em;\n left: 11.5em;\n margin: 0;\n white-space:nowrap;\n width: 76%;\n line-height: 1.1em;\n overflow: visible;\n background: none;\n border-collapse: collapse;\n padding-left: 1em;\n list-style: none;\n font-size: 95%;\n}\n#p-cactions .hiddenStructure { display: none; }\n#p-cactions ul {\n list-style: none;\n}\n#p-cactions li {\n display: inline;\n border: 1px solid #aaaaaa;\n border-bottom: none;\n padding: 0 0 0.1em 0;\n margin: 0 0.3em 0 0;\n overflow: visible;\n background: White;\n}\n#p-cactions li.selected {\n border-color: #fabd23;\n padding: 0 0 0.2em 0;\n}\n#p-cactions li a {\n background-color: White;\n color: #002bb8;\n border: none;\n padding: 0 0.8em 0.3em 0.8em;\n text-decoration: none;\n text-transform: lowercase;\n position: relative;\n z-index: 0;\n margin: 0;\n}\n#p-cactions .selected a { z-index: 3; }\n#p-cactions .new a { color:#ba0000; }\n#p-cactions li a:hover {\n z-index: 3;\n text-decoration: none;\n}\n#p-cactions h5 { display: none; }\n#p-cactions li.istalk { margin-right: 0; }\n#p-cactions li.istalk a { padding-right: 0.5em; }\n#p-cactions #ca-addsection a { \n padding-left: 0.4em;\n padding-right: 0.4em;\n}\n/* offsets to distinguish the tab groups */\nli#ca-talk { margin-right: 1.6em; }\nli#ca-watch, li#ca-watch { margin-left: 1.6em; }\n\n\n/*\n** the remaining portlets\n*/\n#p-tbx,\n#p-lang {\n position:relative;\n z-index:3;\n}\n\n/*\n** footer\n*/\n#footer {\n background-color: White;\n border-top: 1px solid #fabd23;\n border-bottom: 1px solid #fabd23;\n margin: 0.6em 0em 1em 0em;\n padding: 0.4em 0em 1.2em 0em;\n text-align: center;\n font-size: 90%;\n}\n#footer li {\n display: inline;\n margin: 0 1.3em;\n}\n/* hide from incapable browsers */\nhead:first-child+body #footer li { white-space: nowrap; }\n#f-poweredbyico, #f-copyrightico {\n margin: 0 8px;\n position: relative;\n top: -2px; /* Bump it up just a tad */\n}\n#f-poweredbyico {\n float: right;\n height: 1%;\n}\n#f-copyrightico {\n float: left;\n height: 1%;\n}\n\n/* js pref toc */\n#preftoc { \n float: left;\n margin: 1em 1em 1em 1em;\n width: 13em;\n}\n#preftoc li { border: 1px solid White; }\n#preftoc li.selected { \n background-color:#f9f9f9;\n border:1px dashed #aaaaaa;\n}\n#preftoc a,\n#preftoc a:active {\n display: block;\n color: #0014a6;\n}\n#prefcontrol { \n clear: both;\n float: left;\n margin-top: 1em;\n}\ndiv.prefsectiontip { \n font-size: 95%;\n margin-top: 1em;\n}\nfieldset.operaprefsection { margin-left: 15em }\n\n/* \n** IE/Mac fixes, hope to find a validating way to move this\n** to a separate stylesheet. This would work but doesn't validate: \n** @import("IEMacFixes.css");\n*/\n/* tabs: border on the a, not the div */\n* > html #p-cactions li { border:none; }\n* > html #p-cactions li a {\n border: 1px solid #aaaaaa;\n border-bottom: none;\n}\n* > html #p-cactions li.selected a { border-color: #fabd23; }\n/* footer icons need a fixed width */\n* > html #f-poweredbyico,\n* > html #f-copyrightico { width: 88px; }\n* > html #bodyContent,\n* > html #bodyContent pre {\n overflow-x: auto;\n width: 100%;\n padding-bottom: 25px;\n}\n\n/* more IE fixes */\n/* float/negative margin brokenness */\n* html #footer {margin-top: 0;}\n* html #column-content {\n display: inline;\n margin-bottom: 0;\n}\n* html div.editsection { font-size: smaller; }\n#pagehistory li.selected { position: relative; }\n\n/* Mac IE 5.0 fix; floated content turns invisible */\n* > html #column-content {\n float: none;\n}\n* > html #column-one {\n position: absolute;\n left: 0;\n top: 0;\n}\n* > html #footer {\n margin-left: 13.2em;\n}\n\n.printfooter {\n display: none;\n}\n\n.sharedUploadNotice {\n font-style: italic;\n}\n\n//}}}
/***\n\nStylesheet, which when used with a Wikipedia skin stylesheet, helps give TiddlyWiki the appearance of Wikipedia.\n\n***/\n\n/*{{{*/\n\n.headerShadow {padding:.5em 0em .5em 1em;}\n.headerForeground {padding:.5em 0em .5em 1em;}\n\n.header {background: darkblue;}\n.headerShadow {color: white;}\n\n\n/* The bit that contains all tiddlers */\n#displayArea {\n margin-top:0;margin-right:15.5em;margin-bottom:0;margin-left:0.5em;\n padding-top:.1em;padding-bottom:.1em;\n -moz-border-radius:1em;\n}\n\n#mainMenu {\n position: absolute;\n top: -18em;\n right: 3px;\n width: 16em;\n text-align: center;\n font-family: roman;\n font-size: 0.9em;\n}\n\n#sidebar {\n position: absolute;\n top: 22em;\n right: 3px;\n width: 16em;\n font-size: .9em;\n}\n\n#sidebarOptions {\n position: relative;\n padding-top: 0.3em;\n}\n\n#sidebarOptions a {\n margin: 0em 0.2em;\n padding: 0.2em 0.3em;\n display: block;\n}\n\n.tiddlyLinkExisting {text-decoration: underline;}\n#sidebarTabs .tiddlyLinkExisting {text-decoration: none;}\n\n/* Tiddler title */\n.title {color:black;border-bottom:2px solid #ddd;}\n/* Tiddler subtitle */\n.subtitle {font-size:0.9em;text-align:right;border-bottom:1px solid #ddd;}\n/* Tiddler body */\n.tiddler {\n -moz-border-radius:1em;\n border:1px solid #ccc;\n margin:0.5em;\n background:#fff;\n padding:0.5em;\n}\n\n.tabContents {white-space: nowrap;}\n\n.viewer pre {padding: 0;margin-left: 0;}\n.viewer hr {border: solid 1px silver;}\n.viewer th, thead td {\n background: #db4;\n border: 1px solid #666;\n color: black;\n}\n\n.toolbar {padding-top:0px;padding-bottom:0px;color: #04b;}\n.selected .toolbar {visibility:visible;color:#00f;}\n\n.toolbar .button {color:#dee;}\n.selected .toolbar .button {color:#014;}\n\n.tagging, .tagged, .selected .tagging, .selected .tagged {\n font-size:75%; padding:0.3em; background-color:#eee;\n border-top:1px solid #ccc; border-left:1px solid #ccc;\n border-bottom:3px solid #ccc; border-right:3px solid #ccc;\n max-width:45%;-moz-border-radius:1em;\n}\n/*}}}*/\n
/*{{{*/\n/* wikipedia styles */\n\n.wikitable th {color:black;}\n\nh1 {font-size: 1.5em;}\nh2 {font-size: 1.35em;}\nh3 {font-size: 1.25em;}\nh4 {font-size: 1.1em;}\nh5 {font-size: 1em;}\n\n/*element,padding,border,margin*/\nh1, h2, h3, h4, h5 {\ncolor:#014;\nbackground:transparent;\npadding-left:0;padding-bottom:1px;\nmargin-top:1.2em;margin-bottom:0.3em;margin-left:0em;\n}\n\nh1 {border-bottom:2px solid #ccc;}\nh2, h3 {border-bottom:1px solid #ccc;}\nh4, h5 {border-bottom:0px;margin-top:1em;margin-bottom:0em;}\n\nhr {height:0px;border:0;border-top:1px solid silver;}\n\n.headerShadow {padding:.5em 0em .5em 1em;}\n.headerForeground {padding:.5em 0em .5em 1em;}\n\n.header {background: darkblue;}\n.headerShadow {color: white;}\n\n\n/* The bit that contains all tiddlers */\n/*margin: 1em 17em 0em 14em;*/\n#displayArea {\n margin-top:1em;margin-left:16.5em;margin-bottom:0;margin-right:1em;\n padding-top:.1em;padding-bottom:.1em;\n -moz-border-radius:1em;\n}\n\n#mainMenu {\n position: absolute;\n right: 0;\n width: 10em;\n text-align: right;\n line-height: 1.6em;\n padding: 1.5em 0.5em 0.5em 0.5em;\n font-size: 1.1em;\n}\n\n#sidebar {\n position: absolute;\ntop: 30em;\n left: 3px;\n width: 16em;\n font-size: .9em;\n}\n\n.tiddlyLinkExisting {text-decoration: underline;}\n#sidebarTabs .tiddlyLinkExisting {text-decoration: none;}\n\n/* Tiddler title */\n.title {color:black;border-bottom:2px solid #ddd;}\n/* Tiddler subtitle */\n.subtitle {font-size:0.9em;text-align:right;border-bottom:1px solid #ddd;}\n/* Tiddler body */\n.tiddler {\n -moz-border-radius:1em;\n border:1px solid #ccc;\n margin:0.5em;\n background:#fff;\n padding:0.5em;\n}\n\n.tabContents {white-space: nowrap;}\n\n.viewer pre {padding: 0;margin-left: 0;}\n.viewer hr {border: solid 1px silver;}\n\n.toolbar {padding-top:0px;padding-bottom:0px;color: #04b;}\n.selected .toolbar {visibility:visible;color:#00f;}\n\n.toolbar .button {color:#dee;}\n.selected .toolbar .button {color:#014;}\n\n.tagging, .tagged, .selected .tagging, .selected .tagged {\n font-size:75%; padding:0.3em; background-color:#eee;\n border-top:1px solid #ccc; border-left:1px solid #ccc;\n border-bottom:3px solid #ccc; border-right:3px solid #ccc;\n max-width:45%;-moz-border-radius:1em;\n}\n\n/*}}}*/\n
Siehe [[Überschriften]].
{{{\n!Überschrift Ebene 1 \n!!Überschrift Ebene 2 \n!!!Überschrift Ebene 3 \n!!!!Überschrift Ebene 4 \n!!!!!Überschrift Ebene 5 \n}}}\n\n!Überschrift Ebene 1 \n!!Überschrift Ebene 2 \n!!!Überschrift Ebene 3 \n!!!!Überschrift Ebene 4 \n!!!!!Überschrift Ebene 5