TiddlyWiki für den Haushalt

Created: 2020-12-20 Updated: 2021-04-11 History Videos

TiddlyWiki ist eine einzelne HTML-Datei, die auf dem eigenen Computer gespeichert und im Browser bearbeitet werden kann. Das Programm zeichnet sich dadurch aus, dass es alle Informationen in sich selbst abspeichert. Dadurch lässt sich die Datei gut synchronisieren und archivieren, was dabei hilft, es in verschiedenen Situationen wiederzuverwenden. Gleichzeitig lassen sich die Informationen schnell bearbeiten, durchsuchen und teilen, sodass sich das Programm vor allem dafür eignet, nicht-persönliche Daten abzuspeichern.

Ich benutze TiddlyWiki in meinem Haushalt, um verschiedene Probleme zu lösen und möchte diese Lösungen an dieser Stelle sammeln, damit andere Menschen ebenfalls die Möglichkeit haben, darauf aufzubauen.

Gliederung

  1. Konzepte
  2. Empfohlene Plugins
    1. Grundfunktionen
  3. Ernährung
    1. Ich weiß nicht, was ich essen möchte.
  4. Organisation
    1. Ich möchte eine Aufgabenliste haben, die ich täglich einfach nacheinander abarbeiten kann.
    2. Ich möchte nach einer bestimmten Zeit auf etwas hingewiesen werden, ohne dass es in meinem Kalender auftauchen soll.

Konzepte

Empfohlene Plugins

Grundfunktionen

Ernährung

Ich weiß nicht, was ich essen möchte.

Die beste Möglichkeit, dieses Problem anzugehen, besteht für mich darin, das Gericht, das ich mag, als einzelnen Tiddler mit Rezept und Bild abzuspeichern, es danach bestimmten Kategorien zuzuordnen (meine sind Lecker, Gesund, Snack, FastFood) und im Anschluss auf meiner Übersichtsseite mehrere Knöpfe zu platzieren, die mir ein zufälliges Gericht aus der entsprechenden Kategorie vorschlagen.

Der Code für einen der Vorschlag-Knöpfe ist folgender:

<$wikify name="tasty" text="""<$list filter="[tag[Essen]tag[Lecker]random[1]]"/>""">
<$button set="$:/Temp/Tasty" setTo=<<tasty>>>Leckeres</$button>
<$link to={{$:/Temp/Tasty}}><$transclude tiddler="$:/Temp/Tasty"/></$link>
  1. <$wikify> setzt die Variable <<tasty>> zu einem zufälligen Titel (random[1]) aus allen Tiddlern, die die Tags "Essen" und "Lecker" besitzen.
  2. Danach erstellt <$button> einen Knopf, der einem temporären Tiddler $:/Temp/Tasty die gesetzte Variable zuweist, sodass sie festgeschrieben wird und von überall abgerufen werden kann.
  3. <$link> erzeugt abschließend eine direkte Verlinkung zum zufällig ausgewählten Tiddler.

Organisation

Ich möchte eine Aufgabenliste haben, die ich täglich einfach nacheinander abarbeiten kann.

Häufig kann eine lange Liste von Aufgaben erdrückend wirken. Um dieses Problem zu lösen, kann eine Aufgabenliste weiterhelfen, die jeweils nur immer eine Aufgabe anzeigt. Solange diese Aufgabe nicht erledigt wurde, wird auch keine andere Aufgabe angezeigt. Ich nutze diese Art der Aufgabenliste, um verschiedene unterschiedliche Bereiche nacheinander abzuarbeiten. Die Aufgaben sind individuell nach Wichtigkeit sortiert und werden entweder täglich oder nach einer bestimmten Anzahl von Tagen wiederholt.

Meine Lösung benutzt nur einen Tiddler und jeweils einen Tiddler für jeden Ablauf. Darüber hinaus werden die Plugins TiddlyFormula und let benötigt.

Übersicht für die Abarbeitung der einzelnen Aufgaben

<$list filter="[!is[system]let:DATE updated LT ![]!has[draft.of]tag[Ablauf]nsort[importance]order[reverse]limit[1]]">
<$view field="text" /> - 
<$button>
<$action-setfield $field="updated" $value=<<formula to_tw_date(date(year(add_days(now(),{{!!day_interval}})),month(add_days(now(),{{!!day_interval}})),day(add_days(now(),{{!!day_interval}})))) >>/>
Erledigt
</$button>
</$list>

Die Übersicht zeigt alle Aufgaben an, deren Ablaufdatum älter als aktuelle Tag ist und sortiert sie nach dem Feld "importance" (Eine Zahl, die die Wichtigkeit angibt; höhere Zahl, höhere Wichtigkeit).

Ablauf-Tiddler erstellen

Um einen Ablauf-Tiddler zu erstellen, muss der Tiddler den Tag "Ablauf" zugewiesen bekommen. Im Textfeld wird eine Frage gestellt oder die Aufgabe ausformuliert. Dann muss das Feld "importance" mit einer Zahl für die Sortierung hinzugefügt werden. Außerdem muss das Feld "day_interval" mit der Anzahl der Tage zwischen dem erneuten Auftauchen in der Liste bestimmt werden. Damit die Aufgabe sofort sichtbar ist, sollte das Feld "updated" auf "00000000000000000" gestellt werden. Das Feld "updated" bekommt automatisch das nächste fällige Datum für das Auftauchen in der Liste zugewiesen, sobald einmal die Aufgabe als erledigt markiert wurde.

