Christian Ziemski's
wikidPad Page
While trying wikidPad as ToDo-List-Helper I found the following extensions at the wikidPad Project Home Page:
If a WikiWord beginning with "ToDo" is created or selected (viewed) it automatically collects
all 'todo' entries from all other pages and inserts them on that page (after a placemark).
Of course you can write any own text before that placemark without being touched.
If the wikiWord has additional characters after the "ToDo" like "ToDoPrivate"
those characters "Private" are used as filter (case sensitive or insensitive).
If there are spaces or underlines between "ToDo" and the following character (e.g "ToDo_Private")
these are ignored and so still the filter is "Private".
Only Todos containing that filter string are collected.
(Behavior depends on configuration option below.)
(Note: If the optional Calendar feature is enabled below it's "ToDo", "ToDoCalendarPrivate" in the example above.)
The todos are sorted by 'tag' the following way:
1.) Completely untagged e.g. 'todo: shopping'
2.) Tagged with special tags. e.g. 'todo.High: pay taxes'
Sort order and display see config section below
3.) Tagged with a date e.g. 'todo.2006-10-31: Halloween 2006'
Sorted by date (earliest first in list)
Marked as 'GONE', 'TODAY', 'n hours left', 'n days left' dependent on dayrange below
Displayed in different formats, dependent the same way.
The following date formats are recognized:
"yyyy-mm-dd" # standard date e.g. 'todo.2006-10-31: Halloween 2006'
"mm/dd/yyyy" # GB/US date
"dd.mm.yyyy" # European date
"yyyy-Wnn-d" # Week; the DayOfWeek "d" is Mon(1)-Sun(7) e.g. todo.2007-W03-2: Tuesday of 3rd week in 2007
"yyyy-Wnn" # Week e.g. todo.2008-W12: Week 12 in 2008 (Monday)
"*-mm-dd" # a date every year e.g. todo.*-10-31: Halloween, in every year
"*-*-dd" # a day every month (and every year) e.g. todo.*-*-01: Every month, the 1st day
"*-*-*" # every day
"CWnn" # Calendar Week
"KWnn" # just for testing: German: Calendar Week
The dates with "*" are optimistic ones: if such a date is in the past
it is assumed as "for next year" and not as "GONE this year".
4.) otherwise tagged e.g. 'todo.family: holidays'
The following WikiDocumentAttributes will be added to that generated page (If there isn't already a custom [icon: ...] set, see configuration below):
Since some pictures are able to describe better than many words here an easy example.
(The hardcopies are from an older version of wikidPad. So current ones look different.)
Imagine two wiki pages "FamilyBusiness" and "CarRelatedThings" with some data and todo tags on it:
Opening the wiki page "ToDo" now shows in Edit mode:
(In the lefthand tree view the items are sorted alphabetically, in the page view to right they are sorted by date.)
And the same in preview mode:
At the beginning of the code there is a configuration section where you can change the behavior and display a bit.
#************************************************************************************
# begin of configuration section
#************************************************************************************
# tags contain the (Tag, TagHeader, '') triples
# TagHeaders are the descriptive headings that will be shown for each category.
# UNTAGGED is a special one to collect the untagged "todo:"
tags = [
('UNTAGGED', '++++ Not yet tagged', ''),
('High', '+++ HIGH!', ''),
('Next', '++++ Next Actions', ''),
('ThisWeek', '++++ This Week', ''),
('SomeDay', '++++ SomeDay / Maybe', ''),
('TimeToTime', '++++ From time to time', ''),
('Low', '++++ Tagged as LOW', ''),
('VeryLow', '++++ Tagged as Very LOW', ''),
]
placemark = "++++ ________auto-collected todos________"
underline = "_______"
spacerline = "-" * 4
bullet = " * "
iconString = '[icon: spanner]'
colorStringNormal = '[color: black]' # Colors for the ToDo entry in the tree
colorStringNext = '[color: orange]' #
colorStringToday = '[color: red]' #
colorStringMissed = '[color: magenta]' #
notagHeading = "++++ " # for unknown tagged entries
dateHeading = "++++ " # for date entries far away (distance see below)
dateHeadingX = "+++ " # for date entries in near future or missed in past
missedString = " ___ (+GONE+)"
nowString = " ___ !!! TODAY !!!"
showWeekday = True # show weekday after dates
weekdayFormat = " (%s," # %s is replaced by the weekday as in the array below,
# together with the optional week number (see below) it gives e.g. " (Fri, W42)"
weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] # English
#weekdays = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'] # English
#weekdays = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'] # German
showWeeknumber = True # show weeknumber after dates
weeknumberFormat = " W%02d)" # %02d is replaced by the weeknumber (2 digits with leading 0-padded)
checkSearchString = 1 # 0 = no search string: ignore characters after 'ToDo'
# 1 = case insensitive search string after 'ToDo'
# 2 = case sensitive search string after 'ToDo'
dayrange = 7 # to mark date entries in that range as "more important"
# than the ones in "far" future
showInfoPopup = True # about todos for today / missed ones
infoPopupTimeDelta = 2 # number of minutes where no new popup is shown after last visit of ToDo page
onlyRealTodos = True # True = ignore done, wait, question etc.
# False = all from wikidPads todo-like category
setBookmark = True # set the ToDo page [bookmarked=true] so it is listed in the Bookmark popup (Shift-Ctrl-B)
realDatesLast = False # False: sorting is: untagged - known tags - dates - newly tagged (the default)
# True: sorting is: untagged - known tags - newly tagged - dates (test for Jouni)
realDatesSeparate = False # False: all todos in one page: ToDo
# True: todos with real dates on a page "ToDoCalendar", all others on the normal page "ToDo"
# The following feature works, but doesn't look nice, really! So better let it disabled...
extendedLinks = False # True = create links with search capability on target page (only working in editor window!?)
# False = create normal links
#************************************************************************************
# end of configuration section
#************************************************************************************
The current one (same as the 20080123 version below): WikidPadHooks.py
Version history:
[2008-01-23] WikidPadHooks.py-20080123 Some error handling to avoid problems on invalid dates
[2007-12-06] WikidPadHooks.py-20071206 Fix: problems if onlyRealTodos==True and todos with ':' in their text
[2007-10-22] WikidPadHooks.py-20071022 Fix: missing optional tags of date entries added on ToDoCalendar page
[2007-10-20] WikidPadHooks.py-20071020 optional separated Calendar page // display weekday and week number for dates
[2007-10-02] WikidPadHooks.py-20071002 todos sorted in every tag block // show other categories (done...) too // new config options setBookmark+extendedLinks
[2007-07-27] WikidPadHooks.py-20070727 temporary fix (removed again): Problem with displayMessage of wikidPad 1.9 up to beta7.
[2007-06-18] WikidPadHooks.py-20070618 Fix: Problem with multiple-tabs of wikidPad 1.9.
[2007-06-16] WikidPadHooks.py-20070616 Fix: Tags like todo.sometext.2007-06-16 working now.
[2007-01-31] WikidPadHooks.py-20070131 Usable for WikidPad 1.9 too now
[2006-11-16] WikidPadHooks.py-20061116 Some new config values, color setting depending on delay, filter info
[2006-11-10] WikidPadHooks.py-20061110 Fixed one: (bug found by aliudefba in the forum)
[2006-11-02] WikidPadHooks.py-20061102 First published version