Zeichen für die Welt da draussen

markdown ist eine vereinfachte Auszeichnungssprache, die hauptsächliche einen Text, also ein Stück Information, nach innen hin beschreibt.

Wenn ich aber nun beschreiben will auf was sich das von außen Dokument bezieht. Hier ein paar Ideen was man noch in einer leicht zu schreibenden/lesenden, aber denoch maschinell eindeutigen Sprache nutzen könnte. Alle Logik wird also nur in reinem text geschrieben. Wem das nicht passt der kann sic ja mit allerlei JSplugins den passenden text vorschlagen lassen (wenn jemand @ma... tipp kann man ihm dann alle Markus, Martin, Manuel voerschlagen lassen. Hauptsache am Schluss steht da '@Martin' ;).

Kategorien

Kategorien, eigentlich Tags eigenen sich für lexikalische Ordnungen aber auch die 3 axes of an effective todo list ''Priority, Project, Context'' sind letztendlich listbare (also z.B. ''Prio 1-4'') oder kombinierbare tags.

Beispielsweise:

  • @ an die angesprochene Person
  • Priorität__!!__
  • Doppelkreuz im Wort
  • Wann date#
  • Dauer duration#
  • Wo ort# loc#
  • oder noch einfacher Status status#
  • Parents /Childs (Bezieht sich auf) -/-
  • Interwiki ('wp#Doppelkreuz', 'blog#mein-urlaub-2012')