Ich möchte nach einer bestimmten Zeit auf etwas hingewiesen werden, ohne dass es in meinem Kalender auftauchen soll.

Dieses Problem tritt vor allem bei Handlungen auf, die zwar sinnvoll sind, aber nicht im Tagesrhythmus verankert wurden. Außerdem möchte man mit diesen Aufgaben nicht ständig im Kalender konfrontiert werden, weil diese Erinnerungen schnell die wichtigen Ereignisse verdecken könnten. Bei mir ist das vor allem bei der Pflege von Zimmerpflanzen der Fall, oder bei Freizeitaktivitäten, die nicht so wichtig sind, dass sie unbedingt regelmäßig eingeplant werden müssten, aber an die ich doch hin und wieder erinnert werden möchte. Der große Vorteil von TiddlyWiki besteht in dieser Hinsicht natürlich darüber hinaus darin, diese Erinnerungen in anderen Bereichen weiterverwenden zu können.

Dieses Problem erfordert insgesamt 5 vorbereitete Tiddler und einmal die Plugins TiddlyFormula und let. Die Tiddler sind in zwei Bereiche aufgeteilt: 1. Eine Benutzeroberfläche für das Hinzufügen von neuen Erinnerungen und 2. eine anpassbare Übersicht für die Darstellung der Erinnerungen von verschiedenen Kategorien (bei mir zum Beispiel Zimmerpflanzen). Eine Erinnerung ist ein Tiddler, der über eine Schaltfläche und mehrere Eingabefelder genauer bestimmt werden kann.

1. Benutzeroberfläche für das Hinzufügen neuer Erinnerungen

Benutzeroberfläche mit Suche

<div class="search-bar">
<ul>
<<list-filter-searchnolimit filter:"[!has[draft.of]tag[Erinnerung]sort[created]order[reverse]]" template:"$:/Templates/SearchItemErinnerung" search:"search:*" limit:5 placeholder:"Suchen" >>
</ul>
</div>
<div class="wizard">
<section class="left">Titel:</section> <$edit-text tiddler="$:/state/Erinnerung/title" tag="input" default="" /> 
<section class="left">Beschreibung:</section> <$edit-text tiddler="$:/state/Erinnerung/description" default="" rows="5" />
<section class="left">Tags:</section> <$edit-text tiddler="$:/state/Erinnerung/tags" tag="input" default="Erinnerung" /> 
<section class="left">Wiederholung:</section> Tage: <$edit-text tiddler="$:/state/Erinnerung/repeat-days" class="small" tag="input" default="0" /> Stunden: <$edit-text tiddler="$:/state/Erinnerung/repeat-hours" class="small"  tag="input" default="12" /> 
<br /><br />
<$button>
<$action-sendmessage $message="tm-new-tiddler" title={{$:/state/Erinnerung/title}} text="{{||$:/Templates/ErinnerungVorlage}}" description={{$:/state/Erinnerung/description}} tags={{$:/state/Erinnerung/tags}} updated=<<formula to_tw_date(add_hours(now(),(({{$:/state/Erinnerung/repeat-days}}*24)+{{$:/state/Erinnerung/repeat-hours}}))) >> repeat=<<formula (({{$:/state/Erinnerung/repeat-days}}*24)+{{$:/state/Erinnerung/repeat-hours}})>> />
Neue Erinnerung hinzufügen
</$button>
</div>

Template: $:/Templates/SearchItemErinnerung

<li><$view field="created" format="date" template="YYYY-0MM-0DD" /> - <$link to={{!!title}}><$view field="title"/></$link></li>

Template: $:/Templates/ErinnerungVorlage

|''Title'': |<$view field="title" />|
|''Description'': |<$view field="description" />|
|''Updated'': |<$view field="updated" format="date" template="YYYY-0MM-0DD 0hh:0mm:0ss" />|
|''Repeat'': |<$view field="repeat" />|

2. Anpassbare Übersicht für die Darstellung der Erinnerungen, sobald sie fällig werden

Übersicht

<ul>
<$list filter="[!is[system]let:DATE updated LT ![]!has[draft.of]tag[Erinnerung]sort[created]order[reverse]]" template="$:/Templates/SearchItemErinnerungFaellig"/>
</ul>

Template: $:/Templates/SearchItemErinnerungFaellig

<li><$view field="updated" format="date" template="YYYY-0MM-0DD 0hh:0mm:0ss" /> - <$link to={{!!title}}><$view field="title"/></$link>: <$view field="description"/> - <$button>
<$action-setfield $field="updated" $value=<<formula to_tw_date(add_hours(now(),{{!!repeat}}))>> />Erledigt</$button></li>

Ergänzungen

Um die Darstellung der Erinnerungen auf bestimmte Tag-Kategorien zu beschränken, muss der Filter der Übersicht so angepasst werden, dass ein zusätzliches "tag[TAGNAME]" in der Filterliste ergänzt wird.