Wie kann ich beim Blogging mit Deepest Sender möglichst effizient Inhalte editieren?

May 6th, 2008 by matthias

Der in Deepest Sender eingebaute Editor ist unbrauchbar wenn man komfortabel schreiben will, insbesondere deshalb weil er jedes Pretty-Printing beim Wechsel vom WXSIWYG-Modus in den Source-Modus zurücksetzt. Zwar erwartet blogger.com dass Artikel ohne Pretty-Printing veröffentlicht werden (d.h. Zeilenumbrüche werden als Absätze interpretiert), aber dies sollte Deepest Sender nur beim Posting beachten, nicht beim Schreiben oder Offline-Speichern.

Es scheint am Besten zu sein, die einzelnen Blog-Posts als einzelne HTML-Dateien abzulegen und dabei auf gute Source-Qualität, Verwendung eigener CSS-Klassen, Pretty-Printing des HTML-Quelltextes und Verwendung von HTML-Tags entsprechend ihrem Sinn zu achten. Eine solche Sammlung hat den Vorteil dass sie mit einem einfachen Script (das es sicher orgendwo zum Download gibt) in eine große, indexierte, buchartige HTML-Datei verwandelt werden kann, zum komfortablen Offline-Lesen.

Wenn man also auf Deepest Sender verzichtet, müssen zur Veröffentlichung mit blogger.com alle Leerzeichen aus dem zu veröffentlichenden Text entfernt werden (»Extras -> Zeilen zusammenführen« in kate). Außerdem sollte man nach dem Einfügen nicht in die WYSIWYG-Ansicht des Editors von blogger.com wechseln weil so der Source-Code evtl. unvorteilhaft geändert wird.

Es ist derzeit (2007-09-11) am besten, in Blog-Posts für blogger.com Tags wie blockquote, p, em usw. nicht durch div- und span-Tags zu ersetzen weil sonst die per RSS abonnierten Texte keine sichtbare Formatierung enthalten. Denn die CSS-Klassen werden nicht per RSS übertragen (d.h. es ist nicht einfach ein Anzeigefehler von akregator).

Als Hilfe beim Schreiben dieser HTML-Editoren kann man kate (zusammen mit Firefox für die Vorschau), quanta oder den HTML-Editor von SeaMonkey (leider bisher nicht als Debian-Paket verfügbar) verwenden. Jedoch nicht den von OpenOffice.org: es geht sehr eigenmächtig mit Pretty-Printing um und erzeugt eine schlechte HTML Source-Qualität.

Posted in Deepest Sender | No Comments »