Zur bessern Abtrennung, von 'prosaischen' Inhalt, mit Leerzeichen eignet als Trennzeichen sich der '':'' Doppelpunkt (''loc:muc'') oder der Hashtag (''loc#muc'').

Der Hashtag als einfacher 'tag' genügt auf twitter meistens, aber damit kann man nur Bedeutungen in Begriffen datrstellen, zusammenhänge sind so nicht mögliche. Eine einfache Erweiterung wäre es key values ('todo@klml' oder 'fyi@klml') zu nutzen oder weiter auch ein fast gramatikalische Darstellung ('todo@klml#1' aber auch 'todo#1@klml' oder '@klml#todo!1')

Kategorie werden in der Seite als Link auf selbige dargestellt und nehmen das setzenden Element in diese mit auf. Man könnte das auch mit YAML machen, der blockstyle ist ja gleich zu markdown, aber inline ist es JSON. Da ist es mir doch lieber ich unterscheide anhand von liste oder nicht-liste (''*'' am Zeilenanfang) ob inline oder block

Punct

Ein Brief, ein Telefonat, eine persönliches Gespräch email, ein Foreneintrag, ein Eintrag in einem Ticketsystem hat neben ''Priority, Project, Context'' und in Mehrbenutzersystemen der 'Zustänige', immer eine bestimmte Funktion und Einordnung. Von Wunsch, Befehl, Bitte, Frage, Antwort etc . Die Sprechakttheorie hat dazu einige Modelle.

Um aber, gerade bei kurzen Notizen wie schnellen mails ohne lange Erklärung, Einzeilern etc zu wissen was das ist, kann man in die Betreff- oder erste Zeile eine kurze Aussage über die Klasse der Information machen. Der Begriff kommt von Punctuation

  • ! Warnung Fehlermeldung (''!: Am Wochenende wird es sehr heiß'')
  • ? Frage (''?: Temperatur in Bad Reichenhall'')
  • ?! Warum ist das so? (''?!: Die Heizung läuft trotzzdem noch'')
  • TODO mach was
  • fyi zur Kenntniss (fyi)
  • !fyi Feststellung, Proklamation (mehr als fyi) Namensgebungen einer Person oder Sache. Kann auch eine Bestätigung fordern.
  • !! Order, Auftrag, Anordnungen, Befehle, gerichtliche Verfügungen. Welcher zumindest bei Nichtausführung eine Erklärung braucht
  • !me Selbstverpflichtungen
  • doneoder ? Vollzugsmeldung aka done! und das mit einem Wert 1-9 oder 1-100% 1,2,3 (''done: wasserpumpe ausgebaut'')
  • checkoder ? Überprüfung aka check. Erfolgreich oder nicht. (''check: wassertank voll'')
  • idee Idee (''idee: mehr Wasser mitnehmen für Yakisu'')
  • + Zusätzliches zu vorhergenden (''+ badehose mitnehmen'')
  • ACK das auf mailinglisten übliche ''\sign'' oder auch ACK für Zustimmumg

besser wäre ja noch das Interrobang oder das Ironiezeichen

Visuell

Farben sind doch was tolles wenn sie die Schrift dimensional erweitern

  • prio: Schriftfarbe entweder:
  • 3 stufig nach der Ampel: grün, gelb rot
  • 5 stufig nach der Alarmstufe des Homoland SecurityDings: grün, blau, gelb, orange, rot
  • state: als Hintergrundfarbe (oder/zusätzlich evtl ein Tacho oder progressbar)
  • punct: hat eh schon ein eigenes Zeichen, das kann man ja evtl größer Zeichen
  • da queues entweder wenige (z.B. 3 Abteilungen, 5 Hauptprodukte) oder ganz viele sind (z.B. alle Projekte der Firma, 100 von Produkten) 2 Arten
  • entweder man unterstreicht das ganze in einer Farbe
  • baut Avatare: $€$ für Finanzen, <3 für liegt dem Chef am Herzen, O_O für Telefonate etc
  • vergibt Namen
  • user sind eine annähernd unendliche Zahl, daher hier nur einzelne Avatare,
  • duedate: den Abstand zu jetzt als tacho?

Sowas ist natürlich ein gefundenes Fressen für deDesigner und die smarties vom css

Zeilen oder Dokumente

Meist bezieht sich so ein Hashtag auf das ganze Dokument (z.B. tweet blogeintrag). ''!1 und #testing'' im Fliesstext oder am Dateiende, heißt das die ganze Seite (und der Seitentitel als Titel) in der Prio1-liste und auf Testen steht.

In einer ToDo liste ist die Semantik aber zeilenweise. Darum sollte man das optional auch zeilenweise einlesen können. ''!1 und #testing'' in einer Aufzählung heißt nur die Zeile (und alle Worte ohne tags als Titel) in der Prio1 liste steht so wie das stopword ''TODO'' bei Texteditoren.

tag Bereich

Natürlich ist es praktisch wenn man alle tags im Text unterbringen kann, kein klicken in andere Felder, einfach weiterschreiben. Aber manche verwirrt das.

Wen man alles tags unten an die Datei anhängt und das mit einem Trenner (z.B. '### Meta ###') dann kann eine DAU-Anwendung das ganze verstecken und den Inhalt mit dropdowns anbieten. Hauptsache am Schluss steht da insgesamt in feinem text.

Software

Parser

Was muss so ein Parser alles ausgeben.

  • alle tags '#xxxx' ausgeben
  • diese nach '#key'
  • in je eine Datei oder View schreiben
  • Metadaten (alle anderen '#keys' oder bei TODOlisten den ganzen entry) schreiben
  • nach '#xxxx:value' sortieren

manipulierbarerer Index

Diese Listen von Beziehungen werden wie in jedem Datenbanksystem in Indexdatein gespeichert. Kann man natürlich auch machen. Aber dann braucht man für jeden Eintrag ein Quelldokument. Hab ich aber nur einen einzelnen Einträge (z.B. Butter, Milch, Käse in der Liste "Einkaufen"), dann muss man dafür keine extra Datei dafür aufmachen.

So soll der Indexer, genau so wie ein Mensch, einfach in die Datei schreiben. Die Indexereinträge kann man gern markieren (manche Texteditoren unterschieden zwischen "geschriebenen" und geshortcutteten Kommentaren per ~. Der Indexer kann aber auch überprüfen ob der Eintrag schon geschrieben ist und dann eben nicht schreiben. Generell kann der Indexer ganz unten schreiben, oder ana einem Hotword (z.B. __INDEX__ ) Die meisten Indizies braucht man dann aber sortiert, kann man, Hotword gesteuert, auch hinterher komplett sorten lassen.

Den ganzen coolen Datenbank-Stuff und Geschwindigkeit kann man damit natürlich nicht machen, aber bei einem kleinen blog, wiki, ticketsystem ist das auch nicht so wichtig. Außer natürlich man braucht kombinierte Listen (zB was ist alles in prio#1 und @markus), kann man sogar auch indizieren, oder zur Not clinetseitig per JS zusammenpflücken.

auch toll: Autolemma