Difference between revisions of "EverNote"

From Dietrich Blog (Strato)
Jump to: navigation, search
(XSL Transformation)
(Replaced content with "Has been moved to: http://blog.kr8.de/wiki-evernote/")
 
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCright}}
+
Has been moved to: http://blog.kr8.de/wiki-evernote/
EverNote ist einer der Kandidaten für mein [[Notizbuch]], das ich vom [[PDA]] bzw. [[MicrosoftOutlook]] ablösen wollte.
 
 
 
EverNote ist in der Grundversion kostenlos und verfügt auch über eine Importfunktion für Outlook-Notizen.
 
 
 
== Erfahrungen mit EverNote ==
 
Eine Probephase mit EverNote erbrachte folgende Erkenntnisse:
 
* Import der Outlook-Notizen hat gut funktioniert.
 
* Auf dem PC konnte ich es gut nutzen, auf dem [[PDA]] habe ich keine Möglichkeit gefunden
 
* Der Funktionsumfang ist für meine Anforderungen zu groß (Handschriftenerkennung, Einnisten in den [[WebBrowser]],...)
 
* Die Benutzeroberfläche ist mir zu kompliziert, besonders, da ich diese Funktionen nur seltener benutze
 
* Ich benötige das Ding nicht ständig - Minute für Minute, von früh bis spät - Nein, nur ein bis zwei Mal die Woche
 
 
 
== Schlussfolgerungen ==
 
Ich versuche jetzt, meine [[Notizbuch]] als [[WebLog]] zu organisieren und über [[RSS]] auch auf den [[PDA]] zu kommen.
 
 
 
== Export in eine XML-Datei ==
 
Die nun in EverNote vorhandenen Textnotizen können mit vollem Informationsgehalt in eine [[XML]]-Datei exportiert werden.
 
 
 
Auszugsweise sieht das so aus:
 
<pre>
 
<evernote>
 
<notes>
 
<note name="title" content_date="2005/03/30 15:30:45" created="2008/04/07 19:55:01" id="[FA1234-5678-45454554]">
 
<content type="html">
 
  <div>...html content...</div>
 
</content>
 
<contentplain>
 
  ....plain ascii content
 
</contentplain>
 
</note>
 
</notes>
 
</evernote>
 
</pre>
 
 
 
== Transformation nach Atom ==
 
Hat man erst einmal die [[XML]]-Datei, steht die Welt offen, um mit Hilfe von [[XSLT]] diverse andere Formate zu erzeugen, z.B. für [[WordPress]] (über LiveJournal) oder [[Atom]] oder...
 
 
 
=== XSL Transformation ===
 
Für die Transformation in das [[Atom]]-Format habe ich ein [[XSLT]]-Sheet entwickelt. Zwei manuelle Nacharbeiten sind dann noch nötig:
 
* EverNote liefert den formatierten Notizentext als komplettes [[HTML]]-Dokument. Im Atom wird nur ein '''<nowiki><DIV></nowiki> Container''' erwartet. Die überschüssige HTML habe ich manuell entfernt.
 
* EverNote verwendet im formatierten Notizen Text "<nowiki><BR></nowiki>". Dies habe ich per [[FileEditing]] geändert in "<nowiki><br /></nowiki>"
 
* Damit mein [[NewsfeedReader]] [[RssBandit]] dann auch den formatierten Notizentext anzeigt, musste ich letztlich dann noch den unformatierten Text (CONTENTPLAIN) ganz entfernen.
 
 
 
Die Datei '''Evernote2Atom.XSL''' sieht dann so aus:
 
<pre>
 
<?xml version="1.0" encoding="iso-8859-1"?>
 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/2005/Atom" version="1.0">
 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section-elements="content" />
 
 
 
<xsl:template match="/EVERNOTE">
 
<xsl:text>
 