Wie kann ich mit Deepest Sender 0.8.0 (https://addons.mozilla.org/firefox/1811/) Blog-Posts auf blogger.com veröffentlichen?

May 5th, 2008 by matthias

Beim Posten trat folgender Fehler auf: »Error sending post: [Line 2, Column 255, element published] Invalid date/time format: '2007-07-23T19:51Z&+39;.«. Auf community.livejournal.com/deepestsender/129187.html wird dieser Fehler ausgiebig dokumentiert aber keine Lösung angeboten. Offizieller Bugreport: www.mozdev.org/bugs/show_bug.cgi?id=17037 . Der Autor weiß dass der Support für die GData API von blogger.com in Deepest Sender 0.8.0 noch unvollstänig und fehlerhaft ist, Abhilfe ist in der nächsten Version zu erwarten.

Wenn man in den Einstellungen auf blogger.com das Datums-Header-Format auf »Jul 23, 2007« (der erste Eintrag) und das Format des Zeitstempels auf »10:15 PM« (der erste Eintrag) stellt ändert das nichts an dem Fehler.

Workaround: einen Draft-Artikel für jeden Tag im Voraus erstellen und diesen dann mit Deepest Sender in der Post-History editieren und speichern. Zum Editieren gehört dabei auch das Einladen eines lokal gespeicherten Textes über »File -> Open«, d.h. so kann man ohne Umstände bereits mit Deepest Sender vorbereitete und gespeicherte Artikel online veröffentlichen. Und man kann so die lokal gespeicherte Version aktuell halten denn in der o.a. Situation kann der aktuelle Inhalt von Deepest Sender mit dem Button »Save« rechts unten bei blogger.com veröffentlicht werden und mit »File -> Save« im Menü als neue lokale Version gespeichert werden.

Dieses Verfahren funktioniert nämlich ohne den Fehler »Invalid date/time format«. Der Fehler scheint also damit zusammen zu hängen dass Deepest Sender das Datumsformat zum Einstellen des Datums zum Veröffentlichen nicht beherrscht - dieses wird nämlich beim Editieren vorhandener Artikel nicht mehr geändert. Nun gibt man noch auf blogger.com bei »Format des Zeitstempels« ein Format an das nur aus dem Datum besteht, und schon stört die falsche Uhrzeit bei den im Voraus erstellten Artikeln nicht mehr. Die Uhrzeit kann man bei der Voraus-Erstellung auf 12:00 PM setzen.

Posted in Deepest Sender, blogger.com | No Comments »

Wie kann man es beheben wenn die Post-History von Deepest Sender 0.8 falsche Inhalte enthält und das auch bei einem Reload nicht behoben wird?

May 5th, 2008 by matthias

Manchmal werden bei einem Reload keine Daten neu geladen sondern die Daten werden aus dem Cache von Firefox bezogen. Die Lösung ist hier, den Cache von Firefox zu löschen.

Posted in Deepest Sender | No Comments »

Woran liegt der folgende Fehler beim Versuch mit Deepest Sender 0.8 die Post-History eine blogger.com-Accounts abzurufen: »Error getting history: TypeError: blogger.feedsXML has no properties«?

May 5th, 2008 by matthias

Der Fehler trat nach dem Editieren eines bereits veröffentlichten Blog-Posts auf (eventuell nur dann wenn gleichzeitig das Hauptfenster von Deepest Sender geschlossen war, dann nämlich ist es nicht mehr möglich mit Deepest Sender auf blogger.com zu speichern). Der Fehler kann durch einen Neustart von Firefox nicht behoben werden. Der Fehler wird behoben indem man den Cache von Firefox löscht. Dazu verwende man »Tools -> Clear Private Data«, nicht jedoch »Tools -> Web Developer -> Miscellanea -> Clear Private Data -> Clear Cache« denn das hilft hier nicht. Ein Neustart von Deepest Sender oder neues Login bei blogger.com ist nicht erforderlich. Oder (das funktioniert jedoch nicht völlig zuverlässig) man macht den Cache-Inhalt ungültig indem nan mit der Web-Oberfläche auf blogger.com einen neuen (beliebigen) Blog-Post erstellt.

Posted in Deepest Sender, blogger.com | No Comments »

Converting iCal to posts for Deepest Sender

August 2nd, 2007 by matthias

To convert a bulk of blog posts I created in the past years to the format of Deepest Sender I wrote a small Python script that converts all events from an iCalendar (.ics) file to XML files for Deepest Sender. By the way, this is my first real-world Python script and I am astonished as to the ease, clarity and brevity of Python. Note that you need to save the script posted here with UTF-8 encoding; line mangling is just a visibility / screen width and template problem, just copy and paste the source into a text editor and you’ll be fine! Have fun!

#! /usr/bin/env python
# -*- coding: utf_8 -*-
#
# converts an iCal file with blog entries (as appointments) to Deepest Sender XML
#
# Arguments (in order):
# file the iCal file to convert
# output directory directory where the output files for Deepest Sender go into, one per blog post
#
# The appointments in the iCal input file are converted one by one to blog post XML files as understood by the XUL dektop blogging
# plugin “Deepest Sender” (deepestsender.mozdev.org). An inferior alternative to this script’s approach is to convert a HTML
# table as produced by korganizer’s HTML table export format for appointments.
#
# iCal file prerequisites:
# all VEVENT components have the SUMMARY property (else output file name lacks a title)
# no two VEVENTS on one day have the same SUMMARY property (else output files are overwritten)
#
# Deepest sender file structure (note that it is UTF-8 encoded):
# <?xml version=”1.0″ encoding=”utf-8″?>
# <entry>
# <subject><![CDATA[blog entry title]]></subject>
# <event><![CDATA[blog entry content with HTML markup]]></event>
# </entry>
#
# TODO: the filename must only contain a date, not a time, even if the DTSTART property contains one
# TODO: write the values of the DTSTART, CREATED and LAST-MODIFIED properties into the blog post text (via component.decoded())

import sys # argv, …
from xml.dom.minidom import parse, parseString
from codecs import open # overwrite internal open() to enable UTF-8 file access
from icalendar import Calendar, Event
# get it from pypi.python.org/pypi/icalendar/1.2 ; if you don’t want to clutter your distro by installing it system-wide,
# copy the directory iCalendar-1.2/src/icalendar/ to the script’s directory

def filenamestr(thestring):
thestring = thestring.replace(‘ ‘,‘_’)
thestring = thestring.replace(u‘»’,)
thestring = thestring.replace(u‘«’,)
thestring = thestring.replace(‘/’,‘bzw.’) # slash in a filename is really bad …
while thestring[-1:] is ‘.’: # remove trailing dots as a dot and filename extension will be appended
thestring = thestring[:-1]
return thestring

calfilename = sys.argv[1]
cal = Calendar.from_string(open(calfilename,‘rb’).read())
outputdir = sys.argv[2]
while outputdir[-1:] is ‘/’: # remove trailing slash if present
outputdir = outputdir[:-1]

entrycount = 0;
for event in cal.walk(‘VEVENT’):
# decompose blog entry; event.decoded() is Unicode already
date = event.decoded(‘DTSTART’)
title = event.decoded(‘SUMMARY’)
content = event.decoded(‘DESCRIPTION’,)
content = content.replace(‘\n’,‘<br />’) # the simplest means to convert text to HTML, just as Deepest Sender does when
# writing in WYSIWYG mode; we eliminate \n here as blogger.com would create additional <br /> from this

print ‘[processing:', date, title, ']‘
# print event.property_items() # debug utility

# calculate output file’s name
filename = str(date) + ‘.PRIVATE.’ + filenamestr(title) + ‘.xml’

# write blog entry to its output file
dsfile = open(outputdir + ‘/’ + filename, ‘w’, ‘utf_8′) # will only accept Unicode strings!
dsfile.write(
u‘<?xml version=”1.0″ encoding=”utf-8″?>\n’ +
u‘<entry>\n’ +
u‘ <subject><![CDATA[' + title + u']]></subject>\n’ +
u‘ <event><![CDATA[' + content + u'<br /><br />Datum: ' + str(date) + u']]></event>\n’ +
u‘</entry>\n’
)
dsfile.close()
entrycount += 1

print ‘———-\nconversion successful (’ + str(entrycount) + ‘ entries processed)’

Posted in Deepest Sender, Sprache: Englisch, alle Artikel, blogger.com | No Comments »

Wie kann ich mit Deepest Sender 0.8.0 (https://addons.mozilla.org/firefox/1811/) Blog-Posts auf blogger.com veröffentlichen?

July 24th, 2007 by matthias

Beim Posten trat folgender Fehler auf: »Error sending post: [Line 2, Column 255, element published] Invalid date/time format: ‘2007-07-23T19:51Z&+39;.«. Auf community.livejournal.com/deepestsender/129187.html wird dieser Fehler ausgiebig dokumentiert aber keine Lösung angeboten. Offizieller Bugreport: www.mozdev.org/bugs/show_bug.cgi?id=17037 .

Wenn man in den Einstellungen auf blogger.com das Datums-Header-Format auf »Jul 23, 2007« (der erste Eintrag) und das Format des Zeitstempels auf »10:15 PM« (der erste Eintrag) stellt ändert das nichts an dem Fehler.

Workaround: einen Draft-Artikel für jeden Tag im Voraus erstellen und diesen dann mit Deepest Sender in der Post-History editieren und speichern. Das funktioniert nämlich ohne den Fehler »Invalid date/time format«. Der Fehler scheint also damit zusammen zu hängen dass Deepest Sender das Datumsformat zum Einstellen des Datums zum Veröffentlichen nicht beherrscht - dieses wird nämlich beim Editieren vorhandener Artikel nicht mehr geändert. Nun gibt man noch auf blogger.com bei »Format des Zeitstempels« ein Format an das nur aus dem Datum besteht, und schon stört die falsche Uhrzeit bei den im Voraus erstellten Artikeln nicht mehr.

Posted in Deepest Sender, Sprache: Deutsch, alle Artikel, blogger.com | No Comments »

Wie kann ich mit Deepest Sender ein Blogging-System einrichten das offline meine privaten und öffentlichen Posts enthält und die öffentlichen Posts automatisch bei blogger.com veröffentlicht?

July 24th, 2007 by matthias

  • Man schreibe Datum und Uhrzeit des Beginns der Erstellung und der letzten Änderung (außer bei unwesentlichen Korrekturen) eines Posts mit in diesen Post. Sonst ist in den offline gespeicherten Posts nicht mehr ersichtlich wann sie erstellt wurden, außer evtl. im Dateinamen.
  • Man nehme bei der Offline-Speicherung von Posts das Datum des Beginns der Erstellung in den Dateinamen auf. Man nehme die Titel der Blog-Posts in die Dateinamen bei der Offline-Speicherung auf. Dabei nehmen man stets den ganzen Titel auf, ersetzt Leerzeichen durch Unterstriche und legt fest dass Posts eine Titellänge von max. 25 Zeichen haben dürfen.
  • Um Entwürfe zu kennzeichnen nehme man in den Dateinamen als letztes Element »DRAFT« auf.
  • Um private Posts zu kennzeichnen nehme man in den Dateinamen als letztes Element »PRIVATE« auf.
  • Man kann ein kleines Script schreiben das aus den offline gespeicherten Posts ein Buch (das eigene Tagebuch quasi) generiert.
  • Man verwende Deepest Sender auch als Browser zum Betrachten seiner privaten, nicht veröffentlichten Posts.
  • Zum effizienten Handling von Bildern und anderem verlinkten Material: man verwende einen Kommandozeilen-Befehl der eine per Argument angegebene Datei (im Format: file:///home/matthias/folder/cimg0146.jpg) sowohl in einem Materialordner speichert (ggf. mit neu anzugebendem eindeutigem Dateinamen, ggf. als symbolischer Link wenn gewünscht) in dem Ordner der den Blog offline enthält als auch per FTP in einen Ordner hochlädt und die URL zum Zugriff in die Zwischenablage von X kopiert. Das o.a. Format für Dateinamen verwendet z.B. digikam wenn man ein Bild in die Zwischenablage kopiert. Die hier vorgeschlagene Weise erzeugt zwar etwas Redundanz auf dem eigenen Rechner, aber so sind alle zum Blog gehörenden Daten zentral an einem Ort vorhanden so dass man in den offline gespeicherten Posts auch die Bilder usw. voll nutzen kann. So ergibt sich auf einfachste Art eine Download-Komponente!

Posted in Deepest Sender, Sprache: Deutsch, alle Artikel, blogger.com | No Comments »