Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
Stuff to do today:
# This
# That
# The other thing
To do:
#''Look up at the sky.'' On Friday, April 13, 2029, an asteroid called "[[99942 Apophis|http://en.wikipedia.org/wiki/99942_Apophis]]", having a diameter of about 350 m (1150 ft), will approach Earth. While it is ''NOT'' expected to impact Earth, it will pass within the orbits of our communication satellites and appear to the naked eye as a moderately bright point of light moving rapidly across the sky over the mid-Atlantic.
#''Check NASA for updates about the asteroid at http://neo.jpl.nasa.gov/apophis/''. Today's close approach of 99942 Apophis will substantially alter the object's orbit. It will return for another close Earth approach in the year 2036. New measurements possible in 2013 (if not 2011) will likely confirm that 99942 Apophis will once again ''NOT'' impact Earth in 2036, but rather quietly pass more than 49 million km (30.5 million miles; 0.32 AU) from Earth on Easter Sunday, April 13, 2036. ''If 99942 Apophis were to impact Earth'', however, NASA estimates that it would release the equivalant of 880 megatons of energy. (For comparison, the 1883 eruption of [[Krakatoa|http://en.wikipedia.org/wiki/Krakatoa]] was the equivalent of roughly 200 megatons of energy.)
#Share Earth while we still can. :)
!Bill
* Go over TPS reports
!Milton
* Get Back Stapler
TicklerWiki is built on top of [[Jeremy Ruston's|http://www.tiddlywiki.com/#JeremyRuston]] [[TiddlyWiki|http://www.tiddlywiki.com/]] standard core version <<version>> and can be easily upgraded to future [[TiddlyWiki|http://www.tiddlywiki.com/]] core versions. It uses a slightly modified StyleSheet and PageTemplate from [[Clint Checketts'|http://blog.checkettsweb.com/]] [[GTDTiddlyWiki Plus|http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm]], which is a style and layout adaptation of [[Nathan Bower's|http://nathanbowers.com/gtdtw/#NathanBowers]] [[GTDTiddlyWiki|http://nathanbowers.com/gtdtw/]], which is a GettingThingsDone adaptation of ~TiddlyWiki. Among other useful plugins, it uses the CalendarPlugin, DatePlugin, and a modified [[SinglePageModePlugin|TicklerWikiSinglePageModePlugin]] from Eric Shulman's [[TiddlyTools|http://www.TiddlyTools.com]].
Many thanks to everyone in the ~TiddlyWiki community, without whom TicklerWiki would not be possible. (^_^)
Future "official" ~TicklerWiki releases will undoubtedly contain other useful ~TiddlyWiki plugins, which may be found at http://www.tiddlywiki.org/wiki/Plugin_Repositories.
|''~TicklerWiki Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Core Version:''|<<version>>|
|''~TicklerWiki Build:''|2010.03.18|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/|
|''Copyright''|2008-2010 Ronald Mulero|
|''License:''|GPLv3|
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Documentation''|http://www.TicklerWiki.com/|
|''Demonstration''|http://www.TicklerWiki.com/|
TicklerWiki is published by Ronald Mulero under a GNU General Public License.
----
~TiddlyWiki is published by Jeremy Ruston at Osmosoft under a BSD open source license.
~GTDTiddlyWiki is published by Nathan Bowers at Snapgrid under a BSD open source license.
"Getting Things Done" is © David Allen at Davidco. Davidco has no affiliation with ~TiddlyWiki, ~GTDTiddlyWiki, or TicklerWiki.
( -_-)^^"Yeah, I know..."^^
If you're like the rest of mainstream America, you're thinking that anarchism is all about lawlessness & destruction, bomb-throwing & chaos, riots & looting, smashing windows, starting fires, overturning cars, "cats and dogs living together". You're thinking that the anarchist toolset consists of molotav cocktails, pipe bombs, baseball bats, rocks, bricks, knives, firearms...
( -_-)^^"(sigh)"^^
Look, anarchism isn't about any of these things at all. Well, maybe it //is// about the "cats and dogs" part. (^_^)
Anarchism is about individuals who voluntarily act in the hope of freeing society from hierarchy, coercion, and economic inequality. And our //real// tools are designed simply to help us become better organized, so that we can all—and I mean everyone on the planet—fully-participate in such a society.
<html><form target='_paypal' action="https://www.paypal.com/cgi-bin/webscr" method="post">
So before you run away because of your <a href="http://www.peacecorps.gov/wws/educators/enrichment/culturematters/ch1/culturalconditioning.html" target="_new">cultural conditioning</a>, before you decide not to <input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" align="absmiddle"><input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHHgYJKoZIhvcNAQcEoIIHDzCCBwsCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYCwSUsyQgPAmXzPnkHxSBNULv8P6I0IQgJ/DzmM5k8ioXLmZGfZNiwBX4Qk5PnSlzoddqamaplP5bC67O/wkduEtB56VnwqJhicOoWVUngrLa8dXOKceFQdOFN8m4TkqaQ0YkSmLybyHV1ZiUuLg3LONFIArOrCr8THbQVXwNPpPjELMAkGBSsOAwIaBQAwgZsGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI23UR/na/b+qAeAb3ZrgmQuElHBAo+HRmju+wnx/8pK670CckGoV6nxw71gt96l8bCYNOiXxqDn4fEJndazvOT7o4I1e2qy7wW84PSwU+LKlaKauO9WbHLXxRltLxWVK4lnx4AhePYN1GIaxN24PxwaXTtZV+Aqg71Iyihfz8dczru6CCA4cwggODMIIC7KADAgECAgEAMA0GCSqGSIb3DQEBBQUAMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTAeFw0wNDAyMTMxMDEzMTVaFw0zNTAyMTMxMDEzMTVaMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUdO3fxEzEtcnI7ZKZL412XvZPugoni7i7D7prCe0AtaHTc97CYgm7NsAtJyxNLixmhLV8pyIEaiHXWAh8fPKW+R017+EmXrr9EaquPmsVvTywAAE1PMNOKqo2kl4Gxiz9zZqIajOm1fZGWcGS0f5JQ2kBqNbvbg2/Za+GJ/qwUCAwEAAaOB7jCB6zAdBgNVHQ4EFgQUlp98u8ZvF71ZP1LXChvsENZklGswgbsGA1UdIwSBszCBsIAUlp98u8ZvF71ZP1LXChvsENZklGuhgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAgV86VpqAWuXvX6Oro4qJ1tYVIT5DgWpE692Ag422H7yRIr/9j/iKG4Thia/Oflx4TdL+IFJBAyPK9v6zZNZtBgPBynXb048hsP16l2vi0k5Q2JKiPDsEfBhGI+HnxLXEaUWAcVfCsQFvd2A1sxRr67ip5y2wwBelUecP3AjJ+YcxggGaMIIBlgIBATCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA0MTEyNDA0NTEyNlowIwYJKoZIhvcNAQkEMRYEFPnECsGEaaGlKn/UBlPsBK6ONjlyMA0GCSqGSIb3DQEBAQUABIGAXX6O/k4x8TBZUS5JG6IDMZXysHsuI4bjlXmec0RNw5GNGPEjO0ugwwAd7pClQSZFfW0x6dz1y9BhXsTxEb7NgPwBgexfJXG8dCCrhPGOdcruBcaKzcCsPmgWx4v/buToiwNp89HweM420sqOgq2B80ToXtonPSyPdt/j96ykHT0=-----END PKCS7-----
"> (yes, ironically, even anarchists must currently earn a living), before you deprive yourself of <strong>even more useful personal productivity tools</strong>, you might want to check out this <a href="http://en.wikipedia.org/wiki/Anarchism" target="_new">globally agreed-upon definition of anarchism</a>.
</form>
</html>
Then, for extra-credit, you might want to ask yourself why the culture in which you live would rather you not know about this truly self-empowering concept.
|!Format|!Markup|!Example|
|Bold|{{{''Bold''}}} (2 single quotes)|''Bold''|
|Italic|{{{//Italic//}}}|//Italic//|
|Bold Italic|{{{''//Bold Italic//''}}}|''//Bold Italic//''|
|Underlined|{{{__Underline__}}}(2 underscores)|__Underlined__|
|Strikethough|{{{--Strikethrough--}}}<br />{{{--}}} replaced {{{==}}} for Stikethrough in TiddlyWiki 2.1|--Strikethrough--|
|Superscript|{{{Text^^Superscript^^}}}|Text^^Superscript^^|
|Subscript|{{{Text~~Subscript~~}}}|Text~~Subscript~~|
|Monospaced text|<html><code>{{{Monospaced}}}</code></html>|{{{Monospaced}}}|
|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>|
|Highlight|{{{@@Highlight@@}}}|@@Highlight@@|
|Color|{{{@@color(green):green text@@}}}|@@color(green):green text@@ |
|~|{{{@@bgcolor(green):text@@}}}|@@bgcolor(green):text@@ |
|~|{{{@@bgcolor(#3399ff):text@@}}}|@@bgcolor(#3399ff):text@@|
|~|{{{@@bgcolor(#39f):text@@}}}|@@bgcolor(#39f):text@@|
|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 ...'>>|
|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|
|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>|
To make quoted bits of text stand out, you can use BlockQuotes within your [[tiddler]]s, like this:
JeremyRuston said:
<<<
A TiddlyWiki is like a blog because it's divided up into neat little chunks, 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.
<<<
Like BulletPoints and NumberedBulletPoints, you can have multiple levels of BlockQuotes. Just edit this tiddler to see how it's done.
>level 1
>level 1
>>level 2
>>level 2
>>>level 3
>>>level 3
>>level 2
>level 1
Creating BulletPoints is simple.
* Just add an asterisk
* at the beginning of a line.
** If you want to create sub-bullets
** start the line with two asterisks
*** And if you want yet another level
*** use three asterisks
* Edit this tiddler to see how it's done
* You can also do NumberedBulletPoints
/***
|Name|CalendarPlugin|
|Source|http://www.TiddlyTools.com/#CalendarPlugin|
|Version|2008.06.17|
|Author|Eric Shulman|
|Original Author|SteveRumsby|
|License|unknown|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Options|##Configuration|
|Description|display monthly and yearly calendars|
NOTE: For enhanced date display (including popups), you must also install [[DatePlugin]]
!!!!!Usage:
<<<
|{{{<<calendar>>}}}|Produce a full-year calendar for the current year|
|{{{<<calendar year>>}}}|Produce a full-year calendar for the given year|
|{{{<<calendar year month>>}}}|Produce a one-month calendar for the given month and year|
|{{{<<calendar thismonth>>}}}|Produce a one-month calendar for the current month|
|{{{<<calendar lastmonth>>}}}|Produce a one-month calendar for last month|
|{{{<<calendar nextmonth>>}}}|Produce a one-month calendar for next month|
<<<
!!!!!Configuration:
<<<
|''First day of week:''<br>{{{config.options.txtCalFirstDay}}}|<<option txtCalFirstDay>>|(Monday = 0, Sunday = 6)|
|''First day of weekend:''<br>{{{config.options.txtCalStartOfWeekend}}}|<<option txtCalStartOfWeekend>>|(Monday = 0, Sunday = 6)|
<<option chkDisplayWeekNumbers>> Display week numbers //(note: Monday will be used as the start of the week)//
|''Week number display format:''<br>{{{config.options.txtWeekNumberDisplayFormat }}}|<<option txtWeekNumberDisplayFormat >>|
|''Week number link format:''<br>{{{config.options.txtWeekNumberLinkFormat }}}|<<option txtWeekNumberLinkFormat >>|
<<<
!!!!!Revisions
<<<
2008.06.17: added support for config.macros.calendar.todaybg
2008.02.27: in handler(), DON'T set hard-coded default date format, so that *customized* value (pre-defined in config.macros.calendar.journalDateFmt is used.
2008.02.17: in createCalendarYear(), fix next/previous year calculation (use parseInt() to convert to numeric value). Also, use journalDateFmt for date linking when NOT using [[DatePlugin]].
2008.02.16: in createCalendarDay(), week numbers now created as TiddlyLinks, allowing quick creation/navigation to 'weekly' journals (based on request from Kashgarinn)
2008.01.08: in createCalendarMonthHeader(), "month year" heading is now created as TiddlyLink, allowing quick creation/navigation to 'month-at-a-time' journals
2007.11.30: added "return false" to onclick handlers (prevent IE from opening blank pages)
2006.08.23: added handling for weeknumbers (code supplied by Martin Budden (see "wn**" comment marks). Also, incorporated updated by Jeremy Sheeley to add caching for reminders (see [[ReminderMacros]], if installed)
2005.10.30: in config.macros.calendar.handler(), use "tbody" element for IE compatibility. Also, fix year calculation for IE's getYear() function (which returns '2005' instead of '105'). Also, in createCalendarDays(), use showDate() function (see [[DatePlugin]], if installed) to render autostyled date with linked popup. Updated calendar stylesheet definition: use .calendar class-specific selectors, add text centering and margin settings
2006.05.29: added journalDateFmt handling
<<<
***/
/***
!!!!!Code section:
***/
//{{{
version.extensions.calendar = { major: 0, minor: 7, revision: 0, date: new Date(2008, 6, 17)};
if(config.options.txtCalFirstDay == undefined)
config.options.txtCalFirstDay = 0;
if(config.options.txtCalStartOfWeekend == undefined)
config.options.txtCalStartOfWeekend = 5;
if(config.options.chkDisplayWeekNumbers == undefined)//wn**
config.options.chkDisplayWeekNumbers = false;
if(config.options.chkDisplayWeekNumbers)
config.options.txtCalFirstDay = 0;
if(config.options.txtWeekNumberDisplayFormat == undefined)//wn**
config.options.txtWeekNumberDisplayFormat = "w0WW";
if(config.options.txtWeekNumberLinkFormat == undefined)//wn**
config.options.txtWeekNumberLinkFormat = "YYYY-w0WW";
config.macros.calendar = {};
config.macros.calendar.monthnames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
config.macros.calendar.daynames = ["M", "T", "W", "T", "F", "S", "S"];
config.macros.calendar.todaybg = "#ccccff";
config.macros.calendar.weekendbg = "#c0c0c0";
config.macros.calendar.monthbg = "#e0e0e0";
config.macros.calendar.holidaybg = "#ffc0c0";
config.macros.calendar.journalDateFmt = "DD MMM YYYY";
config.macros.calendar.monthdays = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
config.macros.calendar.holidays = [ ]; // Not sure this is required anymore - use reminders instead
//}}}
//{{{
function calendarIsHoliday(date) // Is the given date a holiday?
{
var longHoliday = date.formatString("0DD/0MM/YYYY");
var shortHoliday = date.formatString("0DD/0MM");
for(var i = 0; i < config.macros.calendar.holidays.length; i++) {
if(config.macros.calendar.holidays[i] == longHoliday || config.macros.calendar.holidays[i] == shortHoliday)
return true;
}
return false;
}
//}}}
//{{{
config.macros.calendar.handler = function(place,macroName,params) {
var calendar = createTiddlyElement(place, "table", null, "calendar", null);
var tbody = createTiddlyElement(calendar, "tbody", null, null, null);
var today = new Date();
var year = today.getYear();
if (year<1900) year+=1900;
// get format for journal link by reading from SideBarOptions (ELS 5/29/06 - based on suggestion by Martin Budden)
var text = store.getTiddlerText("SideBarOptions");
var re = new RegExp("<<(?:newJournal)([^>]*)>>","mg"); var fm = re.exec(text);
if (fm && fm[1]!=null) { var pa=fm[1].readMacroParams(); if (pa[0]) this.journalDateFmt = pa[0]; }
if (params[0] == "thismonth") {
cacheReminders(new Date(year, today.getMonth(), 1, 0, 0), 31);
createCalendarOneMonth(tbody, year, today.getMonth());
}
else if (params[0] == "lastmonth") {
var month = today.getMonth()-1; if (month==-1) { month=11; year--; }
cacheReminders(new Date(year, month, 1, 0, 0), 31);
createCalendarOneMonth(tbody, year, month);
}
else if (params[0] == "nextmonth") {
var month = today.getMonth()+1; if (month>11) { month=0; year++; }
cacheReminders(new Date(year, month, 1, 0, 0), 31);
createCalendarOneMonth(tbody, year, month);
} else {
if (params[0]) year = params[0];
if(params[1]) {
cacheReminders(new Date(year, params[1]-1, 1, 0, 0), 31);
createCalendarOneMonth(tbody, year, params[1]-1);
} else {
cacheReminders(new Date(year, 0, 1, 0, 0), 366);
createCalendarYear(tbody, year);
}
}
window.reminderCacheForCalendar = null;
}
//}}}
//{{{
//This global variable is used to store reminders that have been cached
//while the calendar is being rendered. It will be renulled after the calendar is fully rendered.
window.reminderCacheForCalendar = null;
//}}}
//{{{
function cacheReminders(date, leadtime)
{
if (window.findTiddlersWithReminders == null) return;
window.reminderCacheForCalendar = {};
var leadtimeHash = [];
leadtimeHash [0] = 0;
leadtimeHash [1] = leadtime;
var t = findTiddlersWithReminders(date, leadtimeHash, null, 1);
for(var i = 0; i < t.length; i++) {
//just tag it in the cache, so that when we're drawing days, we can bold this one.
window.reminderCacheForCalendar[t[i]["matchedDate"]] = "reminder:" + t[i]["params"]["title"];
}
}
//}}}
//{{{
function createCalendarOneMonth(calendar, year, mon)
{
var row = createTiddlyElement(calendar, "tr", null, null, null);
createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon] + " " + year, true, year, mon);
row = createTiddlyElement(calendar, "tr", null, null, null);
createCalendarDayHeader(row, 1);
createCalendarDayRowsSingle(calendar, year, mon);
}
//}}}
//{{{
function createCalendarMonth(calendar, year, mon)
{
var row = createTiddlyElement(calendar, "tr", null, null, null);
createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon] + " " + year, false, year, mon);
row = createTiddlyElement(calendar, "tr", null, null, null);
createCalendarDayHeader(row, 1);
createCalendarDayRowsSingle(calendar, year, mon);
}
//}}}
//{{{
function createCalendarYear(calendar, year)
{
var row;
row = createTiddlyElement(calendar, "tr", null, null, null);
var back = createTiddlyElement(row, "td", null, null, null);
var backHandler = function() {
removeChildren(calendar);
createCalendarYear(calendar, parseInt(year)-1);
return false; // consume click
};
createTiddlyButton(back, "<", "Previous year", backHandler);
back.align = "center";
var yearHeader = createTiddlyElement(row, "td", null, "calendarYear", year);
yearHeader.align = "center";
yearHeader.setAttribute("colSpan",config.options.chkDisplayWeekNumbers?22:19);//wn**
var fwd = createTiddlyElement(row, "td", null, null, null);
var fwdHandler = function() {
removeChildren(calendar);
createCalendarYear(calendar, parseInt(year)+1);
return false; // consume click
};
createTiddlyButton(fwd, ">", "Next year", fwdHandler);
fwd.align = "center";
createCalendarMonthRow(calendar, year, 0);
createCalendarMonthRow(calendar, year, 3);
createCalendarMonthRow(calendar, year, 6);
createCalendarMonthRow(calendar, year, 9);
}
//}}}
//{{{
function createCalendarMonthRow(cal, year, mon)
{
var row = createTiddlyElement(cal, "tr", null, null, null);
createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon], false, year, mon);
createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+1], false, year, mon);
createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+2], false, year, mon);
row = createTiddlyElement(cal, "tr", null, null, null);
createCalendarDayHeader(row, 3);
createCalendarDayRows(cal, year, mon);
}
//}}}
//{{{
function createCalendarMonthHeader(cal, row, name, nav, year, mon)
{
var month;
if (nav) {
var back = createTiddlyElement(row, "td", null, null, null);
back.align = "center";
back.style.background = config.macros.calendar.monthbg;
var backMonHandler = function() {
var newyear = year;
var newmon = mon-1;
if(newmon == -1) { newmon = 11; newyear = newyear-1;}
removeChildren(cal);
cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
createCalendarOneMonth(cal, newyear, newmon);
return false; // consume click
};
createTiddlyButton(back, "<", "Previous month", backMonHandler);
month = createTiddlyElement(row, "td", null, "calendarMonthname")
createTiddlyLink(month,name,true);
month.setAttribute("colSpan", config.options.chkDisplayWeekNumbers?6:5);//wn**
var fwd = createTiddlyElement(row, "td", null, null, null);
fwd.align = "center";
fwd.style.background = config.macros.calendar.monthbg;
var fwdMonHandler = function() {
var newyear = year;
var newmon = mon+1;
if(newmon == 12) { newmon = 0; newyear = newyear+1;}
removeChildren(cal);
cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
createCalendarOneMonth(cal, newyear, newmon);
return false; // consume click
};
createTiddlyButton(fwd, ">", "Next month", fwdMonHandler);
} else {
month = createTiddlyElement(row, "td", null, "calendarMonthname", name)
month.setAttribute("colSpan",config.options.chkDisplayWeekNumbers?8:7);//wn**
}
month.align = "center";
month.style.background = config.macros.calendar.monthbg;
}
//}}}
//{{{
function createCalendarDayHeader(row, num)
{
var cell;
for(var i = 0; i < num; i++) {
if (config.options.chkDisplayWeekNumbers) createTiddlyElement(row, "td");//wn**
for(var j = 0; j < 7; j++) {
var d = j + (config.options.txtCalFirstDay - 0);
if(d > 6) d = d - 7;
cell = createTiddlyElement(row, "td", null, null, config.macros.calendar.daynames[d]);
if(d == (config.options.txtCalStartOfWeekend-0) || d == (config.options.txtCalStartOfWeekend-0+1))
cell.style.background = config.macros.calendar.weekendbg;
}
}
}
//}}}
//{{{
function createCalendarDays(row, col, first, max, year, mon) {
var i;
if (config.options.chkDisplayWeekNumbers){
if (first<=max) {
var ww = new Date(year,mon,first);
var td=createTiddlyElement(row, "td");//wn**
var link=createTiddlyLink(td,ww.formatString(config.options.txtWeekNumberLinkFormat),false);
link.appendChild(document.createTextNode(ww.formatString(config.options.txtWeekNumberDisplayFormat)));
}
else createTiddlyElement(row, "td", null, null, null);//wn**
}
for(i = 0; i < col; i++)
createTiddlyElement(row, "td", null, null, null);
var day = first;
for(i = col; i < 7; i++) {
var d = i + (config.options.txtCalFirstDay - 0);
if(d > 6) d = d - 7;
var daycell = createTiddlyElement(row, "td", null, null, null);
var isaWeekend = ((d == (config.options.txtCalStartOfWeekend-0) || d == (config.options.txtCalStartOfWeekend-0+1))? true:false);
if(day > 0 && day <= max) {
var celldate = new Date(year, mon, day);
// ELS 2005.10.30: use <<date>> macro's showDate() function to create popup
// ELS 5/29/06 - use journalDateFmt
if (window.showDate)
showDate(daycell,celldate,"popup","DD",config.macros.calendar.journalDateFmt,true, isaWeekend);
else {
if(isaWeekend) daycell.style.background = config.macros.calendar.weekendbg;
var title = celldate.formatString(config.macros.calendar.journalDateFmt);
if(calendarIsHoliday(celldate))
daycell.style.background = config.macros.calendar.holidaybg;
var now=new Date();
if ((now-celldate>=0) && (now-celldate<86400000)) // is today?
daycell.style.background = config.macros.calendar.todaybg;
if(window.findTiddlersWithReminders == null) {
var link = createTiddlyLink(daycell, title, false);
link.appendChild(document.createTextNode(day));
} else
var button = createTiddlyButton(daycell, day, title, onClickCalendarDate);
}
}
day++;
}
}
//}}}
//{{{
// We've clicked on a day in a calendar - create a suitable pop-up of options.
// The pop-up should contain:
// * a link to create a new entry for that date
// * a link to create a new reminder for that date
// * an <hr>
// * the list of reminders for that date
// NOTE: The following code is only used when [[DatePlugin]] is not present
function onClickCalendarDate(e)
{
var button = this;
var date = button.getAttribute("title");
var dat = new Date(date.substr(6,4), date.substr(3,2)-1, date.substr(0, 2));
date = dat.formatString(config.macros.calendar.journalDateFmt);
var popup = createTiddlerPopup(this);
popup.appendChild(document.createTextNode(date));
var newReminder = function() {
var t = store.getTiddlers(date);
displayTiddler(null, date, 2, null, null, false, false);
if(t) {
document.getElementById("editorBody" + date).value += "\n<<reminder day:" + dat.getDate() +
" month:" + (dat.getMonth()+1) + " year:" + (dat.getYear()+1900) + " title: >>";
} else {
document.getElementById("editorBody" + date).value = "<<reminder day:" + dat.getDate() +
" month:" + (dat.getMonth()+1) +" year:" + (dat.getYear()+1900) + " title: >>";
}
return false; // consume click
};
var link = createTiddlyButton(popup, "New reminder", null, newReminder);
popup.appendChild(document.createElement("hr"));
var t = findTiddlersWithReminders(dat, [0,14], null, 1);
for(var i = 0; i < t.length; i++) {
link = createTiddlyLink(popup, t[i].tiddler, false);
link.appendChild(document.createTextNode(t[i].tiddler));
}
return false; // consume click
}
//}}}
//{{{
function calendarMaxDays(year, mon)
{
var max = config.macros.calendar.monthdays[mon];
if(mon == 1 && (year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0)) max++;
return max;
}
//}}}
//{{{
function createCalendarDayRows(cal, year, mon)
{
var row = createTiddlyElement(cal, "tr", null, null, null);
var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
if(first1 < 0) first1 = first1 + 7;
var day1 = -first1 + 1;
var first2 = (new Date(year, mon+1, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
if(first2 < 0) first2 = first2 + 7;
var day2 = -first2 + 1;
var first3 = (new Date(year, mon+2, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
if(first3 < 0) first3 = first3 + 7;
var day3 = -first3 + 1;
var max1 = calendarMaxDays(year, mon);
var max2 = calendarMaxDays(year, mon+1);
var max3 = calendarMaxDays(year, mon+2);
while(day1 <= max1 || day2 <= max2 || day3 <= max3) {
row = createTiddlyElement(cal, "tr", null, null, null);
createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
createCalendarDays(row, 0, day2, max2, year, mon+1); day2 += 7;
createCalendarDays(row, 0, day3, max3, year, mon+2); day3 += 7;
}
}
//}}}
//{{{
function createCalendarDayRowsSingle(cal, year, mon)
{
var row = createTiddlyElement(cal, "tr", null, null, null);
var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
if(first1 < 0) first1 = first1+ 7;
var day1 = -first1 + 1;
var max1 = calendarMaxDays(year, mon);
while(day1 <= max1) {
row = createTiddlyElement(cal, "tr", null, null, null);
createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
}
}
//}}}
//{{{
setStylesheet(".calendar, .calendar table, .calendar th, .calendar tr, .calendar td { text-align:center; } .calendar, .calendar a { margin:0px !important; padding:0px !important; }", "calendarStyles");
//}}}
*[[Edit Site Title|SiteTitle]]
*[[Edit Site Subtitle|SiteSubtitle]]
*[[Edit Notebook Organizer|NotebookOrganizer]]
*[[Edit left sidebar|MainMenu]]
*[[Edit right sidebar|RightMenu]]
*[[Edit Default Startup IndexCards|DefaultTiddlers]]
* Edit <<slider chkTestSlider OptionsPanel options "Change TiddlyWiki advanced options">>
/***
|Name|DatePlugin|
|Source|http://www.TiddlyTools.com/#DatePlugin|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.7.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Options|##Configuration|
|Description|formatted dates plus popup menu with 'journal' link, changes and (optional) reminders|
There are quite a few calendar generators, reminders, to-do lists, 'dated tiddlers' journals, blog-makers and GTD-like schedule managers that have been built around TW. While they all have different purposes, and vary in format, interaction, and style, in one way or another each of these plugins displays and/or uses date-based information to make finding, accessing and managing relevant tiddlers easier. This plugin provides a general approach to embedding dates and date-based links/menus within tiddler content.
!!!!!Documentation
>see [[DatePluginInfo]]
!!!!!Configuration
<<<
<<option chkDatePopupHideCreated>> omit 'created' section from date popups
<<option chkDatePopupHideChanged>> omit 'changed' section from date popups
<<option chkDatePopupHideTagged>> omit 'tagged' section from date popups
<<option chkDatePopupHideReminders>> omit 'reminders' section from date popups
<<option chkShowJulianDate>> display Julian day number (1-365) below current date
see [[DatePluginConfig]] for additional configuration settings, for use in calendar displays, including:
*date formats
*color-coded backgrounds
*annual fixed-date holidays
*weekends
<<<
!!!!!Revisions
<<<
2008.03.08 [2.7.0] in addModifiedsToPopup(), if a tiddler was created on the specified date, don't list it in the 'changed' section of the popup. Based on a request from Kashgarinn.
|please see [[DatePluginInfo]] for additional revision details|
2005.10.30 [0.9.0] pre-release
<<<
!!!!!Code
***/
//{{{
version.extensions.date = {major: 2, minor: 7, revision: 0, date: new Date(2008,3,8)};
config.macros.date = {
format: "YYYY.0MM.0DD", // default date display format
linkformat: "YYYY.0MM.0DD", // 'dated tiddler' link format
linkedbg: "#babb1e", // "babble"
todaybg: "#ffab1e", // "fable"
weekendbg: "#c0c0c0", // "cocoa"
holidaybg: "#ffaace", // "face"
createdbg: "#bbeeff", // "beef"
modifiedsbg: "#bbeeff", // "beef"
remindersbg: "#c0ffee", // "coffee"
holidays: [ "01/01", "07/04", "07/24", "11/24" ], // NewYearsDay, IndependenceDay(US), Eric's Birthday (hooray!), Thanksgiving(US)
weekend: [ 1,0,0,0,0,0,1 ] // [ day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6 ]
};
config.macros.date.handler = function(place,macroName,params)
{
// do we want to see a link, a popup, or just a formatted date?
var mode="display";
if (params[0]=="display") { mode=params[0]; params.shift(); }
if (params[0]=="popup") { mode=params[0]; params.shift(); }
if (params[0]=="link") { mode=params[0]; params.shift(); }
// get the date
var now = new Date();
var date = now;
if (!params[0] || params[0]=="today")
{ params.shift(); }
else if (params[0]=="filedate")
{ date=new Date(document.lastModified); params.shift(); }
else if (params[0]=="tiddler")
{ date=store.getTiddler(story.findContainingTiddler(place).id.substr(7)).modified; params.shift(); }
else if (params[0].substr(0,8)=="tiddler:")
{ var t; if ((t=store.getTiddler(params[0].substr(8)))) date=t.modified; params.shift(); }
else {
var y = eval(params.shift().replace(/Y/ig,(now.getYear()<1900)?now.getYear()+1900:now.getYear()));
var m = eval(params.shift().replace(/M/ig,now.getMonth()+1));
var d = eval(params.shift().replace(/D/ig,now.getDate()+0));
date = new Date(y,m-1,d);
}
// date format with optional custom override
var format=this.format; if (params[0]) format=params.shift();
var linkformat=this.linkformat; if (params[0]) linkformat=params.shift();
showDate(place,date,mode,format,linkformat);
}
window.showDate=showDate;
function showDate(place,date,mode,format,linkformat,autostyle,weekend)
{
if (!mode) mode="display";
if (!format) format=config.macros.date.format;
if (!linkformat) linkformat=config.macros.date.linkformat;
if (!autostyle) autostyle=false;
// format the date output
var title = date.formatString(format);
var linkto = date.formatString(linkformat);
// just show the formatted output
if (mode=="display") { place.appendChild(document.createTextNode(title)); return; }
// link to a 'dated tiddler'
var link = createTiddlyLink(place, linkto, false);
link.appendChild(document.createTextNode(title));
link.title = linkto;
link.date = date;
link.format = format;
link.linkformat = linkformat;
// if using a popup menu, replace click handler for dated tiddler link
// with handler for popup and make link text non-italic (i.e., an 'existing link' look)
if (mode=="popup") {
link.onclick = onClickDatePopup;
link.style.fontStyle="normal";
}
// format the popup link to show what kind of info it contains (for use with calendar generators)
if (autostyle) setDateStyle(place,link,weekend);
}
//}}}
//{{{
// NOTE: This function provides default logic for setting the date style when displayed in a calendar
// To customize the date style logic, please see[[DatePluginConfig]]
function setDateStyle(place,link,weekend) {
// alias variable names for code readability
var date=link.date;
var fmt=link.linkformat;
var linkto=date.formatString(fmt);
var cmd=config.macros.date;
if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=""))
{ place.style.background = cmd.weekendbg; }
if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
{ link.style.fontStyle="normal"; link.style.fontWeight="bold"; }
if (hasReminders(date))
{ link.style.textDecoration="underline"; }
if (isToday(date))
{ link.style.border="1px solid black"; }
if (isHoliday(date)&&(cmd.holidaybg!=""))
{ place.style.background = cmd.holidaybg; }
if (hasCreateds(date)&&(cmd.createdbg!=""))
{ place.style.background = cmd.createdbg; }
if (hasModifieds(date)&&(cmd.modifiedsbg!=""))
{ place.style.background = cmd.modifiedsbg; }
if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=""))
{ place.style.background = cmd.linkedbg; }
if (hasReminders(date)&&(cmd.remindersbg!=""))
{ place.style.background = cmd.remindersbg; }
if (isToday(date)&&(cmd.todaybg!=""))
{ place.style.background = cmd.todaybg; }
if (config.options.chkShowJulianDate) { // optional display of Julian date numbers
var m=[0,31,59,90,120,151,181,212,243,273,304,334];
var d=date.getDate()+m[date.getMonth()];
var y=date.getFullYear();
if (date.getMonth()>1 && (y%4==0 && y%100!=0) || y%400==0)
d++; // after February in a leap year
wikify("@@font-size:80%;<br>"+d+"@@",place);
}
}
//}}}
//{{{
function isToday(date) // returns true if date is today
{ var now=new Date(); return ((now-date>=0) && (now-date<86400000)); }
function isWeekend(date) // returns true if date is a weekend
{ return (config.macros.date.weekend[date.getDay()]); }
function isHoliday(date) // returns true if date is a holiday
{
var longHoliday = date.formatString("0MM/0DD/YYYY");
var shortHoliday = date.formatString("0MM/0DD");
for(var i = 0; i < config.macros.date.holidays.length; i++) {
var holiday=config.macros.date.holidays[i];
if (holiday==longHoliday||holiday==shortHoliday) return true;
}
return false;
}
//}}}
//{{{
// Event handler for clicking on a day popup
function onClickDatePopup(e)
{
if (!e) var e = window.event;
var theTarget = resolveTarget(e);
var popup = Popup.create(this);
if(popup) {
// always show dated tiddler link (or just date, if readOnly) at the top...
if (!readOnly || store.tiddlerExists(this.date.formatString(this.linkformat)))
createTiddlyLink(popup,this.date.formatString(this.linkformat),true);
else
createTiddlyText(popup,this.date.formatString(this.linkformat));
if (!config.options.chkDatePopupHideCreated)
addCreatedsToPopup(popup,this.date,this.format);
if (!config.options.chkDatePopupHideChanged)
addModifiedsToPopup(popup,this.date,this.format);
if (!config.options.chkDatePopupHideTagged)
addTaggedToPopup(popup,this.date,this.linkformat);
if (!config.options.chkDatePopupHideReminders)
addRemindersToPopup(popup,this.date,this.linkformat);
}
Popup.show(popup,false);
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
return(false);
}
//}}}
//{{{
function indexCreateds() // build list of tiddlers, hash indexed by creation date
{
var createds= { };
var tiddlers = store.getTiddlers("title","excludeLists");
for (var t = 0; t < tiddlers.length; t++) {
var date = tiddlers[t].created.formatString("YYYY0MM0DD")
if (!createds[date])
createds[date]=new Array();
createds[date].push(tiddlers[t].title);
}
return createds;
}
function hasCreateds(date) // returns true if date has created tiddlers
{
if (!config.macros.date.createds) config.macros.date.createds=indexCreateds();
return (config.macros.date.createds[date.formatString("YYYY0MM0DD")]!=undefined);
}
function addCreatedsToPopup(popup,when,format)
{
var force=(store.isDirty() && when.formatString("YYYY0MM0DD")==new Date().formatString("YYYY0MM0DD"));
if (force || !config.macros.date.createds) config.macros.date.createds=indexCreateds();
var indent=String.fromCharCode(160)+String.fromCharCode(160);
var createds = config.macros.date.createds[when.formatString("YYYY0MM0DD")];
if (createds) {
createds.sort();
var e=createTiddlyElement(popup,"div",null,null,"created ("+createds.length+")");
for(var t=0; t<createds.length; t++) {
var link=createTiddlyLink(popup,createds[t],false);
link.appendChild(document.createTextNode(indent+createds[t]));
createTiddlyElement(popup,"br",null,null,null);
}
}
}
//}}}
//{{{
function indexModifieds() // build list of tiddlers, hash indexed by modification date
{
var modifieds= { };
var tiddlers = store.getTiddlers("title","excludeLists");
for (var t = 0; t < tiddlers.length; t++) {
var date = tiddlers[t].modified.formatString("YYYY0MM0DD")
if (!modifieds[date])
modifieds[date]=new Array();
modifieds[date].push(tiddlers[t].title);
}
return modifieds;
}
function hasModifieds(date) // returns true if date has modified tiddlers
{
if (!config.macros.date.modifieds) config.macros.date.modifieds = indexModifieds();
return (config.macros.date.modifieds[date.formatString("YYYY0MM0DD")]!=undefined);
}
function addModifiedsToPopup(popup,when,format)
{
var date=when.formatString("YYYY0MM0DD");
var force=(store.isDirty() && date==new Date().formatString("YYYY0MM0DD"));
if (force || !config.macros.date.modifieds) config.macros.date.modifieds=indexModifieds();
var indent=String.fromCharCode(160)+String.fromCharCode(160);
var mods = config.macros.date.modifieds[date];
if (mods) {
// if a tiddler was created on this date, don't list it in the 'changed' section
if (config.macros.date.createds && config.macros.date.createds[date]) {
var temp=[];
for(var t=0; t<mods.length; t++)
if (!config.macros.date.createds[date].contains(mods[t]))
temp.push(mods[t]);
mods=temp;
}
mods.sort();
var e=createTiddlyElement(popup,"div",null,null,"changed ("+mods.length+")");
for(var t=0; t<mods.length; t++) {
var link=createTiddlyLink(popup,mods[t],false);
link.appendChild(document.createTextNode(indent+mods[t]));
createTiddlyElement(popup,"br",null,null,null);
}
}
}
//}}}
//{{{
function hasTagged(date,format) // returns true if date is tagging other tiddlers
{
return store.getTaggedTiddlers(date.formatString(format)).length>0;
}
function addTaggedToPopup(popup,when,format)
{
var indent=String.fromCharCode(160)+String.fromCharCode(160);
var tagged=store.getTaggedTiddlers(when.formatString(format));
if (tagged.length) var e=createTiddlyElement(popup,"div",null,null,"tagged ("+tagged.length+")");
for(var t=0; t<tagged.length; t++) {
var link=createTiddlyLink(popup,tagged[t].title,false);
link.appendChild(document.createTextNode(indent+tagged[t].title));
createTiddlyElement(popup,"br",null,null,null);
}
}
//}}}
//{{{
function indexReminders(date,leadtime) // build list of tiddlers with reminders, hash indexed by reminder date
{
var reminders = { };
if(window.findTiddlersWithReminders!=undefined) { // reminder plugin is installed
// DEBUG var starttime=new Date();
var t = findTiddlersWithReminders(date, [0,leadtime], null, null, 1);
for(var i=0; i<t.length; i++) reminders[t[i].matchedDate]=true;
// DEBUG var out="Found "+t.length+" reminders in "+((new Date())-starttime+1)+"ms\n";
// DEBUG out+="startdate: "+date.toLocaleDateString()+"\n"+"leadtime: "+leadtime+" days\n\n";
// DEBUG for(var i=0; i<t.length; i++) { out+=t[i].matchedDate.toLocaleDateString()+" "+t[i].params.title+"\n"; }
// DEBUG alert(out);
}
return reminders;
}
function hasReminders(date) // returns true if date has reminders
{
if (window.reminderCacheForCalendar)
return window.reminderCacheForCalendar[date]; // use calendar cache
if (!config.macros.date.reminders)
config.macros.date.reminders = indexReminders(date,90); // create a 90-day leadtime reminder cache
return (config.macros.date.reminders[date]);
}
function addRemindersToPopup(popup,when,format)
{
if(window.findTiddlersWithReminders==undefined) return; // reminder plugin not installed
var indent = String.fromCharCode(160)+String.fromCharCode(160);
var reminders=findTiddlersWithReminders(when, [0,31],null,null,1);
createTiddlyElement(popup,"div",null,null,"reminders ("+(reminders.length||"none")+")");
for(var t=0; t<reminders.length; t++) {
link = createTiddlyLink(popup,reminders[t].tiddler,false);
var diff=reminders[t].diff;
diff=(diff<1)?"Today":((diff==1)?"Tomorrow":diff+" days");
var txt=(reminders[t].params["title"])?reminders[t].params["title"]:reminders[t].tiddler;
link.appendChild(document.createTextNode(indent+diff+" - "+txt));
createTiddlyElement(popup,"br",null,null,null);
}
if (readOnly) return; // omit "new reminder..." link
var link = createTiddlyLink(popup,indent+"new reminder...",true); createTiddlyElement(popup,"br");
var title = when.formatString(format);
link.title="add a reminder to '"+title+"'";
link.onclick = function() {
// show tiddler editor
story.displayTiddler(null, title, 2, null, null, false, false);
// find body 'textarea'
var c =document.getElementById("tiddler" + title).getElementsByTagName("*");
for (var i=0; i<c.length; i++) if ((c[i].tagName.toLowerCase()=="textarea") && (c[i].getAttribute("edit")=="text")) break;
// append reminder macro to tiddler content
if (i<c.length) {
if (store.tiddlerExists(title)) c[i].value+="\n"; else c[i].value="";
c[i].value += "<<reminder";
c[i].value += " day:"+when.getDate();
c[i].value += " month:"+(when.getMonth()+1);
c[i].value += " year:"+when.getFullYear();
c[i].value += ' title:"Enter a title" >>';
}
};
}
//}}}
/***
|Name|DatePluginConfig|
|Source|http://www.TiddlyTools.com/#DatePluginConfig|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.6.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|formats, background colors and other optional settings for DatePlugin|
***/
// // Default popup content display options (can be overridden by cookies)
//{{{
if (config.options.chkDatePopupHideCreated===undefined)
config.options.chkDatePopupHideCreated=false;
if (config.options.chkDatePopupHideChanged===undefined)
config.options.chkDatePopupHideChanged=false;
if (config.options.chkDatePopupHideTagged===undefined)
config.options.chkDatePopupHideTagged=false;
if (config.options.chkDatePopupHideReminders===undefined)
config.options.chkDatePopupHideReminders=false;
//}}}
// // show Julian date number below regular date
//{{{
if (config.options.chkShowJulianDate===undefined)
config.options.chkShowJulianDate=false;
//}}}
// // fixed-date annual holidays
//{{{
config.macros.date.holidays=[
"01/01", // NewYearsDay,
"07/04", // US Independence Day
"07/24" // Eric's Birthday (hooray!)
];
//}}}
// // weekend map (1=weekend, 0=weekday)
//{{{
config.macros.date.weekend=[ 1,0,0,0,0,0,1 ]; // day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6
//}}}
// // date display/link formats
//{{{
config.macros.date.format="YYYY.0MM.0DD"; // default date display format
config.macros.date.linkformat="YYYY.0MM.0DD"; // 'dated tiddler' link format
//}}}
// // When displaying a calendar (see [[CalendarPlugin]]), you can customize the colors/styles that are applied to the calendar dates by modifying the values and/or functions below:
//{{{
// default calendar colors
config.macros.date.weekendbg="#c0c0c0";
config.macros.date.holidaybg="#ffaace";
config.macros.date.createdbg="#bbeeff";
config.macros.date.modifiedsbg="#bbeeff";
config.macros.date.linkedbg="#babb1e";
config.macros.date.remindersbg="#c0ffee";
// apply calendar styles
function setDateStyle(place,link,weekend) {
// alias variable names for code readability
var date=link.date;
var fmt=link.linkformat;
var linkto=date.formatString(fmt);
var cmd=config.macros.date;
if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=""))
{ place.style.background = cmd.weekendbg; }
if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
{ link.style.fontStyle="normal"; link.style.fontWeight="bold"; }
if (hasReminders(date))
{ link.style.textDecoration="underline"; }
if (isToday(date))
{ link.style.border="1px solid black"; }
if (isHoliday(date)&&(cmd.holidaybg!=""))
{ place.style.background = cmd.holidaybg; }
if (hasCreateds(date)&&(cmd.createdbg!=""))
{ place.style.background = cmd.createdbg; }
if (hasModifieds(date)&&(cmd.modifiedsbg!=""))
{ place.style.background = cmd.modifiedsbg; }
if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=""))
{ place.style.background = cmd.linkedbg; }
if (hasReminders(date)&&(cmd.remindersbg!=""))
{ place.style.background = cmd.remindersbg; }
if (isToday(date)&&(cmd.todaybg!=""))
{ place.style.background = cmd.todaybg; }
if (config.options.chkShowJulianDate) {
var m=[0,31,59,90,120,151,181,212,243,273,304,334];
var d=date.getDate()+m[date.getMonth()];
var y=date.getFullYear();
if (date.getMonth()>1 && (y%4==0 && y%100!=0) || y%400==0) d++; // after February in a leap year
wikify("@@font-size:80%;<br>"+d+"@@",place);
}
}
//}}}
[[Welcome to TicklerWiki!]]
TicklerWiki
|!Format|!Markup|!Example|
|''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>|
|''Lists''|{{{*Bulleted list}}}|<html><ul><li>Bulleted List</li></ul></html>|
|~|{{{#Numbered list}}}|<html><ol><li>Numbered List</li></ol></html>|
|~|Definition list<br />{{{;Term}}}<br />{{{:definition}}}|<html><dl><dt>Term</dt><dd>definition</dd></dl></html>|
|~|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>|
|''Block quotes''|{{{>Blockquote}}}<br />{{{>>Nested quote}}}|<html><blockquote>Blockquote<blockquote>Nested<br/> quote</blockquote></blockquote></html>|
|~|{{{<<<}}}<br />{{{multi-line}}}<br />{{{blockquote}}}<br />{{{<<<}}}|<html><blockquote>multi-line<br/>blockquote</blockquote></html>|
|''Horizontal Rule''|{{{----}}} (4 dashes on a line of their own)|<html><hr></html>|
|''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]]|
|~|Manual link<br />{{{[[Table of Contents]]}}} (Especially for tiddlers with spaces in their titles)|[[Table of Contents]]|
|~|{{{[[Pretty Link|Link]]}}}|[[Pretty Link|Link]]|
|~|Automatic external link {{{http://www.tiddlywiki.com}}}|http://www.tiddlywiki.com|
|~|Pretty external link<br />{{{[[My Home Page|http://www.tiddlywiki.com]]}}}|[[My Home Page|http://www.tiddlywiki.com]]|
|~|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]]|
|''Images''|{{{[img[favicon.ico]]}}}<br />Note that image files are always external to the TW file|[img[http://www.tiddlywiki.com/favicon.ico]]|
|~|Right aligned<br />{{{[>img[favicon.ico]]}}}|[>img[http://www.tiddlywiki.com/favicon.ico]]|
|~|Left aligned<br />{{{[<img[favicon.ico]]}}}|[<img[http://www.tiddlywiki.com/favicon.ico]]|
|''Image Links''|{{{[img[fav.ico][TiddlerName]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][TiddlerName]]|
|~|{{{[img[fav.ico][Alias|TiddlerName]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][Alias|TiddlerName]]|
|~|{{{[img[fav.ico][http://www.aa.com]]}}}|[img[http://www.tiddlywiki.com/favicon.ico][http://www.tiddlywiki.com]]|
|~|>|also see ''Links'' and ''Images'' sections in this table|
|''Inline''<br />''Comments''|{{{Not shown: /% hidden comment %/}}}<br />Text between the markers will not be shown|Not shown:/% hidden text %/|
To download TicklerWiki, right-click [[here|http://www.ticklerwiki.com/index.html]] and save a copy to your computer as an .html file. Open it in your browser and you're ready to go!
*''Opera or Safari users:'' Opera or Safari users must also download this [[TiddlySaver.jar|http://www.tiddlywiki.com/TiddlySaver.jar]] file and place it in the same directory as your ~TicklerWiki in order for ~TicklerWiki to save your changes.
TicklerWiki is free of charge, contains no spyware, no adware,
and no malware.
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<br>
Title: <div class='editor' macro='edit title'></div>
<br>
Tags: <div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div class='editor' macro='edit tags'></div>
<br>
<div macro='annotations'></div>
<br>
Body: <div class='editor' macro='edit text'></div>
<br>
<!--}}}-->
Like most wikis, ~TiddlyWiki supports a range of simplified character formatting. You can find a list on the [[TiddlyWiki.org website|http://tiddlywiki.org/wiki/TiddlyWiki_Markup]].
To see all the tiddlers on this website that concern formatting, click on the 'formatting' link in the box that appears to the right of this tiddler.
!Beginner
* WikiWord
* BasicFormatting
* DocumentFormatting
* SubHeadings
* BulletPoints
* NumberedBulletPoints
* HorizontalRules
* BlockQuotes
* HtmlEntities
!Intermediate
* WikiWordEscape
* NonWikiWordLinks
* PrettyLinks
* LinkToFolders
* [[Tables]]
* TableFormatting
* TiddlerComments
!Advanced
* PeriodicTable
* PluginFormatting
* MonospacedText
* PlainText
* ExtendedFormatting
The Free Software Foundation (FSF) is a 501(c)3 donor supported charity founded in 1985 and based in Boston, MA, USA. The FSF has a worldwide mission to promote computer user freedom and to defend the rights of all free software users.
http://fsf.org/
TicklerWiki is a single web page that functions as a portable tickler and multi-subject notebook.
Copyright (C) 2008 Ronald Mulero
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the [[GNU General Public License|http://www.gnu.org/licenses/gpl.txt]]
along with this program. If not, see http://www.gnu.org/licenses/.
RonaldMulero (changetheworld [at] ronaldmulero [dot] com)
Getting Things Done is a simple and effective personal productivity method by David Allen. You can [[get the book from Amazon|http://www.amazon.com/exec/obidos/tg/detail/-/0142000280/qid=1115360158/sr=8-1/ref=pd_csp_1/002-8782437-3718417?v=glance&s=books&n=507846]].
Also check out the GTD community at the 43Folders [[website|http://www.43folders.com/]], [[wiki|http://wiki.43folders.com/index.php/Main_Page]], and [[newsgroup|http://groups-beta.google.com/group/43Folders/]].
----
"Getting Things Done" is © David Allen at [[Davidco|http://davidco.com]]. Davidco has no affiliation with TiddlyWiki, GTDTiddlyWiki, or TicklerWiki.
You can divide a tiddler into
----
sections by typing four dashes on a line by themselves
Entities in HTML documents allow characters to be entered that can't easily be typed on an ordinary keyboard. They take the form of an ampersand (&), an identifying string, and a terminating semi-colon (;). There's a complete reference [[here|http://www.htmlhelp.com/reference/html40/entities/]]; some of the more common and useful ones are shown below. Also see [[Paul's Notepad|http://thepettersons.org/PaulsNotepad.html#GreekHtmlEntities%20HtmlEntitiesList%20LatinHtmlEntities%20MathHtmlEntities]] for a more complete list.
|>|>|>|>|>|>| !HTML Entities |
| &nbsp; | | no-break space | | &apos; | ' | single quote, apostrophe |
| &ndash; | – | en dash |~| &quot; | " | quotation mark |
| &mdash; | — | em dash |~| &prime; | ′ | prime; minutes; feet |
| &hellip; | … | horizontal ellipsis |~| &Prime; | ″ | double prime; seconds; inches |
| &copy; | © | Copyright symbol |~| &lsquo; | ‘ | left single quote |
| &reg; | ® | Registered symbol |~| &rsquo; | ’ | right single quote |
| &trade; | ™ | Trademark symbol |~| &ldquo; | “ | left double quote |
| &dagger; | † | dagger |~| &rdquo; | ” | right double quote |
| &Dagger; | ‡ | double dagger |~| &laquo; | « | left angle quote |
| &para; | ¶ | paragraph sign |~| &raquo; | » | right angle quote |
| &sect; | § | section sign |~| &times; | × | multiplication symbol |
| &uarr; | ↑ | up arrow |~| &darr; | ↓ | down arrow |
| &larr; | ← | left arrow |~| &rarr; | → | right arrow |
| &lArr; | ⇐ | double left arrow |~| &rArr; | ⇒ | double right arrow |
| &harr; | ↔ | left right arrow |~| &hArr; | ⇔ | double left right arrow |
The table below shows how accented characters can be built up by subsituting a base character into the various accent entities in place of the underscore ('_'):
|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>| !Accented Characters |
| grave accent | &_grave; | À | à | È | è | Ì | ì | Ò | ò | Ù | ù | | | | | | |
| acute accent | &_acute; | Á | á | É | é | Í | í | Ó | ó | Ú | ú | | | Ý | ý | | |
| circumflex accent | &_circ; | Â | â | Ê | ê | Î | î | Ô | ô | Û | û | | | | | | |
| umlaut mark | &_uml; | Ä | ä | Ë | ë | Ï | ï | Ö | ö | Ü | ü | | | Ÿ | ÿ | | |
| tilde | &_tilde; | Ã | ã | | | | | Õ | õ | | | Ñ | ñ | | | | |
| ring | &_ring; | Å | å | | | | | | | | | | | | | |
| slash | &_slash; | | | | | | | Ø | ø | | | | | | | |
| cedilla | &_cedil; | | | | | | | | | | | | | | | Ç | ç |
"~IndexCard" is the name given to a unit of MicroContent in ~TicklerWiki.
~IndexCards are ~TicklerWiki's version of the 3x5 index cards commonly found in office supply stores. All of the information you create in ~TicklerWiki, from to-do lists to reminders to journal entries to notebook entries, are stored on ~IndexCards.
~IndexCards also store the data which control the look and behavior of ~TicklerWiki itself. The "MainMenu" ~IndexCard defines the left-sidebar, the NotebookOrganizer ~IndexCard defines the order of your notebooks, other ~IndexCards extend ~TicklerWiki's features, and still other ~IndexCards control ~TicklerWiki's appearance.
!To create a new ~IndexCard:
Click on the <<newTiddler>> button at the top of the right-sidebar, and a new ~IndexCard will appear, ready for you to title, tag, and edit.
!To view a previous ~IndexCard:
In the ~IndexCard Organizer on the ''right-sidebar'', click on ''"Tags"'' to find your ~IndexCard ''by subject'', or on ''"Timeline"'' to find it ''by date last edited'', or on ''"All"'' to find it ''alphabetically''.
<<newTiddler>><<closeAll>><<tabs txtMainTab "Tags" "All tags" TabTags "Timeline" "Timeline" TabTimeline "All" "All index cards" TabAll>>
The format for PrettyLinks allows for links that open local or network folders. Depending on your browser and operating system, the folders are opened in Windows Explorer, the OS X Finder, or the browser itself.
Edit this tiddler to see [[this link to a Windows network share|file://///server/share/folder/path/name]], [[this link to a Windows drive-mapped folder|file:///c:/folder/path/name]] and [[this link to a Unix-style folder|file:///folder/path/name]].
<<slider chkTicklerCalendarOpen TicklerCalendar "Tickler Calendar »" "Show/Hide tickler calendar">>
<<slider chkNotebookOrganizerOpen NotebookOrganizer "Notebook Organizer »" "Show/Hide notebook organizer">>
* DownloadTicklerWiki
* [[Customize|CustomizeTicklerWiki]]
* [[Help|TicklerWikiHelp]]
*
~MicroContent is just a fashionable word for self-contained fragments of content that are typically smaller than entire pages. Often ~MicroContent is presented via some kind of aggregation that reduces the perceptual shock and resource cost of context switching (e.g. Blogs aggregate several entries onto a single page, Flickr presents photos in a single album). TicklerWiki aggregates ~MicroContent items called "[[IndexCards|IndexCard]]" into pages that are loaded in one gulp and progressively displayed as the user clicks hypertext links to read them.
{{{Monospaced text}}} is supported - edit this tiddler to see the syntax.
You can also have monospaced blocks (useful for source code):
{{{
var posTop = findPosY(e);
var posBot = posTop + e.offsetHeight;
var winTop = findScrollY();
var winHeight = findWindowHeight();
var winBot = winTop + winHeight;
if(posTop < winTop)
return(posTop);
else if(posBot > winBot)
{
if(e.offsetHeight < winHeight)
return(posTop - (winHeight - e.offsetHeight));
else
return(posTop);
}
else
return(winTop);
}}}
!To view previous notes:
↑
<html><p style="text-align: right;">Click on the "MyJournal" tag in the tagbox above.</p></html>
----
!To create/edit today's notes:
Click on → <<newJournal 'MyJournal: YYYY MMM DD, ddd' 'MyJournal'>>
----
Today I did this...
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent blandit velit vitae sapien. Ut sapien velit, egestas at, viverra non, dignissim vel, justo. Donec pretium. Maecenas nulla nunc, faucibus lacinia, imperdiet posuere, dignissim at, ligula. Phasellus et risus in eros venenatis pretium. Mauris feugiat volutpat turpis. Proin nec felis vitae enim sodales suscipit. Duis mauris erat, tempor a, tristique sit amet, consectetuer eu, sapien. Nulla porttitor rutrum purus. Nam et sem. Praesent vulputate. Nam bibendum pede sed est. Nullam accumsan. Maecenas non augue. Suspendisse iaculis justo eget erat. Praesent eu nisi. Maecenas ac tellus eget nisl suscipit ultricies.
Sed nisi est, ultricies sed, semper at, sodales eget, quam. Nunc urna. Suspendisse potenti. Vestibulum urna mi, posuere vitae, rhoncus a, interdum vel, purus. Curabitur non leo non ligula fermentum aliquet. Donec consectetuer vehicula nulla. Proin fermentum erat a justo. Etiam risus dui, dignissim at, malesuada sit amet, porta vitae, lectus. Nullam nulla lorem, fermentum quis, sollicitudin vel, vehicula at, eros. In hac habitasse platea dictumst.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec sed neque nec enim cursus pellentesque. Vivamus nibh lacus, egestas et, vestibulum nec, vestibulum et, justo. Aliquam eu justo. Maecenas ac pede vel enim commodo dapibus. Vivamus cursus diam ac sapien. Suspendisse in sem. Nullam volutpat iaculis quam. Vivamus accumsan consectetuer tellus. Mauris lobortis. Nulla facilisi. Curabitur porta nulla sit amet felis. Suspendisse bibendum, enim sit amet aliquet commodo, nisi sem dictum tortor, sodales interdum lectus orci at purus. Morbi orci. Nam sollicitudin faucibus mi. Suspendisse metus.
Donec mi ligula, faucibus ac, pretium et, fermentum nec, nisi. Nunc tempor luctus nisi. Suspendisse diam turpis, molestie ac, molestie quis, elementum commodo, metus. Curabitur tincidunt vestibulum sem. Vestibulum ornare nibh et sem. Suspendisse eget massa luctus nisl lobortis semper. Nullam consequat ornare ligula. Nullam arcu sem, sollicitudin in, dignissim sit amet, scelerisque ut, nibh. Maecenas tincidunt, neque et consectetuer congue, justo dui vehicula nisl, at convallis dui ipsum nec eros. Donec ut sapien in metus suscipit venenatis. Maecenas vel enim non odio fringilla accumsan. Vivamus augue urna, imperdiet at, posuere eget, fermentum sit amet, nisl. Sed interdum mauris ac erat. Quisque iaculis pede sit amet ante. Vestibulum placerat. Curabitur aliquam orci et eros. Maecenas gravida. Vestibulum fringilla enim sit amet erat.
Donec vitae odio. Fusce fermentum. Donec malesuada. Aliquam congue, enim quis iaculis condimentum, risus sem sollicitudin ante, eget scelerisque est tortor nec nisi. Praesent quis neque ac est gravida ultricies. Proin sed mi. Ut viverra, nulla non vehicula rutrum, nulla justo tristique lorem, non fermentum sapien ante nec ante. Nam a nisl. Vestibulum interdum, dolor non consequat tincidunt, dui tortor adipiscing magna, vel rhoncus dui enim eu orci. Curabitur interdum, eros quis faucibus varius, lacus dui faucibus quam, ut pharetra ligula nisl id erat. Curabitur in tellus. Phasellus condimentum varius tortor. Nam mi sem, scelerisque sit amet, lobortis non, sollicitudin malesuada, risus. Vestibulum tempor elementum lacus. Integer metus. Fusce pulvinar, nibh a feugiat pharetra, ante odio porta turpis, at interdum felis justo a mauris. Sed lectus elit, aliquam viverra, adipiscing eu, dapibus nec, pede. Aliquam nisl eros, porttitor vel, molestie vitae, faucibus eu, ligula. Quisque egestas mi ac sapien. Ut auctor leo semper nibh venenatis condimentum.
To make a tiddler that doesn't have a WikiWord as its name, you can enclose the name in [[double square brackets]] - edit this tiddler to see an example. After saving the tiddler you can then click on the link to create the new tiddler. NonWikiWordLinks permits tiddlers to be created with names that are made from character sets that don't have upper and lower case.
* MyJournal
* [[PhysicsI]]
/%newnotebook%/<<newNotebook>>
It's easy to create NumberedBulletPoints.
# Use a single '#' at the start of each line
# and the tiddler will automatically
# start numbering your list.
## If you want a sub-list
## within any bullets
## add two '#'s at the start of the lines.
# When you go back to a single '#'
# the main numbered list will start up
# where it left off.
It's just as simple to do normal BulletPoints.
These InterfaceOptions for customising TicklerWiki are saved in your browser
Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)
<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations
----
Also see AdvancedOptions
<!--{{{-->
<div id='header'>
<div id='rightControls' refresh='content' tiddler='RightControls'>
</div>
<div id='titleLine'>
<span id='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span id='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='sidebar'>
<div id='mainMenu' refresh='content' force='true' tiddler='MainMenu'></div>
</div>
<div id='rightSidebar'>
<div id='rightMenu' refresh='content' force='true' tiddler='RightMenu'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
|Standard Periodic Table (ref. Wikipedia)|c
|| !1 | !2 |!| !3 | !4 | !5 | !6 | !7 | !8 | !9 | !10 | !11 | !12 | !13 | !14 | !15 | !16 | !17 | !18 |
|!1|bgcolor(#a0ffa0): @@color(red):H@@ |>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>||bgcolor(#c0ffff): @@color(red):He@@ |
|!2|bgcolor(#ff6666): Li |bgcolor(#ffdead): Be |>|>|>|>|>|>|>|>|>|>||bgcolor(#cccc99): B |bgcolor(#a0ffa0): C |bgcolor(#a0ffa0): @@color(red):N@@ |bgcolor(#a0ffa0): @@color(red):O@@ |bgcolor(#ffff99): @@color(red):F@@ |bgcolor(#c0ffff): @@color(red):Ne@@ |
|!3|bgcolor(#ff6666): Na |bgcolor(#ffdead): Mg |>|>|>|>|>|>|>|>|>|>||bgcolor(#cccccc): Al |bgcolor(#cccc99): Si |bgcolor(#a0ffa0): P |bgcolor(#a0ffa0): S |bgcolor(#ffff99): @@color(red):Cl@@ |bgcolor(#c0ffff): @@color(red):Ar@@ |
|!4|bgcolor(#ff6666): K |bgcolor(#ffdead): Ca ||bgcolor(#ffc0c0): Sc |bgcolor(#ffc0c0): Ti |bgcolor(#ffc0c0): V |bgcolor(#ffc0c0): Cr |bgcolor(#ffc0c0): Mn |bgcolor(#ffc0c0): Fe |bgcolor(#ffc0c0): Co |bgcolor(#ffc0c0): Ni |bgcolor(#ffc0c0): Cu |bgcolor(#ffc0c0): Zn |bgcolor(#cccccc): Ga |bgcolor(#cccc99): Ge |bgcolor(#cccc99): As |bgcolor(#a0ffa0): Se |bgcolor(#ffff99): @@color(green):Br@@ |bgcolor(#c0ffff): @@color(red):Kr@@ |
|!5|bgcolor(#ff6666): Rb |bgcolor(#ffdead): Sr ||bgcolor(#ffc0c0): Y |bgcolor(#ffc0c0): Zr |bgcolor(#ffc0c0): Nb |bgcolor(#ffc0c0): Mo |bgcolor(#ffc0c0): Tc |bgcolor(#ffc0c0): Ru |bgcolor(#ffc0c0): Rh |bgcolor(#ffc0c0): Pd |bgcolor(#ffc0c0): Ag |bgcolor(#ffc0c0): Cd |bgcolor(#cccccc): In |bgcolor(#cccccc): Sn |bgcolor(#cccc99): Sb |bgcolor(#cccc99): Te |bgcolor(#ffff99): I |bgcolor(#c0ffff): @@color(red):Xe@@ |
|!6|bgcolor(#ff6666): Cs |bgcolor(#ffdead): Ba |bgcolor(#ffbfff):^^*1^^|bgcolor(#ffc0c0): Lu |bgcolor(#ffc0c0): Hf |bgcolor(#ffc0c0): Ta |bgcolor(#ffc0c0): W |bgcolor(#ffc0c0): Re |bgcolor(#ffc0c0): Os |bgcolor(#ffc0c0): Ir |bgcolor(#ffc0c0): Pt |bgcolor(#ffc0c0): Au |bgcolor(#ffc0c0): @@color(green):Hg@@ |bgcolor(#cccccc): Tl |bgcolor(#cccccc): Pb |bgcolor(#cccccc): Bi |bgcolor(#cccc99): Po |bgcolor(#ffff99): At |bgcolor(#c0ffff): @@color(red):Rn@@ |
|!7|bgcolor(#ff6666): Fr |bgcolor(#ffdead): Ra |bgcolor(#ff99cc):^^*2^^|bgcolor(#ffc0c0): Lr |bgcolor(#ffc0c0): Rf |bgcolor(#ffc0c0): Db |bgcolor(#ffc0c0): Sq |bgcolor(#ffc0c0): Bh |bgcolor(#ffc0c0): Hs |bgcolor(#ffc0c0): Mt |bgcolor(#ffc0c0): Ds |bgcolor(#ffc0c0): Rg |bgcolor(#ffc0c0): @@color(green):Uub@@ |bgcolor(#cccccc): Uut |bgcolor(#cccccc): Uuq |bgcolor(#cccccc): Uup |bgcolor(#cccccc): Uuh |bgcolor(#fcfecc): @@color(#cccccc):Uus@@ |bgcolor(#ecfefc): @@color(#cccccc):Uuo@@ |
| !Lanthanides^^*1^^|bgcolor(#ffbfff): La |bgcolor(#ffbfff): Ce |bgcolor(#ffbfff): Pr |bgcolor(#ffbfff): Nd |bgcolor(#ffbfff): Pm |bgcolor(#ffbfff): Sm |bgcolor(#ffbfff): Eu |bgcolor(#ffbfff): Gd |bgcolor(#ffbfff): Tb |bgcolor(#ffbfff): Dy |bgcolor(#ffbfff): Ho |bgcolor(#ffbfff): Er |bgcolor(#ffbfff): Tm |bgcolor(#ffbfff): Yb |
| !Actinides^^*2^^|bgcolor(#ff99cc): Ac |bgcolor(#ff99cc): Th |bgcolor(#ff99cc): Pa |bgcolor(#ff99cc): U |bgcolor(#ff99cc): Np |bgcolor(#ff99cc): Pu |bgcolor(#ff99cc): Am |bgcolor(#ff99cc): Cm |bgcolor(#ff99cc): Bk |bgcolor(#ff99cc): Cf |bgcolor(#ff99cc): Es |bgcolor(#ff99cc): Fm |bgcolor(#ff99cc): Md |bgcolor(#ff99cc): No |
*Chemical Series of the Periodic Table
**@@bgcolor(#ff6666): Alkali metals@@
**@@bgcolor(#ffdead): Alkaline earth metals@@
**@@bgcolor(#ffbfff): Lanthanides@@
**@@bgcolor(#ff99cc): Actinides@@
**@@bgcolor(#ffc0c0): Transition metals@@
**@@bgcolor(#cccccc): Poor metals@@
**@@bgcolor(#cccc99): Metalloids@@
**@@bgcolor(#a0ffa0): Nonmetals@@
**@@bgcolor(#ffff99): Halogens@@
**@@bgcolor(#c0ffff): Noble gases@@
*State at standard temperature and pressure
**those in @@color(red):red@@ are gases
**those in @@color(green):green@@ are liquids
**those in black are solids
!To view previous notes:
↑
<html><p style="text-align: right;">Click on the "PhysicsI" tag in the tagbox above.</p></html>
----
!To create/edit today's notes:
Click on → <<newJournal 'PhysicsI: YYYY MMM DD, ddd' 'PhysicsI'>>
----
!Course Information
|''University:''|Massachusetts Institute of Technology|
|''Semester:''|Fall 2003|
|''Instructor:''|Prof. Stanley Kowalski|
|''Course Meeting Times:''|Lectures: Three sessions / week 1 hour / session Recitations: Two sessions / week 1 hour / session|
|''Level:''|Undergraduate|
|''Course Highlights:''|This undergraduate level introductory physics course includes lecture notes, problem sets with solutions, and exams with solutions.|
|''Course Description:''|Physics I is a first-year physics course which introduces students to classical mechanics. Topics include: space and time; straight-line kinematics; motion in a plane; forces and equilibrium; experimental basis of Newton's laws; particle dynamics; universal gravitation; collisions and conservation laws; work and potential energy; vibrational motion; conservative forces; inertial forces and non-inertial frames; central force motions; rigid bodies and rotational dynamics.|
!Complimentary Course Materials:
[[http://ocw.mit.edu/OcwWeb/Physics/8-01Physics-IFall2003/|http://ocw.mit.edu/OcwWeb/Physics/8-01Physics-IFall2003/CourseHome/index.htm]]
----
Today we did this...
More info here...
See also:
* these browser sessions...
* this video...
* this scan of our workbook assignment...
* this copy of our online assignment...
* these other students' notes repositories
Sometimes text can inadvertently match TiddlyWiki formatting instructions - particularly program code, or text pasted from elsewhere. In these situations you can either use MonospacedText or you can accomplish the same thing without the monospaced effect like this:
{{{
This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>
<nowiki>This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>></nowiki>
"""This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>"""
}}}
Which displays as:
This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>
<nowiki>This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>></nowiki>
"""This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>"""
To make plugins, stylesheets and templates easier to read, you can use special alternative formatting for monospaced blocks.
In JavaScript code:
{{{
//{{{
var id = document.getElementById("mainMenu");
//}}}
}}}
In HTML templates:
{{{
<!--{{{-->
<div id="MainMenu">
</div>
<!--}}}-->
}}}
In CSS stylesheets
{{{
/*{{{*/
div {color: #ff0000;}
/*}}}*/
}}}
It will be displayed as:
//{{{
var id = document.getElementById("mainMenu");
//}}}
<!--{{{-->
<div id="MainMenu">
</div>
<!--}}}-->
/*{{{*/
div {color: #ff0000;}
/*}}}*/
You can now link to [[external sites|http://www.osmosoft.com]] or [[ordinary tiddlers|TiddlyWiki]] with ordinary words, without the messiness of the full URL appearing. Edit this tiddler to see how.
You can also LinkToFolders.
<<slider chkTiddlerOrganizerOpen IndexCardOrganizer "IndexCard Organizer »" "Show/Hide IndexCard Organizer">>
[[TicklerWiki|http://www.ticklerwiki.com/]]
@@color(#db4):Build 2010.03.18
Core Version <<version>>@@
<html>
<a href="http://www.gnu.org/licenses/gpl.html" target="_new">TicklerWiki is published by Ronald Mulero under a GNU General Public License.</a>
</p>
<hr>
<p>
<a href="http://www.tiddlywiki.com" target="_new">TiddlyWiki is published by Jeremy Ruston at Osmosoft under a BSD open source license.</a>
</p>
<p>
<a href="http://snapgrid.com" target="_new">GTDTiddlyWiki is published by Nathan Bowers at Snapgrid under a BSD open source license.</a>
</p>
<p>
<a href="http://davidco.com" target="_new">"Getting Things Done" is © David Allen at Davidco. Davidco has no affiliation with TiddlyWiki, GTDTiddlyWiki, or TicklerWiki.</a>
</p>
</html>
Go on, DownloadTicklerWiki and give it a try. Your saved copy is fully functional.
If you like ~TicklerWiki, throw me a dollar every now and then, and I'll make sure you get hooked-up with ''//even more useful AnarchistTools//'' that you've never heard about...
<html><form target='_paypal' action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" align="absmiddle"><input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHHgYJKoZIhvcNAQcEoIIHDzCCBwsCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYCwSUsyQgPAmXzPnkHxSBNULv8P6I0IQgJ/DzmM5k8ioXLmZGfZNiwBX4Qk5PnSlzoddqamaplP5bC67O/wkduEtB56VnwqJhicOoWVUngrLa8dXOKceFQdOFN8m4TkqaQ0YkSmLybyHV1ZiUuLg3LONFIArOrCr8THbQVXwNPpPjELMAkGBSsOAwIaBQAwgZsGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI23UR/na/b+qAeAb3ZrgmQuElHBAo+HRmju+wnx/8pK670CckGoV6nxw71gt96l8bCYNOiXxqDn4fEJndazvOT7o4I1e2qy7wW84PSwU+LKlaKauO9WbHLXxRltLxWVK4lnx4AhePYN1GIaxN24PxwaXTtZV+Aqg71Iyihfz8dczru6CCA4cwggODMIIC7KADAgECAgEAMA0GCSqGSIb3DQEBBQUAMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTAeFw0wNDAyMTMxMDEzMTVaFw0zNTAyMTMxMDEzMTVaMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUdO3fxEzEtcnI7ZKZL412XvZPugoni7i7D7prCe0AtaHTc97CYgm7NsAtJyxNLixmhLV8pyIEaiHXWAh8fPKW+R017+EmXrr9EaquPmsVvTywAAE1PMNOKqo2kl4Gxiz9zZqIajOm1fZGWcGS0f5JQ2kBqNbvbg2/Za+GJ/qwUCAwEAAaOB7jCB6zAdBgNVHQ4EFgQUlp98u8ZvF71ZP1LXChvsENZklGswgbsGA1UdIwSBszCBsIAUlp98u8ZvF71ZP1LXChvsENZklGuhgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAgV86VpqAWuXvX6Oro4qJ1tYVIT5DgWpE692Ag422H7yRIr/9j/iKG4Thia/Oflx4TdL+IFJBAyPK9v6zZNZtBgPBynXb048hsP16l2vi0k5Q2JKiPDsEfBhGI+HnxLXEaUWAcVfCsQFvd2A1sxRr67ip5y2wwBelUecP3AjJ+YcxggGaMIIBlgIBATCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA0MTEyNDA0NTEyNlowIwYJKoZIhvcNAQkEMRYEFPnECsGEaaGlKn/UBlPsBK6ONjlyMA0GCSqGSIb3DQEBAQUABIGAXX6O/k4x8TBZUS5JG6IDMZXysHsuI4bjlXmec0RNw5GNGPEjO0ugwwAd7pClQSZFfW0x6dz1y9BhXsTxEb7NgPwBgexfJXG8dCCrhPGOdcruBcaKzcCsPmgWx4v/buToiwNp89HweM420sqOgq2B80ToXtonPSyPdt/j96ykHT0=-----END PKCS7-----
">
</form>
</html>
...so you can ''//really//'' help change the world. :)
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY, ddd" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TicklerWiki advanced options">>
your portable tickler and multi-subject notebook
http://www.ticklerwiki.com/
/***
|''Name:''|StyleSheet|
|''Description:''|Custom StyleSheet for TicklerWiki.|
|''Adaptation Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Adaptation Version:''|1.0.3|
|''Date:''|2010-03-18|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#StyleSheet|
|''Code Repository''||
|''Copyright''|2008-2010 Ronald Mulero|
|''License:''|GPLv3|
|''Requires''||
|''Core Version:''|2.6.0|
|''Overrides''|shadow tiddler|
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Adapted From:''|http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm#StyleSheet|
|''Original Author:''|[[Clint Checketts|http://www.checkettsweb.com/]]|
|''Original Version:''|(dated 2006.03.26)|
***/
/***
!Calendar CSS
***/
/*{{{*/
.calendar{
border-bottom: 1px solid #050;
}
.viewer .calendar{
width: 220px;
}
#mainMenu .calendar{
font-size: 8px;
cursor: pointer;
width: 100%;
border: 0;
border-collapse: collapse;
}
#mainMenu .calendar .button{
color: #fff;
background: [[ColorPalette::SecondaryDark]];
border: 0;
}
#mainMenu .calendar td{
font-size: 8pt;
padding: 0;
background: #fff;
border: 0;
}
#mainMenu .calendar a{
margin: 0;
color: #000;
background: transparent;
}
#mainMenu .calendar a:hover{
color: #fff;
background: #b00;
}
#mainMenu .calendarMonthname a,
#mainMenu .calendar .calendarMonthTitle td a{
color: #fff;
}
#mainMenu .calendarDaysOfWeek td{
background: #050;
color: #fff;
}
/*}}}*/
/***
!GTD Style
!Generic rules /%==================================================================== %/
***/
/*{{{*/
body {
background: #111111;
color: #000;
font: .82em/1.25em "Bitstream Vera Sans", Verdana, Helvetica, Arial, sans-serif;
/*"Lucida Sans Unicode", "Lucida Grande","Trebuchet MS", */
}
.zoomer {background:#b00; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
/*}}}*/
/***
!Header rules /%====================================================================== %/
***/
/*{{{*/
#contentWrapper
{
margin: 0 auto;
width: 74.45em;
width: 960px !important;
position: relative;
}
#header
{
height: 18px;
color: #fff;
padding: 2em 1em .6em .6em;
margin: 0 1.1em 0 0;
background: #060;
border-top: 3px solid #050;
border-right: 3px solid #050;
border-bottom: 3px solid #050;
border-left: 3px solid #050;
}
#siteTitle {
font-size: 2.3em;
}
#siteSubtitle {
font-size: 1em;
padding-left: .8em;
}
#titleLine{
background: transparent;
padding: 0;
width: 700px;
}
#titleLine a {
color: #fff;
background: transparent;
}
#rightControls {
position: absolute;
top: 20px;
right: 32px;
width: 210px;
color: #fff;
text-align: right;
font-size: 1em;
line-height: 2em;
margin-top: -4.4px;
}
#rightControls a,
#rightControls a.button{
height: 22px;
height: 1.83em;
line-height: 22px;
color: #fff;
background: #070;
padding: 0.15em 0.25em 0.25em 0.25em;
border: 1px solid #070;
border-bottom: 1px solid #050;
border-top: 1px solid #090;
}
#rightControls a.button:hover{
color: #fff;
background: #b00;
}
/*}}}*/
/***
!Sidebar rules /%====================================================================== %/
***/
/*{{{*/
#sidebar{
position: absolute;
left: 0;
width: 18em;
width: 208px !important;
margin: 0 .9em 0 0;
color: #000;
background: transparent;
}
/*}}}*/
/***
!rightSidebar rules /%====================================================================== %/
***/
/*{{{*/
#rightSidebar{
position: absolute;
right: 0px;
width: 16.5em;
width: 208px !important;
padding-right: 0;
margin: 0 1.1em 0 0;
color: #000;
background: #060;
}
/*}}}*/
/***
!Main menu rules /%=================================================================== %/
***/
/*{{{*/
#mainMenu{
position: static;
width: auto;
background: #060;
border-right: 3px solid #050;
border-bottom: 3px solid #050;
border-left: 3px solid #050;
padding: 0;
text-align: left;
font-size: 1em;
}
#mainMenu h1{
padding: 0;
margin: 0;
font-size: 1em;
font-weight: normal;
}
#mainMenu ul{
padding: 0;
margin: 0;
list-style: none;
}
#mainMenu h1 a,
#mainMenu li a,
#mainMenu li a.button{
display: block;
padding: 0 5px 0 10px;
border: 0;
border-bottom: 1px solid #050;
border-top: 1px solid #090;
margin: 0;
}
#mainMenu a,
#mainMenu a.button{
display: block;
padding: 0 5px 0 10px;
margin: 0;
height: 22px;
height: 1.83em;
line-height: 22px;
color: #fff;
background: #070;
}
#mainMenu a.button{
border: 0;
border-bottom: 1px solid [[ColorPalette::SecondaryDark]];
border-top: 1px solid [[ColorPalette::SecondaryLight]];
background: [[ColorPalette::SecondaryMid]];
color: #000;
}
#mainMenu div.sliderPanel{
background: [[ColorPalette::SecondaryMid]];
}
#mainMenu div.sliderPanel ul li a.tiddlyLink{
display: block;
padding: 0 5px 0 20px;
margin: 0;
height: 22px;
height: 1.83em;
line-height: 22px;
color: #000;
background: #fff;
border: 0;
border-bottom: 1px solid #050;
border-top: 1px solid #090;
text-align: right;
}
#mainMenu div.sliderPanel span input{
}
#mainMenu div.sliderPanel ul li a:hover {
background: #b00;
color: #fff;
}
#mainMenu a:hover,
#mainMenu a.button:hover {
background: #b00;
color: #fff;
}
/*}}}*/
/***
!Sidebar options rules /%============================================================ %/
***/
/*{{{*/
#sidebarOptions {
background: #eeb;
border-top: 3px solid #bb8;
border-right: 3px solid #bb8;
border-left: 3px solid #bb8;
color: #B4C675;
padding: .5em 0;
}
#sidebarOptions a {
color: #070;
margin: .2em .8em;
padding: 0;
border: 0;
}
#sidebarOptions a:hover, #sidebarOptions a:active {
color: #fff;
background: #070;
border: 0;
}
#sidebarOptions input{
margin: 2px 10px;
border: 1px inset #333;
padding: 0;
}
#sidebarOptions .sliderPanel {
background: #fff;
color: #000;
padding: 5px 10px;
font-size: .9em;
}
#sidebarOptions .sliderPanel a{
font-weight: normal;
margin: 0;
}
#sidebarOptions .sliderPanel a:link,#sidebarOptions .sliderPanel a:visited {
color: #070;
}
#sidebarOptions .sliderPanel a:hover,#sidebarOptions .sliderPanel a:active {
color: #fff;
background: #070;
}
/*}}}*/
!rightMenu rules /%===================================================================== %/
***/
/*{{{*/
#rightMenu {
background: #740;
margin: 0;
border: 0;
padding: 1px 0 1px 0;
border-right: 3px solid #740;
border-bottom: 3px solid #520;
}
#rightMenu a{
color: #fff;
}
#rightMenu div.sliderPanel{
background: [[ColorPalette::SecondaryMid]];
}
#rightMenu div.sliderPanel a.button{
border-bottom: 1px solid #000;
border-top: 1px solid #fff;
border-right: 1px solid #000;
border-left: 1px solid #fff;
background: #740;
color: #fff;
}
#rightMenu div.sliderPanel span{
background: #060;
color: #fff;
}
#rightMenu div.sliderPanel a.button,
#rightMenu div.sliderPanel span{
display: block;
margin: 0;
}
#rightMenu div.sliderPanel span a{
color: #fff;
display: block;
margin: 0;
}
#contentWrapper #displayArea .tabContents a{
color: #fff;
}
#contentWrapper #rightMenu a:hover,
#contentWrapper #displayArea .tabContents a:hover {
background: #b00;
color: #fff;
}
#contentWrapper #rightMenu a:active,
#contentWrapper #displayArea .tabContents a:active{
color: #000;
}
#rightMenu a.button{
display: block;
padding: 0 5px 0 10px;
margin: 0;
height: 22px;
height: 1.83em;
line-height: 22px;
border: 0;
border-bottom: 1px solid [[ColorPalette::SecondaryDark]];
border-top: 1px solid [[ColorPalette::SecondaryLight]];
background: [[ColorPalette::SecondaryMid]];
color: #000;
}
#contentWrapper .tabSelected {
background: #960;
}
#contentWrapper .tabUnselected{
background: #660;
}
#contentWrapper #rightSidebar .tabset{
background: #740;
padding: 7px 0 23px 3px;
}
#contentWrapper .tabContents{
font-size: .95em;
background: #960;
border:0;
border-right: 3px solid #740;
border-bottom: 3px solid #520;
border-left: 3px solid #740;
padding: .75em;
}
#contentWrapper .tabContents{
width: auto;
}
#contentWrapper #rightMenu .tabContents .tabset,
#contentWrapper .tabContents .tabset{
border: 0;
padding: 0;
background: transparent;
}
#contentWrapper .tabContents .tabSelected,
#contentWrapper .tabContents .tabContents {
background: #070;
border: 0;
}
#contentWrapper .tabContents .tabUnselected {
background: #440;
}
#contentWrapper .tabset a {
color: #fff;
float: left;
height: 1.25em;
padding: .2em .65em;
margin: 0 .17em 0 0;
position: static;
}
#contentWrapper .tabset a:hover {
background: #000;
color: #fff;
}
#contentWrapper .tabset a:active {
color: #000;
}
#contentWrapper .tabContents ul{
margin: 0;
padding: 0;
list-style: none;
}
#contentWrapper .tabContents .tabContents ul{
color: #eeb;
}
.tabContents ul a,
.tabContents ul .button{
color: #fff;
display: block;
padding: .1em 0 .1em .7em;
background: transparent;
border: 0;
}
.tabContents ul a:hover {
color: #fff;
background: #000;
}
/*}}}*/
/***
!Popup rules /%================================================================= %/
***/
/*{{{*/
.popup {
font-size: .8em;
padding: 0em;
background: #333;
border: 1px solid #000;
}
.popup hr {
margin: 1px 0 0 0;
visibility: hidden;
}
.popup li.disabled {
color: #666;
}
.popup li a,
.popup li a:visited{
color: #000;
border: .1em outset #cf6;
background: #cf6;
}
.popup li a:hover {
border: .1em outset #cf6;
background: #ef9;
color: #000;
}
/*}}}*/
/***
!Message area rules /%================================================================= %/
***/
/*{{{*/
#messageArea{
font-size: .9em;
padding: .4em;
background: #FFE72F;
border-right: .25em solid #da1;
border-bottom: .25em solid #a80;
position: fixed;
top: 18px;
right: 0px;
color: #000;
}
#contentWrapper #messageArea a{
color: #00e;
text-decoration: none;
}
#contentWrapper #messageArea a:hover{
color: #00e;
text-decoration: underline;
background: transparent;
}
#contentWrapper #messageArea .messageToolbar a.button{
border: 1px solid #da1;
}
#contentWrapper #messageArea .messageToolbar a.button:hover{
color: #00e;
text-decoration: none;
border: 1px solid #000;
background: #fff;
}
/*}}}*/
/***
!Tiddler display rules /%================================================================== %/
***/
/*{{{*/
#displayArea {
width: 532px;
width: 527px !important;
margin: 1px 0px 0px 209px;
}
.tiddler {
margin: 0 0 .9em 0;
padding: 0 1em;
border-right: .25em solid #aaa;
border-bottom: .25em solid #555;
background: #fff;
}
.title {
font-size: 1.5em;
font-weight: bold;
color: #090;
}
.toolbar {
font-size: .8em;
padding: .5em 0;
}
.toolbar .button{
padding: .1em .3em;
color: #000;
border: .1em outset #cf6;
background: #cf6;
margin: .1em;
}
.toolbar .button:hover {
background: #ef9;
color: #000;
}
.toolbar .button:active {
background: #ff0;
}
/*}}}*/
/***
!Viewer rules /% ------------------------------------------------------------------------------------------ %/
***/
/*{{{*/
.viewer {
line-height: 1.4em;
font-size: 1em;
}
.viewer a:link, .viewer a:visited {
color: #15b;
}
.viewer a:hover {
color: #fff;
background: #000;
}
.viewer .button{
background: #ccc;
border-top: 1px solid #eee;
border-left: 1px solid #eee;
border-bottom: 1px solid #000;
border-right: 1px solid #000;
padding: 0.25em 0.75em 0.25em 0.75em;
margin: 0.25em;
}
.viewer .button:link,
.viewer .button:visited{
color: #15b;
}
.viewer .button:hover{
background: #15b;
color: #fff;
}
.viewer .button:active{
background: #ccc;
border-bottom: 1px solid #eee;
border-right: 1px solid #eee;
border-top: 1px solid #111;
border-left: 1px solid #111;
}
.viewer blockquote {
border-left: 3px solid #777;
margin: .3em;
padding: .3em;
}
.viewer pre{
background: #fefefe;
border: 1px solid #f1f1f1;
}
.viewer pre, .viewer code{
color: #000;
}
.viewer ul {
padding-left: 30px;
}
.viewer ol {
padding-left: 30px;
}
ul{
list-style-type: asquare;
}
ol{
list-style-type: decimal;
}
ol ol{
list-style-type: lower-alpha;
}
ol ol ol{
list-style-type: lower-roman;
}
.viewer ul, .viewer ol, .viewer p {
margin: .0;
}
.viewer li {
margin: .2em 0;
}
h1,h2,h3,h4,h5,h6 {
color: #000;
font-weight: bold;
background: #eee;
padding: 2px 10px;
margin: 5px 0;
}
.viewer h1 {font-size: 1.3em;}
.viewer h2 {font-size: 1.2em;}
.viewer h3 {font-size: 1.1em;}
.viewer h4 {font-size: 1em;}
.viewer h5 { font-size: .9em;}
.viewer h6 { font-size: .8em;}
.viewer table {
border: 2px solid #303030;
font-size: 11px;
margin: 10px 0;
}
.viewer th, .viewer thead td{
color: #000;
background: #eee;
border: 1px solid #aaa;
padding: 0 3px;
}
.viewer td {
border: 1px solid #aaa;
padding: 0 3px;
}
.viewer caption {
padding: 3px;
}
.viewer hr {
border: none;
border-top: dotted 1px #777;
height: 1px;
color: #777;
margin: 7px 0;
}
.viewer
{
margin: .5em 0 0 0;
padding: .5em 0;
border-top: 1px solid #ccc;
}
.highlight {
color: #000;
background: #ffe72f;
}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryMid]]; background-color:[[ColorPalette::TertiaryLight]];}
/*}}}*/
/***
!Editor rules /% ----------------------------------------------------------------------------------------- %/
***/
/*{{{*/
.editor {
font-size: .8em;
color: #402C74;
padding: .3em 0;
}
.editor input, .editor textarea {
font: 1.1em/130% "Andale Mono", "Monaco", "Lucida Console", "Courier New", monospace;
margin: 0;
border: 1px inset #333;
padding: 2px 0;
}
.editor textarea {
height: 42em;
width: 100%;
}
input:focus, textarea:focus
{
background: #ffe;
border: 1px solid #000;
}
.footer
{
padding: .5em 0;
margin: .5em 0;
border-top: 1px solid #ddd;
color: #555;
text-align: center;
}
/*}}}*/
/***
!IE Display hacks /% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%/
***/
/*{{{*/
#header{
_padding: 1.27em 1em 1.27em .6em; /* CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */
}
#titleLine{
_line-height: 2.3em; /* CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */
}
body {_font-size: 90%;}
/* CSS UNDERSCORE HACK FOR PROPER WIN/IE6 DISPLAY */
#contentWrapper
{
/* _width: 960px; CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */
_text-align: left; /* CSS UNDERSCORE HACK FOR PROPER WIN/IE DISPLAY */
}
#messageArea{
_position: absolute;
}
/*}}}*/
/***
|''Name:''|StyleSheetPrint|
|''Description:''|Style sheet to format center [[IndexCards|IndexCard]] for printing on letter-size pages, one per page.|
|''Adaptation Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Adaptation Version:''|1.0.0|
|''Date:''|2008-10-08|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#StyleSheetPrint|
|''Code Repository''||
|''Copyright''|2008 Ronald Mulero|
|''License:''|GPLv3|
|''Requires''||
|''Core Version:''|2.4.1|
|''Overrides''||
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Adapted From:''|http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm#StyleSheetPrint|
|''Original Author:''|[[Clint Checketts|http://www.checkettsweb.com/]]|
|''Original Version:''|(dated 2006.10.04)|
***/
/*{{{*/
@media print {
#mainMenu, #sidebar, #rightSidebar, #messageArea, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* LAYOUT ELEMENTS ========================================================== */
*
{
margin: 0;
padding: 0;
}
body {
background: #fff;
color: #000;
font-size: 8pt;
font-family: "Lucida Grande", "Bitstream Vera Sans", Helvetica, Verdana, Arial, sans-serif;
}
img {
max-width: 7.2in;
max-height: 10.3in;
}
#header, #side_container, #storeArea, #copyright, #floater, #messageArea, .save_accesskey, .site_description, #saveTest, .toolbar, .footer
{
display: none;
}
#tiddlerDisplay, #displayArea
{
display: inline;
}
.tiddler {
margin: 0 0 2em 0;
border-top: 1px solid #000;
page-break-before: always;
}
.tiddler:first-child {
page-break-before: avoid;
}
.title {
font-size: 1.6em;
font-weight: bold;
margin-bottom: .3em;
padding: .2em 0;
border-bottom: 1px dotted #000;
}
p, blockquote, ul, li, ol, dt, dd, dl, table
{
margin: 0 0 .3em 0;
}
h1, h2, h3, h4, h5, h6
{
margin: .2em 0;
}
h1
{
font-size: 1.5em;
}
h2
{
font-size: 1.3em;
}
h3
{
font-size: 1.25em;
}
h4
{
font-size: 1.15em;
}
h5
{
font-size: 1.1em;
}
blockquote
{
margin: .6em;
padding-left: .6em;
border-left: 1px solid #ccc;
}
ul
{
list-style-type: circle;
}
li
{
margin: .1em 0 .1em 2em;
line-height: 1.4em;
}
table
{
border-collapse: collapse;
font-size: 1em;
}
td, th
{
border: 1px solid #999;
padding: .2em;
}
hr {
border: none;
border-top: dotted 1px #777;
height: 1px;
color: #777;
margin: .6em 0;
}
}
/*}}}*/
/***
|''Name:''|StyleSheetPrint3x5|
|''Description:''|Optional style sheet for older printers. Users can replace the contents of StyleSheetPrint with the contents of StyleSheetPrint3x5 to format center [[IndexCards|IndexCard]] for printing on 3x5 cards.|
|''Adaptation Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Adaptation Version:''|1.0.0|
|''Date:''|2008-10-08|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#StyleSheetPrint3x5|
|''Code Repository''||
|''Copyright''|2008 Ronald Mulero|
|''License:''|GPLv3|
|''Requires''||
|''Core Version:''|2.4.1|
|''Overrides''||
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Adapted From:''|http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm#StyleSheetPrint|
|''Original Author:''|[[Clint Checketts|http://www.checkettsweb.com/]]|
|''Original Version:''|(dated 2006.10.04)|
***/
/*{{{*/
@media print {
#mainMenu, #sidebar, #rightSidebar, #messageArea, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* LAYOUT ELEMENTS ========================================================== */
*
{
margin: 0;
padding: 0;
}
body {
background: #fff;
color: #000;
font-size: 6.2pt;
font-family: "Lucida Grande", "Bitstream Vera Sans", Helvetica, Verdana, Arial, sans-serif;
}
img {
max-width: 2.2in;
max-height: 4.3in;
}
#header, #side_container, #storeArea, #copyright, #floater, #messageArea, .save_accesskey, .site_description, #saveTest, .toolbar, .footer
{
display: none;
}
#tiddlerDisplay, #displayArea
{
display: inline;
}
.tiddler {
margin: 0 0 2em 0;
border-top: 1px solid #000;
page-break-before: always;
}
.tiddler:first-child {
page-break-before: avoid;
}
.title {
font-size: 1.6em;
font-weight: bold;
margin-bottom: .3em;
padding: .2em 0;
border-bottom: 1px dotted #000;
}
p, blockquote, ul, li, ol, dt, dd, dl, table
{
margin: 0 0 .3em 0;
}
h1, h2, h3, h4, h5, h6
{
margin: .2em 0;
}
h1
{
font-size: 1.5em;
}
h2
{
font-size: 1.3em;
}
h3
{
font-size: 1.25em;
}
h4
{
font-size: 1.15em;
}
h5
{
font-size: 1.1em;
}
blockquote
{
margin: .6em;
padding-left: .6em;
border-left: 1px solid #ccc;
}
ul
{
list-style-type: circle;
}
li
{
margin: .1em 0 .1em 2em;
line-height: 1.4em;
}
table
{
border-collapse: collapse;
font-size: 1em;
}
td, th
{
border: 1px solid #999;
padding: .2em;
}
hr {
border: none;
border-top: dotted 1px #777;
height: 1px;
color: #777;
margin: .6em 0;
}
}
/*}}}*/
/***
|''Name:''|StyleSheetPrintLetter|
|''Description:''|This is a copy of the default StyleSheetPrint for TicklerWiki. It formats center [[IndexCards|IndexCard]] for printing on letter-size pages, one per page.|
|''Adaptation Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Adaptation Version:''|1.0.0|
|''Date:''|2008-10-08|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#StyleSheetPrintLetter|
|''Code Repository''||
|''Copyright''|2008 Ronald Mulero|
|''License:''|GPLv3|
|''Requires''||
|''Core Version:''|2.4.1|
|''Overrides''||
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Adapted From:''|http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm#StyleSheetPrint|
|''Original Author:''|[[Clint Checketts|http://www.checkettsweb.com/]]|
|''Original Version:''|(dated 2006.10.04)|
***/
/*{{{*/
@media print {
#mainMenu, #sidebar, #rightSidebar, #messageArea, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* LAYOUT ELEMENTS ========================================================== */
*
{
margin: 0;
padding: 0;
}
body {
background: #fff;
color: #000;
font-size: 8pt;
font-family: "Lucida Grande", "Bitstream Vera Sans", Helvetica, Verdana, Arial, sans-serif;
}
img {
max-width: 7.2in;
max-height: 10.3in;
}
#header, #side_container, #storeArea, #copyright, #floater, #messageArea, .save_accesskey, .site_description, #saveTest, .toolbar, .footer
{
display: none;
}
#tiddlerDisplay, #displayArea
{
display: inline;
}
.tiddler {
margin: 0 0 2em 0;
border-top: 1px solid #000;
page-break-before: always;
}
.tiddler:first-child {
page-break-before: avoid;
}
.title {
font-size: 1.6em;
font-weight: bold;
margin-bottom: .3em;
padding: .2em 0;
border-bottom: 1px dotted #000;
}
p, blockquote, ul, li, ol, dt, dd, dl, table
{
margin: 0 0 .3em 0;
}
h1, h2, h3, h4, h5, h6
{
margin: .2em 0;
}
h1
{
font-size: 1.5em;
}
h2
{
font-size: 1.3em;
}
h3
{
font-size: 1.25em;
}
h4
{
font-size: 1.15em;
}
h5
{
font-size: 1.1em;
}
blockquote
{
margin: .6em;
padding-left: .6em;
border-left: 1px solid #ccc;
}
ul
{
list-style-type: circle;
}
li
{
margin: .1em 0 .1em 2em;
line-height: 1.4em;
}
table
{
border-collapse: collapse;
font-size: 1em;
}
td, th
{
border: 1px solid #999;
padding: .2em;
}
hr {
border: none;
border-top: dotted 1px #777;
height: 1px;
color: #777;
margin: .6em 0;
}
}
/*}}}*/
!Header 1
!!Header 2
!!!Header 3
!!!!Header 4
!!!!!Header 5
|!Markup|!Explanation|
| {{{|}}} |Column Seperator |
| {{{!}}} |Heading (Row or Column) |
| {{{>}}} |Column Span |
| {{{~}}} |Row Span |
| {{{|Left |}}} |Left Align |
| {{{| Right|}}} |Right Align|
| {{{| Center |}}} |Center Align |
| {{{|Caption|c}}} |Table Caption (Can be at top or bottom)|
| {{{|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)|
| {{{|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)|
| {{{|CSSclass|k}}} |Applies a CSS class to the table to allow additional formatting (NB: only works if no whitespace after the k)|
|>|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} }}}|
|>|!Sample Table|
|>|{{{|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}}} |
|>|<<tiddler ./tblShow>>|
!Notes
You can use the custom CSS formatter in combination with headers and lists to allow new lines within the entry. e.g.:
{{{
#{{block{
Bullet 1
Some text in the same bullet
(Note that "block" can be anything, it is the formatters CSS class name)
}}}
# Bullet 2
}}}
#{{block{
Bullet 1
Some text in the same bullet
}}}
# Bullet 2
(Julian Knight, 2006-05-11)
<part atEg hidden>
{{{
This is before the indented text
@@display:block;margin-left:2em;This text will be indented...
...and can even span across several lines...
...or even include blank lines.
@@This is after the indented text
}}}
This is before the indented text
@@display:block;margin-left:2em;This text will be indented...
...and can even span across several lines...
...or even include blank lines.
@@This is after the indented text
</part>
<part tblMarkup hidden>
{{{
|table caption|c
|header|header|h
|text|more text|
|!heading|!heading|
|>|colspan|
|rowspan|left align |
|~| center |
|bgcolor(green):green| right|
|footer|footer|f
}}}
</part>
<part tblShow hidden>
|table caption|c
|header|header|h
|text|more text|
|!heading|!heading|
|>|colspan|
|rowspan|left align |
|~| center |
|bgcolor(green):green| right|
|footer|footer|f
</part>
*sample:
|!th1111111111|!th2222222222|
|>| colspan |
| rowspan |left|
|~| right|
|bgcolor(#a0ffa0):colored| center |
|caption|c
*another sample: see PeriodicTable.
For advanced effects, you can control the CSS style of a table by adding a row like this:
{{{
|cssClass|k
}}}
In the real world, a "tickler", also known as a "tickler file", is a collection of date-labeled file folders organized in a way that allows time-sensitive documents to be filed according to the future date on which each document needs action. Documents within the folders of a tickler can be to-do lists, pending bills, unpaid invoices, travel tickets, hotel reservations, meeting information, birthday reminders, coupons, claim tickets, call-back notes, follow-up reminders, maintenance reminders, or any other papers that require future action. Each day, the folder having the current date is retrieved from the tickler so that any documents within it may be acted on. Essentially, a tickler provides a way to [[send a reminder to oneself in the future|22 September 2009, Tue]]—"tickling" one's memory.
Ticklers are often used in newsrooms by editors, journalists, and reporters—as well as by many other groups, including sales representatives and professional offices in medicine, law, non-profit, government, and accounting—to track time-sensitive information, to schedule tasks, and to increase personal productivity. (See Wikipedia for [[more details|http://en.wikipedia.org/wiki/Tickler_file]].)
TicklerWiki brings this tickler concept to your web browser.
With TicklerWiki, you create a date-labeled to-do list by clicking on a future date in the calendar on the left sidebar and editing the IndexCard that pops up. TicklerWiki will add your reminder to the calendar and automatically present it back to you when you open TicklerWiki on that future date.
You can type links to digital versions of any time-sensitive documents you need to track: pending bills, invoices, birthday reminders, coupons, or call-back notes. See DocumentFormatting to learn how.
/***
|''Name:''|TicklerPlugin|
|''Description:''|Displays a "[[tickler|http://en.wikipedia.org/wiki/Tickler_file]]" tiddler at the top of the page on startup, above the DefaultTiddlers, having today's CalendarPlugin date as its title.|
|''Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Version:''|1.0.0|
|''Date:''|2008-07-31|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#TicklerPlugin|
|''Code Repository''||
|''Copyright''|2008 Ronald Mulero|
|''License:''|GPLv3|
|''Core Version:''|2.4.0|
|''Requires''|CalendarPlugin|
|''Overrides''|restart()|
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Keywords''|[tickler][reminder][GTD][todo][calendar]|
!Code
***/
//{{{
var restartOld = restart
window.restart = function()
{
invokeParamifier(params,"onstart");
if(story.isEmpty())
{
var today = new Date();
var todoToday = today.formatString("DD MMM YYYY, ddd");
var tiddlers = store.filterTiddlers(store.getTiddlerText("DefaultTiddlers"));
story.displayTiddlers(null,tiddlers);
story.displayTiddler("top",todoToday,null,false,false);
}
window.scrollTo(0,0);
}
//}}}
''~TicklerWiki'' is NOT A WEBSITE; it's your local copy of the web page you are interacting with right now.
It's a single .html file that you save to your computer or handheld-device and use as your personal productivity tool. It's a portable "[[tickler|Tickler]]" and [[multi-subject notebook|NotebookOrganizer]] in a single web page that you can carry with you wherever you go.
''~TicklerWiki'' is free of charge, contains no spyware, no adware, and no malware.
DownloadTicklerWiki.
* FormattingInstructions
* WhatsNew
* AboutTicklerWiki
!Discussion Forum
* [[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]]
**Since there are several different GTD ~TiddlyWiki systems out there, please try to remember to include the word "TicklerWiki" in the subject line of any posts related to this application.
/***
|''Name:''|TicklerWikiNewNotebookPlugin|
|''Description:''|Provides a button to create notebook tiddlers, each being automatically listed in a NotebookOrganizer tiddler and containing a link to create automatically titled, dated, and tagged notebook-entry tiddlers.|
|''Adaptation Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Adaptation Version:''|1.0.0|
|''Date:''|2008-10-01|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#TicklerWikiNewNotebookPlugin |
|''Code Repository:''||
|''Copyright''|2008 Ronald Mulero|
|''License:''|GPLv3|
|''Core Version:''|2.4.1|
|''Requires''||
|''Overrides''||
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Adapted From:''|http://www.TiddlyTools.com/#TaskTimerPlugin|
|''Original Author:''|Eric Shulman - ELS Design Studios|
|''Original Version:''|1.3.0|
!!!!!Code
***/
//{{{
version.extensions.newNotebook= {major: 1, minor:0, revision: 0, date: new Date(2008,10,01)};
config.macros.newNotebook = {
label: "create new notebook",
title: "Create a new notebook",
format: "%0\\n", // note: double-backslash-en
defText: "", // default notebook title
datestampFormat: "YYYY-0MM-0DD", // date stamp format
defTarget: "NotebookOrganizer",
prompt: "Enter a title for this notebook.",
createdMsg: "'%0' has been created",
updatedMsg: "'%0' has been updated",
marker: "/%"+"newnotebook"+"%/",
handler: function(place,macroName,params,wikifier,paramString,tiddler) {
var target=params.shift(); // get optional target tiddler title
if (!target) target=this.defTarget;
var format=this.format; if (params[0]) format=params.shift(); // get optional output format
var prompt=this.prompt; if (params[0]) prompt=params.shift(); // get optional prompt text
var defText=this.defText; if (params[0]) defText=params.shift(); // get optional notebook title
var onclick="config.macros.newNotebook.create(this,'"+target+"','"+format+"','"+prompt+"','"+defText+"')";
createTiddlyElement(place,"span").innerHTML =
'<input type="button" value="Create new notebook" title="'+this.title+' " onclick="'+onclick+'">';
},
create: function(here,target,format,msg,defText) {
var txt=prompt(msg,defText); // get notebook title from user
if (!txt) return; // user cancelled input
here.target=target;
var after=this.marker+"\n";
var tiddler=store.getTiddler(here.target);
if (tiddler && tiddler.text.length) {
var pos=tiddler.text.indexOf(this.marker);
if (pos==-1) pos=tiddler.text.length; // no marker, append content to end
var before=tiddler.text.substr(0,pos); // everything up to marker
if (before.length&&before.substr(before.length-1)!="\n") before+="\n"; // start on a new line
var after=tiddler.text.substr(pos); // marker+everything else
}
var now=new Date();
var dateStamp=now.formatString(config.macros.newNotebook.datestampFormat);
var wikiwordbtn="* [["+txt+"]]";
var newtxt=before+format.format([wikiwordbtn])+after;
var newtags=(tiddler?tiddler.tags:['NotebookOrganizers']); // include 'NotebookOrganizers' tag when creating new notebook organizers
store.saveTiddler(here.target,here.target,newtxt,config.options.txtUserName,new Date(),newtags,tiddler?tiddler.fields:null);
if (!tiddler) displayMessage(this.createdMsg.format([here.target]));
else displayMessage(this.updatedMsg.format([here.target]));
here.value=this.label;
here.title=this.title;
var tid=story.findContainingTiddler(here);
var wikiwordtxt="[["+txt+"]]";
var templatetxt="!To view previous notes:\n ↑\n\<html\>\<p style=\"text-align: right;\"\>Click on the \""+txt+"\" tag in the tagbox above.\<\/\p\>\<\/html\>\n----\n!To create/edit today's notes:\n\n\Click on → <\<newJournal '"+txt+": YYYY MMM DD, ddd' '"+txt+"'\>\>\n\n----\n!Course Information\n\|''University:''\|\|\n\|''Semester:''\|\|\n\|''Instructor:''\|\|\n|''Course Meeting Times:''\|\|\n|''Level:''\|\|\n\|''Course Highlights:''\|\|\n\|''Course Description:''\|\|\n!Complimentary Course Materials:\n\n";
here.notebook=txt;
here.tag=wikiwordtxt;
store.saveTiddler(here.notebook,here.notebook,templatetxt,config.options.txtUserName,new Date(),here.tag,null);
displayMessage(this.createdMsg.format([here.notebook]));
here.value=this.label;
here.title=this.title;
var tid=story.findContainingTiddler(here);
story.displayTiddler(story.findContainingTiddler(here),here.notebook); story.refreshTiddler(here.notebook,1,true);
saveChanges();
}
}
//}}}
/***
|''Name:''|TicklerWikiSinglePageModePlugin|
|''Description:''|Shows tiddlers one at a time with automatic permalink, or always opens tiddlers at top/bottom of page. Moves already-displayed tiddlers to page top, without interfering with tiddlers in edit mode. Also restores zoomer animation when using plugin.|
|''Adaptation Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Adaptation Version:''|1.0.0|
|''Date:''|2008-09-22|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#TicklerSinglePageModePlugin|
|''Code Repository''||
|''Copyright''|2008 Ronald Mulero|
|''License:''|GPLv3|
|''Core Version:''|2.4.1|
|''Requires''||
|''Overrides''|Story.prototype.displayTiddler(), Story.prototype.displayTiddlers(), Zoomer(), Scroller()|
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Adapted From:''|http://www.TiddlyTools.com/#SinglePageModePlugin|
|''Original Author:''|Eric Shulman - ELS Design Studios|
|''Original Version:''|2.9.5|
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)
Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.09.22 [TicklerWiki1.0.0] added 'move tiddler' logic and zoom animation.
2008.06.12 [2.9.5] corrected 'scroll to top of page' logic in auto-scroll handling
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release. Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageMode= {major: 2, minor: 9, revision: 5, date: new Date(2008,6,12)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
config.options.chkSinglePageMode=eval(v);
if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
config.lastURL = window.location.hash;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
config.options.chkSinglePageAutoScroll=true;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
if (!config.options.chkSinglePageMode)
{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
if (config.lastURL == window.location.hash) return; // no change in hash
var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
if (tids.length==1) // permalink (single tiddler in URL)
story.displayTiddler(null,tids[0]);
else { // restore permaview or default view
config.lastURL = window.location.hash;
if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
story.closeAllTiddlers();
story.displayTiddlers(null,tids);
}
}
if (Story.prototype.SPM_coreDisplayTiddler==undefined)
Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
/* TicklerWiki */
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly,animationSrc,customFields) // added animationSrc and customFields
{
var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
var opt=config.options;
var single=opt.chkSinglePageMode && !startingUp;
var top=opt.chkTopOfPageMode && !startingUp;
var bottom=opt.chkBottomOfPageMode && !startingUp;
if (single) {
story.forEachTiddler(function(tid,elem) {
// skip current tiddler and, optionally, tiddlers that are folded.
if ( tid==title
|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
return;
// if a tiddler is being edited, ask before closing
if (elem.getAttribute("dirty")=="true") {
if (opt.chkSinglePageKeepEditedTiddlers) return;
// if tiddler to be displayed is already shown, then leave active tiddler editor as is
// (occurs when switching between view and edit modes)
if (tiddlerElem) return;
// otherwise, ask for permission
var msg="'"+tid+"' is currently being edited.\n\n";
msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
if (!confirm(msg)) return; else story.saveTiddler(tid);
}
story.closeTiddler(tid);
});
}
/* TicklerWiki */
else if (top) {
; // not linking from display area
}
else if (bottom)
arguments[0]="bottom";
if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
config.lastURL = window.location.hash;
document.title = wikifyPlain("SiteTitle") + " - " + title;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
/* TicklerWiki */
if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // if already displayed, but editing... move tiddler and animate
var isTopTiddler=(tiddlerElem.previousSibling==null);
if (!isTopTiddler && (single || top))
tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
/* TicklerWiki */ // new editing animation code
if(animationSrc && typeof animationSrc !== "string") {
srcElement = animationSrc;
}
if(srcElement && typeof srcElement !== "string") {
if(config.options.chkAnimate && (animate == undefined || animate == true) && anim && typeof Zoomer == "function" && typeof Scroller == "function")
anim.startAnimating(new Zoomer(title,srcElement,tiddlerElem),new Scroller(tiddlerElem));
else
window.scrollTo(0,ensureVisible(tiddlerElem));
}
else if (bottom)
tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
else
this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
}
/* TicklerWiki */
if (tiddlerElem && tiddlerElem.getAttribute("dirty")!="true") { // if already displayed, and not editing... core render and move
this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
var isTopTiddler=(tiddlerElem.previousSibling==null);
if (single || top) // move to top even if already at top, so that page can scroll to top if single or top checked
tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
else if (bottom)
tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
else
return;
story.refreshTiddler(title,template,true);
}
/* TicklerWiki */
if (!tiddlerElem) { // if not displayed... custom render, move, and animate
var title = (tiddler instanceof Tiddler) ? tiddler.title : tiddler;
var tiddlerElem = this.getTiddler(title);
var place = this.getContainer();
var before = this.positionTiddler(srcElement);
tiddlerElem = this.createTiddler(place,before,title,template,customFields);
var isTopTiddler=(tiddlerElem.previousSibling==null);
if (single || top) // move to top even if already at top, so that page can scroll to top if single or top checked
tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
else if (bottom)
tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
else
return;
story.refreshTiddler(title,template,true);
if(animationSrc && typeof animationSrc !== "string") {
srcElement = animationSrc;
}
if(srcElement && typeof srcElement !== "string") {
if(config.options.chkAnimate && (animate == undefined || animate == true) && anim && typeof Zoomer == "function" && typeof Scroller == "function")
anim.startAnimating(new Zoomer(title,srcElement,tiddlerElem),new Scroller(tiddlerElem));
else
window.scrollTo(0,ensureVisible(tiddlerElem));
}
}
/* TicklerWiki */
var tiddlerElem=document.getElementById(story.idPrefix+title); // scroll to top of page or top of tiddler
if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
var isTopTiddler=(tiddlerElem.previousSibling==null);
var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
// if animating, defer scroll until 200ms after animation completes
var delay=opt.chkAnimate?config.animDuration+200:0;
setTimeout("window.scrollTo(0,"+yPos+")",delay);
}
}
if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
// suspend single/top/bottom modes when showing multiple tiddlers
var opt=config.options;
var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
this.SPM_coreDisplayTiddlers.apply(this,arguments);
opt.chkBottomOfPageMode=saveBPM;
opt.chkTopOfPageMode=saveTPM;
opt.chkSinglePageMode=saveSPM;
}
/* TicklerWiki */
var ZoomerOld = Zoomer
window.Zoomer = function (text,startElement,targetElement,unused)
{
var e = createTiddlyElement(document.body,"div",null,"zoomer");
createTiddlyElement(e,"div",null,null,text);
var winWidth = findWindowWidth();
var winHeight = findWindowHeight();
var p = [
{style: 'left', start: findPosX(startElement), end: findPosX(targetElement), template: '%0px'},
{style: 'top', start: findPosY(startElement), end: 58, template: '%0px'}, // Y = top
{style: 'width', start: Math.min(startElement.scrollWidth,winWidth), end: Math.min(targetElement.scrollWidth,winWidth), template: '%0px', atEnd: 'auto'},
{style: 'height', start: Math.min(startElement.scrollHeight,winHeight), end: Math.min(targetElement.scrollHeight,winHeight), template: '%0px', atEnd: 'auto'},
{style: 'fontSize', start: 8, end: 24, template: '%0pt'}
];
var c = function(element,properties) {removeNode(element);};
return new Morpher(e,config.animDuration,p,c);
}
/* TicklerWiki */
var ScrollerOld = Scroller
window.Scroller = function (targetElement)
{
var p = [{style: '-tw-vertScroll', start: findScrollY(), end: 0}];
return new Morpher(targetElement,config.animDuration,p);
}
//}}}
/***
|''Name:''|TicklerWikiTranslationPlugin|
|''Description:''|Translation of TiddlyWiki into "TicklerWiki"|
|''Translation Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Translation Version:''|1.0.2|
|''Date:''|2009-04-23|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#TicklerWikiTranslationPlugin |
|''Code Repository''||
|''Copyright''|2008-2009 Ronald Mulero|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]] |
|''Core Version:''|2.4.1|
|''Requires''||
|''Overrides''||
|''Feedback:''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/|
|''Plugin Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''Plugin Version:''|0.3.7|
|''Plugin Code Repository:''|http://svn.tiddlywiki.org/Trunk/association/locales/core/en/locale.en.js |
***/
//{{{
//--
//-- Translateable strings
//--
// Strings in "double quotes" should be translated; strings in 'single quotes' should be left alone
config.locale = "en"; // W3C language tag
if (config.options.txtUserName == 'YourName') // do not translate this line, but do translate the next line
merge(config.options,{txtUserName: "YourName"});
merge(config.tasks,{
save: {text: "save", tooltip: "Save your changes to this TicklerWiki", action: saveChanges},
sync: {text: "sync", tooltip: "Synchronise changes with other TiddlyWiki files and servers", content: '<<sync>>'},
importTask: {text: "import", tooltip: "Import IndexCards, tiddlers, and plugins from other TiddlyWiki files and servers", content: '<<importTiddlers>>'},
tweak: {text: "options", tooltip: "Tweak the appearance and behaviour of TicklerWiki", content: '<<options>>'},
upgrade: {text: "upgrade", tooltip: "Upgrade TicklerWiki core code", content: '<<upgrade>>'},
plugins: {text: "plugins", tooltip: "Manage installed plugins", content: '<<plugins>>'}
});
// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
txtUserName: "Username for signing your edits",
chkRegExpSearch: "Enable regular expressions for searches",
chkCaseSensitiveSearch: "Case-sensitive searching",
chkIncrementalSearch: "Incremental key-by-key searching",
chkAnimate: "Enable animations",
chkSaveBackups: "Keep backup file when saving changes",
chkAutoSave: "Automatically save changes",
chkGenerateAnRssFeed: "Generate an RSS feed when saving changes",
chkSaveEmptyTemplate: "Generate an empty template when saving changes",
chkOpenInNewWindow: "Open external links in a new window",
chkToggleLinks: "Clicking on links to open IndexCards causes them to close",
chkHttpReadOnly: "Hide editing features when viewed over HTTP",
chkForceMinorUpdate: "Don't update modifier username and date when editing IndexCards",
chkConfirmDelete: "Require confirmation before deleting IndexCards",
chkInsertTabs: "Use the tab key to insert tab characters instead of moving between fields",
txtBackupFolder: "Name of folder to use for backups",
txtMaxEditRows: "Maximum number of rows in edit boxes",
txtFileSystemCharSet: "Default character set for saving changes (Firefox/Mozilla only)"});
merge(config.messages,{
customConfigError: "Problems were encountered loading plugins. See PluginManager for details",
pluginError: "Error: %0",
pluginDisabled: "Not executed because disabled via 'systemConfigDisable' tag",
pluginForced: "Executed because forced via 'systemConfigForce' tag",
pluginVersionError: "Not executed because this plugin needs a newer version of TicklerWiki",
nothingSelected: "Nothing is selected. You must select one or more items first",
savedSnapshotError: "It appears that this TicklerWiki has been incorrectly saved. Please see http://www.tiddlywiki.com/#DownloadSoftware for details",
subtitleUnknown: "(unknown)",
undefinedTiddlerToolTip: "The IndexCard '%0' doesn't yet exist",
shadowedTiddlerToolTip: "The IndexCard '%0' doesn't yet exist, but has a pre-defined shadow value",
tiddlerLinkTooltip: "%0 - %1, %2",
externalLinkTooltip: "External link to %0",
noTags: "There are no tagged IndexCards",
notFileUrlError: "You need to save this TicklerWiki to a file before you can save changes",
cantSaveError: "It's not possible to save changes. Possible reasons include:\n- your browser doesn't support saving (Firefox, Internet Explorer, Safari and Opera all work if properly configured)\n- the pathname to your TicklerWiki file contains illegal characters\n- the TicklerWiki HTML file has been moved or renamed",
invalidFileError: "The original file '%0' does not appear to be a valid TicklerWiki",
backupSaved: "Backup saved",
backupFailed: "Failed to save backup file",
rssSaved: "RSS feed saved",
rssFailed: "Failed to save RSS feed file",
emptySaved: "Empty template saved",
emptyFailed: "Failed to save empty template file",
mainSaved: "Main TicklerWiki file saved",
mainFailed: "Failed to save main TicklerWiki file. Your changes have not been saved",
macroError: "Error in macro <<\%0>>",
macroErrorDetails: "Error while executing macro <<\%0>>:\n%1",
missingMacro: "No such macro",
overwriteWarning: "A IndexCard named '%0' already exists. Choose OK to overwrite it",
unsavedChangesWarning: "WARNING! There are unsaved changes in TicklerWiki\n\nChoose OK to save\nChoose CANCEL to discard",
confirmExit: "--------------------------------\n\nThere are unsaved changes in TicklerWiki. If you continue you will lose those changes\n\n--------------------------------",
saveInstructions: "SaveChanges",
unsupportedTWFormat: "Unsupported TicklerWiki format '%0'",
tiddlerSaveError: "Error when saving IndexCard '%0'",
tiddlerLoadError: "Error when loading IndexCard '%0'",
wrongSaveFormat: "Cannot save with storage format '%0'. Using standard format for save.",
invalidFieldName: "Invalid field name %0",
fieldCannotBeChanged: "Field '%0' cannot be changed",
loadingMissingTiddler: "Attempting to retrieve the IndexCard '%0' from the '%1' server at:\n\n'%2' in the workspace '%3'",
upgradeDone: "The upgrade to version %0 is now complete\n\nClick 'OK' to reload the newly upgraded TicklerWiki"});
merge(config.messages.messageClose,{
text: "close",
tooltip: "close this message area"});
config.messages.backstage = {
open: {text: "administration", tooltip: "Open the administration area to perform administrative tasks"},
close: {text: "close", tooltip: "Close the administration area"},
prompt: "administration: ",
decal: {
edit: {text: "edit", tooltip: "Edit the IndexCard '%0'"}
}
};
config.messages.listView = {
tiddlerTooltip: "Click for the full text of this IndexCard",
previewUnavailable: "(preview not available)"
};
config.messages.dates.months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November","December"];
config.messages.dates.days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
config.messages.dates.shortMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
config.messages.dates.shortDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["st","nd","rd","th","th","th","th","th","th","th",
"th","th","th","th","th","th","th","th","th","th",
"st","nd","rd","th","th","th","th","th","th","th",
"st"];
config.messages.dates.am = "am";
config.messages.dates.pm = "pm";
merge(config.messages.tiddlerPopup,{
});
merge(config.views.wikified.tag,{
labelNoTags: "no tags",
labelTags: "tags: ",
openTag: "Open tag '%0'",
tooltip: "Show IndexCards tagged with '%0'",
openAllText: "Open all",
openAllTooltip: "Open all of these IndexCards",
popupNone: "No other IndexCards tagged with '%0'"});
merge(config.views.wikified,{
defaultText: "\nThe IndexCard '%0' doesn't exist yet.\n Double-click this text to create it.\n\n",
defaultModifier: "(missing)",
shadowModifier: "(built-in shadow IndexCard)",
dateFormat: "DD MMM YYYY", // use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
createdPrompt: "created"});
merge(config.views.editor,{
tagPrompt: "Type tags separated with spaces, [[use double square brackets]] if necessary, or add existing",
defaultText: "Type the text for '%0',\nthen click on 'done' to save your changes."});
merge(config.views.editor.tagChooser,{
text: "tags",
tooltip: "Choose existing tags to add to this IndexCard",
popupNone: "There are no tags defined",
tagTooltip: "Add the tag '%0'"});
merge(config.messages,{
sizeTemplates:
[
{unit: 1024*1024*1024, template: "%0\u00a0GB"},
{unit: 1024*1024, template: "%0\u00a0MB"},
{unit: 1024, template: "%0\u00a0KB"},
{unit: 1, template: "%0\u00a0B"}
]});
merge(config.macros.search,{
label: "search",
prompt: "Search this TicklerWiki",
accessKey: "F",
successMsg: "%0 IndexCards found matching %1",
failureMsg: "No IndexCards found matching %0"});
merge(config.macros.tagging,{
label: "tagging: ",
labelNotTag: "not tagging",
tooltip: "List of IndexCards tagged with '%0'"});
merge(config.macros.timeline,{
dateFormat: "DD MMM YYYY"});// use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
merge(config.macros.allTags,{
tooltip: "Show IndexCards tagged with '%0'",
noTags: "There are no tagged IndexCards"});
config.macros.list.all.prompt = "All IndexCards in alphabetical order";
config.macros.list.missing.prompt = "IndexCards that have links to them but are not defined";
config.macros.list.orphans.prompt = "IndexCards that are not linked to from any other IndexCards";
config.macros.list.shadowed.prompt = "IndexCards shadowed with default contents";
config.macros.list.touched.prompt = "IndexCards that have been modified locally";
merge(config.macros.closeAll,{
label: "close all not editing",
prompt: "Close all displayed IndexCards (except any that are being edited)"});
merge(config.macros.permaview,{
label: "permaview",
prompt: "Link to an URL that retrieves all the currently displayed IndexCards"});
merge(config.macros.saveChanges,{
label: "save changes",
prompt: "Save all IndexCards to create a new TicklerWiki",
accessKey: "S"});
merge(config.macros.newTiddler,{
label: "create new IndexCard",
prompt: "Create a new IndexCard",
title: "New IndexCard",
accessKey: "N"});
merge(config.macros.newJournal,{
label: "create/edit today's notes",
prompt: "Create/Edit today's notes for the current notebook",
accessKey: "J"});
merge(config.macros.options,{
wizardTitle: "Tweak advanced options",
step1Title: "These options are saved in cookies in your browser",
step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Show unknown options</input>",
unknownDescription: "//(unknown)//",
listViewTemplate: {
columns: [
{name: 'Option', field: 'option', title: "Option", type: 'String'},
{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
{name: 'Name', field: 'name', title: "Name", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
});
merge(config.macros.plugins,{
wizardTitle: "Manage plugins",
step1Title: "Currently loaded plugins",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
skippedText: "(This plugin has not been executed because it was added since startup)",
noPluginText: "There are no plugins installed",
confirmDeleteText: "Are you sure you want to delete these plugins:\n\n%0",
removeLabel: "remove systemConfig tag",
removePrompt: "Remove systemConfig tag",
deleteLabel: "delete",
deletePrompt: "Delete these IndexCards forever",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Size", type: 'Size'},
{name: 'Forced', field: 'forced', title: "Forced", tag: 'systemConfigForce', type: 'TagCheckbox'},
{name: 'Disabled', field: 'disabled', title: "Disabled", tag: 'systemConfigDisable', type: 'TagCheckbox'},
{name: 'Executed', field: 'executed', title: "Loaded", type: 'Boolean', trueText: "Yes", falseText: "No"},
{name: 'Startup Time', field: 'startupTime', title: "Startup Time", type: 'String'},
{name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Error", falseText: "OK"},
{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
],
rowClasses: [
{className: 'error', field: 'error'},
{className: 'warning', field: 'warning'}
]}
});
merge(config.macros.toolbar,{
moreLabel: "more",
morePrompt: "Reveal further commands"
});
merge(config.macros.refreshDisplay,{
label: "refresh",
prompt: "Redraw the entire TicklerWiki display"
});
merge(config.macros.importTiddlers,{
readOnlyWarning: "You cannot import into a read-only TicklerWiki file. Try opening it from a file:// URL",
wizardTitle: "Import IndexCards from another file or server",
step1Title: "Step 1: Locate the server or TiddlyWiki file",
step1Html: "Specify the type of the server: <select name='selTypes'><option value=''>Choose...</option></select><br>Enter the URL or pathname here: <input type='text' size=50 name='txtPath'><br>...or browse for a file: <input type='file' size=50 name='txtBrowse'><br><hr>...or select a pre-defined feed: <select name='selFeeds'><option value=''>Choose...</option></select>",
openLabel: "open",
openPrompt: "Open the connection to this file or server",
openError: "There were problems fetching the tiddlywiki file",
statusOpenHost: "Opening the host",
statusGetWorkspaceList: "Getting the list of available workspaces",
step2Title: "Step 2: Choose the workspace",
step2Html: "Enter a workspace name: <input type='text' size=50 name='txtWorkspace'><br>...or select a workspace: <select name='selWorkspace'><option value=''>Choose...</option></select>",
cancelLabel: "cancel",
cancelPrompt: "Cancel this import",
statusOpenWorkspace: "Opening the workspace",
statusGetTiddlerList: "Getting the list of available IndexCards",
errorGettingTiddlerList: "Error getting list of IndexCards, click Cancel to try again",
step3Title: "Step 3: Choose the IndexCards to import",
step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Keep these IndexCards linked to this server so that you can synchronise subsequent changes</input><br><input type='checkbox' name='chkSave'>Save the details of this server in a 'systemServer' IndexCard called:</input> <input type='text' size=25 name='txtSaveTiddler'>",
importLabel: "import",
importPrompt: "Import these IndexCards",
confirmOverwriteText: "Are you sure you want to overwrite these IndexCards:\n\n%0",
step4Title: "Step 4: Importing %0 IndexCard(s)",
step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
doneLabel: "done",
donePrompt: "Close this wizard",
statusDoingImport: "Importing IndexCards",
statusDoneImport: "All IndexCards imported",
systemServerNamePattern: "%2 on %1",
systemServerNamePatternNoWorkspace: "%1",
confirmOverwriteSaveTiddler: "The IndexCard '%0' already exists. Click 'OK' to overwrite it with the details of this server, or 'Cancel' to leave it unchanged",
serverSaveTemplate: "|''Type:''|%0|\n|''URL:''|%1|\n|''Workspace:''|%2|\n\nThis IndexCard was automatically created to record the details of this server",
serverSaveModifier: "(System)",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Size", type: 'Size'},
{name: 'Tags', field: 'tags', title: "Tags", type: 'Tags'}
],
rowClasses: [
]}
});
merge(config.macros.upgrade,{
wizardTitle: "Upgrade TicklerWiki core code",
step1Title: "Update or repair this TicklerWiki to the latest TiddlyWiki release",
step1Html: "You are about to upgrade to the latest release of the TiddlyWiki core code (from <a href='%0' class='externalLink' target='_blank'>%1</a>). Your content will be preserved across the upgrade.<br><br>Note that core upgrades have been known to interfere with older plugins. If you run into problems with the upgraded file, see <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
errorCantUpgrade: "Unable to upgrade this TicklerWiki. You can only perform upgrades on TicklerWiki files stored locally",
errorNotSaved: "You must save changes before you can perform an upgrade",
step2Title: "Confirm the upgrade details",
step2Html_downgrade: "You are about to downgrade to TiddlyWiki version %0 from %1.<br><br>Downgrading to an earlier version of the core code is not recommended",
step2Html_restore: "This TicklerWiki appears to be already using the latest version of the core code (%0).<br><br>You can continue to upgrade anyway to ensure that the core code hasn't been corrupted or damaged",
step2Html_upgrade: "You are about to upgrade to TiddlyWiki version %0 from %1",
upgradeLabel: "upgrade",
upgradePrompt: "Prepare for the upgrade process",
statusPreparingBackup: "Preparing backup",
statusSavingBackup: "Saving backup file",
errorSavingBackup: "There was a problem saving the backup file",
statusLoadingCore: "Loading core code",
errorLoadingCore: "Error loading the core code",
errorCoreFormat: "Error with the new core code",
statusSavingCore: "Saving the new core code",
statusReloadingCore: "Reloading the new core code",
startLabel: "start",
startPrompt: "Start the upgrade process",
cancelLabel: "cancel",
cancelPrompt: "Cancel the upgrade process",
step3Title: "Upgrade cancelled",
step3Html: "You have cancelled the upgrade process"
});
merge(config.macros.sync,{
listViewTemplate: {
columns: [
{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Server Type', field: 'serverType', title: "Server type", type: 'String'},
{name: 'Server Host', field: 'serverHost', title: "Server host", type: 'String'},
{name: 'Server Workspace', field: 'serverWorkspace', title: "Server workspace", type: 'String'},
{name: 'Status', field: 'status', title: "Synchronisation status", type: 'String'},
{name: 'Server URL', field: 'serverUrl', title: "Server URL", text: "View", type: 'Link'}
],
rowClasses: [
],
buttons: [
{caption: "Sync these IndexCards", name: 'sync'}
]},
wizardTitle: "Synchronize with external servers and files",
step1Title: "Choose the IndexCards you want to synchronize",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
syncLabel: "sync",
syncPrompt: "Sync these IndexCards",
hasChanged: "Changed locally",
hasNotChanged: "Unchanged locally",
syncStatusList: {
none: {text: "...", color: "transparent", display:null},
changedServer: {text: "Changed on server", color: '#8080ff', display:null},
changedLocally: {text: "Changed locally", color: '#80ff80', display:null},
changedBoth: {text: "Changed locally and on server", color: '#ff8080', display:null},
notFound: {text: "Not found on server", color: '#ffff80', display:null},
putToServer: {text: "Saved update on server", color: '#ff80ff', display:null},
gotFromServer: {text: "Retrieved update from server", color: '#80ffff', display:null}
}
});
merge(config.commands.closeTiddler,{
text: "close",
tooltip: "Close this IndexCard"});
merge(config.commands.closeOthers,{
text: "close others",
tooltip: "Close all other IndexCards"});
merge(config.commands.editTiddler,{
text: "edit",
tooltip: "Edit this IndexCard",
readOnlyText: "view",
readOnlyTooltip: "View the source of this IndexCard"});
merge(config.commands.saveTiddler,{
text: "done",
tooltip: "Save changes to this IndexCard"});
merge(config.commands.cancelTiddler,{
text: "cancel",
tooltip: "Undo changes to this IndexCard",
warning: "Are you sure you want to abandon your changes to '%0'?",
readOnlyText: "done",
readOnlyTooltip: "View this IndexCard normally"});
merge(config.commands.deleteTiddler,{
text: "delete",
tooltip: "Delete this IndexCard",
warning: "Are you sure you want to delete '%0'?"});
merge(config.commands.permalink,{
text: "permalink",
tooltip: "Permalink for this IndexCard"});
merge(config.commands.references,{
text: "references",
tooltip: "Show IndexCards that link to this one",
popupNone: "No references"});
merge(config.commands.jump,{
text: "jump",
tooltip: "Jump to another open IndexCard"});
merge(config.commands.syncing,{
text: "syncing",
tooltip: "Control synchronisation of this IndexCard with a server or external file",
currentlySyncing: "<div>Currently syncing via <span class='popupHighlight'>'%0'</span> to:</"+"div><div>host: <span class='popupHighlight'>%1</span></"+"div><div>workspace: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
notCurrentlySyncing: "Not currently syncing",
captionUnSync: "Stop synchronising this IndexCard",
chooseServer: "Synchronise this IndexCard with another server:",
currServerMarker: "\u25cf ",
notCurrServerMarker: " "});
merge(config.commands.fields,{
text: "fields",
tooltip: "Show the extended fields of this IndexCard",
emptyText: "There are no extended fields for this IndexCard",
listViewTemplate: {
columns: [
{name: 'Field', field: 'field', title: "Field", type: 'String'},
{name: 'Value', field: 'value', title: "Value", type: 'String'}
],
rowClasses: [
],
buttons: [
]}});
merge(config.shadowTiddlers,{
DefaultTiddlers: "[[TranslatedGettingStarted]]",
MainMenu: "[[TranslatedGettingStarted]]\n\n\n^^~TiddlyWiki version <<version>>\n© 2007 [[UnaMesa|http://www.unamesa.org/]]^^",
TranslatedGettingStarted: "To get started with this blank TicklerWiki, you'll need to modify the following [[IndexCards|IndexCard]]:\n* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)\n* MainMenu: The menu (usually on the left)\n* DefaultTiddlers: Contains the names of the IndexCards that you want to appear when the TicklerWiki is opened\nYou'll also need to enter your username for signing your edits: <<option txtUserName>>",
SiteTitle: "My TiddlyWiki",
SiteSubtitle: "a reusable non-linear personal web notebook",
SiteUrl: "http://www.tiddlywiki.com/",
OptionsPanel: "These Interface Options for customising TicklerWiki are saved in your browser\n\nYour username for signing your edits. Write it as a WikiWord (eg JoeBloggs)\n<<option txtUserName>>\n\n<<option chkSaveBackups>> Save backups\n<<option chkAutoSave>> Auto save\n<<option chkRegExpSearch>> Regexp search\n<<option chkCaseSensitiveSearch>> Case sensitive search\n<<option chkAnimate>> Enable animations\n\n----\nAlso see [[AdvancedOptions|AdvancedOptions]]",
SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options \u00bb" "Change TicklerWiki advanced options">>',
SideBarTabs: '<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All IndexCards" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>>',
TabMore: '<<tabs txtMoreTab "Missing" "Missing IndexCards" TabMoreMissing "Orphans" "Orphaned IndexCards" TabMoreOrphans "Shadowed" "Shadowed IndexCards" TabMoreShadowed>>'
});
merge(config.annotations,{
AdvancedOptions: "This shadow IndexCard provides access to several advanced options",
ColorPalette: "These values in this shadow IndexCard determine the colour scheme of the TicklerWiki user interface",
DefaultTiddlers: "The ~IndexCards listed in this shadow IndexCard will be displayed automatically when TicklerWiki starts up",
EditTemplate: "The HTML template in this shadow IndexCard determines how ~IndexCards look while they are being edited",
GettingStarted: "This shadow IndexCard provides basic usage instructions",
ImportTiddlers: "This shadow IndexCard provides access to importing IndexCards",
MainMenu: "This shadow IndexCard is used as the contents of the main menu in the left-hand column of the screen",
MarkupPreHead: "This IndexCard is inserted at the top of the <head> section of the TicklerWiki HTML file",
MarkupPostHead: "This IndexCard is inserted at the bottom of the <head> section of the TicklerWiki HTML file",
MarkupPreBody: "This IndexCard is inserted at the top of the <body> section of the TicklerWiki HTML file",
MarkupPostBody: "This IndexCard is inserted at the end of the <body> section of the TicklerWiki HTML file immediately after the script block",
OptionsPanel: "This shadow IndexCard is used as the contents of the options panel slider in the right-hand sidebar",
PageTemplate: "The HTML template in this shadow IndexCard determines the overall TicklerWiki layout",
PluginManager: "This shadow IndexCard provides access to the plugin manager",
SideBarOptions: "This shadow IndexCard is used as the contents of the option panel in the right-hand sidebar",
SideBarTabs: "This shadow IndexCard is used as the contents of the tabs panel in the right-hand sidebar",
SiteSubtitle: "This shadow IndexCard is used as the second part of the page title",
SiteTitle: "This shadow IndexCard is used as the first part of the page title",
SiteUrl: "This shadow IndexCard should be set to the full target URL for publication",
StyleSheetColors: "This shadow IndexCard contains CSS definitions related to the color of page elements. ''DO NOT EDIT THIS IndexCard'', instead make your changes in the StyleSheet shadow IndexCard",
StyleSheet: "This IndexCard can contain custom CSS definitions",
StyleSheetLayout: "This shadow IndexCard contains CSS definitions related to the layout of page elements. ''DO NOT EDIT THIS IndexCard'', instead make your changes in the StyleSheet shadow IndexCard",
StyleSheetLocale: "This shadow IndexCard contains CSS definitions related to the translation locale",
StyleSheetPrint: "This shadow IndexCard contains CSS definitions for printing",
TabAll: "This shadow IndexCard contains the contents of the 'All' tab in the right-hand sidebar",
TabMore: "This shadow IndexCard contains the contents of the 'More' tab in the right-hand sidebar",
TabMoreMissing: "This shadow IndexCard contains the contents of the 'Missing' tab in the right-hand sidebar",
TabMoreOrphans: "This shadow IndexCard contains the contents of the 'Orphans' tab in the right-hand sidebar",
TabMoreShadowed: "This shadow IndexCard contains the contents of the 'Shadowed' tab in the right-hand sidebar",
TabTags: "This shadow IndexCard contains the contents of the 'Tags' tab in the right-hand sidebar",
TabTimeline: "This shadow IndexCard contains the contents of the 'Timeline' tab in the right-hand sidebar",
ToolbarCommands: "This shadow IndexCard determines which commands are shown in IndexCard toolbars",
ViewTemplate: "The HTML template in this shadow IndexCard determines how ~IndexCards look"
});
//}}}
To hide text within a tiddler so that it is not displayed you can wrap it in {{{/%}}} and {{{%/}}}. It can be a useful trick for hiding drafts or annotating complex markup. Edit this tiddler to see an example.
/%This text is not displayed
until you try to edit %/
<!--{{{-->
<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'>by <span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
* ''Automatically send yourself reminders in the future!''
**Just click on a future date in the "Tickler Calendar" on the left and edit the IndexCard that pops up.
**~TicklerWiki will add your reminder to the calendar and automatically present it back to you when you open ~TicklerWiki on that future date.
** Of course, for ~TicklerWiki to save any of your changes you'll have to DownloadTicklerWiki first. (^_^)
* ''Organize all of your school/lab/personal notes!''
**<<newNotebook>> and it will automatically appear in the "Notebook Organizer" on the left sidebar.
** Notebook entries/edits are automatically titled, dated, tagged, and saved on [[IndexCards|IndexCard]] for future reference.
** Of course, for ~TicklerWiki to save any of your changes you'll have to DownloadTicklerWiki first. (^_^)
* ''Capture all of your ideas/goals/random thoughts!''
**<<newTiddler>> to open an unformatted IndexCard and jot down your latest great idea before it slips away. Don't forget to title and tag it. (^_^)
** All saved [[IndexCards|IndexCard]]—including your reminders and notebook entries—are automatically added to the "~IndexCard Organizer" on the right sidebar:
*** by tag ("Tags")
*** by date last-edited ("Timeline")
***alphabetically ("All")
** Of course, for ~TicklerWiki to save any of your changes you'll have to DownloadTicklerWiki first. (^_^)
To find out about the latest news/updates/additions/versions of ~TicklerWiki, click [[here|http://www.ticklerwiki.com/WhatsNewOnline/]].
A Wiki is a popular way of building collaborative websites. It's based on two ideas:
# Allow users to easily edit any page.
# Use special "WikiWord" formatting to create links between pages.
TicklerWiki, however, is fundamentally different from a conventional Wiki because:
# It is only editable by you.
# It is not based on separate pages of content, but rather on items of MicroContent referred to as "[[IndexCards|IndexCard]]" that live together on the same page.
This design allows you to use ~TicklerWiki as your own personal wiki. You can use it to organize your [[CareerGoals|JobHunters]], [[BlogDrafts|Bloggers]], [[SchoolNotes|Notebook]], [[ToDoLists|1 May 2009]], ProjectNotes, ShoppingLists, [[PersonalThoughts|Journal]], whatever you want.
A WikiWord is a word composed of a bunch of other words slammed together with each of their first letters capitalised. WikiWord notation in a conventional WikiWikiWeb is used to name individual pages while TiddlyWiki uses WikiWord titles for smaller chunks of MicroContent. Referring to a page with a WikiWord automatically creates a link to it. Clicking on a link jumps to that page or, if it doesn't exist, to an editor to create it. It's also easy to have NonWikiWordLinks, and there's a WikiWordEscape for situations where you don't want a WikiWord to be interpreted as a link.
Sometimes it's handy to be able to write WikiWords without them being recognised as links (for people's names, for instance). You can do this by preceding the WikiWord with a tilde ({{{~}}}). For example, ~JamesBond, ~JavaScript and ~TiddlyWiki
To change the name of your IndexCard edits from 'YourName' to your actual name:
#Click on the "Customize" button in the left sidebar.
#Click on the "options" button that appears in the IndexCard that pops-up.
# Enter your username as a WikiWord (e.g. JaneDoe) in the textbox provided.
# Click on the "options" button again to close the options panel.
/***
|''Name''|ZTicklerWikiOverridesPlugin|
|''Description:''|Overrides core, plugins, and cookies to facilitate default TicklerWiki behavior.|
|''Author:''|RonaldMulero (changetheworld [at] ronaldmulero [dot] com)|
|''Version:''|1.0.1|
|''Date:''|2008-10-06|
|''Status''|stable|
|''Source:''|http://www.TicklerWiki.com/#ZTicklerWikiOverridesPlugin|
|''Code Repository''||
|''Copyright''|2008 Ronald Mulero|
|''License:''|GPLv3|
|''Core Version:''|2.4.1|
|''Requires''||
|''Overrides''|(core)onClickTag, OptionsPanel, CalendarPlugin, DatePluginConfig, TicklerWikiSinglePageModePlugin.|
|''Feedback''|[[GTD TiddlyWiki Community Support|http://groups.google.com/group/GTD-TiddlyWiki]] Please include the word "~TicklerWiki" in the subject of any posts.|
|''Demonstration''|http://www.TicklerWiki.com/||
!!!!!Revisions
<<<
2008.10.06 [1.0.1] Fixed calendar behavior for IE and Safari
<<<
!Code
***/
// // override (core)onClickTag
//{{{
var onClickTagOld = onClickTag
onClickTag = function(ev)
{
var e = ev || window.event;
var popup = Popup.create(this);
var tag = this.getAttribute("tag");
var title = this.getAttribute("tiddler");
if(popup && tag) {
var tagged = store.getTaggedTiddlers(tag);
var titles = [];
var li,r;
for(r=0;r<tagged.length;r++) {
if(tagged[r].title != title)
titles.push(tagged[r].title);
}
var lingo = config.views.wikified.tag;
if(titles.length > 0) {
var openAll = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.openAllText.format([tag]),lingo.openAllTooltip,onClickTagOpenAll);
openAll.setAttribute("tag",tag);
createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
for(r=0; r<titles.length; r++) {
createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);
}
} else {
createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),lingo.popupNone.format([tag]));
}
/* TicklerWiki */
// createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
// var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);
// createTiddlyText(h,lingo.openTag.format([tag]));
}
Popup.show();
e.cancelBubble = true;
if(e.stopPropagation) e.stopPropagation();
return false;
}
//}}}
// // override cookie settings of OptionsPanel:
//{{{
// // AutoSave
config.options.chkAutoSave=true;
// // EnableAnimations
config.options.chkAnimate=true;
//}}}
// // override cookie settings of CalendarPlugin:
//{{{
config.options.txtCalFirstDay=6;
config.options.txtCalStartOfWeekend=5;
//}}}
// // override date format of CalendarPlugin
// // * Actually, this is determined by the date format of the newjournal macro link found in SideBarOptions. Change it there. ;)
// // override day header background of CalendarPlugin
//{{{
createCalendarDayHeaderOld = createCalendarDayHeader
createCalendarDayHeader = function(row, num)
{
var cell;
for(var i = 0; i < num; i++) {
if (config.options.chkDisplayWeekNumbers) createTiddlyElement(row, "td");//wn**
for(var j = 0; j < 7; j++) {
var d = j + (config.options.txtCalFirstDay - 0);
if(d > 6) d = d - 7;
cell = createTiddlyElement(row, "td", null, null, config.macros.calendar.daynames[d]);
/* TicklerWiki */
// set background
cell.style.background = config.macros.calendar.dayheaderbg;
// set foreground
cell.style.color = config.macros.calendar.dayheadercolor;
// set font-size
cell.style.fontSize = config.macros.calendar.dayheadersize;
}
}
}
//}}}
// // override popup of CalendarPlugin
//{{{
createCalendarDaysOld = createCalendarDays
createCalendarDays = function(row, col, first, max, year, mon) {
var i;
if (config.options.chkDisplayWeekNumbers){
if (first<=max) {
var ww = new Date(year,mon,first);
var td=createTiddlyElement(row, "td");//wn**
var link=createTiddlyLink(td,ww.formatString(config.options.txtWeekNumberLinkFormat),false);
link.appendChild(document.createTextNode(ww.formatString(config.options.txtWeekNumberDisplayFormat)));
}
else createTiddlyElement(row, "td", null, null, null);//wn**
}
for(i = 0; i < col; i++)
createTiddlyElement(row, "td", null, null, null);
var day = first;
for(i = col; i < 7; i++) {
var d = i + (config.options.txtCalFirstDay - 0);
if(d > 6) d = d - 7;
var daycell = createTiddlyElement(row, "td", null, null, null);
var isaWeekend = ((d == (config.options.txtCalStartOfWeekend-0) || d == (config.options.txtCalStartOfWeekend-0+1))? true:false);
if(day > 0 && day <= max) {
var celldate = new Date(year, mon, day);
// ELS 2005.10.30: use <<date>> macro's showDate() function to create popup
// ELS 5/29/06 - use journalDateFmt
if (window.showDate)
/* TicklerWiki */ showDate(daycell,celldate,"link","DD",config.macros.calendar.journalDateFmt,true, isaWeekend);
else {
if(isaWeekend) daycell.style.background = config.macros.calendar.weekendbg;
var title = celldate.formatString(config.macros.calendar.journalDateFmt);
if(calendarIsHoliday(celldate))
daycell.style.background = config.macros.calendar.holidaybg;
var now=new Date();
if ((now-celldate>=0) && (now-celldate<86400000)) // is today?
daycell.style.background = config.macros.calendar.todaybg;
if(window.findTiddlersWithReminders == null) {
var link = createTiddlyLink(daycell, title, false);
link.appendChild(document.createTextNode(day));
} else
var button = createTiddlyButton(daycell, day, title, onClickCalendarDate);
}
}
day++;
}
}
//}}}
// // override holiday settings of DatePluginConfig:
//{{{
config.macros.date.holidays=[
"12/31", // New Years Eve General Strike!,
"05/01", // May Day General Strike!,
"09/01", // US Labor Day General Strike!,
];
//}}}
// // override calendar colors of DatePluginConfig:
//{{{
config.macros.date.createdbg="";
config.macros.date.modifiedsbg="";
config.macros.date.linkedbg="#292";
config.macros.calendar.monthbg="#841";
config.macros.calendar.dayheaderbg="#bbb";
config.macros.calendar.dayheadercolor="#000";
config.macros.calendar.dayheadersize="8px";
config.macros.calendar.daynames = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
//}}}
// // override calendar style of DatePluginConfig:
//{{{
var setDateStyleOld = setDateStyle
setDateStyle = function(place,link,weekend) {
// alias variable names for code readability
var date=link.date;
var fmt=link.linkformat;
var linkto=date.formatString(fmt);
var cmd=config.macros.date;
if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=""))
{ place.style.background = cmd.weekendbg; }
if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
{ link.style.fontStyle="normal"; link.style.fontWeight="normal"; }
if (hasReminders(date))
{ link.style.textDecoration="underline"; }
if (isToday(date))
{ link.style.border="1px solid black";
link.style.fontWeight="bold"; }
if (isHoliday(date)&&(cmd.holidaybg!=""))
{ place.style.background = cmd.holidaybg; }
if (hasCreateds(date)&&(cmd.createdbg!=""))
{ place.style.background = cmd.createdbg; }
if (hasModifieds(date)&&(cmd.modifiedsbg!=""))
{ place.style.background = cmd.modifiedsbg; }
if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=""))
{ place.style.background = cmd.linkedbg;
link.style.fontWeight="bold"; }
if ((isHoliday(date)&&store.tiddlerExists(linkto))&&(cmd.holidaybg!=""))
{ place.style.background = cmd.holidaybg;
link.style.fontWeight="bold"; }
if (hasReminders(date)&&(cmd.remindersbg!=""))
{ place.style.background = cmd.remindersbg; }
if (isToday(date)&&(cmd.todaybg!=""))
{ place.style.background = cmd.todaybg; }
if (config.options.chkShowJulianDate) {
var m=[0,31,59,90,120,151,181,212,243,273,304,334];
var d=date.getDate()+m[date.getMonth()];
var y=date.getFullYear();
if (date.getMonth()>1 && (y%4==0 && y%100!=0) || y%400==0) d++; // after February in a leap year
wikify("@@font-size:80%;<br>"+d+"@@",place);
}
}
//}}}
// // override cookie settings for SinglePageModePlugin
//{{{
// // Display one tiddler at a time
config.options.chkSinglePageMode=false;
// // Automatically permalink current tiddler
config.options.chkSinglePagePermalink=false;
// // Don't close tiddlers that are folded
config.options.chkSinglePageKeepFoldedTiddlers=false;
// // Don't close tiddlers that are being edited
config.options.chkSinglePageKeepEditedTiddlers=true;
// // Open tiddlers at the top of the page
config.options.chkTopOfPageMode=true;
// // Open tiddlers at the bottom of the page
config.options.chkBottomOfPageMode=false;
// // Automatically scroll tiddler into view (if needed)
config.options.chkSinglePageAutoScroll=true;
//}}}
// // override cookie settings:
//{{{
readOnly = false;
config.options.chkHttpReadOnly=false;
config.options.chkBackstage=false;
config.options.chkOptionsPanelOpen=false;
config.options.txtMainTab="Tags";
config.options.chkTicklerCalendarOpen=true;
config.options.chkNotebookOrganizerOpen=true;
config.options.chkTiddlerOrganizerOpen=true;
config.options.chkSideBarLicenseOpen=true;
//}}}