</xsl:text><feed>
 
            <title>Notizbuch</title>
 
            <subtitle>Ehemalige Outlook-Notizen</subtitle>
 
            <link href="http://example.org/feed/" rel="self"/>
 
            <link href="http://example.org/"/>
 
            <xsl:variable name="D" select="@date" />
 
            <updated>
 
              <xsl:value-of select="concat(substring($D,1,4),'-',substring($D,6,2),'-',substring($D,9,2),'T',substring($D,12,8),'Z')" />
 
            </updated>
 
            <author>
 
              <name>Dietrich Kracht</name>
 
              <email>dietrich@kr8.de</email>
 
            </author>
 
            <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id>
 
            <xsl:apply-templates select="//NOTE"/>
 
            </feed>
 
</xsl:template>
 
 
 
<xsl:template match="/EVERNOTE/NOTES/NOTE">
 
<entry>
 
          <title>
 
              <xsl:value-of select="@name"/>
 
          </title>
 
          <link href="http://localhost/wordpress/?p=33"/>
 
          <id>
 
              <xsl:value-of select="@id" />
 
          </id>
 
          <xsl:variable name="D" select="@content_date" />
 
          <updated>
 
              <xsl:value-of select="concat(substring($D,1,4),'-',substring($D,6,2),'-',substring($D,9,2),'T',substring($D,12,8),'Z')" />
 
          </updated>
 
          <xsl:variable name="D" select="@created" />
 
          <published>
 
              <xsl:value-of select="concat(substring($D,1,4),'-',substring($D,6,2),'-',substring($D,9,2),'T',substring($D,12,8),'Z')" />
 
          </published>
 
          <category term="Notizbuch" />
 
          <author>
 
              <name>dkracht</name>
 
          </author>
 
          <content type="xhtml">
 
            <xsl:value-of select="CONTENT" />
 
          </content> 
 
          <content2>
 
              <xsl:value-of select="CONTENTPLAIN"/>
 
          </content2>
 
</entry>
 
</xsl:template>
 
</xsl:stylesheet>
 
</pre>
 
 
 
'''Anmerkung: Damit die Sache mit den <i>cdata-section-elements</i> auch funktioniert, war es erforderlich den Namespace ganz oben in der zweiten Zeile anzugeben.'''
 
 
 
=== Atom als Format ungeeignet ===
 
Nun habe ich meine alten Textnotizen über EverNote und [[XSLT]] in ein schönes [[Atom]]-Format transformiert, leider vergebens, denn eigentlich niemend kann Atom importieren:
 
* [[WordPress]] kann kein Atom importieren
 
* [[Serendipity]] kann kein Atom importieren
 
* '''Blogger.com''' kann kein Atom importieren
 
 
 
Konsequenz: Nun transformiere ich ein weiteres Mal und zwar jetzt in [[RSS]].
 
 
== Transformation nach RSS ==
 
Im Gegensatz zu [[Atom]] lässt sich [[RSS]] bestens importieren.
 
 
 
=== RSS Testdatei ===
 
Mit diesem kleinen (manuell erstellten) RSS-Test-File habe ich es ausprobiert:
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<rss version="2.0"
 
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
 
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
 
xmlns:dc="http://purl.org/dc/elements/1.1/">
 
 
 
<channel>
 
    <title>NotizbuchRSS</title>
 
    <link>http://192.168.1.20/wordpress/</link>
 
    <pubDate>Thu, 12 Apr 2008 13:05:55 +0100</pubDate>
 
    <description>Ehemalige Outlook-Notizen</description>
 
 
 
    <item>
 
    <title>Nokia 3650 Combines Phone And Photos</title>
 
    <link>http://192.168.1.20/wordpress/?p=20</link>
 
    <pubDate>Thu, 13 Apr 2008 12:47:14 +0100</pubDate>
 
    <dc:creator>dkracht</dc:creator>
 
    <category>Notizbuch</category>   
 
    <description>I've been playing with the new Nokia 3650. Finally, someone has got the combination of a cell phone with digital camera capabilities right!
 
    </description>
 
    </item>
 
 
 
    <item>
 
    <title>Sanyo Tablet PC Amazes!</title>
 
    <link>http://192.168.1.20/wordpress/?p=21</link>
 
    <pubDate>Thu, 14 Apr 2008 02:42:31 +0100</pubDate>
 
    <dc:creator>dkracht</dc:creator>
 
    <category>Notizbuch</category>
 
    <description></description> 
 
    <content:encoded><![CDATA[I was dubious about the new <b>Tablet PCs</b>, but then I saw the latest from Sanyo. <br />Wow, cool looks and it works!]]>    </content:encoded>
 
    </item>
 
 
 
    <item>
 
    <title>Canon MegaTiny Digital Camera Too Small</title>
 
    <link>http://192.168.1.20/wordpress/?p=22</link>
 
    <pubDate>Thu, 15 Apr 2008 11:12:47 +0100</pubDate>
 
    <dc:creator>dkracht</dc:creator>
 
    <category>Notizbuch</category>
 
    <description>OK, there is a limit to just how small is too small. Canon's MetaTiny, no larger than a quarter, simply is too little to use properly
 
    </description>
 
    </item>
 
