|!Punctuation|!Location|!Function|\n|{{{@@...@@}}}|surrounding text|@@highlighted text@@|\n|{{{//...//}}}|surrounding text|//italicized text//|\n|{{{==...==}}}|surrounding text|==strikethrough text==|\n|{{{''...''}}}|surrounding text|''boldfaced text''|\n|{{{__...__}}}|surrounding text|__underlined text__|\n|{{{[[text|url]]}}}|around text/url pair|[[text|http://gri.gallaudet.edu/]] link to url|\n|{{{ {...} }}}|''__tripled__'' surrounding text|{{{in-line literal text}}}|\n|{{{ {...} }}}|''__tripled__'' surrounding ''__lines__''|literal block|\n|{{{<<<}}}|surrounding ''__lines__''|blockquotes|\n|{{{!}}}|at start of line|subheading|\n|{{{|...|...|}}}|line sectioned by vertical bars|table row|\n|{{{!}}}|in a table|!table heading|\n|{{{----}}}|alone on line|horizontal rule|\n|{{{*}}}|at start of line|bulleted list item|\n|{{{#}}}|at start of line|numbered list item|\nsource: Kevin Cole, January 2007
TTiddlyWiki uses Wiki style markup, a way of lightly "tagging" plain text so it can be transformed into HTML. Edit this Tiddler to see samples.\n\n! Header Samples\n!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n\n! Unordered Lists:\n* Lists are where it's at\n* Just use an asterisk and you're set\n** To nest lists just add more asterisks...\n***...like this\n* The circle makes a great bullet because once you've printed a list you can mark off completed items\n* You can also nest mixed list types\n## Like this\n\n! Ordered Lists\n# Ordered lists are pretty neat too\n# If you're handy with HTML and CSS you could customize the [[numbering scheme|http://www.w3schools.com/css/pr_list-style-type.asp]]\n## To nest, just add more octothorpes (pound signs)...\n### Like this\n* You can also\n** Mix list types\n*** like this\n# Pretty neat don't you think?\n\n! Tiddler links\nTo create a Tiddler link, just use mixed-case WikiWord, or use [[brackets]] for NonWikiWordLinks. This is how the GTD style [[@Action]] lists are created. \n\nNote that existing Tiddlers are in bold and empty Tiddlers are in italics. See CreatingTiddlers for details.\n\n! External Links\nYou can link to [[external sites|http://google.com]] with brackets. You can also LinkToFolders on your machine or network shares.\n\n! Images\nEdit this tiddler to see how it's done.\n[img[http://img110.echo.cx/img110/139/gorilla8nw.jpg]]\n\n!Tables\n|!th1111111111|!th2222222222|\n|>| colspan |\n| rowspan |left|\n|~| right|\n|colored| center |\n|caption|c\n\nFor a complex table example, see PeriodicTable.\n\n! Horizontal Rules\nYou can divide a tiddler into\n----\nsections by typing four dashes on a line by themselves.\n\n! Blockquotes\n<<<\nThis is how you do an extended, wrapped blockquote so you don't have to put angle quotes on every line.\n<<<\n>level 1\n>level 1\n>>level 2\n>>level 2\n>>>level 3\n>>>level 3\n>>level 2\n>level 1\n\n! Other Formatting\n''Bold''\n==Strike==\n__Underline__\n//Italic//\nSuperscript: 2^^3^^=8\nSubscript: a~~ij~~ = -a~~ji~~\n@@highlight@@\n@@color(green):green colored@@\n@@bgcolor(#ff0000):color(#ffffff):red colored@@\n
|!Punctuation|!Location|!Function|\n|{{{@@...@@}}}|surrounding text|@@highlighted text@@|\n|{{{//...//}}}|surrounding text|//italicized text//|\n|{{{==...==}}}|surrounding text|==strikethrough text==|\n|{{{''...''}}}|surrounding text|''boldfaced text''|\n|{{{__...__}}}|surrounding text|__underlined text__|\n|{{{[[text|url]]}}}|around text/url pair|[[text|http://gri.gallaudet.edu/]] link to url|\n|{{{ {...} }}}|''__tripled__'' surrounding text|{{{in-line literal text}}}|\n|{{{ {...} }}}|''__tripled__'' surrounding ''__lines__''|literal block|\n|{{{&lt;&lt;&lt;}}}|surrounding ''__lines__''|blockquotes|\n|{{{!}}}|at start of line|subheading|\n|{{{|...|...|}}}|line sectioned by vertical bars|table row|\n|{{{!}}}|in a table|!table heading|\n|{{{----}}}|alone on line|horizontal rule|\n|{{{*}}}|at start of line|bulleted list item|\n|{{{#}}}|at start of line|numbered list item|\nsource: Kevin Cole, January 2007
TextBrook
To get started with this blank ZiddlyWiki, you'll need to modify the following tiddlers:\n* SiteTitle &amp; SiteSubtitle: The title and subtitle of the site, as shown above\n* MainMenu: The menu (usually on the left)\n* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the ZiddlyWiki is opened\n
How much ''time'' do you think I have on my hands?\n\nEric, you are a _Weasel_
[[TextBrook]] explained \n
a way to use TiddlyWikis for Teaching
TextBrook
/***\n!GTD Style\nhttp://tiddlystyles.com/#theme:GTD\n\n!Generic rules /%==================================================================== %/\n***/\n/*{{{*/\nbody {\n background: #464646 url('http://shared.snapgrid.com/images/tiddlywiki/bodygradient.png') repeat-x top fixed;\n color: #000;\n font: .82em/1.25em &quot;Bitstream Vera Sans&quot;, Verdana, Helvetica, Arial, sans-serif;\n/*&quot;Lucida Sans Unicode&quot;, &quot;Lucida Grande&quot;,&quot;Trebuchet MS&quot;, */\n}\n/*}}}*/\n/***\n!Header rules /%====================================================================== %/\n***/\n/*{{{*/\n#contentWrapper\n{\n margin: 0 auto;\nwidth: 59em;\nposition: relative;\n}\n\n#header\n{\n color: #fff;\n padding: 1.5em 1em .6em 0;\n}\n\n#siteTitle {\n\n font-size: 2.3em;\n margin: 0;\n}\n\n#siteSubtitle {\n font-size: 1em;\n padding-left: .8em;;\n}\n\n#titleLine{\n background: transparent;\n padding: 0;\n}\n\n#titleLine a {\n color: #cf6;\n}\n\n#titleLine a:hover {\n background: transparent;\n}\n/*}}}*/\n/***\n!Sidebar rules /%====================================================================== %/\n***/\n/*{{{*/\n#sidebar{\n left: 0;\nwidth: 18em;\n margin: .9em .9em 0 0;\n color: #000;\n background: transparent;\n}\n/*}}}*/\n/***\n!Main menu rules /%=================================================================== %/\n***/\n/*{{{*/\n#mainMenu{\n position: static;\n width: auto;\n\n background: #600;\n border-right: 3px solid #500;\npadding: 0;\n text-align: left;\n font-size: 1em;\n}\n\n#mainMenu h1{\n padding: 5px;\n margin: 0;\n font-size: 1em;\n font-weight: bold;\n background: transparent;\n color: #fff;\n}\n\n#mainMenu ul{\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n#mainMenu h1 a,\n#mainMenu li a,\n#mainMenu li a.button{\n display: block;\n padding: 0 5px 0 10px;\nborder: 0;\n border-bottom: 1px solid #500;\n border-top: 1px solid #900;\nmargin: 0;\n}\n\n#mainMenu a,\n#mainMenu a.button{\n height: 22px;\nheight: 1.83em;\n line-height: 22px;\n color: #fff;\n background: #700;\nmargin-left: 1em;\n}\n\n#mainMenu a:hover,\n#mainMenu a.button:hover {\n background: #b00;\n color: #fff;\n}\n/*}}}*/\n/***\n!Sidebar options rules /%============================================================ %/\n***/\n/*{{{*/\n#sidebarOptions {\n background: #eeb;\n border-right: 3px solid #bb8;\n color: #B4C675;\n padding: .5em 0;\n}\n\n#sidebarOptions a {\n color: #700;\n margin: .2em .8em;\n padding: 0;\n border: 0;\n}\n\n#sidebarOptions a:hover, #sidebarOptions a:active {\n color: #fff;\n background: #700;\n border: 0;\n}\n\n#sidebarOptions input{\n margin: 2px 10px;\n border: 1px inset #333;\npadding: 0;\n}\n\n#sidebarOptions .sliderPanel {\n background: #fff;\n color: #000;\n padding: 5px 10px;\n font-size: .9em;\n}\n\n#sidebarOptions .sliderPanel a{\n font-weight: normal;\n margin: 0;\n}\n\n#sidebarOptions .sliderPanel a:link,#sidebarOptions .sliderPanel a:visited {\n color: #700;\n}\n\n#sidebarOptions .sliderPanel a:hover,#sidebarOptions .sliderPanel a:active {\n color: #fff;\n background: #700;\n}\n/*}}}*/\n/***\n!Sidebar tabs rules /%===================================================================== %/\n***/\n/*{{{*/\n#sidebarTabs {\n background: transparent;\n border-right: 3px solid #740;\n border-bottom: 3px solid #520;\n border: 0;\n padding: 0;\n}\n\n#contentWrapper #sidebarTabs a,\n#contentWrapper #displayArea .tabContents a{\n color: #fff;\n}\n\n#contentWrapper #sidebarTabs a:hover,\n#contentWrapper #displayArea .tabContents a:hover {\n background: #000;\n color: #fff;\n}\n\n#contentWrapper #sidebarTabs a:active,\n#contentWrapper #displayArea .tabContents a:active{\n color: #000;\n}\n\n\n\n#contentWrapper .tabSelected {\n background: #960;\n}\n\n#contentWrapper .tabUnselected{\n background: #660;\n}\n\n#contentWrapper #sidebar .tabset{\n background: #eeb;\n border-right: 3px solid #bb8;\n padding: 0 0 0 .75em;\n}\n\n#contentWrapper .tabContents{\nfont-size: .95em;\nbackground: #960;\nborder:0;\n border-right: 3px solid #740;\n border-bottom: 3px solid #520;\n padding: .75em;\n}\n\n#contentWrapper .tabContents{\n width: auto;\n}\n\n#contentWrapper #sidebarTabs .tabContents .tabset,\n#contentWrapper .tabContents .tabset{\n border: 0;\n padding: 0;\n background: transparent;\n}\n\n#contentWrapper .tabContents .tabSelected,\n#contentWrapper .tabContents .tabContents {\n background: #700;\n border: 0;\n}\n\n#contentWrapper .tabContents .tabUnselected {\n background: #440;\n}\n\n#contentWrapper .tabset a {\n color: #fff;\n padding: .2em .7em;\n margin: 0 .17em 0 0;\n height: 2em;\nposition: static;\n}\n\n#contentWrapper .tabset a:hover {\n background: #000;\n color: #fff;\n}\n\n#contentWrapper .tabset a:active {\n color: #000;\n}\n\n#contentWrapper .tabContents ul{\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n#contentWrapper .tabContents .tabContents ul{\n color: #eeb;\n}\n\n.tabContents ul a,\n.tabContents ul .button{\n color: #fff;\n display: block;\n padding: .1em 0 .1em .7em;\n background: transparent;\n border: 0;\n}\n\n.tabContents ul a:hover {\n color: #fff;\n background: #000;\n}\n/*}}}*/\n/***\n!License panel rules /%==================================================================== %/\n***/\n/*{{{*/\n#licensePanel {\n padding: 0px 1em;\n font-size: .9em;\n}\n\n#licensePanel a {\n color: #960;\n display: block;\n margin-top: .9em;\n}\n\n#licensePanel a:hover {\n color: #fff;\n background: transparent;\n}\n/*}}}*/\n/***\n!Popup rules /%================================================================= %/\n***/\n/*{{{*/\n.popup {\n font-size: .8em;\n padding: 0em;\n background: #333;\n border: 1px solid #000;\n}\n\n.popup hr {\n margin: 1px 0 0 0;\n visibility: hidden;\n}\n\n.popup li.disabled {\n color: #666;\n}\n\n.popup li a,\n.popup li a:visited{\n color: #000;\n border: .1em outset #cf6;\n background: #cf6;\n}\n\n.popup li a:hover {\nborder: .1em outset #cf6;\n background: #ef9;\n color: #000;\n}\n/*}}}*/\n/***\n!Message area rules /%================================================================= %/\n***/\n/*{{{*/\n#messageArea{\n font-size: .9em;\n padding: .4em;\n background: #FFE72F;\n border-right: .25em solid #da1;\n border-bottom: .25em solid #a80;\n\nposition: fixed;\n top: 10px;\n right: 10px;\n color: #000;\n}\n\n#contentWrapper #messageArea a{\n color: #00e;\n text-decoration: none;\n}\n\n#contentWrapper #messageArea a:hover{\n color: #00e;\n text-decoration: underline;\n background: transparent;\n}\n\n#contentWrapper #messageArea .messageToolbar a.button{\n border: 1px solid #da1;\n}\n\n#contentWrapper #messageArea .messageToolbar a.button:hover{\n color: #00e;\n text-decoration: none;\n border: 1px solid #000;\n background: #fff;\n}\n\n\n\n/*}}}*/\n/***\n!Tiddler display rules /%================================================================== %/\n***/\n/*{{{*/\n#displayArea {\n width: 39.75em;\n margin: 0 0 0 17em;\n}\n\n.tiddler {\n margin: 0 0 .9em 0;\n padding: 0 1em;\n border-right: .25em solid #aaa;\n border-bottom: .25em solid #555;\n background: #fff;\n}\n\n.title {\n font-size: 1.5em;\n font-weight: bold;\n color: #900;\n}\n\n.toolbar {\n font-size: .8em;\n padding: .5em 0;\n}\n\n.toolbar .button{\n padding: .1em .3em;\n color: #000;\n\n border: .1em outset #cf6;\n background: #cf6;\nmargin: .1em;\n}\n\n.toolbar .button:hover {\n background: #ef9;\n color: #000;\n}\n\n.toolbar .button:active {\n background: #ff0;\n}\n\n/*}}}*/\n/***\n!Viewer rules /% ------------------------------------------------------------------------------------------ %/\n***/\n/*{{{*/\n.viewer {\n line-height: 1.4em;\n font-size: 1em;\n}\n\n.viewer a:link, .viewer a:visited {\n color: #15b;\n}\n\n.viewer a:hover {\n color: #fff;\n background: #000;\n}\n\n.viewer .button{\n background: transparent;\n border-top: 1px solid #eee;\n border-left: 1px solid #eee;\n border-bottom: 1px solid #000;\n border-right: 1px solid #000;\n}\n\n.viewer .button:hover{\n background: #eee;\n color: #000;\n}\n\n.viewer .button:active{\n background: #ccc;\n border-bottom: 1px solid #eee;\n border-right: 1px solid #eee;\n border-top: 1px solid #111;\n border-left: 1px solid #111;\n}\n\n\n.viewer blockquote {\n border-left: 3px solid #777;\n margin: .3em;\n padding: .3em;\n}\n\n.viewer pre{\n background: #fefefe;\n border: 1px solid #f1f1f1;\n}\n\n.viewer pre, .viewer code{\n color: #000;\n}\n\n.viewer ul {\n padding-left: 30px;\n}\n\n.viewer ol {\n padding-left: 30px;\n}\nul{\nlist-style-type: asquare;\n}\nol{ \n list-style-type: decimal;\n}\n\nol ol{ \n list-style-type: lower-alpha;\n}\n\nol ol ol{ \n list-style-type: lower-roman;\n}\n\n.viewer ul, .viewer ol, .viewer p {\n margin: .0;\n}\n\n.viewer li {\n margin: .2em 0;\n}\n\nh1,h2,h3,h4,h5,h6 {\n color: #000;\n font-weight: bold;\n background: #eee;\n padding: 2px 10px;\n margin: 5px 0;\n}\n\n.viewer h1 {font-size: 1.3em;}\n.viewer h2 {font-size: 1.2em;}\n.viewer h3 {font-size: 1.1em;}\n.viewer h4 {font-size: 1em;}\n.viewer h5 { font-size: .9em;}\n.viewer h6 { font-size: .8em;}\n\n.viewer table {\n border: 2px solid #303030;\n font-size: 11px;\n margin: 10px 0;\n}\n\n.viewer th, .viewer thead td{\n color: #000;\n background: #eee;\n border: 1px solid #aaa;\n padding: 0 3px;\n}\n\n.viewer td {\n border: 1px solid #aaa;\n padding: 0 3px;\n}\n\n.viewer caption {\n padding: 3px;\n}\n\n.viewer hr {\n border: none;\n border-top: dotted 1px #777;\n height: 1px;\n color: #777;\n margin: 7px 0;\n}\n\n.viewer\n{\n margin: .5em 0 0 0;\n padding: .5em 0;\n border-top: 1px solid #ccc;\n}\n\n.highlight {\n color: #000;\n background: #ffe72f;\n}\n/*}}}*/\n/***\n!Editor rules /% ----------------------------------------------------------------------------------------- %/\n***/\n/*{{{*/\n.editor {\n font-size: .8em;\n color: #402C74;\n padding: .3em 0;\n}\n\n.editor input, .editor textarea {\n font: 1.1em/130% &quot;Andale Mono&quot;, &quot;Monaco&quot;, &quot;Lucida Console&quot;, &quot;Courier New&quot;, monospace;\n margin: 0;\n border: 1px inset #333;\n padding: 2px 0;\n}\n\n.editor textarea {\n height: 42em;\n width: 100%;\n}\n\ninput:focus, textarea:focus\n{\n background: #ffe;\n border: 1px solid #000;\n}\n.footer\n{\n padding: .5em 0;\n margin: .5em 0;\n border-top: 1px solid #ddd;\n color: #555;\n text-align: center; \n}\n/*}}}*/\n/***\n!IE Display hacks /% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%/\n***/\n/*{{{*/\nbody{\n _text-align: center;\n}\n\n#contentWrapper\n{\n/* _width: 770px; CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */\n _text-align: left; /* CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */ \n}\n\n#messageArea{\n _position: absolute;\n}\n/*}}}*/
a TextBrook is a way of using TiddlyWikis for Teaching.\n\nWith teaching you want to coordinate the viewing of particular information being discussed by the teacher with the displays of the students. TextBrook allows you to do this. \n\nA TextBrook implemets the Working Title Transfer Protocol (WttP). This protocol communicates between one of more nodes sending page display information, which are known as WttP Presenters (WttPp) and WttP Viewers (WttPv) nodes that are listening for page display information, and typically will (optionally) clear a previous displayed page and go to the next page commanded for display by a presenter system.\n\nThe WttP is implemented as a Java Script that is loaded into a Tiddle and given the sysconfig tag. \n\n
The user manual for this product needs to be located here.\n\n\nTextbrook must use python docutils instead of the random markup language currently implemented.\n\n\n\n[[ The ajax thing | http://docbox.flint.com/~flint/iddly.html ]]\n
Working Title Transfer Protocol\n\nWorking Title Transfer Protocol WttP is an TCP protocol, port based that allows TiddlyWikis to synchronize Tiddle switching. The Format of this protocol is as follows:\n\n!Common WttP elements\n&lt;WttP reset&gt;\n\n\n!WttPp elements\nbegin transmitting as WttPp\nexample &lt;WttPp open interface port#&gt;\n&lt;WttPp relative&gt; \nexample &lt;relative +3&gt; \n&lt;WttPp direct&gt;\nexample &lt;direct &quot;Basic Formatting&quot;&gt; \n&lt;WttPp rreset&gt;\nrreset sets all listeners to a known state. The default state is to clear all slides, set auto clear to on.\nexample &lt;WttPp tclear&gt;\n&lt;WttPp tclear&gt;\ntoggles the viewer to not clear old slide display. If already toggled away from the default, which is to clear old slide for new, sending tclear again \nexample &lt;WttPp tclear&gt;\n\n!WttPv elements\n&lt;WttPv listen&gt;\nbegin listening as WttPv\nexample &lt;WttPv listen interface IPaddress port#&gt;\n&lt;WttPv los&gt;\nloss of signal from presenter\ndisplays loss of signal on WttPv screen\nexample &lt;WttPv los&gt;\n&quot;Technical Difficulties, Please stand by...&quot;\n
Working Title Transfer Presenter Protocol
Working Title Transfer Protocol viewer
!Summary\nA sciddlywiki is a tiddlywiki with an encryption module built in.\nThe funny part...\nThe encryption module is a module just like any other tiddlywiki module.\nThis is the basic idea that hit me this morning like a ton of bricks. \n\nDetails are below:\n\n!Sciddlywiki Details\nA sciddlywiki is a tiddlywiki with an operating encryption module built in. The encryption module is a module just like any other tiddlywiki module. This module regulates who can see the wiki. Thus you have a self encrypting email, or DRM on steroids.\n\nThe possible code to do this is located in this local tiddler [[crypt_code]] the source for this information is [[here | http://www.fourmilab.ch/javascrypt/example.html]]\n\n\n!What is a Tiddlywiki?\nTiddlywikis are containers comprised of Javascript applications and data that they operate on. So the Tiddlywikis contain globules of wiki data that can be edited and manipulated by the Javascript, and new tiddlys even some including and javascript modules, can be added to tiddlywiki containers. They generally stand alone, but the ziddlywiki allows for a multiuser approach with version control of these cute little buggers. I will endeavor to send you a worthy sample as I can.\n
AjaxS is a fancied up S5 which is the key to the idea. We could add the "eye candy" of S5 but we need to really determine the Gui-ness. \n\nYou would what jeremy has put up so it does a hard cut between slides.\n\nWe definiately need know more...\n\n
Could you do this with [[SMIL | http://www.w3.org/TR/REC-smil/]]?
!New Team Members\nWill Brady and Ben Bodner are two excellent students who have been studying\nJavaScript, AJAX, and such. \nJeff Elkner thought they could help with TextBrook as a\ngreat project for them.\n
This is the [[presentation | http://docbox.flint.com/~flint/iddly.html]] I gave on the concept of Ajax based containers
So I tried to test out the [[HoverMenu plugin | http://docbox.flint.com:8081/brainstorm/ideas#HoverMenuPlugin ]] this weekend. I looked through the slide show and got to the site where you could get the code. I realized by just looking at the page that there is more to that code than just the HoverMenu plugin. There was also a ToggleSidebarMacro or something and a JumpMacro. Anyways, I tried to put the code into my blank tiddly and it didn't work so I looked back and saw you had to put systemConfig at the end of something. However, I don't know if systemConfig is a javascript function or HTML code or something and so I didn't know where to put it. I'm sure there's some easily solution to this that you know. Once I get it working, I make a motion to create easier instructions for setting up HoverMenu plugin.
/***\n|Name|HoverMenuPlugin|\n|Created by|SaqImtiaz|\n|Location|http://tw.lewcid.org/#HoverMenuPlugin|\n|Version|1.11|\n|Requires|~TW2.x|\n!Description:\nProvides a hovering menu on the edge of the screen for commonly used commands, that scrolls with the page.\n\n!Demo:\nObserve the hovering menu on the right edge of the screen.\n\n!Installation:\nCopy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.\nTo customize your HoverMenu, edit the HoverMenu shadow tiddler.\n\nTo customize whether the menu sticks to the right or left edge of the screen, and its start position, edit the HoverMenu configuration settings part of the code below. It's well documented, so don't be scared!\n\nThe menu has an id of hoverMenu, in case you want to style the buttons in it using css.\n\n!Notes:\nSince the default HoverMenu contains buttons for toggling the side bar and jumping to the top of the screen and to open tiddlers, the ToggleSideBarMacro, JumpMacro and the JumpToTopMacro are included in this tiddler, so you dont need to install them separately. Having them installed separately as well could lead to complications.\n\nIf you dont intend to use these three macros at all, feel free to remove those sections of code in this tiddler.\n\n!To Do:\n* rework code to allow multiple hovering menus in different positions, horizontal etc.\n* incorporate code for keyboard shortcuts that correspond to the buttons in the hovermenu\n\n!History:\n*03-08-06, ver 1.1.2: compatibility fix with SelectThemePlugin\n*03-08-06, ver 1.11: fixed error with button tooltips\n*27-07-06, ver 1.1 : added JumpMacro to hoverMenu\n*23-07-06\n\n!Code\n***/\n\n/***\nstart HoverMenu plugin code\n***/\n//{{{\nconfig.hoverMenu={};\n//}}}\n\n/***\nHoverMenu configuration settings\n***/\n//{{{\nconfig.hoverMenu.settings={\n align: 'right', //align menu to right or left side of screen, possible values are 'right' and 'left' \n x: 1, // horizontal distance of menu from side of screen, increase to your liking.\n y: 158 //vertical distance of menu from top of screen at start, increase or decrease to your liking\n };\n//}}}\n\n//{{{\n//continue HoverMenu plugin code\nconfig.hoverMenu.handler=function()\n{ \n if (!document.getElementById("hoverMenu"))\n {\n var theMenu = createTiddlyElement(document.getElementById("contentWrapper"), "div","hoverMenu");\n theMenu.setAttribute("refresh","content");\n theMenu.setAttribute("tiddler","HoverMenu");\n var menuContent = store.getTiddlerText("HoverMenu");\n wikify(menuContent,theMenu);\n }\n\n var Xloc = this.settings.x;\n Yloc =this.settings.y;\n var ns = (navigator.appName.indexOf("Netscape") != -1);\n function SetMenu(id)\n {\n var GetElements=document.getElementById?document.getElementById(id):document.all?document.all[id]:document.layers[id];\n if(document.layers)GetElements.style=GetElements;\n GetElements.sP=function(x,y){this.style[config.hoverMenu.settings.align]=x +"px";this.style.top=y +"px";};\n GetElements.x = Xloc;\n GetElements.y = findScrollY();\n GetElements.y += Yloc;\n return GetElements;\n }\n window.LoCate_XY=function()\n {\n var pY = findScrollY();\n ftlObj.y += (pY + Yloc - ftlObj.y)/15;\n ftlObj.sP(ftlObj.x, ftlObj.y);\n setTimeout("LoCate_XY()", 10);\n }\n ftlObj = SetMenu("hoverMenu");\n LoCate_XY();\n};\n\nwindow.old_lewcid_hovermenu_restart = restart;\nrestart = function()\n{\n window.old_lewcid_hovermenu_restart();\n config.hoverMenu.handler();\n};\n\nsetStylesheet(\n"#hoverMenu .imgLink, #hoverMenu .imgLink:hover {border:none; padding:0px; float:right; margin-bottom:2px; margin-top:0px;}\sn"+\n"#hoverMenu .button, #hoverMenu .tiddlyLink {border:none; font-weight:bold; background:#18f; color:#FFF; padding:0 5px; float:right; margin-bottom:4px;}\sn"+\n"#hoverMenu .button:hover, #hoverMenu .tiddlyLink:hover {font-weight:bold; border:none; color:#fff; background:#000; padding:0 5px; float:right; margin-bottom:4px;}\sn"+\n"#hoverMenu .button {width:100%; text-align:center}"+\n"#hoverMenu { position:absolute; width:7px;}\sn"+\n"\sn","hoverMenuStyles");\n\n\nconfig.macros.renameButton={};\nconfig.macros.renameButton.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n\n if (place.lastChild.tagName!="BR")\n {\n place.lastChild.firstChild.data = params[0];\n if (params[1]) {place.lastChild.title = params[1];}\n }\n};\n\nconfig.shadowTiddlers["HoverMenu"]="<<top>>\sn<<toggleSideBar>><<renameButton '>' >>\sn<<jump j '' top>>\sn<<openTiddler>><<renameButton 'o'>>\sn<<closeTiddler>><<renameButton 'c'>>\sn<<saveChanges>><<renameButton s 'Save TiddlyWiki'>>\sn<<newTiddler>><<renameButton n>>\sn";\n//}}}\n//end HoverMenu plugin code\n\n//Start ToggleSideBarMacro code\n//{{{\nconfig.macros.toggleSideBar={};\n\nconfig.macros.toggleSideBar.settings={\n styleHide : "#sidebar { display: none;}\sn"+"#contentWrapper #displayArea { margin-right: 1em;}\sn"+"",\n styleShow : " ",\n arrow1: "«",\n arrow2: "»"\n};\n\nconfig.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)\n{\n var tooltip= params[1]||'toggle sidebar';\n var mode = (params[2] && params[2]=="hide")? "hide":"show";\n var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;\n var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;\n var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");\n if (mode == "hide")\n { \n (document.getElementById("sidebar")).setAttribute("toggle","hide");\n setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");\n }\n};\n\nconfig.macros.toggleSideBar.onToggleSideBar = function(){\n var sidebar = document.getElementById("sidebar");\n var settings = config.macros.toggleSideBar.settings;\n if (sidebar.getAttribute("toggle")=='hide')\n {\n setStylesheet(settings.styleShow,"ToggleSideBarStyles");\n sidebar.setAttribute("toggle","show");\n this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);\n }\n else\n { \n setStylesheet(settings.styleHide,"ToggleSideBarStyles");\n sidebar.setAttribute("toggle","hide");\n this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);\n }\n\n return false;\n}\n\nsetStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\sn","ToggleSideBarButtonStyles");\n//}}}\n//end ToggleSideBarMacro code\n\n//start JumpToTopMacro code\n//{{{\nconfig.macros.top={};\nconfig.macros.top.handler=function(place,macroName)\n{\n createTiddlyButton(place,"^","jump to top",this.onclick);\n}\nconfig.macros.top.onclick=function()\n{\n window.scrollTo(0,0);\n};\n\nconfig.commands.top =\n{\n text:" ^ ",\n tooltip:"jump to top"\n};\n\nconfig.commands.top.handler = function(event,src,title)\n{\n window.scrollTo(0,0);\n}\n//}}}\n//end JumpToStartMacro code\n\n//start OpenTiddlerMacro code\n//{{{\nconfig.macros.openTiddler={};\nconfig.macros.openTiddler.handler=function(place,macroName)\n{\n createTiddlyButton(place,"o","Open Tiddler",this.onclick);\n}\nconfig.macros.openTiddler.onclick=function()\n{\n story.displayTiddler(null, "SmiL");\n};\n\nconfig.commands.openTiddler =\n{\n text:" o ",\n tooltip:"open tiddler"\n};\n//}}}\n//end OpenTiddlerMacro code\n\n//start CloseTiddlerMacro code\n//{{{\nconfig.macros.closeTiddler={};\nconfig.macros.closeTiddler.handler=function(place,macroName)\n{\n createTiddlyButton(place,"c","Close Tiddler",this.onclick);\n}\nconfig.macros.closeTiddler.onclick=function()\n{\n story.closeTiddler("SmiL");\n};\n\n//}}}\n//end CloseTiddlerMacro code\n\n//start JumpMacro code\n//{{{\nconfig.macros.jump= {};\nconfig.macros.jump.handler = function (place,macroName,params,wikifier,paramString,tiddler)\n{\n var label = (params[0] && params[0]!=".")? params[0]: 'jump';\n var tooltip = (params[1] && params[1]!=".")? params[1]: 'jump to an open tiddler';\n var top = (params[2] && params[2]=='top') ? true: false; \n\n var btn =createTiddlyButton(place,label,tooltip,this.onclick);\n if (top==true)\n btn.setAttribute("top","true")\n}\n\nconfig.macros.jump.onclick = function(e)\n{\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n var top = theTarget.getAttribute("top");\n var popup = Popup.create(this);\n if(popup)\n {\n if(top=="true")\n {createTiddlyButton(createTiddlyElement(popup,"li"),'Top ↑','Top of TW',config.macros.jump.top);\n createTiddlyElement(popup,"hr");}\n \n story.forEachTiddler(function(title,element) {\n createTiddlyLink(createTiddlyElement(popup,"li"),title,true);\n });\n }\n Popup.show(popup,false);\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return false;\n}\n\nconfig.macros.jump.top = function()\n{\n window.scrollTo(0,0);\n}\n//}}}\n//end JumpMacro code\n\n//utility functions\n//{{{\nPopup.show = function(unused,slowly)\n{\n var curr = Popup.stack[Popup.stack.length-1];\n var rootLeft = findPosX(curr.root);\n var rootTop = findPosY(curr.root);\n var rootHeight = curr.root.offsetHeight;\n var popupLeft = rootLeft;\n var popupTop = rootTop + rootHeight;\n var popupWidth = curr.popup.offsetWidth;\n var winWidth = findWindowWidth();\n if (isChild(curr.root,'hoverMenu'))\n var x = config.hoverMenu.settings.x;\n else\n var x = 0;\n if(popupLeft + popupWidth+x > winWidth)\n popupLeft = winWidth - popupWidth -x;\n if (isChild(curr.root,'hoverMenu'))\n {curr.popup.style.right = x + "px";}\n else\n curr.popup.style.left = popupLeft + "px";\n curr.popup.style.top = popupTop + "px";\n curr.popup.style.display = "block";\n addClass(curr.root,"highlight");\n if(config.options.chkAnimate)\n anim.startAnimating(new Scroller(curr.popup,slowly));\n else\n window.scrollTo(0,ensureVisible(curr.popup));\n}\n\nwindow.isChild = function(e,parentId) {\n while (e != null) {\n var parent = document.getElementById(parentId);\n if (parent == e) return true;\n e = e.parentNode;\n }\n return false;\n};\n//}}}
!Progress is made...\nAfter some minor futzing, Will got the HoverMenuPlugin working on the TextBrook site.\n\nHe swears a mighty oath he will play with it. Elkner comes up with the following tortures that he wants:\n\n# The TextBrook system moved forward\n# A better Cascading Style Sheet capability for Tiddlywikis\n# Python Docutils routines similar to [[rst2html]] with the following names catchy names:\n## Media2Tiddlywiki\n## Tiddly2Mediawiki\n## LaunchPad2Tiddlywiki\n## Tiddly2LaunchPadwiki\n\nAnyway, that is something. We meet again tomorrow at 11:00.\n\nRegards,\n\nFlint
The session begins as per our usual time.\n\nWe get off the connection from Jeff's class and try skype.\n\nBill can not hear me, otherwise everything works fine. I can hear him fine and I show him the skype test call service.\n\nThe TADA was the Alsa mixer as it always is...\n\nThe assignment now that skype is working is to examine and write about the HoverMenuPlugin.\n\nThe three (triple bracket) literal is the delimiter for javascript eh?\n\ngonna move the code to vi to get line numbers...\n\ndelimit code viat the lieral block "(slash-slash)(triple-bracket)"\n\nSo after our meeting today I went home and started tweaking the menu around. The first thing I did was align the menu to the left rather than the right which is just changing 'align:right' under config.hoverMenu.settings to 'align:left'. Now this made the menu move all the way to the left side of the left menu panel and that just looked bad so i messed around with the x value until i got the menu right between the body and the right panel. That turned out to be an x value of 200 which you can see below. Also, just to show that I could do it, I moved the menu down 200 pixels from 150 to 350 as you can also see below. When you scroll down the menu will always set to the same y-value. Here is the entire config.hoverMenu.settings script that is now running on the menu:\n\n//{{{\nconfig.hoverMenu.settings={\n align: 'left', //align menu to right or left side of screen, possible values are 'right' and 'left' \n x: 200, // horizontal distance of menu from side of screen, increase to your liking.\n y: 350 //vertical distance of menu from top of screen at start, increase or decrease to your liking\n };\n//}}}\n\nI also went on to look at the stylesheet for the hoverMenu. There is a method setStylesheet() that sets all the css for the hoverMenu. in the second div line where it says "#hoverMenu .button, #hoverMenu .tiddlyLink ..." you can change the background attribute. In this case I changed it to green. You can also change the color of the characters with the color attribute. I changed that to orange. I didn't have as much time tonight cause of my AP test tomorrow that I'm cramming, but here is all of the current setStylesheet() method. \n\n//{{{\nsetStylesheet(\n"#hoverMenu .imgLink, #hoverMenu .imgLink:hover {border:none; padding:0px; float:right; margin-bottom:2px; margin-top:0px;}\sn"+\n"#hoverMenu .button, #hoverMenu .tiddlyLink {border:none; font-weight:bold; background:green; color:orange; padding:0 5px; float:right; margin-bottom:4px;}\sn"+\n"#hoverMenu .button:hover, #hoverMenu .tiddlyLink:hover {font-weight:bold; border:none; color:#fff; background:#000; padding:0 5px; float:right; margin-bottom:4px;}\sn"+\n"#hoverMenu .button {width:100%; text-align:center}"+\n"#hoverMenu { position:absolute; width:7px;}\sn"+\n"\sn","hoverMenuStyles");\n//}}}\n\nThere's a lot more tweaks of the css I can do that I'll talk with you tomorrow about.\n\n!Will, this is excellent! Flint
I reviewed most of that SMIL page last night and this morning. Here are the notes I made:\n\nKey notes about SMIL attributes:\n#''head'' -- like normal head of html\n##''layout'' -- specify position, look, size...\n###''region'' -- position, color, size, shape, id...\n###''root-layout'' -- same as region, but for root of specified element. big picture\n##''meta'' -- same as meta in html...author, copyright, date, key words...\n##''switch'' -- set of alternative elements where they are evaluated in order and one should be chosen which must specify as SMIL element\n#''body'' -- like normal html body\n##''par'' -- its children occur simultaneously. allows for 2 controlled things to go on at the same time\n###''hard sync'' vs. ''soft sync'' -- hard sync uses common clock(GOOD), soft sync uses individual clocks(possibly BAD)\n###''seq'' -- its children occur in sequence in the fashion they are ordered\n\n__Media Objects__(apply to all contents of body) -- "allow inclusion of media objects into a SMIL presentation", "media objects included by refrence(using a URI)", includes attributes that control time(begin/end/duration), author, screen size, language, captions...\n* w/ intrinsic duration -- video, audio, "continuous media"\n* w/o intrinsic duration -- text, image, "discrete media"\n\n__Time Model__ -- uses implicit, explicit, desired, and effective values of begin/duration/end\n#__implicit__ values are automatically created\n##begin:\n###for body = when document starts playing\n###for par element = effective begin\n###for first seq element = effective begin\n###for other seq elements = desired end of previous seq element \n#__explicit__ values can be assigned if author wants to, overrides implicit values\n#__desired__ values are equal to explicit values if given, or equal to implicit values\n#__effective__ values are equal to desired values unless they are past effective values of parent element in which case these effective values are not shown\n\n\n!After Class Notes\n# Momma told me there would be days like this\n# Threw poor Will under the bus, downloaded his Tiddlywiki to his system and\n# Pointed out that to make it editable you need Ziddlywiki to be an available product\n# Elkner tried to install the product but now\n# Matt is gonna need to get it installed on the class system.\n# Alternatively, can install this stuff on maddog and take it from there.\n
The past few days I've noticed that the site is running a little slow. It seems whenever I scroll down, everything slows to a crawl and it sort of waits for the menu to take its time to catch up to where I am viewing the page. I noticed it at home too so I don't think its just the network. Maybe I'm just going crazy, but I think there is a recent difference.\n\nNo meeting today, so I'll plan on same time tomorrow.
I will be over at [[LACE | http://www.lacevt.org/ ]] developing their opening day [[ ceremony | http://vtaction.org/#Happenings ]]. \n\nThe really cool thing is that there is a [[ Ziddlywiki site | http://zw.mcelrath.org/ ]]. We need to download the package and get it installed. This will involve Matt.\n\nSo we talked about the ZiddlyWiki and found that there was a broken link or some sort of error on the http://zw.mcelrath.org/ site. I emailed Bob and acknowledged the problem. I took the rest of the day to look around the site and see what other cool stuff Bob had going on.
So I figured that there is definitly something slow about the HoverMenu plugin. Whenever I scroll, the page will move down a little, wait for the menu to come to move down and come to a complete stop, then it will scroll down slowly to where I wanted to go, and everything just takes a long time to get around. I moved everything back to the way it originally came and it still had the same problem. I tested it with the HoverMenu plugin on my Tiddly and mine doesn't seem to show the same problem.\n\nWell Matt, Elkner, and myself talked about the ZiddlyWiki installation. Elkner brought up that Matt should not be attempting to install a zope product for the first time on Elkner's very important linus server. So he suggested that we make my own zope instance on the maddog server. Then, Elkner brought up that tomorrow or the next day, Elkner is replacing the maddog machine with a newer one so he said we would work on putting up my zope instance after that. The conversation ended with him agreeing to have all this done by the end of the week.\n\nWe'll have to find something else to look at until then.\n\nAny idea about the slow menu problem?
Will got an account on docbox.flint.com today in order to continue development on the tiddlywiki.\n\nWill is gonna put the code in his [[apache directory | http://docbox.flint.com/~wbrady/ ]], and he will write a code description as a tiddler here.\n\n\n
!!Zope Products\n\n* Zope Products are plug-in Zope components\n* They extend the basic set of site building tools\n* They cover all sorts of topics including: blogs, new content objects, advanced content management tools and full applications for e-commerce, content and document management, or bug and issue tracking\n* Zope Products are simply classes that Zope makes available for usage. These special classes allow us to create multiple instances, with each instance possessing its own unique attributes\n* A Zope product is a package of code, graphics and DTML that provides a piece of reusable functionality\n* Each product is actually a directory under your Zope installation directory in lib/python/Products\n* Some zope products are low-level components providing or extending zope infrastructure (ZCatalog?, MailHost). Others provide end-user applications or mini-apps (ZWiki, SquishDot, MPoll).
So yesterday I was looking at adding the button to the HoverMenu. I figured out how to actually add the button which is just creating a new macro and then adding it to a list of macros in the HoverMenu. I was looking through each of the macros already there and they each were created a little differently. Some used a settings function and some didn't and I didn't know which one I should try to follow the most so I picked the simplest, but I have a feeling I will be changing a few things later. \n\nAnyways, I have an idea about how to go about making the open button work. All of the tiddlers are stored in a div called "storeArea". Each tiddler is in its own "tiddler" div with multiple attributes like modifier, modified, and created. I want to access the "storeArea" div, loop over all the tiddlers and find the one with the highest value in the modified attribute. Then, I believe the command to open a tiddler is something like story.displayTiddler(...) with the tiddlers name in the parameter.\n\nSo I was thinking about the exact code to go about doing all this and then I realized that the tiddly must have it somewhere else already because when you first open the page or even after you modify a tiddler it reloads the sidebar with the tiddler with the highest value under modified first, then the second highest, and so on. So, I can probably implement that somehow.
Check out the "o" button. I got it to open a tiddler. It's really simple. Code is: story.displayTiddler(null, "tiddler name");\n\nI tried downloading the textbrook tiddly locally, but it gave me some kind of error like I didn't download the tiddler correctly. I think I need something else than just the html page. Anyways, I didn't get to test any tags.
Matt is working to fix the maddog site ports. I also ran into a problem with my zope installation that might relate to the ports open. When I tried to run the start script, it gave me some kind of error saying cPersistence module not found. \n\nI added the close button. Even simpler code for this one: story.closeTiddler("SmiL");
I was trying to solve the cPersistence module not found error on installing zope on maddog. One student only knew how to solve the error using Zope 3. So, I said what the hell and removed the Zope 2 stuff I was trying to do and started installing Zope 3. I got lost again so I'm pretty much stuck now.\n\nNote: open the SmiL tiddler first by hitting the open button on the HoverMenu before hitting the new close button\n\nThis works very well. I am going to bring Kevin Cole into the discussion to determine if there is any way to get this transmitted between tiddly based applications.\n\nI believe I got Zope working on maddog with matt's help. Simpler solution than expected.\nP.S.: Next week I am not going to be able to meet 4th period because we are having final project presentations every day. I'm going to be presenting textbrook and I think I'll have some nice things lined up. Just showing them how TiddlyWikis work and what we're trying to accomplish will be enough to aw them.
Where's Paul?
Well today I gave my presentation on textbrook today