</channel>
 
</rss>
 
</pre>
 
 
 
=== XSL Transformation ===
 
Um als Ausgabe ein RSS-2.0-Format zu erzeugen, müsste man den '''RSS 2.0 Namespace''' als Default-Namespace angeben. Damit scheint es aber bei RSS 2.0 Probleme zu geben, es wird von einem '''empty namespace''' gesprochen.
 
 
 
Deshalb musste ich etwas trixen: http://www.xml.com/lpt/a/2003/01/02/tr.html
 
 
 
Mit diesen XSL '''Atom2RSS.xsl''' kann ich mein nun schon vorhandenes [[Atom]]-Format in [[RSS]] 2.0 transformieren.
 
 
 
Die Transformation beschränkt sich auf die Teile, die in meinem Anwendungsbeispiel (mein [[Notizbuch]]) auch wirklich vorkommen.
 
 
 
Schießlich habe ich mir die Arbeit geschenkt, für RSS ein RFC 8222 konformes Datum zu erzeugen. Diesen letzen Schitt mache ich manuell mit einem [[FileEditor]]; d.h. aus der Monatsnummer den Monatsnamen erzeugen (01 --> Jan, 02 --> Feb etc.)
 
 
 
<pre>
 
<?xml version="1.0" encoding="iso-8859-1"?>
 
<xsl:stylesheet
 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 
      xmlns:content="http://purl.org/rss/1.0/modules/content/"
 
      xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.0">
 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section-elements="content:encoded" />
 
 
 
<xsl:template match="*[local-name()='feed']">
 
<xsl:text>
 
</xsl:text>
 
        <rss version="2.0">
 
        <channel>
 
            <title>NotizbuchRSS</title>
 
            <link>http://localhost/wordpress</link>
 
            <xsl:variable name="D" select="*[local-name()='updated']" />
 
            <pubDate>
 
              <xsl:value-of select="concat(substring($D,9,2),' ',substring($D,6,2),' ',substring($D,1,4),' ',substring($D,12,8),' +0200')" />
 
            </pubDate>
 
            <description>Ehemalige Outlook-Notizen</description>
 
            <xsl:apply-templates select="*[local-name()='entry']" />
 
        </channel>
 
        </rss>
 
</xsl:template>
 
 
 
<xsl:template match="*[local-name()='entry']">
 
<item>
 
          <title>
 
              <xsl:value-of select="*[local-name()='title']"/>
 
          </title>
 
          <link>http://localhost/wordpress/?p=33</link>
 
          <xsl:variable name="D" select="*[local-name()='updated']" />
 
          <pubDate>
 
              <xsl:value-of select="concat(substring($D,9,2),' ',substring($D,6,2),' ',substring($D,1,4),' ',substring($D,12,8),' +0200')" />
 
          </pubDate>
 
          <dc:creator>dkracht</dc:creator>
 
          <category>Notizbuch</category>
 
          <description></description>
 
          <content:encoded>
 
            <xsl:value-of select="*[local-name()='content']" />
 
          </content:encoded> 
 
</item>
 
</xsl:template>
 
</xsl:stylesheet>
 
</pre>
 
 
 
-- [[User:Dkracht|Dkracht]] 21:58, 9 February 2008 (CET)
 

Latest revision as of 14:02, 27 April 2020

Has been moved to: http://blog.kr8.de/wiki-evernote/